Add buffer object versions of several functions
Some of these are new ES3 functions, some are existing ES2 functions
that can now use the new pixel pack/unpack buffer bindings.
glDrawElementsInstanced needs a special case since the pointer/offset
arg isn't the last one like the generator assumes.
Bug: 8566953
Change-Id: I638a36b0a31aefcb5bfee6f4d049348223045103
diff --git a/opengl/tools/glgen/src/JniCodeEmitter.java b/opengl/tools/glgen/src/JniCodeEmitter.java
index ba1152a..d5e2d34 100644
--- a/opengl/tools/glgen/src/JniCodeEmitter.java
+++ b/opengl/tools/glgen/src/JniCodeEmitter.java
@@ -749,10 +749,20 @@
String outName = "android_" + jfunc.getName();
boolean isPointerFunc = isPointerFunc(jfunc);
- boolean isVBOPointerFunc = (outName.endsWith("Pointer") ||
- outName.endsWith("PointerOES") ||
- outName.endsWith("DrawElements") || outName.endsWith("VertexAttribPointer")) &&
- !jfunc.getCFunc().hasPointerArg();
+ boolean isPointerOffsetFunc =
+ (outName.endsWith("Pointer") || outName.endsWith("PointerOES") ||
+ outName.endsWith("glDrawElements") ||
+ outName.endsWith("glDrawRangeElements") ||
+ outName.endsWith("glTexImage2D") ||
+ outName.endsWith("glTexSubImage2D") ||
+ outName.endsWith("glCompressedTexImage2D") ||
+ outName.endsWith("glCompressedTexSubImage2D") ||
+ outName.endsWith("glTexImage3D") ||
+ outName.endsWith("glTexSubImage3D") ||
+ outName.endsWith("glCompressedTexImage3D") ||
+ outName.endsWith("glCompressedTexSubImage3D") ||
+ outName.endsWith("glReadPixels"))
+ && !jfunc.getCFunc().hasPointerArg();
if (isPointerFunc) {
outName += "Bounds";
}
@@ -1271,8 +1281,8 @@
}
for (int i = 0; i < numArgs; i++) {
String typecast;
- if (i == numArgs - 1 && isVBOPointerFunc) {
- typecast = "(const GLvoid *)";
+ if (i == numArgs - 1 && isPointerOffsetFunc) {
+ typecast = "(GLvoid *)";
} else {
typecast = "(" + cfunc.getArgType(i).getDeclaration() + ")";
}