[kandinsky] In KDContext::getPixels: beware of rects crossing the screen

This fixes a display glitch on the device, when using Python's turtle
module and doing the command forward(200).
This commit is contained in:
Léa Saviot
2018-12-07 11:30:32 +01:00
parent c8a5972243
commit e836593ff9
3 changed files with 23 additions and 1 deletions

View File

@@ -19,5 +19,16 @@ KDColor KDContext::getPixel(KDPoint p) {
void KDContext::getPixels(KDRect r, KDColor * pixels) {
KDRect rect = r.translatedBy(m_origin);
pullRect(rect, pixels);
if (m_clippingRect.containsRect(rect)) {
pullRect(rect, pixels);
return;
}
int i = 0;
KDCoordinate yMax = r.y()+r.height();
KDCoordinate xMax = r.x()+r.width();
for (int y = r.y(); y < yMax; y++) {
for (int x = r.x(); x < xMax; x++) {
pixels[i++] = getPixel(KDPoint(x, y));
}
}
}