Renderer Changes
* Add new "Limits" enum to hold maximums of various renderer capabilities such as texture size * Add support for seamless cubemap (enabled by default for mipmapped cubemaps) * Fix conflict when using GL tracing with GL debugging
This commit is contained in:
parent
9f3a145dd7
commit
16e3e00507
@ -3,12 +3,12 @@ package com.jme3.renderer.opengl;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.IntBuffer;
|
||||
|
||||
public class GLDebugGL2 extends GLDebugES {
|
||||
public class GLDebugDesktop extends GLDebugES implements GL2, GL3 {
|
||||
|
||||
private final GL2 gl2;
|
||||
private final GL3 gl3;
|
||||
|
||||
public GLDebugGL2(GL gl, GLFbo glfbo) {
|
||||
public GLDebugDesktop(GL gl, GLFbo glfbo) {
|
||||
super(gl, glfbo);
|
||||
this.gl2 = gl instanceof GL2 ? (GL2) gl : null;
|
||||
this.gl3 = gl instanceof GL3 ? (GL3) gl : null;
|
||||
|
@ -71,6 +71,7 @@ public final class GLTracer implements InvocationHandler {
|
||||
noEnumArgs("glTexImage2D", 1, 3, 4, 5);
|
||||
noEnumArgs("glTexImage3D", 1, 3, 4, 5, 6);
|
||||
noEnumArgs("glTexSubImage3D", 1, 2, 3, 4, 5, 6, 7);
|
||||
noEnumArgs("glCompressedTexImage2D", 1, 3, 4, 5);
|
||||
noEnumArgs("glCompressedTexSubImage3D", 1, 2, 3, 4, 5, 6, 7);
|
||||
noEnumArgs("glDeleteTextures", 0);
|
||||
noEnumArgs("glReadPixels", 0, 1, 2, 3);
|
||||
@ -86,8 +87,12 @@ public final class GLTracer implements InvocationHandler {
|
||||
noEnumArgs("glBindFramebufferEXT", 1);
|
||||
noEnumArgs("glBindRenderbufferEXT", 1);
|
||||
noEnumArgs("glRenderbufferStorageEXT", 2, 3);
|
||||
noEnumArgs("glRenderbufferStorageMultisampleEXT", 1, 3, 4);
|
||||
noEnumArgs("glFramebufferRenderbufferEXT", 3);
|
||||
noEnumArgs("glFramebufferTexture2DEXT", 3, 4);
|
||||
noEnumArgs("glBlitFramebufferEXT", 0, 1, 2, 3, 4, 5, 6, 7, 8);
|
||||
|
||||
|
||||
|
||||
noEnumArgs("glCreateProgram", -1);
|
||||
noEnumArgs("glCreateShader", -1);
|
||||
@ -110,6 +115,7 @@ public final class GLTracer implements InvocationHandler {
|
||||
noEnumArgs("glDetachShader", 0, 1);
|
||||
noEnumArgs("glDeleteShader", 0);
|
||||
noEnumArgs("glDeleteProgram", 0);
|
||||
noEnumArgs("glBindFragDataLocation", 0, 1);
|
||||
}
|
||||
|
||||
public GLTracer(Object obj, IntMap<String> constMap) {
|
||||
@ -153,13 +159,13 @@ public final class GLTracer implements InvocationHandler {
|
||||
* Creates a tracer implementation that wraps OpenGL 2+.
|
||||
*
|
||||
* @param glInterface OGL object to wrap
|
||||
* @param glInterfaceClass The interface to implement
|
||||
* @param glInterfaceClasses The interface(s) to implement
|
||||
* @return A tracer that implements the given interface
|
||||
*/
|
||||
public static Object createDesktopGlTracer(Object glInterface, Class<?> glInterfaceClass) {
|
||||
public static Object createDesktopGlTracer(Object glInterface, Class<?> ... glInterfaceClasses) {
|
||||
IntMap<String> constMap = generateConstantMap(GL2.class, GLExt.class);
|
||||
return Proxy.newProxyInstance(glInterface.getClass().getClassLoader(),
|
||||
new Class<?>[] { glInterfaceClass },
|
||||
glInterfaceClasses,
|
||||
new GLTracer(glInterface, constMap));
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user