From e48c798bdb825af6d8fc17115c0f70209c7e211c Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Wed, 5 Jun 2024 14:16:24 +0100 Subject: [PATCH] PicoVector: Fix out of bounds drawing. pretty-poly.h is not giving us fully clipped rectangles, so revert to the slower bounds checked pixel for now. --- libraries/pico_vector/pico_vector.hpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libraries/pico_vector/pico_vector.hpp b/libraries/pico_vector/pico_vector.hpp index d5f44224..1d96aabd 100644 --- a/libraries/pico_vector/pico_vector.hpp +++ b/libraries/pico_vector/pico_vector.hpp @@ -63,11 +63,12 @@ namespace pimoroni { (uint8_t)_pp_antialias)) { return; } + for(auto y = 0; y < tile->h; y++) { for(auto x = 0; x < tile->w; x++) { uint8_t alpha = *tile_data++; if (alpha >= 4) { - PicoVector::graphics->set_pixel({x + tile->x, y + tile->y}); + PicoVector::graphics->pixel({x + tile->x, y + tile->y}); } else if (alpha > 0) { alpha = alpha_map[alpha]; PicoVector::graphics->set_pixel_alpha({x + tile->x, y + tile->y}, alpha); @@ -80,7 +81,7 @@ namespace pimoroni { for(auto x = 0; x < tile->w; x++) { uint8_t alpha = *tile_data++; if (alpha) { - PicoVector::graphics->set_pixel({x + tile->x, y + tile->y}); + PicoVector::graphics->pixel({x + tile->x, y + tile->y}); } } tile_data += tile->stride - tile->w;