My setup is a follows:
- C API
- macOS 12.5
- Playdate SDK Version 1.12.3 (140884)
Problem: I'm trying to limit the amount of unnecessary display updating. When rendering a polygon using playdate->graphics->fillPolygon
, unexpected portions of the display are updated; specifically, everything to the "left" and "above" of the rendered polygon.
Some basic code that renders a poly:
int xOffset = 200;
int yOffset = 100;
int numPoints = 6;
int points[12] = {
xOffset + 0, yOffset + 0,
xOffset + 50, yOffset + 20,
xOffset + 75, yOffset + 50,
xOffset + 75, yOffset + 80,
xOffset + 50, yOffset + 90,
xOffset + 0, yOffset + 0
};
pd_gfx->fillPolygon(numPoints, points, kColorBlack, kPolygonFillNonZero);
For this example, it doesn't particularly matter what LCDPolygonFillRule
is used, or what kind of shape is rendered -- the result is the same.
A screenshot with "Highlight Screen Updates" enabled:
-
Expected results: just the filled portion, or the bounding box of the polygon is updated
-
Actual results: the entirety of the screen to the left/above the polygon is updated
This may be an expected implementation detail for poly fills -- I'm not sure!
Is this a bug, or expected?