Refresh();
}
+ private static VectorGraphics.Affine identity = VectorGraphics.Affine.identity();
+
/** runs the prerender() and render() pipelines in the root Box to regenerate the backbuffer, then blits it to the screen */
public synchronized void render() {
if (y+h > root.height) h = root.height - y;
if (w <= 0 || h <= 0) continue;
- root.render(0, 0, x, y, w, h, this);
+ root.render(0, 0, x, y, w, h, this, identity);
if (abort) {
return;
}
}
-
}
// FEATURE: reinstate recycler
screenDirtyRegions.dirty(dx1, dy1, dx2 - dx1, dy2 - dy1);
backbuffer.drawPicture(source, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2); }
- public void fillRect(int x1, int y1, int x2, int y2, int color) {
- screenDirtyRegions.dirty(x1, y1, x2 - x1, y2 - y1);
- backbuffer.fillRect(x1, y1, x2, y2, color); }
+ public void drawPictureAlphaOnly(Picture source,
+ int dx1, int dy1, int dx2, int dy2,
+ int sx1, int sy1, int sx2, int sy2,
+ int argb) {
+ screenDirtyRegions.dirty(dx1, dy1, dx2 - dx1, dy2 - dy1);
+ backbuffer.drawPictureAlphaOnly(source, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, argb); }
+
+ public void fillTrapezoid(int x1, int x2, int y1, int x3, int x4, int y2, int color) {
+ screenDirtyRegions.dirty(Math.min(x1, x3), y1, Math.max(x2, x4) - Math.min(x1, x3), y2 - y1);
+ backbuffer.fillTrapezoid(x1, x2, y1, x3, x4, y2, color); }
public void render() {
super.render();
+ render_();
+ }
+
+ public void render_() {
int[][] dirt = screenDirtyRegions.flush();
for(int i = 0; dirt != null && i < dirt.length; i++) {
if (dirt[i] == null) continue;