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;
+ private static ColorModel cmodel = new DirectColorModel(32, 0x00FF0000, 0x0000FF00, 0x000000FF, 0xFF000000);
+
+ // this doesn't work on Win32 because the JVM is broken
+ /*
static final ColorModel cmodel = new ColorModel(8) {
public int getRed(int p) { return 0; }
public int getGreen(int p) { return 0; }
public int getBlue(int p) { return 0; }
public int getAlpha(int p) { return p & 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));
+
+ int[] data2 = new int[data.length];
+ for(int i=0; i<data2.length; i++) data2[i] = ((data[i]) & 0xff) << 24;
+
+ MemoryImageSource mis = new MemoryImageSource(width, height, cmodel, data2, 0, width);
+ mis.setAnimated(true);
+ i = Toolkit.getDefaultToolkit().createImage(mis);
MediaTracker mediatracker = new MediaTracker(new Canvas());
mediatracker.addImage(i, 1);
try { mediatracker.waitForAll(); } catch (InterruptedException e) { }
public void init() {
if (initialized) return;
initialized = true;
- i = Toolkit.getDefaultToolkit().createImage(new MemoryImageSource(width, height, cmodel, data, 0, width));
+ MemoryImageSource mis = new MemoryImageSource(width, height, cmodel, data, 0, width);
+ mis.setAnimated(true);
+ i = Toolkit.getDefaultToolkit().createImage(mis);
MediaTracker mediatracker = new MediaTracker(new Canvas());
mediatracker.addImage(i, 1);
try { mediatracker.waitForAll(); } catch (InterruptedException e) { }