2003/10/01 03:08:32
[org.ibex.core.git] / src / org / xwt / Surface.java
index 6ed2377..b42ee0c 100644 (file)
@@ -284,6 +284,8 @@ public abstract class Surface extends PixelBuffer {
         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() {
 
@@ -309,7 +311,7 @@ public abstract class Surface extends PixelBuffer {
             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) {
 
@@ -326,7 +328,6 @@ public abstract class Surface extends PixelBuffer {
                 return;
             }
         }
-
     }
 
     // FEATURE: reinstate recycler
@@ -361,6 +362,13 @@ public abstract class Surface extends PixelBuffer {
             screenDirtyRegions.dirty(dx1, dy1, dx2 - dx1, dy2 - dy1);
             backbuffer.drawPicture(source, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2); }
 
+        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); }