2003/12/13 08:13:34
[org.ibex.core.git] / src / org / xwt / plat / Win32.java
index b26fd38..ddad001 100644 (file)
@@ -65,7 +65,7 @@ public class Win32 extends GCJ {
     protected String getDescriptiveName() { return "GCJ Win32 Binary"; }
     protected Surface _createSurface(Box b, boolean framed) { return new Win32Surface(b, framed); }
     protected PixelBuffer _createPixelBuffer(int w, int h, Surface owner) { return new Win32PixelBuffer(w, h, (Win32Surface)owner); }
-    protected Picture _createPicture(int[] b, int w, int h) { return new Win32Picture(b, w, h); }
+    protected Picture _createPicture() { return new Win32Picture(); }
     protected native int _getScreenWidth();
     protected native int _getScreenHeight();
     protected boolean _supressDirtyOnResize() { return false; }
@@ -229,8 +229,9 @@ public class Win32 extends GCJ {
         public int getWidth() { return w; };
         public int getHeight() { return h; };
         public int[] getData() { return data; }
+        boolean initialized = false;
+        public void init() { if (!initialized && isLoaded) natInit(); initialized = true; }
         public native void natInit();
-        public Win32Picture(int[] data, int w, int h) { this.w = w; this.h = h; this.data = data; natInit(); }
     }
     
 
@@ -263,10 +264,13 @@ public class Win32 extends GCJ {
 
         public native void fillRect(int x, int y, int x2, int y2, int color);
         public void drawPicture(Picture source, int dx, int dy, int cx1, int cy1, int cx2, int cy2) {
+            ((Win32Picture)source).init();
             drawPicture(source, dx, dy, cx1, cy1, cx2, cy2, 0, false);
         }
-        public void drawPictureAlphaOnly(Picture source, int dx, int dy, int cx1, int cy1, int cx2, int cy2, int rgb) {
-            drawPicture(source, dx, dy, cx1, cy1, cx2, cy2, rgb, true);
+        public void drawGlyph(org.xwt.Font.Glyph source, int dx, int dy, int cx1, int cy1, int cx2, int cy2, int rgb) {
+            Win32Picture p = ((Win32Picture)((DefaultGlyph)source).getPicture());
+            p.init();
+            drawPicture(p, dx, dy, cx1, cy1, cx2, cy2, rgb, true);
         }
         public native void drawPicture(Picture source, int dx, int dy, int cx1, int cy1, int cx2, int cy2,
                                        int rgb, boolean alphaOnly);