Pārlūkot izejas kodu

Move glFramebufferTextureLayer to GLFbo

Kirill Vainer 8 gadi atpakaļ
vecāks
revīzija
af3a0c70ce

+ 5 - 0
jme3-android/src/main/java/com/jme3/renderer/android/AndroidGL.java

@@ -561,4 +561,9 @@ public class AndroidGL implements GL, GLExt, GLFbo {
     public void glBlendEquationSeparate(int colorMode, int alphaMode) {
         GLES20.glBlendEquationSeparate(colorMode, alphaMode);
     }
+    
+    @Override
+    public void glFramebufferTextureLayerEXT(int target, int attachment, int texture, int level, int layer) {
+        throw new UnsupportedOperationException("OpenGL ES 2 does not support texture arrays");
+    }
 }

+ 0 - 1
jme3-core/src/main/java/com/jme3/renderer/opengl/GL3.java

@@ -86,7 +86,6 @@ public interface GL3 extends GL2 {
     public void glBindFragDataLocation(int param1, int param2, String param3); /// GL3+
     public void glBindVertexArray(int param1); /// GL3+
     public void glDeleteVertexArrays(IntBuffer arrays); /// GL3+
-    public void glFramebufferTextureLayer(int param1, int param2, int param3, int param4, int param5); /// GL3+
     public void glGenVertexArrays(IntBuffer param1); /// GL3+
     public String glGetString(int param1, int param2); /// GL3+
 }

+ 0 - 6
jme3-core/src/main/java/com/jme3/renderer/opengl/GLDebugDesktop.java

@@ -95,12 +95,6 @@ public class GLDebugDesktop extends GLDebugES implements GL2, GL3, GL4 {
         checkError();
     }
 
-    @Override
-    public void glFramebufferTextureLayer(int param1, int param2, int param3, int param4, int param5) {
-        gl3.glFramebufferTextureLayer(param1, param2, param3, param4, param5);
-        checkError();
-    }
-
     public void glBlendEquationSeparate(int colorMode, int alphaMode) {
         gl.glBlendEquationSeparate(colorMode, alphaMode);
         checkError();

+ 7 - 0
jme3-core/src/main/java/com/jme3/renderer/opengl/GLDebugES.java

@@ -598,8 +598,15 @@ public class GLDebugES extends GLDebug implements GL, GLFbo, GLExt {
         return sync;
     }
 
+    @Override
     public void glBlendEquationSeparate(int colorMode, int alphaMode) {
         gl.glBlendEquationSeparate(colorMode, alphaMode);
         checkError();
     }
+    
+    @Override
+    public void glFramebufferTextureLayerEXT(int param1, int param2, int param3, int param4, int param5) {
+        glfbo.glFramebufferTextureLayerEXT(param1, param2, param3, param4, param5);
+        checkError();
+    }
 }

+ 1 - 0
jme3-core/src/main/java/com/jme3/renderer/opengl/GLFbo.java

@@ -89,6 +89,7 @@ public interface GLFbo {
     public void glDeleteRenderbuffersEXT(IntBuffer param1);
     public void glFramebufferRenderbufferEXT(int param1, int param2, int param3, int param4);
     public void glFramebufferTexture2DEXT(int param1, int param2, int param3, int param4, int param5);
+    public void glFramebufferTextureLayerEXT(int target, int attachment, int texture, int level, int layer);
     public void glGenFramebuffersEXT(IntBuffer param1);
     public void glGenRenderbuffersEXT(IntBuffer param1);
     public void glGenerateMipmapEXT(int param1);

+ 1 - 1
jme3-core/src/main/java/com/jme3/renderer/opengl/GLRenderer.java

@@ -1581,7 +1581,7 @@ public final class GLRenderer implements Renderer {
                     image.getId(),
                     0);
         } else {
-            gl3.glFramebufferTextureLayer(GLFbo.GL_FRAMEBUFFER_EXT, 
+            glfbo.glFramebufferTextureLayerEXT(GLFbo.GL_FRAMEBUFFER_EXT, 
                     convertAttachmentSlot(rb.getSlot()), 
                     image.getId(), 
                     0,

+ 1 - 0
jme3-core/src/main/java/com/jme3/renderer/opengl/GLTracer.java

@@ -112,6 +112,7 @@ public final class GLTracer implements InvocationHandler {
         noEnumArgs("glRenderbufferStorageMultisampleEXT", 1, 3, 4);
         noEnumArgs("glFramebufferRenderbufferEXT", 3);
         noEnumArgs("glFramebufferTexture2DEXT", 3, 4);
+        noEnumArgs("glFramebufferTextureLayerEXT", 2, 3, 4);
         noEnumArgs("glBlitFramebufferEXT", 0, 1, 2, 3, 4, 5, 6, 7, 8);
         
         noEnumArgs("glCreateProgram", -1);

+ 5 - 0
jme3-ios/src/main/java/com/jme3/renderer/ios/IosGL.java

@@ -611,4 +611,9 @@ public class IosGL implements GL, GLExt, GLFbo {
     public Object glFenceSync(int condition, int flags) {
         throw new UnsupportedOperationException("OpenGL ES 2 does not support sync fences");
     }
+    
+    @Override
+    public void glFramebufferTextureLayerEXT(int target, int attachment, int texture, int level, int layer) {
+        throw new UnsupportedOperationException("OpenGL ES 2 does not support texture arrays");
+    }
 }

+ 0 - 6
jme3-jogl/src/main/java/com/jme3/renderer/jogl/JoglGL.java

@@ -634,10 +634,4 @@ public class JoglGL implements GL, GL2, GL3, GL4 {
         checkLimit(arrays);
         GLContext.getCurrentGL().getGL2ES3().glDeleteVertexArrays(arrays.limit(), arrays);
     }
-
-    @Override
-    public void glFramebufferTextureLayer(int param1, int param2, int param3, int param4, int param5) {
-        GLContext.getCurrentGL().getGL3().glFramebufferTextureLayer(param1, param2, param3, param4, param5);
-    }
-
 }

+ 5 - 0
jme3-jogl/src/main/java/com/jme3/renderer/jogl/JoglGLFbo.java

@@ -94,4 +94,9 @@ public class JoglGLFbo implements GLFbo {
     public void glRenderbufferStorageEXT(int param1, int param2, int param3, int param4) {
         GLContext.getCurrentGL().glRenderbufferStorage(param1, param2, param3, param4);
     }
+    
+    @Override
+    public void glFramebufferTextureLayerEXT(int param1, int param2, int param3, int param4, int param5) {
+        GLContext.getCurrentGL().getGL3().glFramebufferTextureLayer(param1, param2, param3, param4, param5);
+    }
 }

+ 0 - 5
jme3-lwjgl/src/main/java/com/jme3/renderer/lwjgl/LwjglGL.java

@@ -493,9 +493,4 @@ public final class LwjglGL implements GL, GL2, GL3, GL4 {
         checkLimit(arrays);
         ARBVertexArrayObject.glDeleteVertexArrays(arrays);
     }
-
-    @Override
-    public void glFramebufferTextureLayer(int param1, int param2, int param3, int param4, int param5) {
-        GL30.glFramebufferTextureLayer(param1, param2, param3, param4, param5);
-    }
 }

+ 6 - 0
jme3-lwjgl/src/main/java/com/jme3/renderer/lwjgl/LwjglGLFboEXT.java

@@ -7,6 +7,7 @@ import java.nio.IntBuffer;
 import org.lwjgl.opengl.EXTFramebufferBlit;
 import org.lwjgl.opengl.EXTFramebufferMultisample;
 import org.lwjgl.opengl.EXTFramebufferObject;
+import org.lwjgl.opengl.EXTTextureArray;
 
 /**
  * Implements GLFbo via GL_EXT_framebuffer_object.
@@ -95,4 +96,9 @@ public final class LwjglGLFboEXT implements GLFbo {
     public void glRenderbufferStorageEXT(int param1, int param2, int param3, int param4) {
         EXTFramebufferObject.glRenderbufferStorageEXT(param1, param2, param3, param4);
     }
+    
+    @Override
+    public void glFramebufferTextureLayerEXT(int target, int attachment, int texture, int level, int layer) {
+        EXTTextureArray.glFramebufferTextureLayerEXT(target, attachment, texture, level, layer);
+    }
 }

+ 5 - 0
jme3-lwjgl/src/main/java/com/jme3/renderer/lwjgl/LwjglGLFboGL3.java

@@ -93,4 +93,9 @@ public final class LwjglGLFboGL3 implements GLFbo {
     public void glRenderbufferStorageEXT(int param1, int param2, int param3, int param4) {
         GL30.glRenderbufferStorage(param1, param2, param3, param4);
     }
+    
+    @Override
+    public void glFramebufferTextureLayerEXT(int param1, int param2, int param3, int param4, int param5) {
+        GL30.glFramebufferTextureLayer(param1, param2, param3, param4, param5);
+    }
 }

+ 0 - 7
jme3-lwjgl3/src/main/java/com/jme3/renderer/lwjgl/LwjglGL.java

@@ -36,8 +36,6 @@ import com.jme3.renderer.opengl.GL;
 import com.jme3.renderer.opengl.GL2;
 import com.jme3.renderer.opengl.GL3;
 import com.jme3.renderer.opengl.GL4;
-import com.jme3.system.NativeLibraryLoader;
-import com.jme3.system.Platform;
 import org.lwjgl.opengl.*;
 
 import java.nio.*;
@@ -519,9 +517,4 @@ public class LwjglGL implements GL, GL2, GL3, GL4 {
         checkLimit(arrays);
         ARBVertexArrayObject.glDeleteVertexArrays(arrays);
     }
-
-    @Override
-    public void glFramebufferTextureLayer(int param1, int param2, int param3, int param4, int param5) {
-        GL30.glFramebufferTextureLayer(param1, param2, param3, param4, param5);
-    }
 }

+ 6 - 0
jme3-lwjgl3/src/main/java/com/jme3/renderer/lwjgl/LwjglGLFboEXT.java

@@ -39,6 +39,7 @@ import org.lwjgl.opengl.EXTFramebufferObject;
 
 import java.nio.Buffer;
 import java.nio.IntBuffer;
+import org.lwjgl.opengl.EXTTextureArray;
 
 /**
  * Implements GLFbo via GL_EXT_framebuffer_object.
@@ -127,4 +128,9 @@ public class LwjglGLFboEXT implements GLFbo {
     public void glRenderbufferStorageEXT(int param1, int param2, int param3, int param4) {
         EXTFramebufferObject.glRenderbufferStorageEXT(param1, param2, param3, param4);
     }
+    
+    @Override
+    public void glFramebufferTextureLayerEXT(int target, int attachment, int texture, int level, int layer) {
+        EXTTextureArray.glFramebufferTextureLayerEXT(target, attachment, texture, level, layer);
+    }
 }

+ 5 - 0
jme3-lwjgl3/src/main/java/com/jme3/renderer/lwjgl/LwjglGLFboGL3.java

@@ -125,4 +125,9 @@ public class LwjglGLFboGL3 implements GLFbo {
     public void glRenderbufferStorageEXT(int param1, int param2, int param3, int param4) {
         GL30.glRenderbufferStorage(param1, param2, param3, param4);
     }
+    
+    @Override
+    public void glFramebufferTextureLayerEXT(int param1, int param2, int param3, int param4, int param5) {
+        GL30.glFramebufferTextureLayer(param1, param2, param3, param4, param5);
+    }
 }