/** 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) {
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) {