From 8a720fc5969b54c886cccd12a083861c4b831225 Mon Sep 17 00:00:00 2001 From: kappa1 Date: Wed, 1 Jul 2009 18:05:44 +0000 Subject: [PATCH] fix: Animated gif's were not working with ImageIO as it only returns a BufferedImage, so switched to Toolkit with MediaTracker. --- src/java/org/lwjgl/util/applet/AppletLoader.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/java/org/lwjgl/util/applet/AppletLoader.java b/src/java/org/lwjgl/util/applet/AppletLoader.java index b37eb570..2fa12fae 100644 --- a/src/java/org/lwjgl/util/applet/AppletLoader.java +++ b/src/java/org/lwjgl/util/applet/AppletLoader.java @@ -38,6 +38,7 @@ import java.awt.Color; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Image; +import java.awt.MediaTracker; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; @@ -70,8 +71,6 @@ import java.util.jar.JarFile; import java.util.jar.JarOutputStream; import java.util.jar.Pack200; -import javax.imageio.ImageIO; - import sun.security.util.SecurityConstants; /** @@ -1115,12 +1114,19 @@ public class AppletLoader extends Applet implements Runnable, AppletStub { try { URL url = AppletLoader.class.getResource("/"+s); - // if logo not found in jar, look at URL + // if image not found in jar, look outside it if (url == null) { url = new URL(getCodeBase(), s); } - return ImageIO.read(url); + Image image = super.getImage(url); + + // wait for image to load + MediaTracker tracker = new MediaTracker(this); + tracker.addImage(image, 0); + tracker.waitForAll(); + + return image; } catch (Exception e) { /* */ }