Initial commit of GLESv2 debugger server

Use debug.egl.debug_proc property to match process cmdline.
Binds to TCP:5039 and waits for client connection.
Sends function call parameters, textures and shaders using Protobuf.
Java Eclipse client plug-in is next.

Change-Id: I183b755263663f87e86dde1ad12f527d0445fd57
Signed-off-by: David Li <davidxli@google.com>
This commit is contained in:
David Li 2011-03-01 16:08:10 -08:00
parent 61faf8255a
commit 2f5a6557ef
21 changed files with 9995 additions and 7 deletions

View File

@ -13,8 +13,8 @@ LOCAL_SRC_FILES:= \
EGL/hooks.cpp \
EGL/Loader.cpp \
#
LOCAL_SHARED_LIBRARIES += libcutils libutils
LOCAL_STATIC_LIBRARIES += libGLESv2_dbg libprotobuf-cpp-2.3.0-lite
LOCAL_SHARED_LIBRARIES += libcutils libutils libstlport
LOCAL_LDLIBS := -lpthread -ldl
LOCAL_MODULE:= libEGL
@ -164,3 +164,6 @@ LOCAL_LDLIBS := -lpthread -ldl
LOCAL_MODULE:= libETC1
include $(BUILD_SHARED_LIBRARY)
include $(call all-makefiles-under,$(LOCAL_PATH))

View File

@ -114,6 +114,8 @@ Loader::Loader()
Loader::~Loader()
{
extern void StopDebugServer();
StopDebugServer();
}
const char* Loader::getTag(int dpy, int impl)

View File

@ -296,9 +296,9 @@ EGLAPI pthread_key_t gGLTraceKey = -1;
// ----------------------------------------------------------------------------
static int gEGLTraceLevel;
static int gEGLTraceLevel, gEGLDebugLevel;
static int gEGLApplicationTraceLevel;
extern EGLAPI gl_hooks_t gHooksTrace;
extern EGLAPI gl_hooks_t gHooksTrace, gHooksDebug;
static inline void setGlTraceThreadSpecific(gl_hooks_t const *value) {
pthread_setspecific(gGLTraceKey, value);
@ -314,12 +314,37 @@ static void initEglTraceLevel() {
int propertyLevel = atoi(value);
int applicationLevel = gEGLApplicationTraceLevel;
gEGLTraceLevel = propertyLevel > applicationLevel ? propertyLevel : applicationLevel;
property_get("debug.egl.debug_proc", value, "");
long pid = getpid();
char procPath[128] = {};
sprintf(procPath, "/proc/%ld/cmdline", pid);
FILE * file = fopen(procPath, "r");
if (file)
{
char cmdline[256] = {};
if (fgets(cmdline, sizeof(cmdline) - 1, file))
{
LOGD("\n*\n*\n* initEglTraceLevel cmdline='%s' \n*\n*", cmdline);
if (!strcmp(value, cmdline))
gEGLDebugLevel = 1;
}
fclose(file);
}
extern void StartDebugServer();
if (gEGLDebugLevel > 0)
StartDebugServer();
}
static void setGLHooksThreadSpecific(gl_hooks_t const *value) {
if (gEGLTraceLevel > 0) {
setGlTraceThreadSpecific(value);
setGlThreadSpecific(&gHooksTrace);
} else if (gEGLDebugLevel > 0) {
setGlTraceThreadSpecific(value);
setGlThreadSpecific(&gHooksDebug);
LOGD("\n* setGLHooksThreadSpecific gHooksDebug");
} else {
setGlThreadSpecific(value);
}
@ -1597,7 +1622,7 @@ __eglMustCastToProperFunctionPointerType eglGetProcAddress(const char *procname)
cnx->hooks[GLESv1_INDEX]->ext.extensions[slot] =
cnx->hooks[GLESv2_INDEX]->ext.extensions[slot] =
#if EGL_TRACE
gHooksTrace.ext.extensions[slot] =
gHooksDebug.ext.extensions[slot] = gHooksTrace.ext.extensions[slot] =
#endif
cnx->egl.eglGetProcAddress(procname);
}

View File

@ -325,7 +325,7 @@ static void Tracing_ ## _api _args { \
#define TRACE_GL(_type, _api, _args, _argList, ...) \
static _type Tracing_ ## _api _args { \
TraceGL(#_api, __VA_ARGS__); \
TraceGL(#_api, __VA_ARGS__); \
gl_hooks_t::gl_t const * const _c = &getGLTraceThreadSpecific()->gl; \
return _c->_api _argList; \
}
@ -333,11 +333,11 @@ static _type Tracing_ ## _api _args { \
extern "C" {
#include "../trace.in"
}
#undef TRACE_GL_VOID
#undef TRACE_GL
#define GL_ENTRY(_r, _api, ...) Tracing_ ## _api,
EGLAPI gl_hooks_t gHooksTrace = {
{
#include "entries.in"
@ -348,6 +348,48 @@ EGLAPI gl_hooks_t gHooksTrace = {
};
#undef GL_ENTRY
#undef TRACE_GL_VOID
#undef TRACE_GL
// define the ES 1.0 Debug_gl* functions as Tracing_gl functions
#define TRACE_GL_VOID(_api, _args, _argList, ...) \
static void Debug_ ## _api _args { \
TraceGL(#_api, __VA_ARGS__); \
gl_hooks_t::gl_t const * const _c = &getGLTraceThreadSpecific()->gl; \
_c->_api _argList; \
}
#define TRACE_GL(_type, _api, _args, _argList, ...) \
static _type Debug_ ## _api _args { \
TraceGL(#_api, __VA_ARGS__); \
gl_hooks_t::gl_t const * const _c = &getGLTraceThreadSpecific()->gl; \
return _c->_api _argList; \
}
extern "C" {
#include "../debug.in"
}
#undef TRACE_GL_VOID
#undef TRACE_GL
// declare all Debug_gl* functions
#define GL_ENTRY(_r, _api, ...) _r Debug_##_api ( __VA_ARGS__ );
#include "../GLES2_dbg/include/glesv2_dbg.h"
#undef GL_ENTRY
#define GL_ENTRY(_r, _api, ...) Debug_ ## _api,
EGLAPI gl_hooks_t gHooksDebug = {
{
#include "entries.in"
},
{
{0}
}
};
#undef GL_ENTRY
// ----------------------------------------------------------------------------
}; // namespace android
// ----------------------------------------------------------------------------

View File

@ -0,0 +1,46 @@
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := \
src/DebuggerMessage.pb.cpp \
src/api.cpp \
src/server.cpp \
src/shader.cpp \
src/texture.cpp
LOCAL_C_INCLUDES := \
$(LOCAL_PATH) \
$(LOCAL_PATH)/../ \
external/stlport/stlport \
external/protobuf/src \
bionic
LOCAL_SHARED_LIBRARIES := libstlport libcutils libutils
LOCAL_LDLIBS := -lpthread
#LOCAL_CFLAGS += -O0 -g -DDEBUG -UNDEBUG
LOCAL_CFLAGS := -DGOOGLE_PROTOBUF_NO_RTTI
ifeq ($(TARGET_ARCH),arm)
LOCAL_CFLAGS += -fstrict-aliasing
endif
ifeq ($(ARCH_ARM_HAVE_TLS_REGISTER),true)
LOCAL_CFLAGS += -DHAVE_ARM_TLS_REGISTER
endif
ifneq ($(TARGET_SIMULATOR),true)
# we need to access the private Bionic header <bionic_tls.h>
# on ARM platforms, we need to mirror the ARCH_ARM_HAVE_TLS_REGISTER
# behavior from the bionic Android.mk file
ifeq ($(TARGET_ARCH)-$(ARCH_ARM_HAVE_TLS_REGISTER),arm-true)
LOCAL_CFLAGS += -DHAVE_ARM_TLS_REGISTER
endif
LOCAL_C_INCLUDES += bionic/libc/private
endif
LOCAL_MODULE:= libGLESv2_dbg
LOCAL_MODULE_TAGS := optional
include $(BUILD_STATIC_LIBRARY)

View File

@ -0,0 +1,73 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
def generate_DebuggerMessage(output,lines,i):
for line in lines:
if line.find("API_ENTRY(") >= 0:
line = line[line.find("(") + 1: line.find(")")] #extract GL function name
output.write("\t\t%s = %d;\n" % (line, i))
i += 1
return i
if __name__ == "__main__":
output = open("DebuggerMessage.proto",'w')
output.write( """// do not edit; auto generated by generate_DebuggerMessage_proto.py
package GLESv2Debugger;
option optimize_for = LITE_RUNTIME;
message Message
{
\trequired int32 context_id = 1; // GL context id
\tenum Function
\t{
""")
i = 0;
lines = open("gl2_api.in").readlines()
i = generate_DebuggerMessage(output, lines, i)
output.write("\t\t// end of GL functions\n")
#lines = open("gl2ext_api.in").readlines()
#i = generate_DebuggerMessage(output, lines, i)
#output.write("\t\t// end of GL EXT functions\n")
output.write("\t\tACK = %d;\n" % (i))
i += 1
output.write("\t\tNEG = %d;\n" % (i))
i += 1
output.write("\t\tCONTINUE = %d;\n" % (i))
i += 1
output.write("\t\tSKIP = %d;\n" % (i))
i += 1
output.write("""\t}
\trequired Function function = 2 [default = NEG]; // type/function of message
\trequired bool has_next_message = 3;
\trequired bool expect_response = 4;
\toptional int32 ret = 5; // return value from previous GL call
\toptional int32 arg0 = 6; // args to GL call
\toptional int32 arg1 = 7;
\toptional int32 arg2 = 8;
\toptional int32 arg3 = 9;
\toptional int32 arg4 = 16;
\toptional int32 arg5 = 17;
\toptional int32 arg6 = 18;
\toptional int32 arg7 = 19;
\toptional int32 arg8 = 20;
\toptional bytes data = 10; // variable length data used for GL call
\toptional float time = 11; // timing of previous GL call (seconds)
}
""")
output.close()
os.system("aprotoc --cpp_out=src --java_out=client/src DebuggerMessage.proto")
os.system(' mv -f "src/DebuggerMessage.pb.cc" "src/DebuggerMessage.pb.cpp" ')

View File

@ -0,0 +1,43 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
if __name__ == "__main__":
externs = []
lines = open("enums.in").readlines()
i = 0
print "// auto generated by generate_GLFunction_java.py"
print """package GLESv2Debugger;
public enum GLEnum
{"""
index = 0
for line in lines:
value = line[line.find("(") + 1: line.find(",")]
name = line[line.find(",") + 1: line.find(")")]
print "\t%s(%s)," % (name, value)
print """\t;
\tpublic final int value;
\tGLEnum(final int value)
\t{
\t\tthis.value = value;
\t}
\tprivate static final java.util.HashMap<Integer, GLEnum> reverseMap = new java.util.HashMap<Integer, GLEnum>();
\tstatic
\t{
\t\tfor (GLEnum e : GLEnum.values())
\t\t\treverseMap.put(e.value, e);
\t}
\tpublic static GLEnum valueOf(final int value)
\t{
\t\treturn reverseMap.get(value);
\t}
}"""

View File

@ -0,0 +1,34 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
if __name__ == "__main__":
externs = []
lines = open("gl2_api.in").readlines()
i = 0
print "// auto generated by generate_GLFunction_java.py"
print """package GLESv2Debugger;
public enum GLFunction
{"""
index = 0
for line in lines:
if line.find("API_ENTRY(") >= 0: # a function prototype
returnType = line[0: line.find(" API_ENTRY(")]
functionName = line[line.find("(") + 1: line.find(")")] #extract GL function name
print "\t%s(%d, DebuggerMessage.Message.Function.%s)," % (functionName, index, functionName)
index += 1
print """\t;
\tpublic final int index;
\tpublic final DebuggerMessage.Message.Function function;
\tGLFunction(final int index, final DebuggerMessage.Message.Function function)
\t{
\t\tthis.index = index;
\t\tthis.function = function;
\t}
}"""

View File

@ -0,0 +1,239 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
import sys
def RemoveAnnotation(line):
if line.find(":") >= 0:
annotation = line[line.find(":"): line.find(" ", line.find(":"))]
return line.replace(annotation, "*")
else:
return line
if __name__ == "__main__":
externs = []
lines = open("gl2_api_annotated.in").readlines()
i = 0
print """// auto generated by generate_MessageFormatter_java.py"
package GLESv2Debugger;
public class MessageFormatter {
\tstatic String FormatFloats(int count, byte [] data)
\t{
\t\tString ret = "[";
\t\tfor (int i = 0; i < count; i++)
\t\t{
\t\t\tint bits = (data[i* 4 + 0] & 0xff) << 24;
\t\t\tbits |= (data[i* 4 + 1] & 0xff) << 16;
\t\t\tbits |= (data[i* 4 + 2] & 0xff) << 8;
\t\t\tbits |= (data[i* 4 + 3] & 0xff) << 0;
\t\t\tret += Float.intBitsToFloat(bits);
\t\t\tif (i < count - 1)
\t\t\t\tret += ", ";
\t\t}
\t\treturn ret + "]";
\t}
\t
\tstatic String FormatInts(int count, byte [] data)
\t{
\t\tString ret = "[";
\t\tfor (int i = 0; i < count; i++)
\t\t{
\t\t\tint bits = (data[i* 4 + 3] & 0xff) << 24;
\t\t\tbits |= (data[i* 4 + 2] & 0xff) << 16;
\t\t\tbits |= (data[i* 4 + 1] & 0xff) << 8;
\t\t\tbits |= (data[i* 4 + 0] & 0xff) << 0;
\t\t\tret += bits;
\t\t\tif (i < count - 1)
\t\t\t\tret += ", ";
\t\t}
\t\treturn ret + "]";
\t}
\t
\tstatic String FormatUints(int count, byte [] data)
\t{
\t\tString ret = "[";
\t\tfor (int i = 0; i < count; i++)
\t\t{
\t\t\tlong bits = (data[i* 4 + 3] & 0xff) << 24;
\t\t\tbits |= (data[i* 4 + 2] & 0xff) << 16;
\t\t\tbits |= (data[i* 4 + 1] & 0xff) << 8;
\t\t\tbits |= (data[i* 4 + 0] & 0xff) << 0;
\t\t\tret += bits;
\t\t\tif (i < count - 1)
\t\t\t\tret += ", ";
\t\t}
\t\treturn ret + "]";
\t}
\t
\tstatic String FormatMatrix(int columns, int count, byte [] data)
\t{
\t\tString ret = "[";
\t\tfor (int i = 0; i < count; i++)
\t\t{
\t\t\tint bits = (data[i* 4 + 0] & 0xff) << 24;
\t\t\tbits |= (data[i* 4 + 1] & 0xff) << 16;
\t\t\tbits |= (data[i* 4 + 2] & 0xff) << 8;
\t\t\tbits |= (data[i* 4 + 3] & 0xff) << 0;
\t\t\tret += Float.intBitsToFloat(bits);
\t\t\tif (i % columns == columns - 1)
\t\t\t\tret += '\\n';
\t\t\telse if (i < count - 1)
\t\t\t\tret += ", ";
\t\t}
\t\treturn ret + "]";
\t}
\tpublic static String Format(final DebuggerMessage.Message msg)
\t{
\t\tString str;
\t\tswitch (msg.getFunction())
\t\t{"""
for line in lines:
if line.find("API_ENTRY(") >= 0: # a function prototype
returnType = line[0: line.find(" API_ENTRY(")].replace("const ", "")
functionName = line[line.find("(") + 1: line.find(")")] #extract GL function name
parameterList = line[line.find(")(") + 2: line.find(") {")]
# print "\t\tcase %s:" % (functionName)
# print "\t\t\t//return MessageFormatterCustom.Format(msg);"
# print "\t\t\tstr = msg.toString(); break;"
# #extern = "%s Format_%s(%s);" % (returnType, functionName, parameterList)
# extern = functionName
# externs.append(extern)
# continue
parameters = parameterList.split(',')
paramIndex = 0
formatString = "%s "
formatArgs = ""
if returnType != "void":
if returnType == "GLenum":
formatArgs += "GLEnum.valueOf(msg.getRet())"
elif returnType.find("*") >= 0:
formatArgs += '"0x" + Integer.toHexString(msg.getRet())'
else:
formatArgs += "msg.getRet()"
else:
formatArgs += '"void"'
#formatString += "%s(" % (functionName)
formatString += "("
if parameterList == "void":
parameters = []
paramTypes = []
paramNames = []
paramAnnotations = []
for parameter in parameters:
parameter = parameter.replace("const","")
parameter = parameter.strip()
paramType = parameter.split(' ')[0]
paramName = parameter.split(' ')[1]
annotation = ""
formatString += paramName + "=%s"
if parameter.find(":") >= 0:
assert paramIndex == len(parameters) - 1 # only last parameter should be annotated
inout = paramType.split(":")[2]
annotation = paramType.split(":")[1]
paramType = paramType.split(":")[0]
assert paramType.find("void") < 0
count = 1
countArg = ""
if annotation.find("*") >= 0:
count = int(annotation.split("*")[0])
countArg = annotation.split("*")[1]
assert countArg in paramNames
elif annotation in paramNames:
count = 1
countArg = annotation
elif annotation == "GLstring":
annotation = annotation
else:
count = int(annotation)
dataFormatter = ""
if paramType == "GLfloat":
dataFormatter = "FormatFloats"
elif paramType == "GLint":
dataFormatter = "FormatInts"
elif paramType == "GLuint":
dataFormatter = "FormatUints"
elif annotation == "GLstring":
assert paramType == "GLchar"
else:
assert 0
if functionName.find("Matrix") >= 0:
columns = int(functionName[functionName.find("fv") - 1: functionName.find("fv")])
assert columns * columns == count
assert countArg != ""
assert paramType == "GLfloat"
formatArgs += ", FormatMatrix(%d, %d * msg.getArg%d(), msg.getData().toByteArray())" % (columns, count, paramNames.index(countArg))
elif annotation == "GLstring":
formatArgs += ", msg.getData().toStringUtf8()"
elif countArg == "":
formatArgs += ", %s(%d, msg.getData().toByteArray())" % (dataFormatter, count)
else:
formatArgs += ", %s(%d * msg.getArg%d(), msg.getData().toByteArray())" % (dataFormatter, count, paramNames.index(countArg))
else:
#formatArgs += ', "%s"' % (paramName)
if paramType == "GLfloat" or paramType == "GLclampf":
formatArgs += ", Float.intBitsToFloat(msg.getArg%d())" % (paramIndex)
elif paramType == "GLenum":
formatArgs += ", GLEnum.valueOf(msg.getArg%d())" % (paramIndex)
elif paramType.find("*") >= 0:
formatArgs += ', "0x" + Integer.toHexString(msg.getArg%d())' % (paramIndex)
else:
formatArgs += ", msg.getArg%d()" % (paramIndex)
if paramIndex < len(parameters) - 1:
formatString += ", "
paramTypes.append(paramType)
paramNames.append(paramName)
paramAnnotations.append(annotation)
paramIndex += 1
formatString += ")"
print "\t\tcase %s:" % (functionName)
if line.find("*") >= 0 and (line.find("*") < line.find(":") or line.find("*") > line.rfind(":")):
sys.stderr.write(line)
print "\t\t\t// FIXME: this function uses pointers, debugger may send data in msg.data"
print '\t\t\tstr = String.format("%s", %s); break;' % (formatString, formatArgs)
print """\t\tdefault:
\t\t\tstr = msg.toString();
\t\t}
\t\treturn str;
\t}
}"""
print """/*
package GLESv2Debugger;
public class MessageFormatterCustom {
\tpublic static String Format(final DebuggerMessage.Message msg) {
\t\tString str;
\t\tswitch (msg.getFunction()) {"""
for extern in externs:
print "\t\tcase %s" % (extern)
print "\t\t\t// TODO:"
print """\t\tdefault:
\t\t\tstr = msg.toString();
\t\t}
\t\treturn str;
\t}
}
*/"""

View File

@ -0,0 +1,174 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
import sys
def RemoveAnnotation(line):
if line.find(":") >= 0:
annotation = line[line.find(":"): line.find(" ", line.find(":"))]
return line.replace(annotation, "*")
else:
return line
def generate_api(lines):
externs = []
i = 0
skipFunctions = ["glTexImage2D", "glTexSubImage2D", "glShaderSource"]
for line in lines:
if line.find("API_ENTRY(") >= 0: # a function prototype
returnType = line[0: line.find(" API_ENTRY(")]
functionName = line[line.find("(") + 1: line.find(")")] #extract GL function name
parameterList = line[line.find(")(") + 2: line.find(") {")]
#if line.find("*") >= 0:
# extern = "%s Debug_%s(%s);" % (returnType, functionName, parameterList)
# externs.append(extern)
# continue
if functionName in skipFunctions:
sys.stderr.write("!\n! skipping function '%s'\n!\n" % (functionName))
continue
parameters = parameterList.split(',')
paramIndex = 0
if line.find("*") >= 0 and (line.find("*") < line.find(":") or line.find("*") > line.rfind(":")):
extern = "%s Debug_%s(%s);" % (returnType, functionName, RemoveAnnotation(parameterList))
sys.stderr.write("%s should be hand written\n" % (extern))
print "// FIXME: this function has pointers, it should be hand written"
externs.append(extern)
print "%s Debug_%s(%s)\n{" % (returnType, functionName, RemoveAnnotation(parameterList))
if returnType != "void":
print "\t%s ret = 0;" % (returnType)
print """\tgl_hooks_t::gl_t const * const _c = &getGLTraceThreadSpecific()->gl;
\tGLESv2Debugger::Message msg, cmd;
\tmsg.set_context_id(0);
\tmsg.set_has_next_message(true);
\tconst bool expectResponse = false;
\tmsg.set_expect_response(expectResponse);"""
print "\tmsg.set_function(GLESv2Debugger::Message_Function_%s);" % (functionName)
if parameterList == "void":
parameters = []
arguments = ""
paramTypes = []
paramNames = []
paramAnnotations = []
inout = ""
getData = ""
for parameter in parameters:
parameter = parameter.replace("const", "")
parameter = parameter.strip()
paramType = parameter.split(' ')[0]
paramName = parameter.split(' ')[1]
annotation = ""
arguments += paramName
if parameter.find(":") >= 0:
assert paramIndex == len(parameters) - 1 # only last parameter should be annotated
sys.stderr.write("%s is annotated: %s \n" % (functionName, paramType))
inout = paramType.split(":")[2]
annotation = paramType.split(":")[1]
paramType = paramType.split(":")[0]
assert paramType.find("void") < 0
count = 1
countArg = ""
if annotation.find("*") >= 0:
count = int(annotation.split("*")[0])
countArg = annotation.split("*")[1]
assert countArg in paramNames
elif annotation in paramNames:
count = 1
countArg = annotation
elif annotation == "GLstring":
annotation = "strlen(%s)" % (paramName)
else:
count = int(annotation)
print "\tmsg.set_arg%d(ToInt(%s));" % (paramIndex, paramName)
print "\tstd::string data;"
getData += "\t\t\tdata.reserve(%s * sizeof(%s));\n" % (annotation, paramType)
getData += "\t\t\tfor (unsigned i = 0; i < (%s); i++)\n" % (annotation)
getData += "\t\t\t\tdata.append((const char *)(%s + i), sizeof(*%s));\n" % (paramName, paramName)
getData += "\t\t\tmsg.set_data(data);"
else:
if paramIndex < len(parameters) - 1:
arguments += ', '
if paramType == "GLfloat" or paramType == "GLclampf" or paramType.find("*") >= 0:
print "\tmsg.set_arg%d(ToInt(%s));" % (paramIndex, paramName)
else:
print "\tmsg.set_arg%d(%s);" % (paramIndex, paramName)
paramTypes.append(paramType)
paramNames.append(paramName)
paramAnnotations.append(annotation)
paramIndex += 1
if line.find("*") >= 0 or line.find(":") >= 0:
print "\t// FIXME: check for pointer usage"
if inout in ["in", "inout"]:
print getData
print """\tSend(msg, cmd);
\tif (!expectResponse)
\t\tcmd.set_function(GLESv2Debugger::Message_Function_CONTINUE);
\twhile (true) {
\t\tmsg.Clear();
\t\tclock_t c0 = clock();
\t\tswitch (cmd.function()) {
\t\tcase GLESv2Debugger::Message_Function_CONTINUE:"""
if returnType == "void":
print "\t\t\t_c->%s(%s);" % (functionName, arguments)
else:
print "\t\t\tret = _c->%s(%s);" % (functionName, arguments)
if returnType == "GLboolean":
print "\t\t\tmsg.set_ret(ret);"
else:
print "\t\t\tmsg.set_ret(ToInt(ret));"
print "\t\t\tmsg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC);"
print "\t\t\tmsg.set_context_id(0);"
print "\t\t\tmsg.set_function(GLESv2Debugger::Message_Function_%s);" % (functionName)
print """\t\t\tmsg.set_has_next_message(false);
\t\t\tmsg.set_expect_response(expectResponse);"""
if inout in ["out", "inout"]:
print getData
print """\t\t\tSend(msg, cmd);
\t\t\tif (!expectResponse)
\t\t\t\tcmd.set_function(GLESv2Debugger::Message_Function_SKIP);
\t\t\tbreak;
\t\tcase GLESv2Debugger::Message_Function_SKIP:"""
if returnType == "void":
print "\t\t\treturn;"
else:
print "\t\t\tif (cmd.has_ret())"
if returnType == "GLboolean":
print "\t\t\t\tret = cmd.ret();"
else:
print "\t\t\t\tret = FromInt<%s>(cmd.ret());" % (returnType)
print "\t\t\treturn ret;"
print """\t\tdefault:
\t\t\tASSERT(0); //GenerateCall(msg, cmd);
\t\t\tbreak;
\t\t}
\t}
}
"""
#break
print "// FIXME: the following functions should be written by hand"
for extern in externs:
print extern
if __name__ == "__main__":
print "// auto generated by generate_api_cpp.py\n"
print '''#include "src/header.h"\n'''
print "template<typename T> static int ToInt(const T & t) { STATIC_ASSERT(sizeof(T) == sizeof(int), bitcast); return (int &)t; }\n"
print "template<typename T> static T FromInt(const int & t) { STATIC_ASSERT(sizeof(T) == sizeof(int), bitcast); return (T &)t; }\n"
lines = open("gl2_api_annotated.in").readlines()
generate_api(lines)
#lines = open("gl2ext_api.in").readlines()
#generate_api(lines)

View File

@ -0,0 +1,64 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
import sys
def append_functions(functions, lines):
i = 0
for line in lines:
if line.find("API_ENTRY(") >= 0: # a function prototype
returnType = line[0: line.find(" API_ENTRY(")]
functionName = line[line.find("(") + 1: line.find(")")] #extract GL function name
parameterList = line[line.find(")(") + 2: line.find(") {")]
functions.append(functionName)
#print functionName
continue
parameters = parameterList.split(',')
paramIndex = 0
if line.find("*") >= 0:
print "// FIXME: this function has pointers, it should be hand written"
externs.append("%s Tracing_%s(%s);" % (returnType, functionName, parameterList))
print "%s Tracing_%s(%s)\n{" % (returnType, functionName, parameterList)
if parameterList == "void":
parameters = []
arguments = ""
for parameter in parameters:
parameter = parameter.replace("const", "")
parameter = parameter.strip()
paramType = parameter.split(' ')[0]
paramName = parameter.split(' ')[1]
paramIndex += 1
return functions
if __name__ == "__main__":
definedFunctions = []
lines = open("gl2_api.in").readlines()
definedFunctions = append_functions(definedFunctions, lines)
output = open("debug.in", "w")
lines = open("trace.in").readlines()
output.write("// the following functions are not defined in GLESv2_dbg\n")
for line in lines:
functionName = ""
if line.find("TRACE_GL(") >= 0: # a function prototype
functionName = line.split(',')[1].strip()
elif line.find("TRACE_GL_VOID(") >= 0: # a function prototype
functionName = line[line.find("(") + 1: line.find(",")] #extract GL function name
else:
continue
if functionName in definedFunctions:
#print functionName
continue
else:
output.write(line)

View File

@ -0,0 +1,426 @@
void API_ENTRY(glActiveTexture)(GLenum texture) {
CALL_GL_API(glActiveTexture, texture);
}
void API_ENTRY(glAttachShader)(GLuint program, GLuint shader) {
CALL_GL_API(glAttachShader, program, shader);
}
void API_ENTRY(glBindAttribLocation)(GLuint program, GLuint index, const GLchar:GLstring:in name) {
CALL_GL_API(glBindAttribLocation, program, index, name);
}
void API_ENTRY(glBindBuffer)(GLenum target, GLuint buffer) {
CALL_GL_API(glBindBuffer, target, buffer);
}
void API_ENTRY(glBindFramebuffer)(GLenum target, GLuint framebuffer) {
CALL_GL_API(glBindFramebuffer, target, framebuffer);
}
void API_ENTRY(glBindRenderbuffer)(GLenum target, GLuint renderbuffer) {
CALL_GL_API(glBindRenderbuffer, target, renderbuffer);
}
void API_ENTRY(glBindTexture)(GLenum target, GLuint texture) {
CALL_GL_API(glBindTexture, target, texture);
}
void API_ENTRY(glBlendColor)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) {
CALL_GL_API(glBlendColor, red, green, blue, alpha);
}
void API_ENTRY(glBlendEquation)( GLenum mode ) {
CALL_GL_API(glBlendEquation, mode);
}
void API_ENTRY(glBlendEquationSeparate)(GLenum modeRGB, GLenum modeAlpha) {
CALL_GL_API(glBlendEquationSeparate, modeRGB, modeAlpha);
}
void API_ENTRY(glBlendFunc)(GLenum sfactor, GLenum dfactor) {
CALL_GL_API(glBlendFunc, sfactor, dfactor);
}
void API_ENTRY(glBlendFuncSeparate)(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) {
CALL_GL_API(glBlendFuncSeparate, srcRGB, dstRGB, srcAlpha, dstAlpha);
}
void API_ENTRY(glBufferData)(GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage) {
CALL_GL_API(glBufferData, target, size, data, usage);
}
void API_ENTRY(glBufferSubData)(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data) {
CALL_GL_API(glBufferSubData, target, offset, size, data);
}
GLenum API_ENTRY(glCheckFramebufferStatus)(GLenum target) {
CALL_GL_API_RETURN(glCheckFramebufferStatus, target);
}
void API_ENTRY(glClear)(GLbitfield mask) {
CALL_GL_API(glClear, mask);
}
void API_ENTRY(glClearColor)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) {
CALL_GL_API(glClearColor, red, green, blue, alpha);
}
void API_ENTRY(glClearDepthf)(GLclampf depth) {
CALL_GL_API(glClearDepthf, depth);
}
void API_ENTRY(glClearStencil)(GLint s) {
CALL_GL_API(glClearStencil, s);
}
void API_ENTRY(glColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) {
CALL_GL_API(glColorMask, red, green, blue, alpha);
}
void API_ENTRY(glCompileShader)(GLuint shader) {
CALL_GL_API(glCompileShader, shader);
}
void API_ENTRY(glCompressedTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data) {
CALL_GL_API(glCompressedTexImage2D, target, level, internalformat, width, height, border, imageSize, data);
}
void API_ENTRY(glCompressedTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data) {
CALL_GL_API(glCompressedTexSubImage2D, target, level, xoffset, yoffset, width, height, format, imageSize, data);
}
void API_ENTRY(glCopyTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) {
CALL_GL_API(glCopyTexImage2D, target, level, internalformat, x, y, width, height, border);
}
void API_ENTRY(glCopyTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
CALL_GL_API(glCopyTexSubImage2D, target, level, xoffset, yoffset, x, y, width, height);
}
GLuint API_ENTRY(glCreateProgram)(void) {
CALL_GL_API_RETURN(glCreateProgram);
}
GLuint API_ENTRY(glCreateShader)(GLenum type) {
CALL_GL_API_RETURN(glCreateShader, type);
}
void API_ENTRY(glCullFace)(GLenum mode) {
CALL_GL_API(glCullFace, mode);
}
void API_ENTRY(glDeleteBuffers)(GLsizei n, const GLuint:n:in buffers) {
CALL_GL_API(glDeleteBuffers, n, buffers);
}
void API_ENTRY(glDeleteFramebuffers)(GLsizei n, const GLuint:n:in framebuffers) {
CALL_GL_API(glDeleteFramebuffers, n, framebuffers);
}
void API_ENTRY(glDeleteProgram)(GLuint program) {
CALL_GL_API(glDeleteProgram, program);
}
void API_ENTRY(glDeleteRenderbuffers)(GLsizei n, const GLuint:n:in renderbuffers) {
CALL_GL_API(glDeleteRenderbuffers, n, renderbuffers);
}
void API_ENTRY(glDeleteShader)(GLuint shader) {
CALL_GL_API(glDeleteShader, shader);
}
void API_ENTRY(glDeleteTextures)(GLsizei n, const GLuint:n:in textures) {
CALL_GL_API(glDeleteTextures, n, textures);
}
void API_ENTRY(glDepthFunc)(GLenum func) {
CALL_GL_API(glDepthFunc, func);
}
void API_ENTRY(glDepthMask)(GLboolean flag) {
CALL_GL_API(glDepthMask, flag);
}
void API_ENTRY(glDepthRangef)(GLclampf zNear, GLclampf zFar) {
CALL_GL_API(glDepthRangef, zNear, zFar);
}
void API_ENTRY(glDetachShader)(GLuint program, GLuint shader) {
CALL_GL_API(glDetachShader, program, shader);
}
void API_ENTRY(glDisable)(GLenum cap) {
CALL_GL_API(glDisable, cap);
}
void API_ENTRY(glDisableVertexAttribArray)(GLuint index) {
CALL_GL_API(glDisableVertexAttribArray, index);
}
void API_ENTRY(glDrawArrays)(GLenum mode, GLint first, GLsizei count) {
CALL_GL_API(glDrawArrays, mode, first, count);
}
void API_ENTRY(glDrawElements)(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices) {
CALL_GL_API(glDrawElements, mode, count, type, indices);
}
void API_ENTRY(glEnable)(GLenum cap) {
CALL_GL_API(glEnable, cap);
}
void API_ENTRY(glEnableVertexAttribArray)(GLuint index) {
CALL_GL_API(glEnableVertexAttribArray, index);
}
void API_ENTRY(glFinish)(void) {
CALL_GL_API(glFinish);
}
void API_ENTRY(glFlush)(void) {
CALL_GL_API(glFlush);
}
void API_ENTRY(glFramebufferRenderbuffer)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) {
CALL_GL_API(glFramebufferRenderbuffer, target, attachment, renderbuffertarget, renderbuffer);
}
void API_ENTRY(glFramebufferTexture2D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) {
CALL_GL_API(glFramebufferTexture2D, target, attachment, textarget, texture, level);
}
void API_ENTRY(glFrontFace)(GLenum mode) {
CALL_GL_API(glFrontFace, mode);
}
void API_ENTRY(glGenBuffers)(GLsizei n, GLuint:n:out buffers) {
CALL_GL_API(glGenBuffers, n, buffers);
}
void API_ENTRY(glGenerateMipmap)(GLenum target) {
CALL_GL_API(glGenerateMipmap, target);
}
void API_ENTRY(glGenFramebuffers)(GLsizei n, GLuint:n:out framebuffers) {
CALL_GL_API(glGenFramebuffers, n, framebuffers);
}
void API_ENTRY(glGenRenderbuffers)(GLsizei n, GLuint:n:out renderbuffers) {
CALL_GL_API(glGenRenderbuffers, n, renderbuffers);
}
void API_ENTRY(glGenTextures)(GLsizei n, GLuint:n:out textures) {
CALL_GL_API(glGenTextures, n, textures);
}
void API_ENTRY(glGetActiveAttrib)(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar:GLstring:in name) {
CALL_GL_API(glGetActiveAttrib, program, index, bufsize, length, size, type, name);
}
void API_ENTRY(glGetActiveUniform)(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar:GLstring:in name) {
CALL_GL_API(glGetActiveUniform, program, index, bufsize, length, size, type, name);
}
void API_ENTRY(glGetAttachedShaders)(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders) {
CALL_GL_API(glGetAttachedShaders, program, maxcount, count, shaders);
}
int API_ENTRY(glGetAttribLocation)(GLuint program, const GLchar:GLstring:in name) {
CALL_GL_API_RETURN(glGetAttribLocation, program, name);
}
void API_ENTRY(glGetBooleanv)(GLenum pname, GLboolean* params) {
CALL_GL_API(glGetBooleanv, pname, params);
}
void API_ENTRY(glGetBufferParameteriv)(GLenum target, GLenum pname, GLint* params) {
CALL_GL_API(glGetBufferParameteriv, target, pname, params);
}
GLenum API_ENTRY(glGetError)(void) {
CALL_GL_API_RETURN(glGetError);
}
void API_ENTRY(glGetFloatv)(GLenum pname, GLfloat* params) {
CALL_GL_API(glGetFloatv, pname, params);
}
void API_ENTRY(glGetFramebufferAttachmentParameteriv)(GLenum target, GLenum attachment, GLenum pname, GLint* params) {
CALL_GL_API(glGetFramebufferAttachmentParameteriv, target, attachment, pname, params);
}
void API_ENTRY(glGetIntegerv)(GLenum pname, GLint* params) {
CALL_GL_API(glGetIntegerv, pname, params);
}
void API_ENTRY(glGetProgramiv)(GLuint program, GLenum pname, GLint:1:out params) {
CALL_GL_API(glGetProgramiv, program, pname, params);
}
void API_ENTRY(glGetProgramInfoLog)(GLuint program, GLsizei bufsize, GLsizei* length, GLchar:GLstring:out infolog) {
CALL_GL_API(glGetProgramInfoLog, program, bufsize, length, infolog);
}
void API_ENTRY(glGetRenderbufferParameteriv)(GLenum target, GLenum pname, GLint* params) {
CALL_GL_API(glGetRenderbufferParameteriv, target, pname, params);
}
void API_ENTRY(glGetShaderiv)(GLuint shader, GLenum pname, GLint:1:out params) {
CALL_GL_API(glGetShaderiv, shader, pname, params);
}
void API_ENTRY(glGetShaderInfoLog)(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar:GLstring:out infolog) {
CALL_GL_API(glGetShaderInfoLog, shader, bufsize, length, infolog);
}
void API_ENTRY(glGetShaderPrecisionFormat)(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision) {
CALL_GL_API(glGetShaderPrecisionFormat, shadertype, precisiontype, range, precision);
}
void API_ENTRY(glGetShaderSource)(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar:GLstring:out source) {
CALL_GL_API(glGetShaderSource, shader, bufsize, length, source);
}
const GLubyte* API_ENTRY(glGetString)(GLenum name) {
CALL_GL_API_RETURN(glGetString, name);
}
void API_ENTRY(glGetTexParameterfv)(GLenum target, GLenum pname, GLfloat* params) {
CALL_GL_API(glGetTexParameterfv, target, pname, params);
}
void API_ENTRY(glGetTexParameteriv)(GLenum target, GLenum pname, GLint* params) {
CALL_GL_API(glGetTexParameteriv, target, pname, params);
}
void API_ENTRY(glGetUniformfv)(GLuint program, GLint location, GLfloat* params) {
CALL_GL_API(glGetUniformfv, program, location, params);
}
void API_ENTRY(glGetUniformiv)(GLuint program, GLint location, GLint* params) {
CALL_GL_API(glGetUniformiv, program, location, params);
}
int API_ENTRY(glGetUniformLocation)(GLuint program, const GLchar:GLstring:in name) {
CALL_GL_API_RETURN(glGetUniformLocation, program, name);
}
void API_ENTRY(glGetVertexAttribfv)(GLuint index, GLenum pname, GLfloat* params) {
CALL_GL_API(glGetVertexAttribfv, index, pname, params);
}
void API_ENTRY(glGetVertexAttribiv)(GLuint index, GLenum pname, GLint* params) {
CALL_GL_API(glGetVertexAttribiv, index, pname, params);
}
void API_ENTRY(glGetVertexAttribPointerv)(GLuint index, GLenum pname, GLvoid** pointer) {
CALL_GL_API(glGetVertexAttribPointerv, index, pname, pointer);
}
void API_ENTRY(glHint)(GLenum target, GLenum mode) {
CALL_GL_API(glHint, target, mode);
}
GLboolean API_ENTRY(glIsBuffer)(GLuint buffer) {
CALL_GL_API_RETURN(glIsBuffer, buffer);
}
GLboolean API_ENTRY(glIsEnabled)(GLenum cap) {
CALL_GL_API_RETURN(glIsEnabled, cap);
}
GLboolean API_ENTRY(glIsFramebuffer)(GLuint framebuffer) {
CALL_GL_API_RETURN(glIsFramebuffer, framebuffer);
}
GLboolean API_ENTRY(glIsProgram)(GLuint program) {
CALL_GL_API_RETURN(glIsProgram, program);
}
GLboolean API_ENTRY(glIsRenderbuffer)(GLuint renderbuffer) {
CALL_GL_API_RETURN(glIsRenderbuffer, renderbuffer);
}
GLboolean API_ENTRY(glIsShader)(GLuint shader) {
CALL_GL_API_RETURN(glIsShader, shader);
}
GLboolean API_ENTRY(glIsTexture)(GLuint texture) {
CALL_GL_API_RETURN(glIsTexture, texture);
}
void API_ENTRY(glLineWidth)(GLfloat width) {
CALL_GL_API(glLineWidth, width);
}
void API_ENTRY(glLinkProgram)(GLuint program) {
CALL_GL_API(glLinkProgram, program);
}
void API_ENTRY(glPixelStorei)(GLenum pname, GLint param) {
CALL_GL_API(glPixelStorei, pname, param);
}
void API_ENTRY(glPolygonOffset)(GLfloat factor, GLfloat units) {
CALL_GL_API(glPolygonOffset, factor, units);
}
void API_ENTRY(glReadPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels) {
CALL_GL_API(glReadPixels, x, y, width, height, format, type, pixels);
}
void API_ENTRY(glReleaseShaderCompiler)(void) {
CALL_GL_API(glReleaseShaderCompiler);
}
void API_ENTRY(glRenderbufferStorage)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) {
CALL_GL_API(glRenderbufferStorage, target, internalformat, width, height);
}
void API_ENTRY(glSampleCoverage)(GLclampf value, GLboolean invert) {
CALL_GL_API(glSampleCoverage, value, invert);
}
void API_ENTRY(glScissor)(GLint x, GLint y, GLsizei width, GLsizei height) {
CALL_GL_API(glScissor, x, y, width, height);
}
void API_ENTRY(glShaderBinary)(GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length) {
CALL_GL_API(glShaderBinary, n, shaders, binaryformat, binary, length);
}
void API_ENTRY(glShaderSource)(GLuint shader, GLsizei count, const GLchar** string, const GLint* length) {
CALL_GL_API(glShaderSource, shader, count, string, length);
}
void API_ENTRY(glStencilFunc)(GLenum func, GLint ref, GLuint mask) {
CALL_GL_API(glStencilFunc, func, ref, mask);
}
void API_ENTRY(glStencilFuncSeparate)(GLenum face, GLenum func, GLint ref, GLuint mask) {
CALL_GL_API(glStencilFuncSeparate, face, func, ref, mask);
}
void API_ENTRY(glStencilMask)(GLuint mask) {
CALL_GL_API(glStencilMask, mask);
}
void API_ENTRY(glStencilMaskSeparate)(GLenum face, GLuint mask) {
CALL_GL_API(glStencilMaskSeparate, face, mask);
}
void API_ENTRY(glStencilOp)(GLenum fail, GLenum zfail, GLenum zpass) {
CALL_GL_API(glStencilOp, fail, zfail, zpass);
}
void API_ENTRY(glStencilOpSeparate)(GLenum face, GLenum fail, GLenum zfail, GLenum zpass) {
CALL_GL_API(glStencilOpSeparate, face, fail, zfail, zpass);
}
void API_ENTRY(glTexImage2D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels) {
CALL_GL_API(glTexImage2D, target, level, internalformat, width, height, border, format, type, pixels);
}
void API_ENTRY(glTexParameterf)(GLenum target, GLenum pname, GLfloat param) {
CALL_GL_API(glTexParameterf, target, pname, param);
}
void API_ENTRY(glTexParameterfv)(GLenum target, GLenum pname, const GLfloat* params) {
CALL_GL_API(glTexParameterfv, target, pname, params);
}
void API_ENTRY(glTexParameteri)(GLenum target, GLenum pname, GLint param) {
CALL_GL_API(glTexParameteri, target, pname, param);
}
void API_ENTRY(glTexParameteriv)(GLenum target, GLenum pname, const GLint* params) {
CALL_GL_API(glTexParameteriv, target, pname, params);
}
void API_ENTRY(glTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels) {
CALL_GL_API(glTexSubImage2D, target, level, xoffset, yoffset, width, height, format, type, pixels);
}
void API_ENTRY(glUniform1f)(GLint location, GLfloat x) {
CALL_GL_API(glUniform1f, location, x);
}
void API_ENTRY(glUniform1fv)(GLint location, GLsizei count, const GLfloat:1*count:in v) {
CALL_GL_API(glUniform1fv, location, count, v);
}
void API_ENTRY(glUniform1i)(GLint location, GLint x) {
CALL_GL_API(glUniform1i, location, x);
}
void API_ENTRY(glUniform1iv)(GLint location, GLsizei count, const GLint:1*count:in v) {
CALL_GL_API(glUniform1iv, location, count, v);
}
void API_ENTRY(glUniform2f)(GLint location, GLfloat x, GLfloat y) {
CALL_GL_API(glUniform2f, location, x, y);
}
void API_ENTRY(glUniform2fv)(GLint location, GLsizei count, const GLfloat:2*count:in v) {
CALL_GL_API(glUniform2fv, location, count, v);
}
void API_ENTRY(glUniform2i)(GLint location, GLint x, GLint y) {
CALL_GL_API(glUniform2i, location, x, y);
}
void API_ENTRY(glUniform2iv)(GLint location, GLsizei count, const GLint:2*count:in v) {
CALL_GL_API(glUniform2iv, location, count, v);
}
void API_ENTRY(glUniform3f)(GLint location, GLfloat x, GLfloat y, GLfloat z) {
CALL_GL_API(glUniform3f, location, x, y, z);
}
void API_ENTRY(glUniform3fv)(GLint location, GLsizei count, const GLfloat:3*count:in v) {
CALL_GL_API(glUniform3fv, location, count, v);
}
void API_ENTRY(glUniform3i)(GLint location, GLint x, GLint y, GLint z) {
CALL_GL_API(glUniform3i, location, x, y, z);
}
void API_ENTRY(glUniform3iv)(GLint location, GLsizei count, const GLint:3*count:in v) {
CALL_GL_API(glUniform3iv, location, count, v);
}
void API_ENTRY(glUniform4f)(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
CALL_GL_API(glUniform4f, location, x, y, z, w);
}
void API_ENTRY(glUniform4fv)(GLint location, GLsizei count, const GLfloat:4*count:in v) {
CALL_GL_API(glUniform4fv, location, count, v);
}
void API_ENTRY(glUniform4i)(GLint location, GLint x, GLint y, GLint z, GLint w) {
CALL_GL_API(glUniform4i, location, x, y, z, w);
}
void API_ENTRY(glUniform4iv)(GLint location, GLsizei count, const GLint:4*count:in v) {
CALL_GL_API(glUniform4iv, location, count, v);
}
void API_ENTRY(glUniformMatrix2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat:4*count:in value) {
CALL_GL_API(glUniformMatrix2fv, location, count, transpose, value);
}
void API_ENTRY(glUniformMatrix3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat:9*count:in value) {
CALL_GL_API(glUniformMatrix3fv, location, count, transpose, value);
}
void API_ENTRY(glUniformMatrix4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat:16*count:in value) {
CALL_GL_API(glUniformMatrix4fv, location, count, transpose, value);
}
void API_ENTRY(glUseProgram)(GLuint program) {
CALL_GL_API(glUseProgram, program);
}
void API_ENTRY(glValidateProgram)(GLuint program) {
CALL_GL_API(glValidateProgram, program);
}
void API_ENTRY(glVertexAttrib1f)(GLuint indx, GLfloat x) {
CALL_GL_API(glVertexAttrib1f, indx, x);
}
void API_ENTRY(glVertexAttrib1fv)(GLuint indx, const GLfloat:1:in values) {
CALL_GL_API(glVertexAttrib1fv, indx, values);
}
void API_ENTRY(glVertexAttrib2f)(GLuint indx, GLfloat x, GLfloat y) {
CALL_GL_API(glVertexAttrib2f, indx, x, y);
}
void API_ENTRY(glVertexAttrib2fv)(GLuint indx, const GLfloat:2:in values) {
CALL_GL_API(glVertexAttrib2fv, indx, values);
}
void API_ENTRY(glVertexAttrib3f)(GLuint indx, GLfloat x, GLfloat y, GLfloat z) {
CALL_GL_API(glVertexAttrib3f, indx, x, y, z);
}
void API_ENTRY(glVertexAttrib3fv)(GLuint indx, const GLfloat:3:in values) {
CALL_GL_API(glVertexAttrib3fv, indx, values);
}
void API_ENTRY(glVertexAttrib4f)(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
CALL_GL_API(glVertexAttrib4f, indx, x, y, z, w);
}
void API_ENTRY(glVertexAttrib4fv)(GLuint indx, const GLfloat:4:in values) {
CALL_GL_API(glVertexAttrib4fv, indx, values);
}
void API_ENTRY(glVertexAttribPointer)(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr) {
CALL_GL_API(glVertexAttribPointer, indx, size, type, normalized, stride, ptr);
}
void API_ENTRY(glViewport)(GLint x, GLint y, GLsizei width, GLsizei height) {
CALL_GL_API(glViewport, x, y, width, height);
}

View File

@ -0,0 +1,381 @@
extern "C"
{
GL_ENTRY(void, glActiveTexture, GLenum texture)
GL_ENTRY(void, glAlphaFunc, GLenum func, GLclampf ref)
GL_ENTRY(void, glAlphaFuncx, GLenum func, GLclampx ref)
GL_ENTRY(void, glAlphaFuncxOES, GLenum func, GLclampx ref)
GL_ENTRY(void, glAttachShader, GLuint program, GLuint shader)
GL_ENTRY(void, glBeginPerfMonitorAMD, GLuint monitor)
GL_ENTRY(void, glBindAttribLocation, GLuint program, GLuint index, const GLchar* name)
GL_ENTRY(void, glBindBuffer, GLenum target, GLuint buffer)
GL_ENTRY(void, glBindFramebuffer, GLenum target, GLuint framebuffer)
GL_ENTRY(void, glBindFramebufferOES, GLenum target, GLuint framebuffer)
GL_ENTRY(void, glBindRenderbuffer, GLenum target, GLuint renderbuffer)
GL_ENTRY(void, glBindRenderbufferOES, GLenum target, GLuint renderbuffer)
GL_ENTRY(void, glBindTexture, GLenum target, GLuint texture)
GL_ENTRY(void, glBindVertexArrayOES, GLuint array)
GL_ENTRY(void, glBlendColor, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
GL_ENTRY(void, glBlendEquation, GLenum mode )
GL_ENTRY(void, glBlendEquationOES, GLenum mode)
GL_ENTRY(void, glBlendEquationSeparate, GLenum modeRGB, GLenum modeAlpha)
GL_ENTRY(void, glBlendEquationSeparateOES, GLenum modeRGB, GLenum modeAlpha)
GL_ENTRY(void, glBlendFunc, GLenum sfactor, GLenum dfactor)
GL_ENTRY(void, glBlendFuncSeparate, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
GL_ENTRY(void, glBlendFuncSeparateOES, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
GL_ENTRY(void, glBufferData, GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage)
GL_ENTRY(void, glBufferSubData, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data)
GL_ENTRY(GLenum, glCheckFramebufferStatus, GLenum target)
GL_ENTRY(GLenum, glCheckFramebufferStatusOES, GLenum target)
GL_ENTRY(void, glClear, GLbitfield mask)
GL_ENTRY(void, glClearColor, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
GL_ENTRY(void, glClearColorx, GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha)
GL_ENTRY(void, glClearColorxOES, GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha)
GL_ENTRY(void, glClearDepthf, GLclampf depth)
GL_ENTRY(void, glClearDepthfOES, GLclampf depth)
GL_ENTRY(void, glClearDepthx, GLclampx depth)
GL_ENTRY(void, glClearDepthxOES, GLclampx depth)
GL_ENTRY(void, glClearStencil, GLint s)
GL_ENTRY(void, glClientActiveTexture, GLenum texture)
GL_ENTRY(void, glClipPlanef, GLenum plane, const GLfloat *equation)
GL_ENTRY(void, glClipPlanefIMG, GLenum p, const GLfloat *eqn)
GL_ENTRY(void, glClipPlanefOES, GLenum plane, const GLfloat *equation)
GL_ENTRY(void, glClipPlanex, GLenum plane, const GLfixed *equation)
GL_ENTRY(void, glClipPlanexIMG, GLenum p, const GLfixed *eqn)
GL_ENTRY(void, glClipPlanexOES, GLenum plane, const GLfixed *equation)
GL_ENTRY(void, glColor4f, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
GL_ENTRY(void, glColor4ub, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
GL_ENTRY(void, glColor4x, GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
GL_ENTRY(void, glColor4xOES, GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
GL_ENTRY(void, glColorMask, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
GL_ENTRY(void, glColorPointer, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
GL_ENTRY(void, glCompileShader, GLuint shader)
GL_ENTRY(void, glCompressedTexImage2D, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data)
GL_ENTRY(void, glCompressedTexImage3DOES, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
GL_ENTRY(void, glCompressedTexSubImage2D, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data)
GL_ENTRY(void, glCompressedTexSubImage3DOES, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data)
GL_ENTRY(void, glCopyTexImage2D, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
GL_ENTRY(void, glCopyTexSubImage2D, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
GL_ENTRY(void, glCopyTexSubImage3DOES, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
GL_ENTRY(void, glCoverageMaskNV, GLboolean mask)
GL_ENTRY(void, glCoverageOperationNV, GLenum operation)
GL_ENTRY(GLuint, glCreateProgram, void)
GL_ENTRY(GLuint, glCreateShader, GLenum type)
GL_ENTRY(void, glCullFace, GLenum mode)
GL_ENTRY(void, glCurrentPaletteMatrixOES, GLuint matrixpaletteindex)
GL_ENTRY(void, glDeleteBuffers, GLsizei n, const GLuint *buffers)
GL_ENTRY(void, glDeleteFencesNV, GLsizei n, const GLuint *fences)
GL_ENTRY(void, glDeleteFramebuffers, GLsizei n, const GLuint* framebuffers)
GL_ENTRY(void, glDeleteFramebuffersOES, GLsizei n, const GLuint* framebuffers)
GL_ENTRY(void, glDeletePerfMonitorsAMD, GLsizei n, GLuint *monitors)
GL_ENTRY(void, glDeleteProgram, GLuint program)
GL_ENTRY(void, glDeleteRenderbuffers, GLsizei n, const GLuint* renderbuffers)
GL_ENTRY(void, glDeleteRenderbuffersOES, GLsizei n, const GLuint* renderbuffers)
GL_ENTRY(void, glDeleteShader, GLuint shader)
GL_ENTRY(void, glDeleteTextures, GLsizei n, const GLuint *textures)
GL_ENTRY(void, glDeleteVertexArraysOES, GLsizei n, const GLuint *arrays)
GL_ENTRY(void, glDepthFunc, GLenum func)
GL_ENTRY(void, glDepthMask, GLboolean flag)
GL_ENTRY(void, glDepthRangef, GLclampf zNear, GLclampf zFar)
GL_ENTRY(void, glDepthRangefOES, GLclampf zNear, GLclampf zFar)
GL_ENTRY(void, glDepthRangex, GLclampx zNear, GLclampx zFar)
GL_ENTRY(void, glDepthRangexOES, GLclampx zNear, GLclampx zFar)
GL_ENTRY(void, glDetachShader, GLuint program, GLuint shader)
GL_ENTRY(void, glDisable, GLenum cap)
GL_ENTRY(void, glDisableClientState, GLenum array)
GL_ENTRY(void, glDisableDriverControlQCOM, GLuint driverControl)
GL_ENTRY(void, glDisableVertexAttribArray, GLuint index)
GL_ENTRY(void, glDiscardFramebufferEXT, GLenum target, GLsizei numAttachments, const GLenum *attachments)
GL_ENTRY(void, glDrawArrays, GLenum mode, GLint first, GLsizei count)
GL_ENTRY(void, glDrawElements, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices)
GL_ENTRY(void, glDrawTexfOES, GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height)
GL_ENTRY(void, glDrawTexfvOES, const GLfloat *coords)
GL_ENTRY(void, glDrawTexiOES, GLint x, GLint y, GLint z, GLint width, GLint height)
GL_ENTRY(void, glDrawTexivOES, const GLint *coords)
GL_ENTRY(void, glDrawTexsOES, GLshort x, GLshort y, GLshort z, GLshort width, GLshort height)
GL_ENTRY(void, glDrawTexsvOES, const GLshort *coords)
GL_ENTRY(void, glDrawTexxOES, GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height)
GL_ENTRY(void, glDrawTexxvOES, const GLfixed *coords)
GL_ENTRY(void, glEGLImageTargetRenderbufferStorageOES, GLenum target, GLeglImageOES image)
GL_ENTRY(void, glEGLImageTargetTexture2DOES, GLenum target, GLeglImageOES image)
GL_ENTRY(void, glEnable, GLenum cap)
GL_ENTRY(void, glEnableClientState, GLenum array)
GL_ENTRY(void, glEnableDriverControlQCOM, GLuint driverControl)
GL_ENTRY(void, glEnableVertexAttribArray, GLuint index)
GL_ENTRY(void, glEndPerfMonitorAMD, GLuint monitor)
GL_ENTRY(void, glEndTilingQCOM, GLbitfield preserveMask)
GL_ENTRY(void, glExtGetBufferPointervQCOM, GLenum target, GLvoid **params)
GL_ENTRY(void, glExtGetBuffersQCOM, GLuint *buffers, GLint maxBuffers, GLint *numBuffers)
GL_ENTRY(void, glExtGetFramebuffersQCOM, GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers)
GL_ENTRY(void, glExtGetProgramBinarySourceQCOM, GLuint program, GLenum shadertype, GLchar *source, GLint *length)
GL_ENTRY(void, glExtGetProgramsQCOM, GLuint *programs, GLint maxPrograms, GLint *numPrograms)
GL_ENTRY(void, glExtGetRenderbuffersQCOM, GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers)
GL_ENTRY(void, glExtGetShadersQCOM, GLuint *shaders, GLint maxShaders, GLint *numShaders)
GL_ENTRY(void, glExtGetTexLevelParameterivQCOM, GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params)
GL_ENTRY(void, glExtGetTexSubImageQCOM, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels)
GL_ENTRY(void, glExtGetTexturesQCOM, GLuint *textures, GLint maxTextures, GLint *numTextures)
GL_ENTRY(GLboolean, glExtIsProgramBinaryQCOM, GLuint program)
GL_ENTRY(void, glExtTexObjectStateOverrideiQCOM, GLenum target, GLenum pname, GLint param)
GL_ENTRY(void, glFinish, void)
GL_ENTRY(void, glFinishFenceNV, GLuint fence)
GL_ENTRY(void, glFlush, void)
GL_ENTRY(void, glFogf, GLenum pname, GLfloat param)
GL_ENTRY(void, glFogfv, GLenum pname, const GLfloat *params)
GL_ENTRY(void, glFogx, GLenum pname, GLfixed param)
GL_ENTRY(void, glFogxOES, GLenum pname, GLfixed param)
GL_ENTRY(void, glFogxv, GLenum pname, const GLfixed *params)
GL_ENTRY(void, glFogxvOES, GLenum pname, const GLfixed *params)
GL_ENTRY(void, glFramebufferRenderbuffer, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
GL_ENTRY(void, glFramebufferRenderbufferOES, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
GL_ENTRY(void, glFramebufferTexture2D, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
GL_ENTRY(void, glFramebufferTexture2DMultisampleIMG, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)
GL_ENTRY(void, glFramebufferTexture2DOES, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
GL_ENTRY(void, glFramebufferTexture3DOES, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
GL_ENTRY(void, glFrontFace, GLenum mode)
GL_ENTRY(void, glFrustumf, GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
GL_ENTRY(void, glFrustumfOES, GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
GL_ENTRY(void, glFrustumx, GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
GL_ENTRY(void, glFrustumxOES, GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
GL_ENTRY(void, glGenBuffers, GLsizei n, GLuint *buffers)
GL_ENTRY(void, glGenFencesNV, GLsizei n, GLuint *fences)
GL_ENTRY(void, glGenFramebuffers, GLsizei n, GLuint* framebuffers)
GL_ENTRY(void, glGenFramebuffersOES, GLsizei n, GLuint* framebuffers)
GL_ENTRY(void, glGenPerfMonitorsAMD, GLsizei n, GLuint *monitors)
GL_ENTRY(void, glGenRenderbuffers, GLsizei n, GLuint* renderbuffers)
GL_ENTRY(void, glGenRenderbuffersOES, GLsizei n, GLuint* renderbuffers)
GL_ENTRY(void, glGenTextures, GLsizei n, GLuint *textures)
GL_ENTRY(void, glGenVertexArraysOES, GLsizei n, GLuint *arrays)
GL_ENTRY(void, glGenerateMipmap, GLenum target)
GL_ENTRY(void, glGenerateMipmapOES, GLenum target)
GL_ENTRY(void, glGetActiveAttrib, GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name)
GL_ENTRY(void, glGetActiveUniform, GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name)
GL_ENTRY(void, glGetAttachedShaders, GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders)
GL_ENTRY(int, glGetAttribLocation, GLuint program, const GLchar* name)
GL_ENTRY(void, glGetBooleanv, GLenum pname, GLboolean *params)
GL_ENTRY(void, glGetBufferParameteriv, GLenum target, GLenum pname, GLint *params)
GL_ENTRY(void, glGetBufferPointervOES, GLenum target, GLenum pname, GLvoid ** params)
GL_ENTRY(void, glGetClipPlanef, GLenum pname, GLfloat eqn[4])
GL_ENTRY(void, glGetClipPlanefOES, GLenum pname, GLfloat eqn[4])
GL_ENTRY(void, glGetClipPlanex, GLenum pname, GLfixed eqn[4])
GL_ENTRY(void, glGetClipPlanexOES, GLenum pname, GLfixed eqn[4])
GL_ENTRY(void, glGetDriverControlStringQCOM, GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString)
GL_ENTRY(void, glGetDriverControlsQCOM, GLint *num, GLsizei size, GLuint *driverControls)
GL_ENTRY(GLenum, glGetError, void)
GL_ENTRY(void, glGetFenceivNV, GLuint fence, GLenum pname, GLint *params)
GL_ENTRY(void, glGetFixedv, GLenum pname, GLfixed *params)
GL_ENTRY(void, glGetFixedvOES, GLenum pname, GLfixed *params)
GL_ENTRY(void, glGetFloatv, GLenum pname, GLfloat *params)
GL_ENTRY(void, glGetFramebufferAttachmentParameteriv, GLenum target, GLenum attachment, GLenum pname, GLint* params)
GL_ENTRY(void, glGetFramebufferAttachmentParameterivOES, GLenum target, GLenum attachment, GLenum pname, GLint* params)
GL_ENTRY(void, glGetIntegerv, GLenum pname, GLint *params)
GL_ENTRY(void, glGetLightfv, GLenum light, GLenum pname, GLfloat *params)
GL_ENTRY(void, glGetLightxv, GLenum light, GLenum pname, GLfixed *params)
GL_ENTRY(void, glGetLightxvOES, GLenum light, GLenum pname, GLfixed *params)
GL_ENTRY(void, glGetMaterialfv, GLenum face, GLenum pname, GLfloat *params)
GL_ENTRY(void, glGetMaterialxv, GLenum face, GLenum pname, GLfixed *params)
GL_ENTRY(void, glGetMaterialxvOES, GLenum face, GLenum pname, GLfixed *params)
GL_ENTRY(void, glGetPerfMonitorCounterDataAMD, GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten)
GL_ENTRY(void, glGetPerfMonitorCounterInfoAMD, GLuint group, GLuint counter, GLenum pname, GLvoid *data)
GL_ENTRY(void, glGetPerfMonitorCounterStringAMD, GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString)
GL_ENTRY(void, glGetPerfMonitorCountersAMD, GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters)
GL_ENTRY(void, glGetPerfMonitorGroupStringAMD, GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString)
GL_ENTRY(void, glGetPerfMonitorGroupsAMD, GLint *numGroups, GLsizei groupsSize, GLuint *groups)
GL_ENTRY(void, glGetPointerv, GLenum pname, GLvoid **params)
GL_ENTRY(void, glGetProgramBinaryOES, GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary)
GL_ENTRY(void, glGetProgramInfoLog, GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog)
GL_ENTRY(void, glGetProgramiv, GLuint program, GLenum pname, GLint* params)
GL_ENTRY(void, glGetRenderbufferParameteriv, GLenum target, GLenum pname, GLint* params)
GL_ENTRY(void, glGetRenderbufferParameterivOES, GLenum target, GLenum pname, GLint* params)
GL_ENTRY(void, glGetShaderInfoLog, GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog)
GL_ENTRY(void, glGetShaderPrecisionFormat, GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)
GL_ENTRY(void, glGetShaderSource, GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source)
GL_ENTRY(void, glGetShaderiv, GLuint shader, GLenum pname, GLint* params)
GL_ENTRY(const GLubyte *, glGetString, GLenum name)
GL_ENTRY(void, glGetTexEnvfv, GLenum env, GLenum pname, GLfloat *params)
GL_ENTRY(void, glGetTexEnviv, GLenum env, GLenum pname, GLint *params)
GL_ENTRY(void, glGetTexEnvxv, GLenum env, GLenum pname, GLfixed *params)
GL_ENTRY(void, glGetTexEnvxvOES, GLenum env, GLenum pname, GLfixed *params)
GL_ENTRY(void, glGetTexGenfvOES, GLenum coord, GLenum pname, GLfloat *params)
GL_ENTRY(void, glGetTexGenivOES, GLenum coord, GLenum pname, GLint *params)
GL_ENTRY(void, glGetTexGenxvOES, GLenum coord, GLenum pname, GLfixed *params)
GL_ENTRY(void, glGetTexParameterfv, GLenum target, GLenum pname, GLfloat *params)
GL_ENTRY(void, glGetTexParameteriv, GLenum target, GLenum pname, GLint *params)
GL_ENTRY(void, glGetTexParameterxv, GLenum target, GLenum pname, GLfixed *params)
GL_ENTRY(void, glGetTexParameterxvOES, GLenum target, GLenum pname, GLfixed *params)
GL_ENTRY(int, glGetUniformLocation, GLuint program, const GLchar* name)
GL_ENTRY(void, glGetUniformfv, GLuint program, GLint location, GLfloat* params)
GL_ENTRY(void, glGetUniformiv, GLuint program, GLint location, GLint* params)
GL_ENTRY(void, glGetVertexAttribPointerv, GLuint index, GLenum pname, GLvoid** pointer)
GL_ENTRY(void, glGetVertexAttribfv, GLuint index, GLenum pname, GLfloat* params)
GL_ENTRY(void, glGetVertexAttribiv, GLuint index, GLenum pname, GLint* params)
GL_ENTRY(void, glHint, GLenum target, GLenum mode)
GL_ENTRY(GLboolean, glIsBuffer, GLuint buffer)
GL_ENTRY(GLboolean, glIsEnabled, GLenum cap)
GL_ENTRY(GLboolean, glIsFenceNV, GLuint fence)
GL_ENTRY(GLboolean, glIsFramebuffer, GLuint framebuffer)
GL_ENTRY(GLboolean, glIsFramebufferOES, GLuint framebuffer)
GL_ENTRY(GLboolean, glIsProgram, GLuint program)
GL_ENTRY(GLboolean, glIsRenderbuffer, GLuint renderbuffer)
GL_ENTRY(GLboolean, glIsRenderbufferOES, GLuint renderbuffer)
GL_ENTRY(GLboolean, glIsShader, GLuint shader)
GL_ENTRY(GLboolean, glIsTexture, GLuint texture)
GL_ENTRY(GLboolean, glIsVertexArrayOES, GLuint array)
GL_ENTRY(void, glLightModelf, GLenum pname, GLfloat param)
GL_ENTRY(void, glLightModelfv, GLenum pname, const GLfloat *params)
GL_ENTRY(void, glLightModelx, GLenum pname, GLfixed param)
GL_ENTRY(void, glLightModelxOES, GLenum pname, GLfixed param)
GL_ENTRY(void, glLightModelxv, GLenum pname, const GLfixed *params)
GL_ENTRY(void, glLightModelxvOES, GLenum pname, const GLfixed *params)
GL_ENTRY(void, glLightf, GLenum light, GLenum pname, GLfloat param)
GL_ENTRY(void, glLightfv, GLenum light, GLenum pname, const GLfloat *params)
GL_ENTRY(void, glLightx, GLenum light, GLenum pname, GLfixed param)
GL_ENTRY(void, glLightxOES, GLenum light, GLenum pname, GLfixed param)
GL_ENTRY(void, glLightxv, GLenum light, GLenum pname, const GLfixed *params)
GL_ENTRY(void, glLightxvOES, GLenum light, GLenum pname, const GLfixed *params)
GL_ENTRY(void, glLineWidth, GLfloat width)
GL_ENTRY(void, glLineWidthx, GLfixed width)
GL_ENTRY(void, glLineWidthxOES, GLfixed width)
GL_ENTRY(void, glLinkProgram, GLuint program)
GL_ENTRY(void, glLoadIdentity, void)
GL_ENTRY(void, glLoadMatrixf, const GLfloat *m)
GL_ENTRY(void, glLoadMatrixx, const GLfixed *m)
GL_ENTRY(void, glLoadMatrixxOES, const GLfixed *m)
GL_ENTRY(void, glLoadPaletteFromModelViewMatrixOES, void)
GL_ENTRY(void, glLogicOp, GLenum opcode)
GL_ENTRY(void*, glMapBufferOES, GLenum target, GLenum access)
GL_ENTRY(void, glMaterialf, GLenum face, GLenum pname, GLfloat param)
GL_ENTRY(void, glMaterialfv, GLenum face, GLenum pname, const GLfloat *params)
GL_ENTRY(void, glMaterialx, GLenum face, GLenum pname, GLfixed param)
GL_ENTRY(void, glMaterialxOES, GLenum face, GLenum pname, GLfixed param)
GL_ENTRY(void, glMaterialxv, GLenum face, GLenum pname, const GLfixed *params)
GL_ENTRY(void, glMaterialxvOES, GLenum face, GLenum pname, const GLfixed *params)
GL_ENTRY(void, glMatrixIndexPointerOES, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
GL_ENTRY(void, glMatrixMode, GLenum mode)
GL_ENTRY(void, glMultMatrixf, const GLfloat *m)
GL_ENTRY(void, glMultMatrixx, const GLfixed *m)
GL_ENTRY(void, glMultMatrixxOES, const GLfixed *m)
GL_ENTRY(void, glMultiDrawArraysEXT, GLenum mode, GLint *first, GLsizei *count, GLsizei primcount)
GL_ENTRY(void, glMultiDrawElementsEXT, GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount)
GL_ENTRY(void, glMultiTexCoord4f, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
GL_ENTRY(void, glMultiTexCoord4x, GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
GL_ENTRY(void, glMultiTexCoord4xOES, GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
GL_ENTRY(void, glNormal3f, GLfloat nx, GLfloat ny, GLfloat nz)
GL_ENTRY(void, glNormal3x, GLfixed nx, GLfixed ny, GLfixed nz)
GL_ENTRY(void, glNormal3xOES, GLfixed nx, GLfixed ny, GLfixed nz)
GL_ENTRY(void, glNormalPointer, GLenum type, GLsizei stride, const GLvoid *pointer)
GL_ENTRY(void, glOrthof, GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
GL_ENTRY(void, glOrthofOES, GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
GL_ENTRY(void, glOrthox, GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
GL_ENTRY(void, glOrthoxOES, GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
GL_ENTRY(void, glPixelStorei, GLenum pname, GLint param)
GL_ENTRY(void, glPointParameterf, GLenum pname, GLfloat param)
GL_ENTRY(void, glPointParameterfv, GLenum pname, const GLfloat *params)
GL_ENTRY(void, glPointParameterx, GLenum pname, GLfixed param)
GL_ENTRY(void, glPointParameterxOES, GLenum pname, GLfixed param)
GL_ENTRY(void, glPointParameterxv, GLenum pname, const GLfixed *params)
GL_ENTRY(void, glPointParameterxvOES, GLenum pname, const GLfixed *params)
GL_ENTRY(void, glPointSize, GLfloat size)
GL_ENTRY(void, glPointSizePointerOES, GLenum type, GLsizei stride, const GLvoid *pointer)
GL_ENTRY(void, glPointSizex, GLfixed size)
GL_ENTRY(void, glPointSizexOES, GLfixed size)
GL_ENTRY(void, glPolygonOffset, GLfloat factor, GLfloat units)
GL_ENTRY(void, glPolygonOffsetx, GLfixed factor, GLfixed units)
GL_ENTRY(void, glPolygonOffsetxOES, GLfixed factor, GLfixed units)
GL_ENTRY(void, glPopMatrix, void)
GL_ENTRY(void, glProgramBinaryOES, GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length)
GL_ENTRY(void, glPushMatrix, void)
GL_ENTRY(GLbitfield, glQueryMatrixxOES, GLfixed mantissa[16], GLint exponent[16])
GL_ENTRY(void, glReadPixels, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels)
GL_ENTRY(void, glReleaseShaderCompiler, void)
GL_ENTRY(void, glRenderbufferStorage, GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
GL_ENTRY(void, glRenderbufferStorageMultisampleIMG, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
GL_ENTRY(void, glRenderbufferStorageOES, GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
GL_ENTRY(void, glRotatef, GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
GL_ENTRY(void, glRotatex, GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
GL_ENTRY(void, glRotatexOES, GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
GL_ENTRY(void, glSampleCoverage, GLclampf value, GLboolean invert)
GL_ENTRY(void, glSampleCoveragex, GLclampx value, GLboolean invert)
GL_ENTRY(void, glSampleCoveragexOES, GLclampx value, GLboolean invert)
GL_ENTRY(void, glScalef, GLfloat x, GLfloat y, GLfloat z)
GL_ENTRY(void, glScalex, GLfixed x, GLfixed y, GLfixed z)
GL_ENTRY(void, glScalexOES, GLfixed x, GLfixed y, GLfixed z)
GL_ENTRY(void, glScissor, GLint x, GLint y, GLsizei width, GLsizei height)
GL_ENTRY(void, glSelectPerfMonitorCountersAMD, GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList)
GL_ENTRY(void, glSetFenceNV, GLuint fence, GLenum condition)
GL_ENTRY(void, glShadeModel, GLenum mode)
GL_ENTRY(void, glShaderBinary, GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length)
GL_ENTRY(void, glShaderSource, GLuint shader, GLsizei count, const GLchar** string, const GLint* length)
GL_ENTRY(void, glStartTilingQCOM, GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask)
GL_ENTRY(void, glStencilFunc, GLenum func, GLint ref, GLuint mask)
GL_ENTRY(void, glStencilFuncSeparate, GLenum face, GLenum func, GLint ref, GLuint mask)
GL_ENTRY(void, glStencilMask, GLuint mask)
GL_ENTRY(void, glStencilMaskSeparate, GLenum face, GLuint mask)
GL_ENTRY(void, glStencilOp, GLenum fail, GLenum zfail, GLenum zpass)
GL_ENTRY(void, glStencilOpSeparate, GLenum face, GLenum fail, GLenum zfail, GLenum zpass)
GL_ENTRY(GLboolean, glTestFenceNV, GLuint fence)
GL_ENTRY(void, glTexCoordPointer, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
GL_ENTRY(void, glTexEnvf, GLenum target, GLenum pname, GLfloat param)
GL_ENTRY(void, glTexEnvfv, GLenum target, GLenum pname, const GLfloat *params)
GL_ENTRY(void, glTexEnvi, GLenum target, GLenum pname, GLint param)
GL_ENTRY(void, glTexEnviv, GLenum target, GLenum pname, const GLint *params)
GL_ENTRY(void, glTexEnvx, GLenum target, GLenum pname, GLfixed param)
GL_ENTRY(void, glTexEnvxOES, GLenum target, GLenum pname, GLfixed param)
GL_ENTRY(void, glTexEnvxv, GLenum target, GLenum pname, const GLfixed *params)
GL_ENTRY(void, glTexEnvxvOES, GLenum target, GLenum pname, const GLfixed *params)
GL_ENTRY(void, glTexGenfOES, GLenum coord, GLenum pname, GLfloat param)
GL_ENTRY(void, glTexGenfvOES, GLenum coord, GLenum pname, const GLfloat *params)
GL_ENTRY(void, glTexGeniOES, GLenum coord, GLenum pname, GLint param)
GL_ENTRY(void, glTexGenivOES, GLenum coord, GLenum pname, const GLint *params)
GL_ENTRY(void, glTexGenxOES, GLenum coord, GLenum pname, GLfixed param)
GL_ENTRY(void, glTexGenxvOES, GLenum coord, GLenum pname, const GLfixed *params)
GL_ENTRY(void, glTexImage2D, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
GL_ENTRY(void, glTexImage3DOES, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels)
GL_ENTRY(void, glTexParameterf, GLenum target, GLenum pname, GLfloat param)
GL_ENTRY(void, glTexParameterfv, GLenum target, GLenum pname, const GLfloat *params)
GL_ENTRY(void, glTexParameteri, GLenum target, GLenum pname, GLint param)
GL_ENTRY(void, glTexParameteriv, GLenum target, GLenum pname, const GLint *params)
GL_ENTRY(void, glTexParameterx, GLenum target, GLenum pname, GLfixed param)
GL_ENTRY(void, glTexParameterxOES, GLenum target, GLenum pname, GLfixed param)
GL_ENTRY(void, glTexParameterxv, GLenum target, GLenum pname, const GLfixed *params)
GL_ENTRY(void, glTexParameterxvOES, GLenum target, GLenum pname, const GLfixed *params)
GL_ENTRY(void, glTexSubImage2D, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels)
GL_ENTRY(void, glTexSubImage3DOES, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels)
GL_ENTRY(void, glTranslatef, GLfloat x, GLfloat y, GLfloat z)
GL_ENTRY(void, glTranslatex, GLfixed x, GLfixed y, GLfixed z)
GL_ENTRY(void, glTranslatexOES, GLfixed x, GLfixed y, GLfixed z)
GL_ENTRY(void, glUniform1f, GLint location, GLfloat x)
GL_ENTRY(void, glUniform1fv, GLint location, GLsizei count, const GLfloat* v)
GL_ENTRY(void, glUniform1i, GLint location, GLint x)
GL_ENTRY(void, glUniform1iv, GLint location, GLsizei count, const GLint* v)
GL_ENTRY(void, glUniform2f, GLint location, GLfloat x, GLfloat y)
GL_ENTRY(void, glUniform2fv, GLint location, GLsizei count, const GLfloat* v)
GL_ENTRY(void, glUniform2i, GLint location, GLint x, GLint y)
GL_ENTRY(void, glUniform2iv, GLint location, GLsizei count, const GLint* v)
GL_ENTRY(void, glUniform3f, GLint location, GLfloat x, GLfloat y, GLfloat z)
GL_ENTRY(void, glUniform3fv, GLint location, GLsizei count, const GLfloat* v)
GL_ENTRY(void, glUniform3i, GLint location, GLint x, GLint y, GLint z)
GL_ENTRY(void, glUniform3iv, GLint location, GLsizei count, const GLint* v)
GL_ENTRY(void, glUniform4f, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
GL_ENTRY(void, glUniform4fv, GLint location, GLsizei count, const GLfloat* v)
GL_ENTRY(void, glUniform4i, GLint location, GLint x, GLint y, GLint z, GLint w)
GL_ENTRY(void, glUniform4iv, GLint location, GLsizei count, const GLint* v)
GL_ENTRY(void, glUniformMatrix2fv, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
GL_ENTRY(void, glUniformMatrix3fv, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
GL_ENTRY(void, glUniformMatrix4fv, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
GL_ENTRY(GLboolean, glUnmapBufferOES, GLenum target)
GL_ENTRY(void, glUseProgram, GLuint program)
GL_ENTRY(void, glValidateProgram, GLuint program)
GL_ENTRY(void, glVertexAttrib1f, GLuint indx, GLfloat x)
GL_ENTRY(void, glVertexAttrib1fv, GLuint indx, const GLfloat* values)
GL_ENTRY(void, glVertexAttrib2f, GLuint indx, GLfloat x, GLfloat y)
GL_ENTRY(void, glVertexAttrib2fv, GLuint indx, const GLfloat* values)
GL_ENTRY(void, glVertexAttrib3f, GLuint indx, GLfloat x, GLfloat y, GLfloat z)
GL_ENTRY(void, glVertexAttrib3fv, GLuint indx, const GLfloat* values)
GL_ENTRY(void, glVertexAttrib4f, GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
GL_ENTRY(void, glVertexAttrib4fv, GLuint indx, const GLfloat* values)
GL_ENTRY(void, glVertexAttribPointer, GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr)
GL_ENTRY(void, glVertexPointer, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
GL_ENTRY(void, glViewport, GLint x, GLint y, GLsizei width, GLsizei height)
GL_ENTRY(void, glWeightPointerOES, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,844 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: DebuggerMessage.proto
#ifndef PROTOBUF_DebuggerMessage_2eproto__INCLUDED
#define PROTOBUF_DebuggerMessage_2eproto__INCLUDED
#include <string>
#include <google/protobuf/stubs/common.h>
#if GOOGLE_PROTOBUF_VERSION < 2003000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers. Please update
#error your headers.
#endif
#if 2003000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc.
#endif
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/repeated_field.h>
#include <google/protobuf/extension_set.h>
// @@protoc_insertion_point(includes)
namespace GLESv2Debugger {
// Internal implementation detail -- do not call these.
void protobuf_AddDesc_DebuggerMessage_2eproto();
void protobuf_AssignDesc_DebuggerMessage_2eproto();
void protobuf_ShutdownFile_DebuggerMessage_2eproto();
class Message;
enum Message_Function {
Message_Function_glActiveTexture = 0,
Message_Function_glAttachShader = 1,
Message_Function_glBindAttribLocation = 2,
Message_Function_glBindBuffer = 3,
Message_Function_glBindFramebuffer = 4,
Message_Function_glBindRenderbuffer = 5,
Message_Function_glBindTexture = 6,
Message_Function_glBlendColor = 7,
Message_Function_glBlendEquation = 8,
Message_Function_glBlendEquationSeparate = 9,
Message_Function_glBlendFunc = 10,
Message_Function_glBlendFuncSeparate = 11,
Message_Function_glBufferData = 12,
Message_Function_glBufferSubData = 13,
Message_Function_glCheckFramebufferStatus = 14,
Message_Function_glClear = 15,
Message_Function_glClearColor = 16,
Message_Function_glClearDepthf = 17,
Message_Function_glClearStencil = 18,
Message_Function_glColorMask = 19,
Message_Function_glCompileShader = 20,
Message_Function_glCompressedTexImage2D = 21,
Message_Function_glCompressedTexSubImage2D = 22,
Message_Function_glCopyTexImage2D = 23,
Message_Function_glCopyTexSubImage2D = 24,
Message_Function_glCreateProgram = 25,
Message_Function_glCreateShader = 26,
Message_Function_glCullFace = 27,
Message_Function_glDeleteBuffers = 28,
Message_Function_glDeleteFramebuffers = 29,
Message_Function_glDeleteProgram = 30,
Message_Function_glDeleteRenderbuffers = 31,
Message_Function_glDeleteShader = 32,
Message_Function_glDeleteTextures = 33,
Message_Function_glDepthFunc = 34,
Message_Function_glDepthMask = 35,
Message_Function_glDepthRangef = 36,
Message_Function_glDetachShader = 37,
Message_Function_glDisable = 38,
Message_Function_glDisableVertexAttribArray = 39,
Message_Function_glDrawArrays = 40,
Message_Function_glDrawElements = 41,
Message_Function_glEnable = 42,
Message_Function_glEnableVertexAttribArray = 43,
Message_Function_glFinish = 44,
Message_Function_glFlush = 45,
Message_Function_glFramebufferRenderbuffer = 46,
Message_Function_glFramebufferTexture2D = 47,
Message_Function_glFrontFace = 48,
Message_Function_glGenBuffers = 49,
Message_Function_glGenerateMipmap = 50,
Message_Function_glGenFramebuffers = 51,
Message_Function_glGenRenderbuffers = 52,
Message_Function_glGenTextures = 53,
Message_Function_glGetActiveAttrib = 54,
Message_Function_glGetActiveUniform = 55,
Message_Function_glGetAttachedShaders = 56,
Message_Function_glGetAttribLocation = 57,
Message_Function_glGetBooleanv = 58,
Message_Function_glGetBufferParameteriv = 59,
Message_Function_glGetError = 60,
Message_Function_glGetFloatv = 61,
Message_Function_glGetFramebufferAttachmentParameteriv = 62,
Message_Function_glGetIntegerv = 63,
Message_Function_glGetProgramiv = 64,
Message_Function_glGetProgramInfoLog = 65,
Message_Function_glGetRenderbufferParameteriv = 66,
Message_Function_glGetShaderiv = 67,
Message_Function_glGetShaderInfoLog = 68,
Message_Function_glGetShaderPrecisionFormat = 69,
Message_Function_glGetShaderSource = 70,
Message_Function_glGetString = 71,
Message_Function_glGetTexParameterfv = 72,
Message_Function_glGetTexParameteriv = 73,
Message_Function_glGetUniformfv = 74,
Message_Function_glGetUniformiv = 75,
Message_Function_glGetUniformLocation = 76,
Message_Function_glGetVertexAttribfv = 77,
Message_Function_glGetVertexAttribiv = 78,
Message_Function_glGetVertexAttribPointerv = 79,
Message_Function_glHint = 80,
Message_Function_glIsBuffer = 81,
Message_Function_glIsEnabled = 82,
Message_Function_glIsFramebuffer = 83,
Message_Function_glIsProgram = 84,
Message_Function_glIsRenderbuffer = 85,
Message_Function_glIsShader = 86,
Message_Function_glIsTexture = 87,
Message_Function_glLineWidth = 88,
Message_Function_glLinkProgram = 89,
Message_Function_glPixelStorei = 90,
Message_Function_glPolygonOffset = 91,
Message_Function_glReadPixels = 92,
Message_Function_glReleaseShaderCompiler = 93,
Message_Function_glRenderbufferStorage = 94,
Message_Function_glSampleCoverage = 95,
Message_Function_glScissor = 96,
Message_Function_glShaderBinary = 97,
Message_Function_glShaderSource = 98,
Message_Function_glStencilFunc = 99,
Message_Function_glStencilFuncSeparate = 100,
Message_Function_glStencilMask = 101,
Message_Function_glStencilMaskSeparate = 102,
Message_Function_glStencilOp = 103,
Message_Function_glStencilOpSeparate = 104,
Message_Function_glTexImage2D = 105,
Message_Function_glTexParameterf = 106,
Message_Function_glTexParameterfv = 107,
Message_Function_glTexParameteri = 108,
Message_Function_glTexParameteriv = 109,
Message_Function_glTexSubImage2D = 110,
Message_Function_glUniform1f = 111,
Message_Function_glUniform1fv = 112,
Message_Function_glUniform1i = 113,
Message_Function_glUniform1iv = 114,
Message_Function_glUniform2f = 115,
Message_Function_glUniform2fv = 116,
Message_Function_glUniform2i = 117,
Message_Function_glUniform2iv = 118,
Message_Function_glUniform3f = 119,
Message_Function_glUniform3fv = 120,
Message_Function_glUniform3i = 121,
Message_Function_glUniform3iv = 122,
Message_Function_glUniform4f = 123,
Message_Function_glUniform4fv = 124,
Message_Function_glUniform4i = 125,
Message_Function_glUniform4iv = 126,
Message_Function_glUniformMatrix2fv = 127,
Message_Function_glUniformMatrix3fv = 128,
Message_Function_glUniformMatrix4fv = 129,
Message_Function_glUseProgram = 130,
Message_Function_glValidateProgram = 131,
Message_Function_glVertexAttrib1f = 132,
Message_Function_glVertexAttrib1fv = 133,
Message_Function_glVertexAttrib2f = 134,
Message_Function_glVertexAttrib2fv = 135,
Message_Function_glVertexAttrib3f = 136,
Message_Function_glVertexAttrib3fv = 137,
Message_Function_glVertexAttrib4f = 138,
Message_Function_glVertexAttrib4fv = 139,
Message_Function_glVertexAttribPointer = 140,
Message_Function_glViewport = 141,
Message_Function_ACK = 142,
Message_Function_NEG = 143,
Message_Function_CONTINUE = 144,
Message_Function_SKIP = 145
};
bool Message_Function_IsValid(int value);
const Message_Function Message_Function_Function_MIN = Message_Function_glActiveTexture;
const Message_Function Message_Function_Function_MAX = Message_Function_SKIP;
const int Message_Function_Function_ARRAYSIZE = Message_Function_Function_MAX + 1;
// ===================================================================
class Message : public ::google::protobuf::MessageLite {
public:
Message();
virtual ~Message();
Message(const Message& from);
inline Message& operator=(const Message& from) {
CopyFrom(from);
return *this;
}
static const Message& default_instance();
void Swap(Message* other);
// implements Message ----------------------------------------------
Message* New() const;
void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from);
void CopyFrom(const Message& from);
void MergeFrom(const Message& from);
void Clear();
bool IsInitialized() const;
int ByteSize() const;
bool MergePartialFromCodedStream(
::google::protobuf::io::CodedInputStream* input);
void SerializeWithCachedSizes(
::google::protobuf::io::CodedOutputStream* output) const;
int GetCachedSize() const { return _cached_size_; }
private:
void SharedCtor();
void SharedDtor();
void SetCachedSize(int size) const;
public:
::std::string GetTypeName() const;
// nested types ----------------------------------------------------
typedef Message_Function Function;
static const Function glActiveTexture = Message_Function_glActiveTexture;
static const Function glAttachShader = Message_Function_glAttachShader;
static const Function glBindAttribLocation = Message_Function_glBindAttribLocation;
static const Function glBindBuffer = Message_Function_glBindBuffer;
static const Function glBindFramebuffer = Message_Function_glBindFramebuffer;
static const Function glBindRenderbuffer = Message_Function_glBindRenderbuffer;
static const Function glBindTexture = Message_Function_glBindTexture;
static const Function glBlendColor = Message_Function_glBlendColor;
static const Function glBlendEquation = Message_Function_glBlendEquation;
static const Function glBlendEquationSeparate = Message_Function_glBlendEquationSeparate;
static const Function glBlendFunc = Message_Function_glBlendFunc;
static const Function glBlendFuncSeparate = Message_Function_glBlendFuncSeparate;
static const Function glBufferData = Message_Function_glBufferData;
static const Function glBufferSubData = Message_Function_glBufferSubData;
static const Function glCheckFramebufferStatus = Message_Function_glCheckFramebufferStatus;
static const Function glClear = Message_Function_glClear;
static const Function glClearColor = Message_Function_glClearColor;
static const Function glClearDepthf = Message_Function_glClearDepthf;
static const Function glClearStencil = Message_Function_glClearStencil;
static const Function glColorMask = Message_Function_glColorMask;
static const Function glCompileShader = Message_Function_glCompileShader;
static const Function glCompressedTexImage2D = Message_Function_glCompressedTexImage2D;
static const Function glCompressedTexSubImage2D = Message_Function_glCompressedTexSubImage2D;
static const Function glCopyTexImage2D = Message_Function_glCopyTexImage2D;
static const Function glCopyTexSubImage2D = Message_Function_glCopyTexSubImage2D;
static const Function glCreateProgram = Message_Function_glCreateProgram;
static const Function glCreateShader = Message_Function_glCreateShader;
static const Function glCullFace = Message_Function_glCullFace;
static const Function glDeleteBuffers = Message_Function_glDeleteBuffers;
static const Function glDeleteFramebuffers = Message_Function_glDeleteFramebuffers;
static const Function glDeleteProgram = Message_Function_glDeleteProgram;
static const Function glDeleteRenderbuffers = Message_Function_glDeleteRenderbuffers;
static const Function glDeleteShader = Message_Function_glDeleteShader;
static const Function glDeleteTextures = Message_Function_glDeleteTextures;
static const Function glDepthFunc = Message_Function_glDepthFunc;
static const Function glDepthMask = Message_Function_glDepthMask;
static const Function glDepthRangef = Message_Function_glDepthRangef;
static const Function glDetachShader = Message_Function_glDetachShader;
static const Function glDisable = Message_Function_glDisable;
static const Function glDisableVertexAttribArray = Message_Function_glDisableVertexAttribArray;
static const Function glDrawArrays = Message_Function_glDrawArrays;
static const Function glDrawElements = Message_Function_glDrawElements;
static const Function glEnable = Message_Function_glEnable;
static const Function glEnableVertexAttribArray = Message_Function_glEnableVertexAttribArray;
static const Function glFinish = Message_Function_glFinish;
static const Function glFlush = Message_Function_glFlush;
static const Function glFramebufferRenderbuffer = Message_Function_glFramebufferRenderbuffer;
static const Function glFramebufferTexture2D = Message_Function_glFramebufferTexture2D;
static const Function glFrontFace = Message_Function_glFrontFace;
static const Function glGenBuffers = Message_Function_glGenBuffers;
static const Function glGenerateMipmap = Message_Function_glGenerateMipmap;
static const Function glGenFramebuffers = Message_Function_glGenFramebuffers;
static const Function glGenRenderbuffers = Message_Function_glGenRenderbuffers;
static const Function glGenTextures = Message_Function_glGenTextures;
static const Function glGetActiveAttrib = Message_Function_glGetActiveAttrib;
static const Function glGetActiveUniform = Message_Function_glGetActiveUniform;
static const Function glGetAttachedShaders = Message_Function_glGetAttachedShaders;
static const Function glGetAttribLocation = Message_Function_glGetAttribLocation;
static const Function glGetBooleanv = Message_Function_glGetBooleanv;
static const Function glGetBufferParameteriv = Message_Function_glGetBufferParameteriv;
static const Function glGetError = Message_Function_glGetError;
static const Function glGetFloatv = Message_Function_glGetFloatv;
static const Function glGetFramebufferAttachmentParameteriv = Message_Function_glGetFramebufferAttachmentParameteriv;
static const Function glGetIntegerv = Message_Function_glGetIntegerv;
static const Function glGetProgramiv = Message_Function_glGetProgramiv;
static const Function glGetProgramInfoLog = Message_Function_glGetProgramInfoLog;
static const Function glGetRenderbufferParameteriv = Message_Function_glGetRenderbufferParameteriv;
static const Function glGetShaderiv = Message_Function_glGetShaderiv;
static const Function glGetShaderInfoLog = Message_Function_glGetShaderInfoLog;
static const Function glGetShaderPrecisionFormat = Message_Function_glGetShaderPrecisionFormat;
static const Function glGetShaderSource = Message_Function_glGetShaderSource;
static const Function glGetString = Message_Function_glGetString;
static const Function glGetTexParameterfv = Message_Function_glGetTexParameterfv;
static const Function glGetTexParameteriv = Message_Function_glGetTexParameteriv;
static const Function glGetUniformfv = Message_Function_glGetUniformfv;
static const Function glGetUniformiv = Message_Function_glGetUniformiv;
static const Function glGetUniformLocation = Message_Function_glGetUniformLocation;
static const Function glGetVertexAttribfv = Message_Function_glGetVertexAttribfv;
static const Function glGetVertexAttribiv = Message_Function_glGetVertexAttribiv;
static const Function glGetVertexAttribPointerv = Message_Function_glGetVertexAttribPointerv;
static const Function glHint = Message_Function_glHint;
static const Function glIsBuffer = Message_Function_glIsBuffer;
static const Function glIsEnabled = Message_Function_glIsEnabled;
static const Function glIsFramebuffer = Message_Function_glIsFramebuffer;
static const Function glIsProgram = Message_Function_glIsProgram;
static const Function glIsRenderbuffer = Message_Function_glIsRenderbuffer;
static const Function glIsShader = Message_Function_glIsShader;
static const Function glIsTexture = Message_Function_glIsTexture;
static const Function glLineWidth = Message_Function_glLineWidth;
static const Function glLinkProgram = Message_Function_glLinkProgram;
static const Function glPixelStorei = Message_Function_glPixelStorei;
static const Function glPolygonOffset = Message_Function_glPolygonOffset;
static const Function glReadPixels = Message_Function_glReadPixels;
static const Function glReleaseShaderCompiler = Message_Function_glReleaseShaderCompiler;
static const Function glRenderbufferStorage = Message_Function_glRenderbufferStorage;
static const Function glSampleCoverage = Message_Function_glSampleCoverage;
static const Function glScissor = Message_Function_glScissor;
static const Function glShaderBinary = Message_Function_glShaderBinary;
static const Function glShaderSource = Message_Function_glShaderSource;
static const Function glStencilFunc = Message_Function_glStencilFunc;
static const Function glStencilFuncSeparate = Message_Function_glStencilFuncSeparate;
static const Function glStencilMask = Message_Function_glStencilMask;
static const Function glStencilMaskSeparate = Message_Function_glStencilMaskSeparate;
static const Function glStencilOp = Message_Function_glStencilOp;
static const Function glStencilOpSeparate = Message_Function_glStencilOpSeparate;
static const Function glTexImage2D = Message_Function_glTexImage2D;
static const Function glTexParameterf = Message_Function_glTexParameterf;
static const Function glTexParameterfv = Message_Function_glTexParameterfv;
static const Function glTexParameteri = Message_Function_glTexParameteri;
static const Function glTexParameteriv = Message_Function_glTexParameteriv;
static const Function glTexSubImage2D = Message_Function_glTexSubImage2D;
static const Function glUniform1f = Message_Function_glUniform1f;
static const Function glUniform1fv = Message_Function_glUniform1fv;
static const Function glUniform1i = Message_Function_glUniform1i;
static const Function glUniform1iv = Message_Function_glUniform1iv;
static const Function glUniform2f = Message_Function_glUniform2f;
static const Function glUniform2fv = Message_Function_glUniform2fv;
static const Function glUniform2i = Message_Function_glUniform2i;
static const Function glUniform2iv = Message_Function_glUniform2iv;
static const Function glUniform3f = Message_Function_glUniform3f;
static const Function glUniform3fv = Message_Function_glUniform3fv;
static const Function glUniform3i = Message_Function_glUniform3i;
static const Function glUniform3iv = Message_Function_glUniform3iv;
static const Function glUniform4f = Message_Function_glUniform4f;
static const Function glUniform4fv = Message_Function_glUniform4fv;
static const Function glUniform4i = Message_Function_glUniform4i;
static const Function glUniform4iv = Message_Function_glUniform4iv;
static const Function glUniformMatrix2fv = Message_Function_glUniformMatrix2fv;
static const Function glUniformMatrix3fv = Message_Function_glUniformMatrix3fv;
static const Function glUniformMatrix4fv = Message_Function_glUniformMatrix4fv;
static const Function glUseProgram = Message_Function_glUseProgram;
static const Function glValidateProgram = Message_Function_glValidateProgram;
static const Function glVertexAttrib1f = Message_Function_glVertexAttrib1f;
static const Function glVertexAttrib1fv = Message_Function_glVertexAttrib1fv;
static const Function glVertexAttrib2f = Message_Function_glVertexAttrib2f;
static const Function glVertexAttrib2fv = Message_Function_glVertexAttrib2fv;
static const Function glVertexAttrib3f = Message_Function_glVertexAttrib3f;
static const Function glVertexAttrib3fv = Message_Function_glVertexAttrib3fv;
static const Function glVertexAttrib4f = Message_Function_glVertexAttrib4f;
static const Function glVertexAttrib4fv = Message_Function_glVertexAttrib4fv;
static const Function glVertexAttribPointer = Message_Function_glVertexAttribPointer;
static const Function glViewport = Message_Function_glViewport;
static const Function ACK = Message_Function_ACK;
static const Function NEG = Message_Function_NEG;
static const Function CONTINUE = Message_Function_CONTINUE;
static const Function SKIP = Message_Function_SKIP;
static inline bool Function_IsValid(int value) {
return Message_Function_IsValid(value);
}
static const Function Function_MIN =
Message_Function_Function_MIN;
static const Function Function_MAX =
Message_Function_Function_MAX;
static const int Function_ARRAYSIZE =
Message_Function_Function_ARRAYSIZE;
// accessors -------------------------------------------------------
// required int32 context_id = 1;
inline bool has_context_id() const;
inline void clear_context_id();
static const int kContextIdFieldNumber = 1;
inline ::google::protobuf::int32 context_id() const;
inline void set_context_id(::google::protobuf::int32 value);
// required .GLESv2Debugger.Message.Function function = 2 [default = NEG];
inline bool has_function() const;
inline void clear_function();
static const int kFunctionFieldNumber = 2;
inline ::GLESv2Debugger::Message_Function function() const;
inline void set_function(::GLESv2Debugger::Message_Function value);
// required bool has_next_message = 3;
inline bool has_has_next_message() const;
inline void clear_has_next_message();
static const int kHasNextMessageFieldNumber = 3;
inline bool has_next_message() const;
inline void set_has_next_message(bool value);
// required bool expect_response = 4;
inline bool has_expect_response() const;
inline void clear_expect_response();
static const int kExpectResponseFieldNumber = 4;
inline bool expect_response() const;
inline void set_expect_response(bool value);
// optional int32 ret = 5;
inline bool has_ret() const;
inline void clear_ret();
static const int kRetFieldNumber = 5;
inline ::google::protobuf::int32 ret() const;
inline void set_ret(::google::protobuf::int32 value);
// optional int32 arg0 = 6;
inline bool has_arg0() const;
inline void clear_arg0();
static const int kArg0FieldNumber = 6;
inline ::google::protobuf::int32 arg0() const;
inline void set_arg0(::google::protobuf::int32 value);
// optional int32 arg1 = 7;
inline bool has_arg1() const;
inline void clear_arg1();
static const int kArg1FieldNumber = 7;
inline ::google::protobuf::int32 arg1() const;
inline void set_arg1(::google::protobuf::int32 value);
// optional int32 arg2 = 8;
inline bool has_arg2() const;
inline void clear_arg2();
static const int kArg2FieldNumber = 8;
inline ::google::protobuf::int32 arg2() const;
inline void set_arg2(::google::protobuf::int32 value);
// optional int32 arg3 = 9;
inline bool has_arg3() const;
inline void clear_arg3();
static const int kArg3FieldNumber = 9;
inline ::google::protobuf::int32 arg3() const;
inline void set_arg3(::google::protobuf::int32 value);
// optional int32 arg4 = 16;
inline bool has_arg4() const;
inline void clear_arg4();
static const int kArg4FieldNumber = 16;
inline ::google::protobuf::int32 arg4() const;
inline void set_arg4(::google::protobuf::int32 value);
// optional int32 arg5 = 17;
inline bool has_arg5() const;
inline void clear_arg5();
static const int kArg5FieldNumber = 17;
inline ::google::protobuf::int32 arg5() const;
inline void set_arg5(::google::protobuf::int32 value);
// optional int32 arg6 = 18;
inline bool has_arg6() const;
inline void clear_arg6();
static const int kArg6FieldNumber = 18;
inline ::google::protobuf::int32 arg6() const;
inline void set_arg6(::google::protobuf::int32 value);
// optional int32 arg7 = 19;
inline bool has_arg7() const;
inline void clear_arg7();
static const int kArg7FieldNumber = 19;
inline ::google::protobuf::int32 arg7() const;
inline void set_arg7(::google::protobuf::int32 value);
// optional int32 arg8 = 20;
inline bool has_arg8() const;
inline void clear_arg8();
static const int kArg8FieldNumber = 20;
inline ::google::protobuf::int32 arg8() const;
inline void set_arg8(::google::protobuf::int32 value);
// optional bytes data = 10;
inline bool has_data() const;
inline void clear_data();
static const int kDataFieldNumber = 10;
inline const ::std::string& data() const;
inline void set_data(const ::std::string& value);
inline void set_data(const char* value);
inline void set_data(const void* value, size_t size);
inline ::std::string* mutable_data();
// optional float time = 11;
inline bool has_time() const;
inline void clear_time();
static const int kTimeFieldNumber = 11;
inline float time() const;
inline void set_time(float value);
// @@protoc_insertion_point(class_scope:GLESv2Debugger.Message)
private:
mutable int _cached_size_;
::google::protobuf::int32 context_id_;
int function_;
bool has_next_message_;
bool expect_response_;
::google::protobuf::int32 ret_;
::google::protobuf::int32 arg0_;
::google::protobuf::int32 arg1_;
::google::protobuf::int32 arg2_;
::google::protobuf::int32 arg3_;
::google::protobuf::int32 arg4_;
::google::protobuf::int32 arg5_;
::google::protobuf::int32 arg6_;
::google::protobuf::int32 arg7_;
::google::protobuf::int32 arg8_;
::std::string* data_;
static const ::std::string _default_data_;
float time_;
friend void protobuf_AddDesc_DebuggerMessage_2eproto();
friend void protobuf_AssignDesc_DebuggerMessage_2eproto();
friend void protobuf_ShutdownFile_DebuggerMessage_2eproto();
::google::protobuf::uint32 _has_bits_[(16 + 31) / 32];
// WHY DOES & HAVE LOWER PRECEDENCE THAN != !?
inline bool _has_bit(int index) const {
return (_has_bits_[index / 32] & (1u << (index % 32))) != 0;
}
inline void _set_bit(int index) {
_has_bits_[index / 32] |= (1u << (index % 32));
}
inline void _clear_bit(int index) {
_has_bits_[index / 32] &= ~(1u << (index % 32));
}
void InitAsDefaultInstance();
static Message* default_instance_;
};
// ===================================================================
// ===================================================================
// Message
// required int32 context_id = 1;
inline bool Message::has_context_id() const {
return _has_bit(0);
}
inline void Message::clear_context_id() {
context_id_ = 0;
_clear_bit(0);
}
inline ::google::protobuf::int32 Message::context_id() const {
return context_id_;
}
inline void Message::set_context_id(::google::protobuf::int32 value) {
_set_bit(0);
context_id_ = value;
}
// required .GLESv2Debugger.Message.Function function = 2 [default = NEG];
inline bool Message::has_function() const {
return _has_bit(1);
}
inline void Message::clear_function() {
function_ = 143;
_clear_bit(1);
}
inline ::GLESv2Debugger::Message_Function Message::function() const {
return static_cast< ::GLESv2Debugger::Message_Function >(function_);
}
inline void Message::set_function(::GLESv2Debugger::Message_Function value) {
GOOGLE_DCHECK(::GLESv2Debugger::Message_Function_IsValid(value));
_set_bit(1);
function_ = value;
}
// required bool has_next_message = 3;
inline bool Message::has_has_next_message() const {
return _has_bit(2);
}
inline void Message::clear_has_next_message() {
has_next_message_ = false;
_clear_bit(2);
}
inline bool Message::has_next_message() const {
return has_next_message_;
}
inline void Message::set_has_next_message(bool value) {
_set_bit(2);
has_next_message_ = value;
}
// required bool expect_response = 4;
inline bool Message::has_expect_response() const {
return _has_bit(3);
}
inline void Message::clear_expect_response() {
expect_response_ = false;
_clear_bit(3);
}
inline bool Message::expect_response() const {
return expect_response_;
}
inline void Message::set_expect_response(bool value) {
_set_bit(3);
expect_response_ = value;
}
// optional int32 ret = 5;
inline bool Message::has_ret() const {
return _has_bit(4);
}
inline void Message::clear_ret() {
ret_ = 0;
_clear_bit(4);
}
inline ::google::protobuf::int32 Message::ret() const {
return ret_;
}
inline void Message::set_ret(::google::protobuf::int32 value) {
_set_bit(4);
ret_ = value;
}
// optional int32 arg0 = 6;
inline bool Message::has_arg0() const {
return _has_bit(5);
}
inline void Message::clear_arg0() {
arg0_ = 0;
_clear_bit(5);
}
inline ::google::protobuf::int32 Message::arg0() const {
return arg0_;
}
inline void Message::set_arg0(::google::protobuf::int32 value) {
_set_bit(5);
arg0_ = value;
}
// optional int32 arg1 = 7;
inline bool Message::has_arg1() const {
return _has_bit(6);
}
inline void Message::clear_arg1() {
arg1_ = 0;
_clear_bit(6);
}
inline ::google::protobuf::int32 Message::arg1() const {
return arg1_;
}
inline void Message::set_arg1(::google::protobuf::int32 value) {
_set_bit(6);
arg1_ = value;
}
// optional int32 arg2 = 8;
inline bool Message::has_arg2() const {
return _has_bit(7);
}
inline void Message::clear_arg2() {
arg2_ = 0;
_clear_bit(7);
}
inline ::google::protobuf::int32 Message::arg2() const {
return arg2_;
}
inline void Message::set_arg2(::google::protobuf::int32 value) {
_set_bit(7);
arg2_ = value;
}
// optional int32 arg3 = 9;
inline bool Message::has_arg3() const {
return _has_bit(8);
}
inline void Message::clear_arg3() {
arg3_ = 0;
_clear_bit(8);
}
inline ::google::protobuf::int32 Message::arg3() const {
return arg3_;
}
inline void Message::set_arg3(::google::protobuf::int32 value) {
_set_bit(8);
arg3_ = value;
}
// optional int32 arg4 = 16;
inline bool Message::has_arg4() const {
return _has_bit(9);
}
inline void Message::clear_arg4() {
arg4_ = 0;
_clear_bit(9);
}
inline ::google::protobuf::int32 Message::arg4() const {
return arg4_;
}
inline void Message::set_arg4(::google::protobuf::int32 value) {
_set_bit(9);
arg4_ = value;
}
// optional int32 arg5 = 17;
inline bool Message::has_arg5() const {
return _has_bit(10);
}
inline void Message::clear_arg5() {
arg5_ = 0;
_clear_bit(10);
}
inline ::google::protobuf::int32 Message::arg5() const {
return arg5_;
}
inline void Message::set_arg5(::google::protobuf::int32 value) {
_set_bit(10);
arg5_ = value;
}
// optional int32 arg6 = 18;
inline bool Message::has_arg6() const {
return _has_bit(11);
}
inline void Message::clear_arg6() {
arg6_ = 0;
_clear_bit(11);
}
inline ::google::protobuf::int32 Message::arg6() const {
return arg6_;
}
inline void Message::set_arg6(::google::protobuf::int32 value) {
_set_bit(11);
arg6_ = value;
}
// optional int32 arg7 = 19;
inline bool Message::has_arg7() const {
return _has_bit(12);
}
inline void Message::clear_arg7() {
arg7_ = 0;
_clear_bit(12);
}
inline ::google::protobuf::int32 Message::arg7() const {
return arg7_;
}
inline void Message::set_arg7(::google::protobuf::int32 value) {
_set_bit(12);
arg7_ = value;
}
// optional int32 arg8 = 20;
inline bool Message::has_arg8() const {
return _has_bit(13);
}
inline void Message::clear_arg8() {
arg8_ = 0;
_clear_bit(13);
}
inline ::google::protobuf::int32 Message::arg8() const {
return arg8_;
}
inline void Message::set_arg8(::google::protobuf::int32 value) {
_set_bit(13);
arg8_ = value;
}
// optional bytes data = 10;
inline bool Message::has_data() const {
return _has_bit(14);
}
inline void Message::clear_data() {
if (data_ != &_default_data_) {
data_->clear();
}
_clear_bit(14);
}
inline const ::std::string& Message::data() const {
return *data_;
}
inline void Message::set_data(const ::std::string& value) {
_set_bit(14);
if (data_ == &_default_data_) {
data_ = new ::std::string;
}
data_->assign(value);
}
inline void Message::set_data(const char* value) {
_set_bit(14);
if (data_ == &_default_data_) {
data_ = new ::std::string;
}
data_->assign(value);
}
inline void Message::set_data(const void* value, size_t size) {
_set_bit(14);
if (data_ == &_default_data_) {
data_ = new ::std::string;
}
data_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* Message::mutable_data() {
_set_bit(14);
if (data_ == &_default_data_) {
data_ = new ::std::string;
}
return data_;
}
// optional float time = 11;
inline bool Message::has_time() const {
return _has_bit(15);
}
inline void Message::clear_time() {
time_ = 0;
_clear_bit(15);
}
inline float Message::time() const {
return time_;
}
inline void Message::set_time(float value) {
_set_bit(15);
time_ = value;
}
// @@protoc_insertion_point(namespace_scope)
} // namespace GLESv2Debugger
// @@protoc_insertion_point(global_scope)
#endif // PROTOBUF_DebuggerMessage_2eproto__INCLUDED

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,65 @@
/*
** Copyright 2011, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <errno.h>
#include <sys/ioctl.h>
#include <unistd.h>
#include <sys/socket.h>
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
#include <cutils/log.h>
#include <cutils/properties.h>
#include <../../../libcore/include/StaticAssert.h>
#define EGL_TRACE 1
#include "hooks.h"
#define GL_ENTRY(_r, _api, ...) _r Debug_##_api ( __VA_ARGS__ );
#include "../include/glesv2_dbg.h"
#include "DebuggerMessage.pb.h"
using namespace android;
#define API_ENTRY(_api) Debug_##_api
#ifndef __location__
#define __HIERALLOC_STRING_0__(s) #s
#define __HIERALLOC_STRING_1__(s) __HIERALLOC_STRING_0__(s)
#define __HIERALLOC_STRING_2__ __HIERALLOC_STRING_1__(__LINE__)
#define __location__ __FILE__ ":" __HIERALLOC_STRING_2__
#endif
#define ASSERT(expr) if (!(expr)) { LOGD("\n*\n*\n* ASSERT FAILED: %s at %s \n*\n*", #expr, __location__); exit(1); }
#undef assert
#define assert(expr) ASSERT(expr)
//#undef LOGD
//#define LOGD(...)
namespace android
{
extern int clientSock, serverSock;
#define BUFFSIZE 256
extern char sockBuff [BUFFSIZE];
void Send(const GLESv2Debugger::Message & msg, GLESv2Debugger::Message & cmd);
}; // namespace android {

View File

@ -0,0 +1,158 @@
/*
** Copyright 2011, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
#include <fcntl.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <pthread.h>
#include "header.h"
namespace android
{
char sockBuff [BUFFSIZE];
int serverSock = -1, clientSock = -1;
void StopDebugServer();
static void Die(const char * msg)
{
LOGD("\n*\n*\n* GLESv2_dbg: Die: %s \n*\n*", msg);
StopDebugServer();
exit(1);
}
void StartDebugServer()
{
LOGD("GLESv2_dbg: StartDebugServer");
if (serverSock >= 0)
return;
LOGD("GLESv2_dbg: StartDebugServer create socket");
struct sockaddr_in server = {}, client = {};
/* Create the TCP socket */
if ((serverSock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) {
Die("Failed to create socket");
}
/* Construct the server sockaddr_in structure */
server.sin_family = AF_INET; /* Internet/IP */
server.sin_addr.s_addr = htonl(INADDR_ANY); /* Incoming addr */
server.sin_port = htons(5039); /* server port */
/* Bind the server socket */
socklen_t sizeofSockaddr_in = sizeof(sockaddr_in);
if (bind(serverSock, (struct sockaddr *) &server,
sizeof(server)) < 0) {
Die("Failed to bind the server socket");
}
/* Listen on the server socket */
if (listen(serverSock, 1) < 0) {
Die("Failed to listen on server socket");
}
LOGD("server started on %d \n", server.sin_port);
/* Wait for client connection */
if ((clientSock =
accept(serverSock, (struct sockaddr *) &client,
&sizeofSockaddr_in)) < 0) {
Die("Failed to accept client connection");
}
LOGD("Client connected: %s\n", inet_ntoa(client.sin_addr));
// fcntl(clientSock, F_SETFL, O_NONBLOCK);
GLESv2Debugger::Message msg, cmd;
msg.set_context_id(0);
msg.set_function(GLESv2Debugger::Message_Function_ACK);
msg.set_has_next_message(false);
msg.set_expect_response(true);
Send(msg, cmd);
}
void StopDebugServer()
{
LOGD("GLESv2_dbg: StopDebugServer");
if (clientSock > 0) {
close(clientSock);
clientSock = -1;
}
if (serverSock > 0) {
close(serverSock);
serverSock = -1;
}
}
void Send(const GLESv2Debugger::Message & msg, GLESv2Debugger::Message & cmd)
{
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
pthread_mutex_lock(&mutex); // TODO: this is just temporary
static std::string str;
const_cast<GLESv2Debugger::Message &>(msg).set_context_id(pthread_self());
msg.SerializeToString(&str);
unsigned len = str.length();
len = htonl(len);
int sent = -1;
sent = send(clientSock, (const char *)&len, sizeof(len), 0);
if (sent != sizeof(len)) {
LOGD("actual sent=%d expected=%d clientSock=%d", sent, sizeof(len), clientSock);
Die("Failed to send message length");
}
sent = send(clientSock, str.c_str(), str.length(), 0);
if (sent != str.length()) {
LOGD("actual sent=%d expected=%d clientSock=%d", sent, str.length(), clientSock);
Die("Failed to send message");
}
if (!msg.expect_response()) {
pthread_mutex_unlock(&mutex);
return;
}
int received = recv(clientSock, sockBuff, 4, MSG_WAITALL);
if (received < 0)
Die("Failed to receive response");
else if (4 != received) {
LOGD("received %dB: %.8X", received, *(unsigned *)sockBuff);
Die("Received length mismatch, expected 4");
}
len = ntohl(*(unsigned *)sockBuff);
static void * buffer = NULL;
static unsigned bufferSize = 0;
if (bufferSize < len) {
buffer = realloc(buffer, len);
ASSERT(buffer);
bufferSize = len;
}
received = recv(clientSock, buffer, len, MSG_WAITALL);
if (received < 0)
Die("Failed to receive response");
else if (len != received)
Die("Received length mismatch");
cmd.Clear();
cmd.ParseFromArray(buffer, len);
//LOGD("Message sent tid=%lu len=%d", pthread_self(), str.length());
pthread_mutex_unlock(&mutex);
}
}; // namespace android {

View File

@ -0,0 +1,66 @@
/*
** Copyright 2011, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
#include "header.h"
void API_ENTRY(glShaderSource)(GLuint shader, GLsizei count, const GLchar** string, const GLint* length)
{
gl_hooks_t::gl_t const * const _c = &getGLTraceThreadSpecific()->gl;
GLESv2Debugger::Message msg, cmd;
msg.set_context_id(0);
msg.set_has_next_message(true);
const bool expectResponse = false;
msg.set_expect_response(expectResponse);
msg.set_function(GLESv2Debugger::Message_Function_glShaderSource);
msg.set_arg0(shader);
msg.set_arg1(count);
msg.set_arg2((int)string);
msg.set_arg3((int)length);
std::string data;
for (unsigned i = 0; i < count; i++)
if (!length || length[i] < 0)
data.append(string[i]);
else
data.append(string[i], length[i]);
msg.set_data(data);
Send(msg, cmd);
if (!expectResponse)
cmd.set_function(GLESv2Debugger::Message_Function_CONTINUE);
while (true) {
msg.Clear();
clock_t c0 = clock();
switch (cmd.function()) {
case GLESv2Debugger::Message_Function_CONTINUE:
_c->glShaderSource(shader, count, string, length);
msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC);
msg.set_context_id(0);
msg.set_function(GLESv2Debugger::Message_Function_glShaderSource);
msg.set_has_next_message(false);
msg.set_expect_response(expectResponse);
Send(msg, cmd);
if (!expectResponse)
cmd.set_function(GLESv2Debugger::Message_Function_SKIP);
break;
case GLESv2Debugger::Message_Function_SKIP:
return;
default:
ASSERT(0); //GenerateCall(msg, cmd);
break;
}
}
}

View File

@ -0,0 +1,300 @@
/*
** Copyright 2011, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
#include "header.h"
static inline void GetFormatAndBytesPerPixel(const GLenum format, unsigned & bytesPerPixel)
{
switch (format) {
case GL_ALPHA:
bytesPerPixel = 1;
break;
case GL_LUMINANCE:
bytesPerPixel = 1;
break;
case GL_LUMINANCE_ALPHA:
bytesPerPixel = 2;
break;
case GL_RGB:
bytesPerPixel = 3;
break;
case GL_RGBA:
bytesPerPixel = 4;
break;
// internal formats to avoid conversion
case GL_UNSIGNED_SHORT_5_6_5:
bytesPerPixel = 2;
break;
case GL_UNSIGNED_SHORT_4_4_4_4:
bytesPerPixel = 2;
break;
case GL_UNSIGNED_SHORT_5_5_5_1:
bytesPerPixel = 2;
break;
default:
assert(0);
return;
}
}
#define USE_RLE 0
#if USE_RLE
template<typename T>
void * RLEEncode(const void * pixels, unsigned count, unsigned * encodedSize)
{
// first is a byte indicating data size [1,2,4] bytes
// then an unsigned indicating decompressed size
// then a byte of header: MSB == 1 indicates run, else literal
// LSB7 is run or literal length (actual length - 1)
const T * data = (T *)pixels;
unsigned bufferSize = sizeof(T) * count / 2 + 8;
unsigned char * buffer = (unsigned char *)malloc(bufferSize);
buffer[0] = sizeof(T);
unsigned bufferWritten = 1; // number of bytes written
*(unsigned *)(buffer + bufferWritten) = count;
bufferWritten += sizeof(count);
while (count) {
unsigned char run = 1;
bool repeat = true;
for (run = 1; run < count; run++)
if (data[0] != data[run]) {
repeat = false;
break;
} else if (run > 127)
break;
if (!repeat) {
// find literal length
for (run = 1; run < count; run++)
if (data[run - 1] == data[run])
break;
else if (run > 127)
break;
unsigned bytesToWrite = 1 + sizeof(T) * run;
if (bufferWritten + bytesToWrite > bufferSize) {
bufferSize += sizeof(T) * run + 256;
buffer = (unsigned char *)realloc(buffer, bufferSize);
}
buffer[bufferWritten++] = run - 1;
for (unsigned i = 0; i < run; i++) {
*(T *)(buffer + bufferWritten) = *data;
bufferWritten += sizeof(T);
data++;
}
count -= run;
} else {
unsigned bytesToWrite = 1 + sizeof(T);
if (bufferWritten + bytesToWrite > bufferSize) {
bufferSize += 256;
buffer = (unsigned char *)realloc(buffer, bufferSize);
}
buffer[bufferWritten++] = (run - 1) | 0x80;
*(T *)(buffer + bufferWritten) = data[0];
bufferWritten += sizeof(T);
data += run;
count -= run;
}
}
if (encodedSize)
*encodedSize = bufferWritten;
return buffer;
}
void * RLEEncode(const void * pixels, const unsigned bytesPerPixel, const unsigned count, unsigned * encodedSize)
{
switch (bytesPerPixel) {
case 4:
return RLEEncode<int>(pixels, count, encodedSize);
case 2:
return RLEEncode<short>(pixels, count, encodedSize);
case 1:
return RLEEncode<char>(pixels, count, encodedSize);
default:
assert(0);
return NULL;
}
}
#endif
void API_ENTRY(glTexImage2D)(GLenum target, GLint level, GLint internalformat, GLsizei width,
GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels)
{
// LOGD("\n*\n* GLESv2_dbg: %s \n*", "glTexImage2D");
gl_hooks_t::gl_t const * const _c = &getGLTraceThreadSpecific()->gl;
GLESv2Debugger::Message msg, cmd;
msg.set_context_id(0);
msg.set_has_next_message(true);
const bool expectResponse = false;
msg.set_expect_response(expectResponse);
msg.set_function(GLESv2Debugger::Message_Function_glTexImage2D);
msg.set_arg0(target);
msg.set_arg1(level);
msg.set_arg2(internalformat);
msg.set_arg3(width);
msg.set_arg4(height);
msg.set_arg5(border);
msg.set_arg6(format);
msg.set_arg7(type);
if (pixels) {
assert(internalformat == format);
assert(0 == border);
GLenum newFormat = internalformat;
switch (type) {
case GL_UNSIGNED_BYTE:
break;
case GL_UNSIGNED_SHORT_5_6_5:
case GL_UNSIGNED_SHORT_4_4_4_4:
case GL_UNSIGNED_SHORT_5_5_5_1:
newFormat = type;
break;
default:
LOGD("GLESv2_dbg: glTexImage2D type=0x%.4X", type);
assert(0);
}
unsigned bytesPerPixel = 0;
GetFormatAndBytesPerPixel(newFormat, bytesPerPixel);
assert(0 < bytesPerPixel);
// LOGD("GLESv2_dbg: glTexImage2D width=%d height=%d level=%d bytesPerPixel=%d",
// width, height, level, bytesPerPixel);
#if USE_RLE
unsigned encodedSize = 0;
void * data = RLEEncode(pixels, bytesPerPixel, width * height, &encodedSize);
msg.set_data(data, encodedSize);
free(data);
if (encodedSize > bytesPerPixel * width * height)
LOGD("GLESv2_dbg: glTexImage2D sending data encodedSize=%d size=%d", encodedSize, bytesPerPixel * width * height);
#else
msg.set_data(pixels, bytesPerPixel * width * height);
#endif
}
assert(msg.has_arg3());
Send(msg, cmd);
if (!expectResponse)
cmd.set_function(GLESv2Debugger::Message_Function_CONTINUE);
while (true) {
msg.Clear();
clock_t c0 = clock();
switch (cmd.function()) {
case GLESv2Debugger::Message_Function_CONTINUE:
_c->glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels);
msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC);
msg.set_context_id(0);
msg.set_function(GLESv2Debugger::Message_Function_glTexImage2D);
msg.set_has_next_message(false);
msg.set_expect_response(expectResponse);
assert(!msg.has_arg3());
Send(msg, cmd);
if (!expectResponse)
cmd.set_function(GLESv2Debugger::Message_Function_SKIP);
break;
case GLESv2Debugger::Message_Function_SKIP:
return;
default:
ASSERT(0); //GenerateCall(msg, cmd);
break;
}
}
}
void API_ENTRY(glTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset,
GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels)
{
// LOGD("\n*\n* GLESv2_dbg: %s \n*", "glTexSubImage2D");
gl_hooks_t::gl_t const * const _c = &getGLTraceThreadSpecific()->gl;
GLESv2Debugger::Message msg, cmd;
msg.set_context_id(0);
msg.set_has_next_message(true);
const bool expectResponse = false;
msg.set_expect_response(expectResponse);
msg.set_function(GLESv2Debugger::Message_Function_glTexSubImage2D);
msg.set_arg0(target);
msg.set_arg1(level);
msg.set_arg2(xoffset);
msg.set_arg3(yoffset);
msg.set_arg4(width);
msg.set_arg5(height);
msg.set_arg6(format);
msg.set_arg7(type);
assert(pixels);
if (pixels) {
GLenum newFormat = format;
switch (type) {
case GL_UNSIGNED_BYTE:
break;
case GL_UNSIGNED_SHORT_5_6_5:
case GL_UNSIGNED_SHORT_4_4_4_4:
case GL_UNSIGNED_SHORT_5_5_5_1:
newFormat = type;
break;
default:
assert(0);
}
unsigned bytesPerPixel = 0;
GetFormatAndBytesPerPixel(newFormat, bytesPerPixel);
assert(0 < bytesPerPixel);
// LOGD("GLESv2_dbg: glTexSubImage2D width=%d height=%d level=%d bytesPerPixel=%d",
// width, height, level, bytesPerPixel);
#if USE_RLE
unsigned encodedSize = 0;
void * data = RLEEncode(pixels, bytesPerPixel, width * height, &encodedSize);
msg.set_data(data, encodedSize);
free(data);
if (encodedSize > bytesPerPixel * width * height)
LOGD("GLESv2_dbg: glTexImage2D sending data encodedSize=%d size=%d", encodedSize, bytesPerPixel * width * height);
#else
msg.set_data(pixels, bytesPerPixel * width * height);
#endif
}
Send(msg, cmd);
if (!expectResponse)
cmd.set_function(GLESv2Debugger::Message_Function_CONTINUE);
while (true) {
msg.Clear();
clock_t c0 = clock();
switch (cmd.function()) {
case GLESv2Debugger::Message_Function_CONTINUE:
_c->glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels);
msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC);
msg.set_function(GLESv2Debugger::Message_Function_glTexImage2D);
msg.set_context_id(0);
msg.set_has_next_message(false);
msg.set_expect_response(expectResponse);
Send(msg, cmd);
if (!expectResponse)
cmd.set_function(GLESv2Debugger::Message_Function_SKIP);
break;
case GLESv2Debugger::Message_Function_SKIP:
return;
default:
ASSERT(0); //GenerateCall(msg, cmd);
break;
}
}
}

235
opengl/libs/debug.in Normal file
View File

@ -0,0 +1,235 @@
// the following functions are not defined in GLESv2_dbg
TRACE_GL_VOID(glAlphaFunc, (GLenum func, GLclampf ref), (func, ref), 2, "GLenum", func, "GLclampf", ref)
TRACE_GL_VOID(glAlphaFuncx, (GLenum func, GLclampx ref), (func, ref), 2, "GLenum", func, "GLclampx", ref)
TRACE_GL_VOID(glAlphaFuncxOES, (GLenum func, GLclampx ref), (func, ref), 2, "GLenum", func, "GLclampx", ref)
TRACE_GL_VOID(glBeginPerfMonitorAMD, (GLuint monitor), (monitor), 1, "GLuint", monitor)
TRACE_GL_VOID(glBindFramebufferOES, (GLenum target, GLuint framebuffer), (target, framebuffer), 2, "GLenum", target, "GLuint", framebuffer)
TRACE_GL_VOID(glBindRenderbufferOES, (GLenum target, GLuint renderbuffer), (target, renderbuffer), 2, "GLenum", target, "GLuint", renderbuffer)
TRACE_GL_VOID(glBindVertexArrayOES, (GLuint array), (array), 1, "GLuint", array)
TRACE_GL_VOID(glBlendEquationOES, (GLenum mode), (mode), 1, "GLenum", mode)
TRACE_GL_VOID(glBlendEquationSeparateOES, (GLenum modeRGB, GLenum modeAlpha), (modeRGB, modeAlpha), 2, "GLenum", modeRGB, "GLenum", modeAlpha)
TRACE_GL_VOID(glBlendFuncSeparateOES, (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha), (srcRGB, dstRGB, srcAlpha, dstAlpha), 4, "GLenum", srcRGB, "GLenum", dstRGB, "GLenum", srcAlpha, "GLenum", dstAlpha)
TRACE_GL(GLenum, glCheckFramebufferStatusOES, (GLenum target), (target), 1, "GLenum", target)
TRACE_GL_VOID(glClearColorx, (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha), (red, green, blue, alpha), 4, "GLclampx", red, "GLclampx", green, "GLclampx", blue, "GLclampx", alpha)
TRACE_GL_VOID(glClearColorxOES, (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha), (red, green, blue, alpha), 4, "GLclampx", red, "GLclampx", green, "GLclampx", blue, "GLclampx", alpha)
TRACE_GL_VOID(glClearDepthfOES, (GLclampf depth), (depth), 1, "GLclampf", depth)
TRACE_GL_VOID(glClearDepthx, (GLclampx depth), (depth), 1, "GLclampx", depth)
TRACE_GL_VOID(glClearDepthxOES, (GLclampx depth), (depth), 1, "GLclampx", depth)
TRACE_GL_VOID(glClientActiveTexture, (GLenum texture), (texture), 1, "GLenum", texture)
TRACE_GL_VOID(glClipPlanef, (GLenum plane, const GLfloat *equation), (plane, equation), 2, "GLenum", plane, "const GLfloat *", equation)
TRACE_GL_VOID(glClipPlanefIMG, (GLenum p, const GLfloat *eqn), (p, eqn), 2, "GLenum", p, "const GLfloat *", eqn)
TRACE_GL_VOID(glClipPlanefOES, (GLenum plane, const GLfloat *equation), (plane, equation), 2, "GLenum", plane, "const GLfloat *", equation)
TRACE_GL_VOID(glClipPlanex, (GLenum plane, const GLfixed *equation), (plane, equation), 2, "GLenum", plane, "const GLfixed *", equation)
TRACE_GL_VOID(glClipPlanexIMG, (GLenum p, const GLfixed *eqn), (p, eqn), 2, "GLenum", p, "const GLfixed *", eqn)
TRACE_GL_VOID(glClipPlanexOES, (GLenum plane, const GLfixed *equation), (plane, equation), 2, "GLenum", plane, "const GLfixed *", equation)
TRACE_GL_VOID(glColor4f, (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha), (red, green, blue, alpha), 4, "GLfloat", red, "GLfloat", green, "GLfloat", blue, "GLfloat", alpha)
TRACE_GL_VOID(glColor4ub, (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha), (red, green, blue, alpha), 4, "GLubyte", red, "GLubyte", green, "GLubyte", blue, "GLubyte", alpha)
TRACE_GL_VOID(glColor4x, (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha), (red, green, blue, alpha), 4, "GLfixed", red, "GLfixed", green, "GLfixed", blue, "GLfixed", alpha)
TRACE_GL_VOID(glColor4xOES, (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha), (red, green, blue, alpha), 4, "GLfixed", red, "GLfixed", green, "GLfixed", blue, "GLfixed", alpha)
TRACE_GL_VOID(glColorPointer, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer), (size, type, stride, pointer), 4, "GLint", size, "GLenum", type, "GLsizei", stride, "const GLvoid *", pointer)
TRACE_GL_VOID(glCompressedTexImage3DOES, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data), (target, level, internalformat, width, height, depth, border, imageSize, data), 9, "GLenum", target, "GLint", level, "GLenum", internalformat, "GLsizei", width, "GLsizei", height, "GLsizei", depth, "GLint", border, "GLsizei", imageSize, "const GLvoid*", data)
TRACE_GL_VOID(glCompressedTexSubImage3DOES, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data), (target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data), 11, "GLenum", target, "GLint", level, "GLint", xoffset, "GLint", yoffset, "GLint", zoffset, "GLsizei", width, "GLsizei", height, "GLsizei", depth, "GLenum", format, "GLsizei", imageSize, "const GLvoid*", data)
TRACE_GL_VOID(glCopyTexSubImage3DOES, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height), (target, level, xoffset, yoffset, zoffset, x, y, width, height), 9, "GLenum", target, "GLint", level, "GLint", xoffset, "GLint", yoffset, "GLint", zoffset, "GLint", x, "GLint", y, "GLsizei", width, "GLsizei", height)
TRACE_GL_VOID(glCoverageMaskNV, (GLboolean mask), (mask), 1, "GLboolean", mask)
TRACE_GL_VOID(glCoverageOperationNV, (GLenum operation), (operation), 1, "GLenum", operation)
TRACE_GL_VOID(glCurrentPaletteMatrixOES, (GLuint matrixpaletteindex), (matrixpaletteindex), 1, "GLuint", matrixpaletteindex)
TRACE_GL_VOID(glDeleteFencesNV, (GLsizei n, const GLuint *fences), (n, fences), 2, "GLsizei", n, "const GLuint *", fences)
TRACE_GL_VOID(glDeleteFramebuffersOES, (GLsizei n, const GLuint* framebuffers), (n, framebuffers), 2, "GLsizei", n, "const GLuint*", framebuffers)
TRACE_GL_VOID(glDeletePerfMonitorsAMD, (GLsizei n, GLuint *monitors), (n, monitors), 2, "GLsizei", n, "GLuint *", monitors)
TRACE_GL_VOID(glDeleteRenderbuffersOES, (GLsizei n, const GLuint* renderbuffers), (n, renderbuffers), 2, "GLsizei", n, "const GLuint*", renderbuffers)
TRACE_GL_VOID(glDeleteVertexArraysOES, (GLsizei n, const GLuint *arrays), (n, arrays), 2, "GLsizei", n, "const GLuint *", arrays)
TRACE_GL_VOID(glDepthRangefOES, (GLclampf zNear, GLclampf zFar), (zNear, zFar), 2, "GLclampf", zNear, "GLclampf", zFar)
TRACE_GL_VOID(glDepthRangex, (GLclampx zNear, GLclampx zFar), (zNear, zFar), 2, "GLclampx", zNear, "GLclampx", zFar)
TRACE_GL_VOID(glDepthRangexOES, (GLclampx zNear, GLclampx zFar), (zNear, zFar), 2, "GLclampx", zNear, "GLclampx", zFar)
TRACE_GL_VOID(glDisableClientState, (GLenum array), (array), 1, "GLenum", array)
TRACE_GL_VOID(glDisableDriverControlQCOM, (GLuint driverControl), (driverControl), 1, "GLuint", driverControl)
TRACE_GL_VOID(glDiscardFramebufferEXT, (GLenum target, GLsizei numAttachments, const GLenum *attachments), (target, numAttachments, attachments), 3, "GLenum", target, "GLsizei", numAttachments, "const GLenum *", attachments)
TRACE_GL_VOID(glDrawTexfOES, (GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height), (x, y, z, width, height), 5, "GLfloat", x, "GLfloat", y, "GLfloat", z, "GLfloat", width, "GLfloat", height)
TRACE_GL_VOID(glDrawTexfvOES, (const GLfloat *coords), (coords), 1, "const GLfloat *", coords)
TRACE_GL_VOID(glDrawTexiOES, (GLint x, GLint y, GLint z, GLint width, GLint height), (x, y, z, width, height), 5, "GLint", x, "GLint", y, "GLint", z, "GLint", width, "GLint", height)
TRACE_GL_VOID(glDrawTexivOES, (const GLint *coords), (coords), 1, "const GLint *", coords)
TRACE_GL_VOID(glDrawTexsOES, (GLshort x, GLshort y, GLshort z, GLshort width, GLshort height), (x, y, z, width, height), 5, "GLshort", x, "GLshort", y, "GLshort", z, "GLshort", width, "GLshort", height)
TRACE_GL_VOID(glDrawTexsvOES, (const GLshort *coords), (coords), 1, "const GLshort *", coords)
TRACE_GL_VOID(glDrawTexxOES, (GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height), (x, y, z, width, height), 5, "GLfixed", x, "GLfixed", y, "GLfixed", z, "GLfixed", width, "GLfixed", height)
TRACE_GL_VOID(glDrawTexxvOES, (const GLfixed *coords), (coords), 1, "const GLfixed *", coords)
TRACE_GL_VOID(glEGLImageTargetRenderbufferStorageOES, (GLenum target, GLeglImageOES image), (target, image), 2, "GLenum", target, "GLeglImageOES", image)
TRACE_GL_VOID(glEGLImageTargetTexture2DOES, (GLenum target, GLeglImageOES image), (target, image), 2, "GLenum", target, "GLeglImageOES", image)
TRACE_GL_VOID(glEnableClientState, (GLenum array), (array), 1, "GLenum", array)
TRACE_GL_VOID(glEnableDriverControlQCOM, (GLuint driverControl), (driverControl), 1, "GLuint", driverControl)
TRACE_GL_VOID(glEndPerfMonitorAMD, (GLuint monitor), (monitor), 1, "GLuint", monitor)
TRACE_GL_VOID(glEndTilingQCOM, (GLbitfield preserveMask), (preserveMask), 1, "GLbitfield", preserveMask)
TRACE_GL_VOID(glExtGetBufferPointervQCOM, (GLenum target, GLvoid **params), (target, params), 2, "GLenum", target, "GLvoid **", params)
TRACE_GL_VOID(glExtGetBuffersQCOM, (GLuint *buffers, GLint maxBuffers, GLint *numBuffers), (buffers, maxBuffers, numBuffers), 3, "GLuint *", buffers, "GLint", maxBuffers, "GLint *", numBuffers)
TRACE_GL_VOID(glExtGetFramebuffersQCOM, (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers), (framebuffers, maxFramebuffers, numFramebuffers), 3, "GLuint *", framebuffers, "GLint", maxFramebuffers, "GLint *", numFramebuffers)
TRACE_GL_VOID(glExtGetProgramBinarySourceQCOM, (GLuint program, GLenum shadertype, GLchar *source, GLint *length), (program, shadertype, source, length), 4, "GLuint", program, "GLenum", shadertype, "GLchar *", source, "GLint *", length)
TRACE_GL_VOID(glExtGetProgramsQCOM, (GLuint *programs, GLint maxPrograms, GLint *numPrograms), (programs, maxPrograms, numPrograms), 3, "GLuint *", programs, "GLint", maxPrograms, "GLint *", numPrograms)
TRACE_GL_VOID(glExtGetRenderbuffersQCOM, (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers), (renderbuffers, maxRenderbuffers, numRenderbuffers), 3, "GLuint *", renderbuffers, "GLint", maxRenderbuffers, "GLint *", numRenderbuffers)
TRACE_GL_VOID(glExtGetShadersQCOM, (GLuint *shaders, GLint maxShaders, GLint *numShaders), (shaders, maxShaders, numShaders), 3, "GLuint *", shaders, "GLint", maxShaders, "GLint *", numShaders)
TRACE_GL_VOID(glExtGetTexLevelParameterivQCOM, (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params), (texture, face, level, pname, params), 5, "GLuint", texture, "GLenum", face, "GLint", level, "GLenum", pname, "GLint *", params)
TRACE_GL_VOID(glExtGetTexSubImageQCOM, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels), (target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, texels), 11, "GLenum", target, "GLint", level, "GLint", xoffset, "GLint", yoffset, "GLint", zoffset, "GLsizei", width, "GLsizei", height, "GLsizei", depth, "GLenum", format, "GLenum", type, "GLvoid *", texels)
TRACE_GL_VOID(glExtGetTexturesQCOM, (GLuint *textures, GLint maxTextures, GLint *numTextures), (textures, maxTextures, numTextures), 3, "GLuint *", textures, "GLint", maxTextures, "GLint *", numTextures)
TRACE_GL(GLboolean, glExtIsProgramBinaryQCOM, (GLuint program), (program), 1, "GLuint", program)
TRACE_GL_VOID(glExtTexObjectStateOverrideiQCOM, (GLenum target, GLenum pname, GLint param), (target, pname, param), 3, "GLenum", target, "GLenum", pname, "GLint", param)
TRACE_GL_VOID(glFinishFenceNV, (GLuint fence), (fence), 1, "GLuint", fence)
TRACE_GL_VOID(glFogf, (GLenum pname, GLfloat param), (pname, param), 2, "GLenum", pname, "GLfloat", param)
TRACE_GL_VOID(glFogfv, (GLenum pname, const GLfloat *params), (pname, params), 2, "GLenum", pname, "const GLfloat *", params)
TRACE_GL_VOID(glFogx, (GLenum pname, GLfixed param), (pname, param), 2, "GLenum", pname, "GLfixed", param)
TRACE_GL_VOID(glFogxOES, (GLenum pname, GLfixed param), (pname, param), 2, "GLenum", pname, "GLfixed", param)
TRACE_GL_VOID(glFogxv, (GLenum pname, const GLfixed *params), (pname, params), 2, "GLenum", pname, "const GLfixed *", params)
TRACE_GL_VOID(glFogxvOES, (GLenum pname, const GLfixed *params), (pname, params), 2, "GLenum", pname, "const GLfixed *", params)
TRACE_GL_VOID(glFramebufferRenderbufferOES, (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer), (target, attachment, renderbuffertarget, renderbuffer), 4, "GLenum", target, "GLenum", attachment, "GLenum", renderbuffertarget, "GLuint", renderbuffer)
TRACE_GL_VOID(glFramebufferTexture2DMultisampleIMG, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples), (target, attachment, textarget, texture, level, samples), 6, "GLenum", target, "GLenum", attachment, "GLenum", textarget, "GLuint", texture, "GLint", level, "GLsizei", samples)
TRACE_GL_VOID(glFramebufferTexture2DOES, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level), (target, attachment, textarget, texture, level), 5, "GLenum", target, "GLenum", attachment, "GLenum", textarget, "GLuint", texture, "GLint", level)
TRACE_GL_VOID(glFramebufferTexture3DOES, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset), (target, attachment, textarget, texture, level, zoffset), 6, "GLenum", target, "GLenum", attachment, "GLenum", textarget, "GLuint", texture, "GLint", level, "GLint", zoffset)
TRACE_GL_VOID(glFrustumf, (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar), (left, right, bottom, top, zNear, zFar), 6, "GLfloat", left, "GLfloat", right, "GLfloat", bottom, "GLfloat", top, "GLfloat", zNear, "GLfloat", zFar)
TRACE_GL_VOID(glFrustumfOES, (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar), (left, right, bottom, top, zNear, zFar), 6, "GLfloat", left, "GLfloat", right, "GLfloat", bottom, "GLfloat", top, "GLfloat", zNear, "GLfloat", zFar)
TRACE_GL_VOID(glFrustumx, (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar), (left, right, bottom, top, zNear, zFar), 6, "GLfixed", left, "GLfixed", right, "GLfixed", bottom, "GLfixed", top, "GLfixed", zNear, "GLfixed", zFar)
TRACE_GL_VOID(glFrustumxOES, (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar), (left, right, bottom, top, zNear, zFar), 6, "GLfixed", left, "GLfixed", right, "GLfixed", bottom, "GLfixed", top, "GLfixed", zNear, "GLfixed", zFar)
TRACE_GL_VOID(glGenFencesNV, (GLsizei n, GLuint *fences), (n, fences), 2, "GLsizei", n, "GLuint *", fences)
TRACE_GL_VOID(glGenFramebuffersOES, (GLsizei n, GLuint* framebuffers), (n, framebuffers), 2, "GLsizei", n, "GLuint*", framebuffers)
TRACE_GL_VOID(glGenPerfMonitorsAMD, (GLsizei n, GLuint *monitors), (n, monitors), 2, "GLsizei", n, "GLuint *", monitors)
TRACE_GL_VOID(glGenRenderbuffersOES, (GLsizei n, GLuint* renderbuffers), (n, renderbuffers), 2, "GLsizei", n, "GLuint*", renderbuffers)
TRACE_GL_VOID(glGenVertexArraysOES, (GLsizei n, GLuint *arrays), (n, arrays), 2, "GLsizei", n, "GLuint *", arrays)
TRACE_GL_VOID(glGenerateMipmapOES, (GLenum target), (target), 1, "GLenum", target)
TRACE_GL_VOID(glGetBufferPointervOES, (GLenum target, GLenum pname, GLvoid ** params), (target, pname, params), 3, "GLenum", target, "GLenum", pname, "GLvoid **", params)
TRACE_GL_VOID(glGetClipPlanef, (GLenum pname, GLfloat eqn[4]), (pname, eqn), 2, "GLenum", pname, "GLfloat", eqn)
TRACE_GL_VOID(glGetClipPlanefOES, (GLenum pname, GLfloat eqn[4]), (pname, eqn), 2, "GLenum", pname, "GLfloat", eqn)
TRACE_GL_VOID(glGetClipPlanex, (GLenum pname, GLfixed eqn[4]), (pname, eqn), 2, "GLenum", pname, "GLfixed", eqn)
TRACE_GL_VOID(glGetClipPlanexOES, (GLenum pname, GLfixed eqn[4]), (pname, eqn), 2, "GLenum", pname, "GLfixed", eqn)
TRACE_GL_VOID(glGetDriverControlStringQCOM, (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString), (driverControl, bufSize, length, driverControlString), 4, "GLuint", driverControl, "GLsizei", bufSize, "GLsizei *", length, "GLchar *", driverControlString)
TRACE_GL_VOID(glGetDriverControlsQCOM, (GLint *num, GLsizei size, GLuint *driverControls), (num, size, driverControls), 3, "GLint *", num, "GLsizei", size, "GLuint *", driverControls)
TRACE_GL_VOID(glGetFenceivNV, (GLuint fence, GLenum pname, GLint *params), (fence, pname, params), 3, "GLuint", fence, "GLenum", pname, "GLint *", params)
TRACE_GL_VOID(glGetFixedv, (GLenum pname, GLfixed *params), (pname, params), 2, "GLenum", pname, "GLfixed *", params)
TRACE_GL_VOID(glGetFixedvOES, (GLenum pname, GLfixed *params), (pname, params), 2, "GLenum", pname, "GLfixed *", params)
TRACE_GL_VOID(glGetFramebufferAttachmentParameterivOES, (GLenum target, GLenum attachment, GLenum pname, GLint* params), (target, attachment, pname, params), 4, "GLenum", target, "GLenum", attachment, "GLenum", pname, "GLint*", params)
TRACE_GL_VOID(glGetLightfv, (GLenum light, GLenum pname, GLfloat *params), (light, pname, params), 3, "GLenum", light, "GLenum", pname, "GLfloat *", params)
TRACE_GL_VOID(glGetLightxv, (GLenum light, GLenum pname, GLfixed *params), (light, pname, params), 3, "GLenum", light, "GLenum", pname, "GLfixed *", params)
TRACE_GL_VOID(glGetLightxvOES, (GLenum light, GLenum pname, GLfixed *params), (light, pname, params), 3, "GLenum", light, "GLenum", pname, "GLfixed *", params)
TRACE_GL_VOID(glGetMaterialfv, (GLenum face, GLenum pname, GLfloat *params), (face, pname, params), 3, "GLenum", face, "GLenum", pname, "GLfloat *", params)
TRACE_GL_VOID(glGetMaterialxv, (GLenum face, GLenum pname, GLfixed *params), (face, pname, params), 3, "GLenum", face, "GLenum", pname, "GLfixed *", params)
TRACE_GL_VOID(glGetMaterialxvOES, (GLenum face, GLenum pname, GLfixed *params), (face, pname, params), 3, "GLenum", face, "GLenum", pname, "GLfixed *", params)
TRACE_GL_VOID(glGetPerfMonitorCounterDataAMD, (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten), (monitor, pname, dataSize, data, bytesWritten), 5, "GLuint", monitor, "GLenum", pname, "GLsizei", dataSize, "GLuint *", data, "GLint *", bytesWritten)
TRACE_GL_VOID(glGetPerfMonitorCounterInfoAMD, (GLuint group, GLuint counter, GLenum pname, GLvoid *data), (group, counter, pname, data), 4, "GLuint", group, "GLuint", counter, "GLenum", pname, "GLvoid *", data)
TRACE_GL_VOID(glGetPerfMonitorCounterStringAMD, (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString), (group, counter, bufSize, length, counterString), 5, "GLuint", group, "GLuint", counter, "GLsizei", bufSize, "GLsizei *", length, "GLchar *", counterString)
TRACE_GL_VOID(glGetPerfMonitorCountersAMD, (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters), (group, numCounters, maxActiveCounters, counterSize, counters), 5, "GLuint", group, "GLint *", numCounters, "GLint *", maxActiveCounters, "GLsizei", counterSize, "GLuint *", counters)
TRACE_GL_VOID(glGetPerfMonitorGroupStringAMD, (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString), (group, bufSize, length, groupString), 4, "GLuint", group, "GLsizei", bufSize, "GLsizei *", length, "GLchar *", groupString)
TRACE_GL_VOID(glGetPerfMonitorGroupsAMD, (GLint *numGroups, GLsizei groupsSize, GLuint *groups), (numGroups, groupsSize, groups), 3, "GLint *", numGroups, "GLsizei", groupsSize, "GLuint *", groups)
TRACE_GL_VOID(glGetPointerv, (GLenum pname, GLvoid **params), (pname, params), 2, "GLenum", pname, "GLvoid **", params)
TRACE_GL_VOID(glGetProgramBinaryOES, (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary), (program, bufSize, length, binaryFormat, binary), 5, "GLuint", program, "GLsizei", bufSize, "GLsizei *", length, "GLenum *", binaryFormat, "GLvoid *", binary)
TRACE_GL_VOID(glGetRenderbufferParameterivOES, (GLenum target, GLenum pname, GLint* params), (target, pname, params), 3, "GLenum", target, "GLenum", pname, "GLint*", params)
TRACE_GL_VOID(glGetTexEnvfv, (GLenum env, GLenum pname, GLfloat *params), (env, pname, params), 3, "GLenum", env, "GLenum", pname, "GLfloat *", params)
TRACE_GL_VOID(glGetTexEnviv, (GLenum env, GLenum pname, GLint *params), (env, pname, params), 3, "GLenum", env, "GLenum", pname, "GLint *", params)
TRACE_GL_VOID(glGetTexEnvxv, (GLenum env, GLenum pname, GLfixed *params), (env, pname, params), 3, "GLenum", env, "GLenum", pname, "GLfixed *", params)
TRACE_GL_VOID(glGetTexEnvxvOES, (GLenum env, GLenum pname, GLfixed *params), (env, pname, params), 3, "GLenum", env, "GLenum", pname, "GLfixed *", params)
TRACE_GL_VOID(glGetTexGenfvOES, (GLenum coord, GLenum pname, GLfloat *params), (coord, pname, params), 3, "GLenum", coord, "GLenum", pname, "GLfloat *", params)
TRACE_GL_VOID(glGetTexGenivOES, (GLenum coord, GLenum pname, GLint *params), (coord, pname, params), 3, "GLenum", coord, "GLenum", pname, "GLint *", params)
TRACE_GL_VOID(glGetTexGenxvOES, (GLenum coord, GLenum pname, GLfixed *params), (coord, pname, params), 3, "GLenum", coord, "GLenum", pname, "GLfixed *", params)
TRACE_GL_VOID(glGetTexParameterxv, (GLenum target, GLenum pname, GLfixed *params), (target, pname, params), 3, "GLenum", target, "GLenum", pname, "GLfixed *", params)
TRACE_GL_VOID(glGetTexParameterxvOES, (GLenum target, GLenum pname, GLfixed *params), (target, pname, params), 3, "GLenum", target, "GLenum", pname, "GLfixed *", params)
TRACE_GL(GLboolean, glIsFenceNV, (GLuint fence), (fence), 1, "GLuint", fence)
TRACE_GL(GLboolean, glIsFramebufferOES, (GLuint framebuffer), (framebuffer), 1, "GLuint", framebuffer)
TRACE_GL(GLboolean, glIsRenderbufferOES, (GLuint renderbuffer), (renderbuffer), 1, "GLuint", renderbuffer)
TRACE_GL(GLboolean, glIsVertexArrayOES, (GLuint array), (array), 1, "GLuint", array)
TRACE_GL_VOID(glLightModelf, (GLenum pname, GLfloat param), (pname, param), 2, "GLenum", pname, "GLfloat", param)
TRACE_GL_VOID(glLightModelfv, (GLenum pname, const GLfloat *params), (pname, params), 2, "GLenum", pname, "const GLfloat *", params)
TRACE_GL_VOID(glLightModelx, (GLenum pname, GLfixed param), (pname, param), 2, "GLenum", pname, "GLfixed", param)
TRACE_GL_VOID(glLightModelxOES, (GLenum pname, GLfixed param), (pname, param), 2, "GLenum", pname, "GLfixed", param)
TRACE_GL_VOID(glLightModelxv, (GLenum pname, const GLfixed *params), (pname, params), 2, "GLenum", pname, "const GLfixed *", params)
TRACE_GL_VOID(glLightModelxvOES, (GLenum pname, const GLfixed *params), (pname, params), 2, "GLenum", pname, "const GLfixed *", params)
TRACE_GL_VOID(glLightf, (GLenum light, GLenum pname, GLfloat param), (light, pname, param), 3, "GLenum", light, "GLenum", pname, "GLfloat", param)
TRACE_GL_VOID(glLightfv, (GLenum light, GLenum pname, const GLfloat *params), (light, pname, params), 3, "GLenum", light, "GLenum", pname, "const GLfloat *", params)
TRACE_GL_VOID(glLightx, (GLenum light, GLenum pname, GLfixed param), (light, pname, param), 3, "GLenum", light, "GLenum", pname, "GLfixed", param)
TRACE_GL_VOID(glLightxOES, (GLenum light, GLenum pname, GLfixed param), (light, pname, param), 3, "GLenum", light, "GLenum", pname, "GLfixed", param)
TRACE_GL_VOID(glLightxv, (GLenum light, GLenum pname, const GLfixed *params), (light, pname, params), 3, "GLenum", light, "GLenum", pname, "const GLfixed *", params)
TRACE_GL_VOID(glLightxvOES, (GLenum light, GLenum pname, const GLfixed *params), (light, pname, params), 3, "GLenum", light, "GLenum", pname, "const GLfixed *", params)
TRACE_GL_VOID(glLineWidthx, (GLfixed width), (width), 1, "GLfixed", width)
TRACE_GL_VOID(glLineWidthxOES, (GLfixed width), (width), 1, "GLfixed", width)
TRACE_GL_VOID(glLoadIdentity, (void), (), 0)
TRACE_GL_VOID(glLoadMatrixf, (const GLfloat *m), (m), 1, "const GLfloat *", m)
TRACE_GL_VOID(glLoadMatrixx, (const GLfixed *m), (m), 1, "const GLfixed *", m)
TRACE_GL_VOID(glLoadMatrixxOES, (const GLfixed *m), (m), 1, "const GLfixed *", m)
TRACE_GL_VOID(glLoadPaletteFromModelViewMatrixOES, (void), (), 0)
TRACE_GL_VOID(glLogicOp, (GLenum opcode), (opcode), 1, "GLenum", opcode)
TRACE_GL(void*, glMapBufferOES, (GLenum target, GLenum access), (target, access), 2, "GLenum", target, "GLenum", access)
TRACE_GL_VOID(glMaterialf, (GLenum face, GLenum pname, GLfloat param), (face, pname, param), 3, "GLenum", face, "GLenum", pname, "GLfloat", param)
TRACE_GL_VOID(glMaterialfv, (GLenum face, GLenum pname, const GLfloat *params), (face, pname, params), 3, "GLenum", face, "GLenum", pname, "const GLfloat *", params)
TRACE_GL_VOID(glMaterialx, (GLenum face, GLenum pname, GLfixed param), (face, pname, param), 3, "GLenum", face, "GLenum", pname, "GLfixed", param)
TRACE_GL_VOID(glMaterialxOES, (GLenum face, GLenum pname, GLfixed param), (face, pname, param), 3, "GLenum", face, "GLenum", pname, "GLfixed", param)
TRACE_GL_VOID(glMaterialxv, (GLenum face, GLenum pname, const GLfixed *params), (face, pname, params), 3, "GLenum", face, "GLenum", pname, "const GLfixed *", params)
TRACE_GL_VOID(glMaterialxvOES, (GLenum face, GLenum pname, const GLfixed *params), (face, pname, params), 3, "GLenum", face, "GLenum", pname, "const GLfixed *", params)
TRACE_GL_VOID(glMatrixIndexPointerOES, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer), (size, type, stride, pointer), 4, "GLint", size, "GLenum", type, "GLsizei", stride, "const GLvoid *", pointer)
TRACE_GL_VOID(glMatrixMode, (GLenum mode), (mode), 1, "GLenum", mode)
TRACE_GL_VOID(glMultMatrixf, (const GLfloat *m), (m), 1, "const GLfloat *", m)
TRACE_GL_VOID(glMultMatrixx, (const GLfixed *m), (m), 1, "const GLfixed *", m)
TRACE_GL_VOID(glMultMatrixxOES, (const GLfixed *m), (m), 1, "const GLfixed *", m)
TRACE_GL_VOID(glMultiDrawArraysEXT, (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount), (mode, first, count, primcount), 4, "GLenum", mode, "GLint *", first, "GLsizei *", count, "GLsizei", primcount)
TRACE_GL_VOID(glMultiDrawElementsEXT, (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount), (mode, count, type, indices, primcount), 5, "GLenum", mode, "const GLsizei *", count, "GLenum", type, "const GLvoid* *", indices, "GLsizei", primcount)
TRACE_GL_VOID(glMultiTexCoord4f, (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q), (target, s, t, r, q), 5, "GLenum", target, "GLfloat", s, "GLfloat", t, "GLfloat", r, "GLfloat", q)
TRACE_GL_VOID(glMultiTexCoord4x, (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q), (target, s, t, r, q), 5, "GLenum", target, "GLfixed", s, "GLfixed", t, "GLfixed", r, "GLfixed", q)
TRACE_GL_VOID(glMultiTexCoord4xOES, (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q), (target, s, t, r, q), 5, "GLenum", target, "GLfixed", s, "GLfixed", t, "GLfixed", r, "GLfixed", q)
TRACE_GL_VOID(glNormal3f, (GLfloat nx, GLfloat ny, GLfloat nz), (nx, ny, nz), 3, "GLfloat", nx, "GLfloat", ny, "GLfloat", nz)
TRACE_GL_VOID(glNormal3x, (GLfixed nx, GLfixed ny, GLfixed nz), (nx, ny, nz), 3, "GLfixed", nx, "GLfixed", ny, "GLfixed", nz)
TRACE_GL_VOID(glNormal3xOES, (GLfixed nx, GLfixed ny, GLfixed nz), (nx, ny, nz), 3, "GLfixed", nx, "GLfixed", ny, "GLfixed", nz)
TRACE_GL_VOID(glNormalPointer, (GLenum type, GLsizei stride, const GLvoid *pointer), (type, stride, pointer), 3, "GLenum", type, "GLsizei", stride, "const GLvoid *", pointer)
TRACE_GL_VOID(glOrthof, (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar), (left, right, bottom, top, zNear, zFar), 6, "GLfloat", left, "GLfloat", right, "GLfloat", bottom, "GLfloat", top, "GLfloat", zNear, "GLfloat", zFar)
TRACE_GL_VOID(glOrthofOES, (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar), (left, right, bottom, top, zNear, zFar), 6, "GLfloat", left, "GLfloat", right, "GLfloat", bottom, "GLfloat", top, "GLfloat", zNear, "GLfloat", zFar)
TRACE_GL_VOID(glOrthox, (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar), (left, right, bottom, top, zNear, zFar), 6, "GLfixed", left, "GLfixed", right, "GLfixed", bottom, "GLfixed", top, "GLfixed", zNear, "GLfixed", zFar)
TRACE_GL_VOID(glOrthoxOES, (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar), (left, right, bottom, top, zNear, zFar), 6, "GLfixed", left, "GLfixed", right, "GLfixed", bottom, "GLfixed", top, "GLfixed", zNear, "GLfixed", zFar)
TRACE_GL_VOID(glPointParameterf, (GLenum pname, GLfloat param), (pname, param), 2, "GLenum", pname, "GLfloat", param)
TRACE_GL_VOID(glPointParameterfv, (GLenum pname, const GLfloat *params), (pname, params), 2, "GLenum", pname, "const GLfloat *", params)
TRACE_GL_VOID(glPointParameterx, (GLenum pname, GLfixed param), (pname, param), 2, "GLenum", pname, "GLfixed", param)
TRACE_GL_VOID(glPointParameterxOES, (GLenum pname, GLfixed param), (pname, param), 2, "GLenum", pname, "GLfixed", param)
TRACE_GL_VOID(glPointParameterxv, (GLenum pname, const GLfixed *params), (pname, params), 2, "GLenum", pname, "const GLfixed *", params)
TRACE_GL_VOID(glPointParameterxvOES, (GLenum pname, const GLfixed *params), (pname, params), 2, "GLenum", pname, "const GLfixed *", params)
TRACE_GL_VOID(glPointSize, (GLfloat size), (size), 1, "GLfloat", size)
TRACE_GL_VOID(glPointSizePointerOES, (GLenum type, GLsizei stride, const GLvoid *pointer), (type, stride, pointer), 3, "GLenum", type, "GLsizei", stride, "const GLvoid *", pointer)
TRACE_GL_VOID(glPointSizex, (GLfixed size), (size), 1, "GLfixed", size)
TRACE_GL_VOID(glPointSizexOES, (GLfixed size), (size), 1, "GLfixed", size)
TRACE_GL_VOID(glPolygonOffsetx, (GLfixed factor, GLfixed units), (factor, units), 2, "GLfixed", factor, "GLfixed", units)
TRACE_GL_VOID(glPolygonOffsetxOES, (GLfixed factor, GLfixed units), (factor, units), 2, "GLfixed", factor, "GLfixed", units)
TRACE_GL_VOID(glPopMatrix, (void), (), 0)
TRACE_GL_VOID(glProgramBinaryOES, (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length), (program, binaryFormat, binary, length), 4, "GLuint", program, "GLenum", binaryFormat, "const GLvoid *", binary, "GLint", length)
TRACE_GL_VOID(glPushMatrix, (void), (), 0)
TRACE_GL(GLbitfield, glQueryMatrixxOES, (GLfixed mantissa[16], GLint exponent[16]), (mantissa, exponent), 2, "GLfixed", mantissa, "GLint", exponent)
TRACE_GL_VOID(glRenderbufferStorageMultisampleIMG, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height), (target, samples, internalformat, width, height), 5, "GLenum", target, "GLsizei", samples, "GLenum", internalformat, "GLsizei", width, "GLsizei", height)
TRACE_GL_VOID(glRenderbufferStorageOES, (GLenum target, GLenum internalformat, GLsizei width, GLsizei height), (target, internalformat, width, height), 4, "GLenum", target, "GLenum", internalformat, "GLsizei", width, "GLsizei", height)
TRACE_GL_VOID(glRotatef, (GLfloat angle, GLfloat x, GLfloat y, GLfloat z), (angle, x, y, z), 4, "GLfloat", angle, "GLfloat", x, "GLfloat", y, "GLfloat", z)
TRACE_GL_VOID(glRotatex, (GLfixed angle, GLfixed x, GLfixed y, GLfixed z), (angle, x, y, z), 4, "GLfixed", angle, "GLfixed", x, "GLfixed", y, "GLfixed", z)
TRACE_GL_VOID(glRotatexOES, (GLfixed angle, GLfixed x, GLfixed y, GLfixed z), (angle, x, y, z), 4, "GLfixed", angle, "GLfixed", x, "GLfixed", y, "GLfixed", z)
TRACE_GL_VOID(glSampleCoveragex, (GLclampx value, GLboolean invert), (value, invert), 2, "GLclampx", value, "GLboolean", invert)
TRACE_GL_VOID(glSampleCoveragexOES, (GLclampx value, GLboolean invert), (value, invert), 2, "GLclampx", value, "GLboolean", invert)
TRACE_GL_VOID(glScalef, (GLfloat x, GLfloat y, GLfloat z), (x, y, z), 3, "GLfloat", x, "GLfloat", y, "GLfloat", z)
TRACE_GL_VOID(glScalex, (GLfixed x, GLfixed y, GLfixed z), (x, y, z), 3, "GLfixed", x, "GLfixed", y, "GLfixed", z)
TRACE_GL_VOID(glScalexOES, (GLfixed x, GLfixed y, GLfixed z), (x, y, z), 3, "GLfixed", x, "GLfixed", y, "GLfixed", z)
TRACE_GL_VOID(glSelectPerfMonitorCountersAMD, (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList), (monitor, enable, group, numCounters, countersList), 5, "GLuint", monitor, "GLboolean", enable, "GLuint", group, "GLint", numCounters, "GLuint *", countersList)
TRACE_GL_VOID(glSetFenceNV, (GLuint fence, GLenum condition), (fence, condition), 2, "GLuint", fence, "GLenum", condition)
TRACE_GL_VOID(glShadeModel, (GLenum mode), (mode), 1, "GLenum", mode)
TRACE_GL_VOID(glStartTilingQCOM, (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask), (x, y, width, height, preserveMask), 5, "GLuint", x, "GLuint", y, "GLuint", width, "GLuint", height, "GLbitfield", preserveMask)
TRACE_GL(GLboolean, glTestFenceNV, (GLuint fence), (fence), 1, "GLuint", fence)
TRACE_GL_VOID(glTexCoordPointer, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer), (size, type, stride, pointer), 4, "GLint", size, "GLenum", type, "GLsizei", stride, "const GLvoid *", pointer)
TRACE_GL_VOID(glTexEnvf, (GLenum target, GLenum pname, GLfloat param), (target, pname, param), 3, "GLenum", target, "GLenum", pname, "GLfloat", param)
TRACE_GL_VOID(glTexEnvfv, (GLenum target, GLenum pname, const GLfloat *params), (target, pname, params), 3, "GLenum", target, "GLenum", pname, "const GLfloat *", params)
TRACE_GL_VOID(glTexEnvi, (GLenum target, GLenum pname, GLint param), (target, pname, param), 3, "GLenum", target, "GLenum", pname, "GLint", param)
TRACE_GL_VOID(glTexEnviv, (GLenum target, GLenum pname, const GLint *params), (target, pname, params), 3, "GLenum", target, "GLenum", pname, "const GLint *", params)
TRACE_GL_VOID(glTexEnvx, (GLenum target, GLenum pname, GLfixed param), (target, pname, param), 3, "GLenum", target, "GLenum", pname, "GLfixed", param)
TRACE_GL_VOID(glTexEnvxOES, (GLenum target, GLenum pname, GLfixed param), (target, pname, param), 3, "GLenum", target, "GLenum", pname, "GLfixed", param)
TRACE_GL_VOID(glTexEnvxv, (GLenum target, GLenum pname, const GLfixed *params), (target, pname, params), 3, "GLenum", target, "GLenum", pname, "const GLfixed *", params)
TRACE_GL_VOID(glTexEnvxvOES, (GLenum target, GLenum pname, const GLfixed *params), (target, pname, params), 3, "GLenum", target, "GLenum", pname, "const GLfixed *", params)
TRACE_GL_VOID(glTexGenfOES, (GLenum coord, GLenum pname, GLfloat param), (coord, pname, param), 3, "GLenum", coord, "GLenum", pname, "GLfloat", param)
TRACE_GL_VOID(glTexGenfvOES, (GLenum coord, GLenum pname, const GLfloat *params), (coord, pname, params), 3, "GLenum", coord, "GLenum", pname, "const GLfloat *", params)
TRACE_GL_VOID(glTexGeniOES, (GLenum coord, GLenum pname, GLint param), (coord, pname, param), 3, "GLenum", coord, "GLenum", pname, "GLint", param)
TRACE_GL_VOID(glTexGenivOES, (GLenum coord, GLenum pname, const GLint *params), (coord, pname, params), 3, "GLenum", coord, "GLenum", pname, "const GLint *", params)
TRACE_GL_VOID(glTexGenxOES, (GLenum coord, GLenum pname, GLfixed param), (coord, pname, param), 3, "GLenum", coord, "GLenum", pname, "GLfixed", param)
TRACE_GL_VOID(glTexGenxvOES, (GLenum coord, GLenum pname, const GLfixed *params), (coord, pname, params), 3, "GLenum", coord, "GLenum", pname, "const GLfixed *", params)
TRACE_GL_VOID(glTexImage3DOES, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels), (target, level, internalformat, width, height, depth, border, format, type, pixels), 10, "GLenum", target, "GLint", level, "GLenum", internalformat, "GLsizei", width, "GLsizei", height, "GLsizei", depth, "GLint", border, "GLenum", format, "GLenum", type, "const GLvoid*", pixels)
TRACE_GL_VOID(glTexParameterx, (GLenum target, GLenum pname, GLfixed param), (target, pname, param), 3, "GLenum", target, "GLenum", pname, "GLfixed", param)
TRACE_GL_VOID(glTexParameterxOES, (GLenum target, GLenum pname, GLfixed param), (target, pname, param), 3, "GLenum", target, "GLenum", pname, "GLfixed", param)
TRACE_GL_VOID(glTexParameterxv, (GLenum target, GLenum pname, const GLfixed *params), (target, pname, params), 3, "GLenum", target, "GLenum", pname, "const GLfixed *", params)
TRACE_GL_VOID(glTexParameterxvOES, (GLenum target, GLenum pname, const GLfixed *params), (target, pname, params), 3, "GLenum", target, "GLenum", pname, "const GLfixed *", params)
TRACE_GL_VOID(glTexSubImage3DOES, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels), (target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels), 11, "GLenum", target, "GLint", level, "GLint", xoffset, "GLint", yoffset, "GLint", zoffset, "GLsizei", width, "GLsizei", height, "GLsizei", depth, "GLenum", format, "GLenum", type, "const GLvoid*", pixels)
TRACE_GL_VOID(glTranslatef, (GLfloat x, GLfloat y, GLfloat z), (x, y, z), 3, "GLfloat", x, "GLfloat", y, "GLfloat", z)
TRACE_GL_VOID(glTranslatex, (GLfixed x, GLfixed y, GLfixed z), (x, y, z), 3, "GLfixed", x, "GLfixed", y, "GLfixed", z)
TRACE_GL_VOID(glTranslatexOES, (GLfixed x, GLfixed y, GLfixed z), (x, y, z), 3, "GLfixed", x, "GLfixed", y, "GLfixed", z)
TRACE_GL(GLboolean, glUnmapBufferOES, (GLenum target), (target), 1, "GLenum", target)
TRACE_GL_VOID(glVertexPointer, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer), (size, type, stride, pointer), 4, "GLint", size, "GLenum", type, "GLsizei", stride, "const GLvoid *", pointer)
TRACE_GL_VOID(glWeightPointerOES, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer), (size, type, stride, pointer), 4, "GLint", size, "GLenum", type, "GLsizei", stride, "const GLvoid *", pointer)