|
@@ -47,7 +47,6 @@ import java.util.HashMap;
|
|
|
*/
|
|
|
public final class GLTracer implements InvocationHandler {
|
|
|
|
|
|
- private final GL gl;
|
|
|
private final Object obj;
|
|
|
private final IntMap<String> constMap;
|
|
|
private static final HashMap<String, IntMap<Void>> nonEnumArgMap = new HashMap<String, IntMap<Void>>();
|
|
@@ -70,6 +69,9 @@ public final class GLTracer implements InvocationHandler {
|
|
|
noEnumArgs("glPixelStorei", 1);
|
|
|
// noEnumArgs("glTexParameteri", 2);
|
|
|
noEnumArgs("glTexImage2D", 1, 3, 4, 5);
|
|
|
+ noEnumArgs("glTexImage3D", 1, 3, 4, 5, 6);
|
|
|
+ noEnumArgs("glTexSubImage3D", 1, 2, 3, 4, 5, 6, 7);
|
|
|
+ noEnumArgs("glCompressedTexSubImage3D", 1, 2, 3, 4, 5, 6, 7);
|
|
|
noEnumArgs("glDeleteTextures", 0);
|
|
|
|
|
|
noEnumArgs("glBindBuffer", 1);
|
|
@@ -107,8 +109,7 @@ public final class GLTracer implements InvocationHandler {
|
|
|
noEnumArgs("glDeleteProgram", 0);
|
|
|
}
|
|
|
|
|
|
- public GLTracer(GL gl, Object obj, IntMap<String> constMap) {
|
|
|
- this.gl = gl;
|
|
|
+ public GLTracer(Object obj, IntMap<String> constMap) {
|
|
|
this.obj = obj;
|
|
|
this.constMap = constMap;
|
|
|
}
|
|
@@ -134,29 +135,29 @@ public final class GLTracer implements InvocationHandler {
|
|
|
/**
|
|
|
* Creates a tracer implementation that wraps OpenGL ES 2.
|
|
|
*
|
|
|
- * @param gl OGL interface
|
|
|
- * @param glext OGL extension interface
|
|
|
- * @return A tracer that implements GL, GLFbo, and GLExt.
|
|
|
+ * @param glInterface OGL object to wrap
|
|
|
+ * @param glInterfaceClass The interface to implement
|
|
|
+ * @return A tracer that implements the given interface
|
|
|
*/
|
|
|
- public static GL createGlesTracer(GL gl, GLExt glext) {
|
|
|
+ public static Object createGlesTracer(Object glInterface, Class<?> glInterfaceClass) {
|
|
|
IntMap<String> constMap = generateConstantMap(GL.class, GLExt.class);
|
|
|
- return (GL) Proxy.newProxyInstance(glext.getClass().getClassLoader(),
|
|
|
- new Class<?>[] { GL.class, GLExt.class },
|
|
|
- new GLTracer(gl, glext, constMap));
|
|
|
+ return Proxy.newProxyInstance(glInterface.getClass().getClassLoader(),
|
|
|
+ new Class<?>[] { glInterfaceClass },
|
|
|
+ new GLTracer(glInterface, constMap));
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Creates a tracer implementation that wraps OpenGL 2+.
|
|
|
*
|
|
|
- * @param gl OGL interface
|
|
|
- * @param glext OGL extension interface
|
|
|
- * @return A tracer that implements GL, GL2, GL3, GLFbo, and GLExt.
|
|
|
+ * @param glInterface OGL object to wrap
|
|
|
+ * @param glInterfaceClass The interface to implement
|
|
|
+ * @return A tracer that implements the given interface
|
|
|
*/
|
|
|
- public static GL createDesktopGlTracer(GL3 gl, GLExt glext) {
|
|
|
- IntMap<String> constMap = generateConstantMap(GL3.class, GLExt.class);
|
|
|
- return (GL) Proxy.newProxyInstance(glext.getClass().getClassLoader(),
|
|
|
- new Class<?>[] { GL3.class, GLExt.class },
|
|
|
- new GLTracer(gl, glext, constMap));
|
|
|
+ public static Object createDesktopGlTracer(Object glInterface, Class<?> glInterfaceClass) {
|
|
|
+ IntMap<String> constMap = generateConstantMap(GL2.class, GLExt.class);
|
|
|
+ return Proxy.newProxyInstance(glInterface.getClass().getClassLoader(),
|
|
|
+ new Class<?>[] { glInterfaceClass },
|
|
|
+ new GLTracer(glInterface, constMap));
|
|
|
}
|
|
|
|
|
|
private String translateInteger(String method, int value, int argIndex) {
|