2003/09/25 10:10:52
[org.ibex.core.git] / src / org / xwt / Picture.java
index 88cf65b..29e3184 100644 (file)
@@ -22,6 +22,9 @@ public abstract class Picture {
 
     /** Pictures, cached by Res */
     private static Cache cache = new Cache();
+
+    private static GIF gif = new GIF();
+    private static PNG png = new PNG();
     
     /** turns a resource into a Picture.Source */
     public static Picture fromRes(Res r) {
@@ -32,10 +35,9 @@ public abstract class Picture {
                 PushbackInputStream pbis = new PushbackInputStream(r.getInputStream());
                 int c = pbis.read();
                 pbis.unread(c);
-                // FEATURE: cache GIF/PNG objects, reuse int[]'s?
-                if (c == 'G') ret = new GIF().fromInputStream(pbis, "FIXME");
-                else if (c == 137) ret = new PNG().fromInputStream(pbis, "FIXME");
-                else if (c == 0xff) ret = Platform.decodeJPEG(pbis, "FIXME");
+                if (c == 'G') ret = gif.fromInputStream(pbis, r.getDescriptiveName());
+                else if (c == 137) ret = png.fromInputStream(pbis, r.getDescriptiveName());
+                else if (c == 0xff) ret = Platform.decodeJPEG(pbis, r.getDescriptiveName());
                 else throw new JS.Exn("couldn't figure out image type from first byte");
                 cache.put(r, ret);
             } catch (IOException e) {