Преглед на файлове

Avoid RGB111110F in filters unless its actually supported

Kirill Vainer преди 8 години
родител
ревизия
b0316e419c
променени са 2 файла, в които са добавени 13 реда и са изтрити 8 реда
  1. 2 5
      jme3-core/src/main/java/com/jme3/post/Filter.java
  2. 11 3
      jme3-core/src/main/java/com/jme3/post/FilterPostProcessor.java

+ 2 - 5
jme3-core/src/main/java/com/jme3/post/Filter.java

@@ -213,13 +213,10 @@ public abstract class Filter implements Savable {
     }
 
     /**
-     * returns the default pass texture format
-     * default is {@link Format#RGB111110F}
-     * 
-     * @return
+     * returns the default pass texture format.
      */
     protected Format getDefaultPassTextureFormat() {
-        return Format.RGB111110F;
+        return processor.getDefaultPassTextureFormat();
     }
 
     /**

+ 11 - 3
jme3-core/src/main/java/com/jme3/post/FilterPostProcessor.java

@@ -143,9 +143,13 @@ public class FilterPostProcessor implements SceneProcessor, Savable {
         fsQuad = new Picture("filter full screen quad");
         fsQuad.setWidth(1);
         fsQuad.setHeight(1);
-        
-        if (fbFormat == Format.RGB111110F && !renderer.getCaps().contains(Caps.PackedFloatTexture)) {
-            fbFormat = Format.RGB8;
+
+        if (!renderer.getCaps().contains(Caps.PackedFloatTexture)) {
+            if (!renderer.getCaps().contains(Caps.FloatTexture)) {
+                fbFormat = Format.RGB8;
+            } else {
+                fbFormat = Format.RGB16F;
+            }
         }
         
         Camera cam = vp.getCamera();
@@ -161,6 +165,10 @@ public class FilterPostProcessor implements SceneProcessor, Savable {
         reshape(vp, cam.getWidth(), cam.getHeight());
     }
 
+    public Format getDefaultPassTextureFormat() {
+        return fbFormat;
+    }
+    
     /**
      * init the given filter
      * @param filter