improved lastCoordinate calculation
This commit is contained in:
parent
3b14c31e00
commit
79376bbc58
@ -85,8 +85,8 @@ void drawPixelCallback2D(int16_t x, int16_t y, uint8_t red, uint8_t green, uint8
|
|||||||
// simple nearest-neighbor scaling
|
// simple nearest-neighbor scaling
|
||||||
int outY = (int)y * activeSeg->vHeight() / gifHeight;
|
int outY = (int)y * activeSeg->vHeight() / gifHeight;
|
||||||
int outX = (int)x * activeSeg->vWidth() / gifWidth;
|
int outX = (int)x * activeSeg->vWidth() / gifWidth;
|
||||||
if (outX + outY == lastCoordinate) return; // skip setting same coordinate again
|
if (((outY << 16) | outX) == lastCoordinate) return; // skip setting same coordinate again
|
||||||
lastCoordinate = outX + outY; // since input is a "scanline" this is sufficient to identify a "unique" coordinate
|
lastCoordinate = (outY << 16) | outX; // since input is a "scanline" this is sufficient to identify a "unique" coordinate
|
||||||
// set multiple pixels if upscaling
|
// set multiple pixels if upscaling
|
||||||
for (int i = 0; i < perPixelX; i++) {
|
for (int i = 0; i < perPixelX; i++) {
|
||||||
for (int j = 0; j < perPixelY; j++) {
|
for (int j = 0; j < perPixelY; j++) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user