- protected static class AWTPicture extends Picture {
- public int getHeight() { return i.getHeight(null); }
- public int getWidth() { return i.getWidth(null); }
- public int[] getData() { return data; }
+ protected org.xwt.Font.Glyph _createGlyph(org.xwt.Font f, char c) { return new AWTGlyph(f, c); }
+ protected static class AWTGlyph extends org.xwt.Font.Glyph {
+ private Image i = null;
+ static ColorModel cmodel = new DirectColorModel(8, 0x00000000, 0x00000000, 0x00000000, 0xFF);
+ public AWTGlyph(org.xwt.Font f, char c) { super(f, c); }
+ Image getImage() {
+ if (i == null && isLoaded) {
+ i = Toolkit.getDefaultToolkit().createImage(new MemoryImageSource(width, height, cmodel, data, 0, width));
+ MediaTracker mediatracker = new MediaTracker(new Canvas());
+ mediatracker.addImage(i, 1);
+ try { mediatracker.waitForAll(); } catch (InterruptedException e) { }
+ mediatracker.removeImage(i);
+ synchronized(AWTPixelBuffer.class) {
+ if (AWTPixelBuffer.component == null) {
+ AWTPixelBuffer.component = new Frame();
+ AWTPixelBuffer.component.setVisible(false);
+ AWTPixelBuffer.component.addNotify();
+ }
+ }
+ data = null;
+ }
+ return i;
+ }
+ }