Files
Upsilon/escher/src/tiled_view.cpp
Romain Goyet b2317aa9b3 [escher] Avoid a repetitive function call
Change-Id: Iae1f2b86e06d21fbbc23bcdc9696b284bfd1a23d
2016-08-29 13:38:06 +02:00

27 lines
820 B
C++

#include <escher/tiled_view.h>
#include <assert.h>
void TiledView::drawRect(KDContext * ctx, KDRect rect) const {
KDColor * pixels = tile();
KDSize size = tileSize();
KDFrameBuffer tileBuffer(pixels, size);
KDFrameBufferContext tileContext = KDFrameBufferContext(&tileBuffer);
for (int i=0; i<(rect.width()/size.width()+1); i++) {
for (int j=0; j<(rect.height()/size.height()+1); j++) {
KDRect tileRect(
rect.x() + i*size.width(),
rect.y() + j*size.height(),
size.width(), size.height()
);
//tileRect = KDRectIntersection(tileRect, rect); // Optional
KDPoint origin = tileRect.origin().opposite();
tileContext.setOrigin(origin);
drawTile(&tileContext, tileRect);
ctx->fillRectWithPixels(tileRect, pixels, pixels);
}
}
}