瀏覽代碼

* Fix android runtime error due to BufferedImage being used in AppSettings

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@7621 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
sha..rd 14 年之前
父節點
當前提交
39a7c743af

+ 3 - 4
engine/src/core/com/jme3/system/AppSettings.java

@@ -32,7 +32,6 @@
 package com.jme3.system;
 
 import com.jme3.renderer.Renderer;
-import java.awt.image.BufferedImage;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
@@ -376,7 +375,7 @@ public class AppSettings extends HashMap<String, Object> {
      * @param value An array of BufferedImages to use as icons.
      * (Default: not set)
      */
-    public void setIcons(BufferedImage[] value) {
+    public void setIcons(Object[] value) {
         put("Icons", value);
     }
 
@@ -440,8 +439,8 @@ public class AppSettings extends HashMap<String, Object> {
         return getString("AudioRenderer");
     }
 
-    public BufferedImage[] getIcons() {
-        return (BufferedImage[]) get("Icons");
+    public Object[] getIcons() {
+        return (Object[]) get("Icons");
     }
 
     public void setSettingsDialogImage(String path) {

+ 3 - 2
engine/src/desktop/com/jme3/app/SettingsDialog.java

@@ -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");

+ 5 - 3
engine/src/lwjgl-ogl/com/jme3/system/lwjgl/LwjglDisplay.java

@@ -113,8 +113,9 @@ public class LwjglDisplay extends LwjglAbstractDisplay {
         if (displayMode != null)
             Display.setDisplayMode(displayMode);
 
-        if (settings.getIcons() != null)
+        if (settings.getIcons() != null) {
             Display.setIcon(imagesToByteBuffers(settings.getIcons()));
+        }
 
         Display.setFullscreen(settings.isFullscreen());
         Display.setVSyncEnabled(settings.isVSync());
@@ -190,10 +191,11 @@ public class LwjglDisplay extends LwjglAbstractDisplay {
             Display.setTitle(title);
     }
     
-    private ByteBuffer[] imagesToByteBuffers(BufferedImage[] images) {
+    private ByteBuffer[] imagesToByteBuffers(Object[] images) {
         ByteBuffer[] out = new ByteBuffer[images.length];
         for (int i = 0; i < images.length; i++) {
-            out[i] = imageToByteBuffer(images[i]);
+            BufferedImage image = (BufferedImage) images[i];
+            out[i] = imageToByteBuffer(image);
         }
         return out;
     }