OSDN Git Service

* Fix android runtime error due to BufferedImage being used in AppSettings
authorshadowislord <shadowislord@75d07b2b-3a1a-0410-a2c5-0572b91ccdca>
Tue, 14 Jun 2011 03:07:21 +0000 (03:07 +0000)
committershadowislord <shadowislord@75d07b2b-3a1a-0410-a2c5-0572b91ccdca>
Tue, 14 Jun 2011 03:07:21 +0000 (03:07 +0000)
git-svn-id: http://jmonkeyengine.googlecode.com/svn/trunk@7621 75d07b2b-3a1a-0410-a2c5-0572b91ccdca

engine/src/core/com/jme3/system/AppSettings.java
engine/src/desktop/com/jme3/app/SettingsDialog.java
engine/src/lwjgl-ogl/com/jme3/system/lwjgl/LwjglDisplay.java

index fcb377f..d308c87 100644 (file)
@@ -32,7 +32,6 @@
 package com.jme3.system;\r
 \r
 import com.jme3.renderer.Renderer;\r
-import java.awt.image.BufferedImage;\r
 import java.io.IOException;\r
 import java.io.InputStream;\r
 import java.io.OutputStream;\r
@@ -376,7 +375,7 @@ public class AppSettings extends HashMap<String, Object> {
      * @param value An array of BufferedImages to use as icons.\r
      * (Default: not set)\r
      */\r
-    public void setIcons(BufferedImage[] value) {\r
+    public void setIcons(Object[] value) {\r
         put("Icons", value);\r
     }\r
 \r
@@ -440,8 +439,8 @@ public class AppSettings extends HashMap<String, Object> {
         return getString("AudioRenderer");\r
     }\r
 \r
-    public BufferedImage[] getIcons() {\r
-        return (BufferedImage[]) get("Icons");\r
+    public Object[] getIcons() {\r
+        return (Object[]) get("Icons");\r
     }\r
 \r
     public void setSettingsDialogImage(String path) {\r
index 1a51d7c..e10920b 100644 (file)
@@ -45,6 +45,7 @@ import java.awt.event.KeyEvent;
 import java.awt.event.KeyListener;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
+import java.awt.image.BufferedImage;
 import java.lang.reflect.Method;
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -250,8 +251,8 @@ public final class SettingsDialog extends JDialog {
             }
         });
 
-        if(source.getIcons()!=null){
-            safeSetIconImages(Arrays.asList(source.getIcons()));
+        if (source.getIcons() != null) {
+            safeSetIconImages( (List<BufferedImage>) Arrays.asList((BufferedImage[]) source.getIcons()) );
         }
 
         setTitle("Select Display Settings");
index 523b300..6fd8032 100644 (file)
@@ -113,8 +113,9 @@ public class LwjglDisplay extends LwjglAbstractDisplay {
         if (displayMode != null)\r
             Display.setDisplayMode(displayMode);\r
 \r
-        if (settings.getIcons() != null)\r
+        if (settings.getIcons() != null) {\r
             Display.setIcon(imagesToByteBuffers(settings.getIcons()));\r
+        }\r
 \r
         Display.setFullscreen(settings.isFullscreen());\r
         Display.setVSyncEnabled(settings.isVSync());\r
@@ -190,10 +191,11 @@ public class LwjglDisplay extends LwjglAbstractDisplay {
             Display.setTitle(title);\r
     }\r
     \r
-    private ByteBuffer[] imagesToByteBuffers(BufferedImage[] images) {\r
+    private ByteBuffer[] imagesToByteBuffers(Object[] images) {\r
         ByteBuffer[] out = new ByteBuffer[images.length];\r
         for (int i = 0; i < images.length; i++) {\r
-            out[i] = imageToByteBuffer(images[i]);\r
+            BufferedImage image = (BufferedImage) images[i];\r
+            out[i] = imageToByteBuffer(image);\r
         }\r
         return out;\r
     }\r