diff options
Diffstat (limited to 'opengl/libs/GLES2_dbg')
-rw-r--r-- | opengl/libs/GLES2_dbg/Android.mk | 46 | ||||
-rwxr-xr-x | opengl/libs/GLES2_dbg/generate_DebuggerMessage_proto.py | 73 | ||||
-rwxr-xr-x | opengl/libs/GLES2_dbg/generate_GLEnum_java.py | 43 | ||||
-rwxr-xr-x | opengl/libs/GLES2_dbg/generate_GLFunction_java.py | 34 | ||||
-rwxr-xr-x | opengl/libs/GLES2_dbg/generate_MessageFormatter_java.py | 239 | ||||
-rwxr-xr-x | opengl/libs/GLES2_dbg/generate_api_cpp.py | 174 | ||||
-rwxr-xr-x | opengl/libs/GLES2_dbg/generate_debug_in.py | 64 | ||||
-rw-r--r-- | opengl/libs/GLES2_dbg/gl2_api_annotated.in | 426 | ||||
-rw-r--r-- | opengl/libs/GLES2_dbg/include/glesv2_dbg.h | 381 | ||||
-rw-r--r-- | opengl/libs/GLES2_dbg/src/DebuggerMessage.pb.cpp | 1038 | ||||
-rw-r--r-- | opengl/libs/GLES2_dbg/src/DebuggerMessage.pb.h | 844 | ||||
-rw-r--r-- | opengl/libs/GLES2_dbg/src/api.cpp | 5730 | ||||
-rw-r--r-- | opengl/libs/GLES2_dbg/src/header.h | 65 | ||||
-rw-r--r-- | opengl/libs/GLES2_dbg/src/server.cpp | 158 | ||||
-rw-r--r-- | opengl/libs/GLES2_dbg/src/shader.cpp | 66 | ||||
-rw-r--r-- | opengl/libs/GLES2_dbg/src/texture.cpp | 300 |
16 files changed, 9681 insertions, 0 deletions
diff --git a/opengl/libs/GLES2_dbg/Android.mk b/opengl/libs/GLES2_dbg/Android.mk new file mode 100644 index 0000000..c919886 --- /dev/null +++ b/opengl/libs/GLES2_dbg/Android.mk @@ -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) diff --git a/opengl/libs/GLES2_dbg/generate_DebuggerMessage_proto.py b/opengl/libs/GLES2_dbg/generate_DebuggerMessage_proto.py new file mode 100755 index 0000000..a803fae --- /dev/null +++ b/opengl/libs/GLES2_dbg/generate_DebuggerMessage_proto.py @@ -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" ') diff --git a/opengl/libs/GLES2_dbg/generate_GLEnum_java.py b/opengl/libs/GLES2_dbg/generate_GLEnum_java.py new file mode 100755 index 0000000..f927422 --- /dev/null +++ b/opengl/libs/GLES2_dbg/generate_GLEnum_java.py @@ -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} +}""" + + diff --git a/opengl/libs/GLES2_dbg/generate_GLFunction_java.py b/opengl/libs/GLES2_dbg/generate_GLFunction_java.py new file mode 100755 index 0000000..07bbf14 --- /dev/null +++ b/opengl/libs/GLES2_dbg/generate_GLFunction_java.py @@ -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} +}""" + + diff --git a/opengl/libs/GLES2_dbg/generate_MessageFormatter_java.py b/opengl/libs/GLES2_dbg/generate_MessageFormatter_java.py new file mode 100755 index 0000000..81272e6 --- /dev/null +++ b/opengl/libs/GLES2_dbg/generate_MessageFormatter_java.py @@ -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} +} +*/""" + + diff --git a/opengl/libs/GLES2_dbg/generate_api_cpp.py b/opengl/libs/GLES2_dbg/generate_api_cpp.py new file mode 100755 index 0000000..7c0b39e --- /dev/null +++ b/opengl/libs/GLES2_dbg/generate_api_cpp.py @@ -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) + + diff --git a/opengl/libs/GLES2_dbg/generate_debug_in.py b/opengl/libs/GLES2_dbg/generate_debug_in.py new file mode 100755 index 0000000..830bcb9 --- /dev/null +++ b/opengl/libs/GLES2_dbg/generate_debug_in.py @@ -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) + diff --git a/opengl/libs/GLES2_dbg/gl2_api_annotated.in b/opengl/libs/GLES2_dbg/gl2_api_annotated.in new file mode 100644 index 0000000..2296570 --- /dev/null +++ b/opengl/libs/GLES2_dbg/gl2_api_annotated.in @@ -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); +} diff --git a/opengl/libs/GLES2_dbg/include/glesv2_dbg.h b/opengl/libs/GLES2_dbg/include/glesv2_dbg.h new file mode 100644 index 0000000..2d70032 --- /dev/null +++ b/opengl/libs/GLES2_dbg/include/glesv2_dbg.h @@ -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) + + +} diff --git a/opengl/libs/GLES2_dbg/src/DebuggerMessage.pb.cpp b/opengl/libs/GLES2_dbg/src/DebuggerMessage.pb.cpp new file mode 100644 index 0000000..d9c8816 --- /dev/null +++ b/opengl/libs/GLES2_dbg/src/DebuggerMessage.pb.cpp @@ -0,0 +1,1038 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! + +#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION +#include "DebuggerMessage.pb.h" +#include <google/protobuf/stubs/once.h> +#include <google/protobuf/io/coded_stream.h> +#include <google/protobuf/wire_format_lite_inl.h> +// @@protoc_insertion_point(includes) + +namespace GLESv2Debugger { + +void protobuf_ShutdownFile_DebuggerMessage_2eproto() { + delete Message::default_instance_; +} + +void protobuf_AddDesc_DebuggerMessage_2eproto() { + static bool already_here = false; + if (already_here) return; + already_here = true; + GOOGLE_PROTOBUF_VERIFY_VERSION; + + Message::default_instance_ = new Message(); + Message::default_instance_->InitAsDefaultInstance(); + ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_DebuggerMessage_2eproto); +} + +// Force AddDescriptors() to be called at static initialization time. +struct StaticDescriptorInitializer_DebuggerMessage_2eproto { + StaticDescriptorInitializer_DebuggerMessage_2eproto() { + protobuf_AddDesc_DebuggerMessage_2eproto(); + } +} static_descriptor_initializer_DebuggerMessage_2eproto_; + + +// =================================================================== + +bool Message_Function_IsValid(int value) { + switch(value) { + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + case 42: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 85: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 92: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 104: + case 105: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 118: + case 119: + case 120: + case 121: + case 122: + case 123: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 141: + case 142: + case 143: + case 144: + case 145: + return true; + default: + return false; + } +} + +#ifndef _MSC_VER +const Message_Function Message::glActiveTexture; +const Message_Function Message::glAttachShader; +const Message_Function Message::glBindAttribLocation; +const Message_Function Message::glBindBuffer; +const Message_Function Message::glBindFramebuffer; +const Message_Function Message::glBindRenderbuffer; +const Message_Function Message::glBindTexture; +const Message_Function Message::glBlendColor; +const Message_Function Message::glBlendEquation; +const Message_Function Message::glBlendEquationSeparate; +const Message_Function Message::glBlendFunc; +const Message_Function Message::glBlendFuncSeparate; +const Message_Function Message::glBufferData; +const Message_Function Message::glBufferSubData; +const Message_Function Message::glCheckFramebufferStatus; +const Message_Function Message::glClear; +const Message_Function Message::glClearColor; +const Message_Function Message::glClearDepthf; +const Message_Function Message::glClearStencil; +const Message_Function Message::glColorMask; +const Message_Function Message::glCompileShader; +const Message_Function Message::glCompressedTexImage2D; +const Message_Function Message::glCompressedTexSubImage2D; +const Message_Function Message::glCopyTexImage2D; +const Message_Function Message::glCopyTexSubImage2D; +const Message_Function Message::glCreateProgram; +const Message_Function Message::glCreateShader; +const Message_Function Message::glCullFace; +const Message_Function Message::glDeleteBuffers; +const Message_Function Message::glDeleteFramebuffers; +const Message_Function Message::glDeleteProgram; +const Message_Function Message::glDeleteRenderbuffers; +const Message_Function Message::glDeleteShader; +const Message_Function Message::glDeleteTextures; +const Message_Function Message::glDepthFunc; +const Message_Function Message::glDepthMask; +const Message_Function Message::glDepthRangef; +const Message_Function Message::glDetachShader; +const Message_Function Message::glDisable; +const Message_Function Message::glDisableVertexAttribArray; +const Message_Function Message::glDrawArrays; +const Message_Function Message::glDrawElements; +const Message_Function Message::glEnable; +const Message_Function Message::glEnableVertexAttribArray; +const Message_Function Message::glFinish; +const Message_Function Message::glFlush; +const Message_Function Message::glFramebufferRenderbuffer; +const Message_Function Message::glFramebufferTexture2D; +const Message_Function Message::glFrontFace; +const Message_Function Message::glGenBuffers; +const Message_Function Message::glGenerateMipmap; +const Message_Function Message::glGenFramebuffers; +const Message_Function Message::glGenRenderbuffers; +const Message_Function Message::glGenTextures; +const Message_Function Message::glGetActiveAttrib; +const Message_Function Message::glGetActiveUniform; +const Message_Function Message::glGetAttachedShaders; +const Message_Function Message::glGetAttribLocation; +const Message_Function Message::glGetBooleanv; +const Message_Function Message::glGetBufferParameteriv; +const Message_Function Message::glGetError; +const Message_Function Message::glGetFloatv; +const Message_Function Message::glGetFramebufferAttachmentParameteriv; +const Message_Function Message::glGetIntegerv; +const Message_Function Message::glGetProgramiv; +const Message_Function Message::glGetProgramInfoLog; +const Message_Function Message::glGetRenderbufferParameteriv; +const Message_Function Message::glGetShaderiv; +const Message_Function Message::glGetShaderInfoLog; +const Message_Function Message::glGetShaderPrecisionFormat; +const Message_Function Message::glGetShaderSource; +const Message_Function Message::glGetString; +const Message_Function Message::glGetTexParameterfv; +const Message_Function Message::glGetTexParameteriv; +const Message_Function Message::glGetUniformfv; +const Message_Function Message::glGetUniformiv; +const Message_Function Message::glGetUniformLocation; +const Message_Function Message::glGetVertexAttribfv; +const Message_Function Message::glGetVertexAttribiv; +const Message_Function Message::glGetVertexAttribPointerv; +const Message_Function Message::glHint; +const Message_Function Message::glIsBuffer; +const Message_Function Message::glIsEnabled; +const Message_Function Message::glIsFramebuffer; +const Message_Function Message::glIsProgram; +const Message_Function Message::glIsRenderbuffer; +const Message_Function Message::glIsShader; +const Message_Function Message::glIsTexture; +const Message_Function Message::glLineWidth; +const Message_Function Message::glLinkProgram; +const Message_Function Message::glPixelStorei; +const Message_Function Message::glPolygonOffset; +const Message_Function Message::glReadPixels; +const Message_Function Message::glReleaseShaderCompiler; +const Message_Function Message::glRenderbufferStorage; +const Message_Function Message::glSampleCoverage; +const Message_Function Message::glScissor; +const Message_Function Message::glShaderBinary; +const Message_Function Message::glShaderSource; +const Message_Function Message::glStencilFunc; +const Message_Function Message::glStencilFuncSeparate; +const Message_Function Message::glStencilMask; +const Message_Function Message::glStencilMaskSeparate; +const Message_Function Message::glStencilOp; +const Message_Function Message::glStencilOpSeparate; +const Message_Function Message::glTexImage2D; +const Message_Function Message::glTexParameterf; +const Message_Function Message::glTexParameterfv; +const Message_Function Message::glTexParameteri; +const Message_Function Message::glTexParameteriv; +const Message_Function Message::glTexSubImage2D; +const Message_Function Message::glUniform1f; +const Message_Function Message::glUniform1fv; +const Message_Function Message::glUniform1i; +const Message_Function Message::glUniform1iv; +const Message_Function Message::glUniform2f; +const Message_Function Message::glUniform2fv; +const Message_Function Message::glUniform2i; +const Message_Function Message::glUniform2iv; +const Message_Function Message::glUniform3f; +const Message_Function Message::glUniform3fv; +const Message_Function Message::glUniform3i; +const Message_Function Message::glUniform3iv; +const Message_Function Message::glUniform4f; +const Message_Function Message::glUniform4fv; +const Message_Function Message::glUniform4i; +const Message_Function Message::glUniform4iv; +const Message_Function Message::glUniformMatrix2fv; +const Message_Function Message::glUniformMatrix3fv; +const Message_Function Message::glUniformMatrix4fv; +const Message_Function Message::glUseProgram; +const Message_Function Message::glValidateProgram; +const Message_Function Message::glVertexAttrib1f; +const Message_Function Message::glVertexAttrib1fv; +const Message_Function Message::glVertexAttrib2f; +const Message_Function Message::glVertexAttrib2fv; +const Message_Function Message::glVertexAttrib3f; +const Message_Function Message::glVertexAttrib3fv; +const Message_Function Message::glVertexAttrib4f; +const Message_Function Message::glVertexAttrib4fv; +const Message_Function Message::glVertexAttribPointer; +const Message_Function Message::glViewport; +const Message_Function Message::ACK; +const Message_Function Message::NEG; +const Message_Function Message::CONTINUE; +const Message_Function Message::SKIP; +const Message_Function Message::Function_MIN; +const Message_Function Message::Function_MAX; +const int Message::Function_ARRAYSIZE; +#endif // _MSC_VER +const ::std::string Message::_default_data_; +#ifndef _MSC_VER +const int Message::kContextIdFieldNumber; +const int Message::kFunctionFieldNumber; +const int Message::kHasNextMessageFieldNumber; +const int Message::kExpectResponseFieldNumber; +const int Message::kRetFieldNumber; +const int Message::kArg0FieldNumber; +const int Message::kArg1FieldNumber; +const int Message::kArg2FieldNumber; +const int Message::kArg3FieldNumber; +const int Message::kArg4FieldNumber; +const int Message::kArg5FieldNumber; +const int Message::kArg6FieldNumber; +const int Message::kArg7FieldNumber; +const int Message::kArg8FieldNumber; +const int Message::kDataFieldNumber; +const int Message::kTimeFieldNumber; +#endif // !_MSC_VER + +Message::Message() + : ::google::protobuf::MessageLite() { + SharedCtor(); +} + +void Message::InitAsDefaultInstance() { +} + +Message::Message(const Message& from) + : ::google::protobuf::MessageLite() { + SharedCtor(); + MergeFrom(from); +} + +void Message::SharedCtor() { + _cached_size_ = 0; + context_id_ = 0; + function_ = 143; + has_next_message_ = false; + expect_response_ = false; + ret_ = 0; + arg0_ = 0; + arg1_ = 0; + arg2_ = 0; + arg3_ = 0; + arg4_ = 0; + arg5_ = 0; + arg6_ = 0; + arg7_ = 0; + arg8_ = 0; + data_ = const_cast< ::std::string*>(&_default_data_); + time_ = 0; + ::memset(_has_bits_, 0, sizeof(_has_bits_)); +} + +Message::~Message() { + SharedDtor(); +} + +void Message::SharedDtor() { + if (data_ != &_default_data_) { + delete data_; + } + if (this != default_instance_) { + } +} + +void Message::SetCachedSize(int size) const { + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN(); + _cached_size_ = size; + GOOGLE_SAFE_CONCURRENT_WRITES_END(); +} +const Message& Message::default_instance() { + if (default_instance_ == NULL) protobuf_AddDesc_DebuggerMessage_2eproto(); return *default_instance_; +} + +Message* Message::default_instance_ = NULL; + +Message* Message::New() const { + return new Message; +} + +void Message::Clear() { + if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) { + context_id_ = 0; + function_ = 143; + has_next_message_ = false; + expect_response_ = false; + ret_ = 0; + arg0_ = 0; + arg1_ = 0; + arg2_ = 0; + } + if (_has_bits_[8 / 32] & (0xffu << (8 % 32))) { + arg3_ = 0; + arg4_ = 0; + arg5_ = 0; + arg6_ = 0; + arg7_ = 0; + arg8_ = 0; + if (_has_bit(14)) { + if (data_ != &_default_data_) { + data_->clear(); + } + } + time_ = 0; + } + ::memset(_has_bits_, 0, sizeof(_has_bits_)); +} + +bool Message::MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) { +#define DO_(EXPRESSION) if (!(EXPRESSION)) return false + ::google::protobuf::uint32 tag; + while ((tag = input->ReadTag()) != 0) { + switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) { + // required int32 context_id = 1; + case 1: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>( + input, &context_id_))); + _set_bit(0); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(16)) goto parse_function; + break; + } + + // required .GLESv2Debugger.Message.Function function = 2 [default = NEG]; + case 2: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + parse_function: + int value; + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>( + input, &value))); + if (::GLESv2Debugger::Message_Function_IsValid(value)) { + set_function(static_cast< ::GLESv2Debugger::Message_Function >(value)); + } + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(24)) goto parse_has_next_message; + break; + } + + // required bool has_next_message = 3; + case 3: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + parse_has_next_message: + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>( + input, &has_next_message_))); + _set_bit(2); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(32)) goto parse_expect_response; + break; + } + + // required bool expect_response = 4; + case 4: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + parse_expect_response: + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>( + input, &expect_response_))); + _set_bit(3); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(40)) goto parse_ret; + break; + } + + // optional int32 ret = 5; + case 5: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + parse_ret: + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>( + input, &ret_))); + _set_bit(4); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(48)) goto parse_arg0; + break; + } + + // optional int32 arg0 = 6; + case 6: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + parse_arg0: + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>( + input, &arg0_))); + _set_bit(5); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(56)) goto parse_arg1; + break; + } + + // optional int32 arg1 = 7; + case 7: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + parse_arg1: + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>( + input, &arg1_))); + _set_bit(6); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(64)) goto parse_arg2; + break; + } + + // optional int32 arg2 = 8; + case 8: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + parse_arg2: + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>( + input, &arg2_))); + _set_bit(7); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(72)) goto parse_arg3; + break; + } + + // optional int32 arg3 = 9; + case 9: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + parse_arg3: + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>( + input, &arg3_))); + _set_bit(8); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(82)) goto parse_data; + break; + } + + // optional bytes data = 10; + case 10: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) { + parse_data: + DO_(::google::protobuf::internal::WireFormatLite::ReadBytes( + input, this->mutable_data())); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(93)) goto parse_time; + break; + } + + // optional float time = 11; + case 11: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED32) { + parse_time: + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>( + input, &time_))); + _set_bit(15); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(128)) goto parse_arg4; + break; + } + + // optional int32 arg4 = 16; + case 16: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + parse_arg4: + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>( + input, &arg4_))); + _set_bit(9); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(136)) goto parse_arg5; + break; + } + + // optional int32 arg5 = 17; + case 17: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + parse_arg5: + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>( + input, &arg5_))); + _set_bit(10); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(144)) goto parse_arg6; + break; + } + + // optional int32 arg6 = 18; + case 18: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + parse_arg6: + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>( + input, &arg6_))); + _set_bit(11); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(152)) goto parse_arg7; + break; + } + + // optional int32 arg7 = 19; + case 19: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + parse_arg7: + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>( + input, &arg7_))); + _set_bit(12); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(160)) goto parse_arg8; + break; + } + + // optional int32 arg8 = 20; + case 20: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + parse_arg8: + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>( + input, &arg8_))); + _set_bit(13); + } else { + goto handle_uninterpreted; + } + if (input->ExpectAtEnd()) return true; + break; + } + + default: { + handle_uninterpreted: + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) { + return true; + } + DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag)); + break; + } + } + } + return true; +#undef DO_ +} + +void Message::SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const { + // required int32 context_id = 1; + if (_has_bit(0)) { + ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->context_id(), output); + } + + // required .GLESv2Debugger.Message.Function function = 2 [default = NEG]; + if (_has_bit(1)) { + ::google::protobuf::internal::WireFormatLite::WriteEnum( + 2, this->function(), output); + } + + // required bool has_next_message = 3; + if (_has_bit(2)) { + ::google::protobuf::internal::WireFormatLite::WriteBool(3, this->has_next_message(), output); + } + + // required bool expect_response = 4; + if (_has_bit(3)) { + ::google::protobuf::internal::WireFormatLite::WriteBool(4, this->expect_response(), output); + } + + // optional int32 ret = 5; + if (_has_bit(4)) { + ::google::protobuf::internal::WireFormatLite::WriteInt32(5, this->ret(), output); + } + + // optional int32 arg0 = 6; + if (_has_bit(5)) { + ::google::protobuf::internal::WireFormatLite::WriteInt32(6, this->arg0(), output); + } + + // optional int32 arg1 = 7; + if (_has_bit(6)) { + ::google::protobuf::internal::WireFormatLite::WriteInt32(7, this->arg1(), output); + } + + // optional int32 arg2 = 8; + if (_has_bit(7)) { + ::google::protobuf::internal::WireFormatLite::WriteInt32(8, this->arg2(), output); + } + + // optional int32 arg3 = 9; + if (_has_bit(8)) { + ::google::protobuf::internal::WireFormatLite::WriteInt32(9, this->arg3(), output); + } + + // optional bytes data = 10; + if (_has_bit(14)) { + ::google::protobuf::internal::WireFormatLite::WriteBytes( + 10, this->data(), output); + } + + // optional float time = 11; + if (_has_bit(15)) { + ::google::protobuf::internal::WireFormatLite::WriteFloat(11, this->time(), output); + } + + // optional int32 arg4 = 16; + if (_has_bit(9)) { + ::google::protobuf::internal::WireFormatLite::WriteInt32(16, this->arg4(), output); + } + + // optional int32 arg5 = 17; + if (_has_bit(10)) { + ::google::protobuf::internal::WireFormatLite::WriteInt32(17, this->arg5(), output); + } + + // optional int32 arg6 = 18; + if (_has_bit(11)) { + ::google::protobuf::internal::WireFormatLite::WriteInt32(18, this->arg6(), output); + } + + // optional int32 arg7 = 19; + if (_has_bit(12)) { + ::google::protobuf::internal::WireFormatLite::WriteInt32(19, this->arg7(), output); + } + + // optional int32 arg8 = 20; + if (_has_bit(13)) { + ::google::protobuf::internal::WireFormatLite::WriteInt32(20, this->arg8(), output); + } + +} + +int Message::ByteSize() const { + int total_size = 0; + + if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) { + // required int32 context_id = 1; + if (has_context_id()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::Int32Size( + this->context_id()); + } + + // required .GLESv2Debugger.Message.Function function = 2 [default = NEG]; + if (has_function()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::EnumSize(this->function()); + } + + // required bool has_next_message = 3; + if (has_has_next_message()) { + total_size += 1 + 1; + } + + // required bool expect_response = 4; + if (has_expect_response()) { + total_size += 1 + 1; + } + + // optional int32 ret = 5; + if (has_ret()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::Int32Size( + this->ret()); + } + + // optional int32 arg0 = 6; + if (has_arg0()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::Int32Size( + this->arg0()); + } + + // optional int32 arg1 = 7; + if (has_arg1()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::Int32Size( + this->arg1()); + } + + // optional int32 arg2 = 8; + if (has_arg2()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::Int32Size( + this->arg2()); + } + + } + if (_has_bits_[8 / 32] & (0xffu << (8 % 32))) { + // optional int32 arg3 = 9; + if (has_arg3()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::Int32Size( + this->arg3()); + } + + // optional int32 arg4 = 16; + if (has_arg4()) { + total_size += 2 + + ::google::protobuf::internal::WireFormatLite::Int32Size( + this->arg4()); + } + + // optional int32 arg5 = 17; + if (has_arg5()) { + total_size += 2 + + ::google::protobuf::internal::WireFormatLite::Int32Size( + this->arg5()); + } + + // optional int32 arg6 = 18; + if (has_arg6()) { + total_size += 2 + + ::google::protobuf::internal::WireFormatLite::Int32Size( + this->arg6()); + } + + // optional int32 arg7 = 19; + if (has_arg7()) { + total_size += 2 + + ::google::protobuf::internal::WireFormatLite::Int32Size( + this->arg7()); + } + + // optional int32 arg8 = 20; + if (has_arg8()) { + total_size += 2 + + ::google::protobuf::internal::WireFormatLite::Int32Size( + this->arg8()); + } + + // optional bytes data = 10; + if (has_data()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::BytesSize( + this->data()); + } + + // optional float time = 11; + if (has_time()) { + total_size += 1 + 4; + } + + } + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN(); + _cached_size_ = total_size; + GOOGLE_SAFE_CONCURRENT_WRITES_END(); + return total_size; +} + +void Message::CheckTypeAndMergeFrom( + const ::google::protobuf::MessageLite& from) { + MergeFrom(*::google::protobuf::down_cast<const Message*>(&from)); +} + +void Message::MergeFrom(const Message& from) { + GOOGLE_CHECK_NE(&from, this); + if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) { + if (from._has_bit(0)) { + set_context_id(from.context_id()); + } + if (from._has_bit(1)) { + set_function(from.function()); + } + if (from._has_bit(2)) { + set_has_next_message(from.has_next_message()); + } + if (from._has_bit(3)) { + set_expect_response(from.expect_response()); + } + if (from._has_bit(4)) { + set_ret(from.ret()); + } + if (from._has_bit(5)) { + set_arg0(from.arg0()); + } + if (from._has_bit(6)) { + set_arg1(from.arg1()); + } + if (from._has_bit(7)) { + set_arg2(from.arg2()); + } + } + if (from._has_bits_[8 / 32] & (0xffu << (8 % 32))) { + if (from._has_bit(8)) { + set_arg3(from.arg3()); + } + if (from._has_bit(9)) { + set_arg4(from.arg4()); + } + if (from._has_bit(10)) { + set_arg5(from.arg5()); + } + if (from._has_bit(11)) { + set_arg6(from.arg6()); + } + if (from._has_bit(12)) { + set_arg7(from.arg7()); + } + if (from._has_bit(13)) { + set_arg8(from.arg8()); + } + if (from._has_bit(14)) { + set_data(from.data()); + } + if (from._has_bit(15)) { + set_time(from.time()); + } + } +} + +void Message::CopyFrom(const Message& from) { + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool Message::IsInitialized() const { + if ((_has_bits_[0] & 0x0000000f) != 0x0000000f) return false; + + return true; +} + +void Message::Swap(Message* other) { + if (other != this) { + std::swap(context_id_, other->context_id_); + std::swap(function_, other->function_); + std::swap(has_next_message_, other->has_next_message_); + std::swap(expect_response_, other->expect_response_); + std::swap(ret_, other->ret_); + std::swap(arg0_, other->arg0_); + std::swap(arg1_, other->arg1_); + std::swap(arg2_, other->arg2_); + std::swap(arg3_, other->arg3_); + std::swap(arg4_, other->arg4_); + std::swap(arg5_, other->arg5_); + std::swap(arg6_, other->arg6_); + std::swap(arg7_, other->arg7_); + std::swap(arg8_, other->arg8_); + std::swap(data_, other->data_); + std::swap(time_, other->time_); + std::swap(_has_bits_[0], other->_has_bits_[0]); + std::swap(_cached_size_, other->_cached_size_); + } +} + +::std::string Message::GetTypeName() const { + return "GLESv2Debugger.Message"; +} + + +// @@protoc_insertion_point(namespace_scope) + +} // namespace GLESv2Debugger + +// @@protoc_insertion_point(global_scope) diff --git a/opengl/libs/GLES2_dbg/src/DebuggerMessage.pb.h b/opengl/libs/GLES2_dbg/src/DebuggerMessage.pb.h new file mode 100644 index 0000000..e9b4142 --- /dev/null +++ b/opengl/libs/GLES2_dbg/src/DebuggerMessage.pb.h @@ -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 diff --git a/opengl/libs/GLES2_dbg/src/api.cpp b/opengl/libs/GLES2_dbg/src/api.cpp new file mode 100644 index 0000000..b2b8ec0 --- /dev/null +++ b/opengl/libs/GLES2_dbg/src/api.cpp @@ -0,0 +1,5730 @@ +// auto generated by generate_api_cpp.py + +#include "src/header.h" + +template<typename T> static int ToInt(const T & t) { STATIC_ASSERT(sizeof(T) == sizeof(int), bitcast); return (int &)t; } + +template<typename T> static T FromInt(const int & t) { STATIC_ASSERT(sizeof(T) == sizeof(int), bitcast); return (T &)t; } + +void Debug_glActiveTexture(GLenum texture) +{ + 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_glActiveTexture); + msg.set_arg0(texture); + 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->glActiveTexture(texture); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glActiveTexture); + 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; + } + } +} + +void Debug_glAttachShader(GLuint program, GLuint shader) +{ + 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_glAttachShader); + msg.set_arg0(program); + msg.set_arg1(shader); + 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->glAttachShader(program, shader); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glAttachShader); + 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; + } + } +} + +void Debug_glBindAttribLocation(GLuint program, GLuint index, const GLchar* name) +{ + 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_glBindAttribLocation); + msg.set_arg0(program); + msg.set_arg1(index); + msg.set_arg2(ToInt(name)); + std::string data; + // FIXME: check for pointer usage + data.reserve(strlen(name) * sizeof(GLchar)); + for (unsigned i = 0; i < (strlen(name)); i++) + data.append((const char *)(name + i), sizeof(*name)); + 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->glBindAttribLocation(program, index, name); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glBindAttribLocation); + 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; + } + } +} + +void Debug_glBindBuffer(GLenum target, GLuint buffer) +{ + 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_glBindBuffer); + msg.set_arg0(target); + msg.set_arg1(buffer); + 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->glBindBuffer(target, buffer); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glBindBuffer); + 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; + } + } +} + +void Debug_glBindFramebuffer(GLenum target, GLuint framebuffer) +{ + 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_glBindFramebuffer); + msg.set_arg0(target); + msg.set_arg1(framebuffer); + 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->glBindFramebuffer(target, framebuffer); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glBindFramebuffer); + 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; + } + } +} + +void Debug_glBindRenderbuffer(GLenum target, GLuint renderbuffer) +{ + 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_glBindRenderbuffer); + msg.set_arg0(target); + msg.set_arg1(renderbuffer); + 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->glBindRenderbuffer(target, renderbuffer); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glBindRenderbuffer); + 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; + } + } +} + +void Debug_glBindTexture(GLenum target, GLuint texture) +{ + 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_glBindTexture); + msg.set_arg0(target); + msg.set_arg1(texture); + 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->glBindTexture(target, texture); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glBindTexture); + 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; + } + } +} + +void Debug_glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) +{ + 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_glBlendColor); + msg.set_arg0(ToInt(red)); + msg.set_arg1(ToInt(green)); + msg.set_arg2(ToInt(blue)); + msg.set_arg3(ToInt(alpha)); + 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->glBlendColor(red, green, blue, alpha); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glBlendColor); + 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; + } + } +} + +void Debug_glBlendEquation( GLenum mode ) +{ + 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_glBlendEquation); + msg.set_arg0(mode); + 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->glBlendEquation(mode); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glBlendEquation); + 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; + } + } +} + +void Debug_glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha) +{ + 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_glBlendEquationSeparate); + msg.set_arg0(modeRGB); + msg.set_arg1(modeAlpha); + 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->glBlendEquationSeparate(modeRGB, modeAlpha); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glBlendEquationSeparate); + 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; + } + } +} + +void Debug_glBlendFunc(GLenum sfactor, GLenum dfactor) +{ + 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_glBlendFunc); + msg.set_arg0(sfactor); + msg.set_arg1(dfactor); + 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->glBlendFunc(sfactor, dfactor); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glBlendFunc); + 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; + } + } +} + +void Debug_glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) +{ + 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_glBlendFuncSeparate); + msg.set_arg0(srcRGB); + msg.set_arg1(dstRGB); + msg.set_arg2(srcAlpha); + msg.set_arg3(dstAlpha); + 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->glBlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glBlendFuncSeparate); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glBufferData(GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage) +{ + 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_glBufferData); + msg.set_arg0(target); + msg.set_arg1(size); + msg.set_arg2(ToInt(data)); + msg.set_arg3(usage); + // FIXME: check for pointer usage + 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->glBufferData(target, size, data, usage); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glBufferData); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data) +{ + 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_glBufferSubData); + msg.set_arg0(target); + msg.set_arg1(offset); + msg.set_arg2(size); + msg.set_arg3(ToInt(data)); + // FIXME: check for pointer usage + 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->glBufferSubData(target, offset, size, data); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glBufferSubData); + 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; + } + } +} + +GLenum Debug_glCheckFramebufferStatus(GLenum target) +{ + GLenum ret = 0; + 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_glCheckFramebufferStatus); + msg.set_arg0(target); + 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: + ret = _c->glCheckFramebufferStatus(target); + msg.set_ret(ToInt(ret)); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glCheckFramebufferStatus); + 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: + if (cmd.has_ret()) + ret = FromInt<GLenum>(cmd.ret()); + return ret; + default: + ASSERT(0); //GenerateCall(msg, cmd); + break; + } + } +} + +void Debug_glClear(GLbitfield mask) +{ + 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_glClear); + msg.set_arg0(mask); + 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->glClear(mask); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glClear); + 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; + } + } +} + +void Debug_glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) +{ + 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_glClearColor); + msg.set_arg0(ToInt(red)); + msg.set_arg1(ToInt(green)); + msg.set_arg2(ToInt(blue)); + msg.set_arg3(ToInt(alpha)); + 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->glClearColor(red, green, blue, alpha); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glClearColor); + 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; + } + } +} + +void Debug_glClearDepthf(GLclampf depth) +{ + 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_glClearDepthf); + msg.set_arg0(ToInt(depth)); + 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->glClearDepthf(depth); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glClearDepthf); + 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; + } + } +} + +void Debug_glClearStencil(GLint s) +{ + 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_glClearStencil); + msg.set_arg0(s); + 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->glClearStencil(s); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glClearStencil); + 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; + } + } +} + +void Debug_glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) +{ + 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_glColorMask); + msg.set_arg0(red); + msg.set_arg1(green); + msg.set_arg2(blue); + msg.set_arg3(alpha); + 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->glColorMask(red, green, blue, alpha); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glColorMask); + 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; + } + } +} + +void Debug_glCompileShader(GLuint shader) +{ + 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_glCompileShader); + msg.set_arg0(shader); + 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->glCompileShader(shader); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glCompileShader); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data) +{ + 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_glCompressedTexImage2D); + 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(imageSize); + msg.set_arg7(ToInt(data)); + // FIXME: check for pointer usage + 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->glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glCompressedTexImage2D); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data) +{ + 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_glCompressedTexSubImage2D); + 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(imageSize); + msg.set_arg8(ToInt(data)); + // FIXME: check for pointer usage + 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->glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glCompressedTexSubImage2D); + 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; + } + } +} + +void Debug_glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) +{ + 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_glCopyTexImage2D); + msg.set_arg0(target); + msg.set_arg1(level); + msg.set_arg2(internalformat); + msg.set_arg3(x); + msg.set_arg4(y); + msg.set_arg5(width); + msg.set_arg6(height); + msg.set_arg7(border); + 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->glCopyTexImage2D(target, level, internalformat, x, y, width, height, border); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glCopyTexImage2D); + 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; + } + } +} + +void Debug_glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) +{ + 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_glCopyTexSubImage2D); + msg.set_arg0(target); + msg.set_arg1(level); + msg.set_arg2(xoffset); + msg.set_arg3(yoffset); + msg.set_arg4(x); + msg.set_arg5(y); + msg.set_arg6(width); + msg.set_arg7(height); + 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->glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glCopyTexSubImage2D); + 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; + } + } +} + +GLuint Debug_glCreateProgram(void) +{ + GLuint ret = 0; + 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_glCreateProgram); + 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: + ret = _c->glCreateProgram(); + msg.set_ret(ToInt(ret)); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glCreateProgram); + 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: + if (cmd.has_ret()) + ret = FromInt<GLuint>(cmd.ret()); + return ret; + default: + ASSERT(0); //GenerateCall(msg, cmd); + break; + } + } +} + +GLuint Debug_glCreateShader(GLenum type) +{ + GLuint ret = 0; + 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_glCreateShader); + msg.set_arg0(type); + 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: + ret = _c->glCreateShader(type); + msg.set_ret(ToInt(ret)); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glCreateShader); + 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: + if (cmd.has_ret()) + ret = FromInt<GLuint>(cmd.ret()); + return ret; + default: + ASSERT(0); //GenerateCall(msg, cmd); + break; + } + } +} + +void Debug_glCullFace(GLenum mode) +{ + 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_glCullFace); + msg.set_arg0(mode); + 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->glCullFace(mode); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glCullFace); + 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; + } + } +} + +void Debug_glDeleteBuffers(GLsizei n, const GLuint* buffers) +{ + 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_glDeleteBuffers); + msg.set_arg0(n); + msg.set_arg1(ToInt(buffers)); + std::string data; + // FIXME: check for pointer usage + data.reserve(n * sizeof(GLuint)); + for (unsigned i = 0; i < (n); i++) + data.append((const char *)(buffers + i), sizeof(*buffers)); + 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->glDeleteBuffers(n, buffers); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glDeleteBuffers); + 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; + } + } +} + +void Debug_glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers) +{ + 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_glDeleteFramebuffers); + msg.set_arg0(n); + msg.set_arg1(ToInt(framebuffers)); + std::string data; + // FIXME: check for pointer usage + data.reserve(n * sizeof(GLuint)); + for (unsigned i = 0; i < (n); i++) + data.append((const char *)(framebuffers + i), sizeof(*framebuffers)); + 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->glDeleteFramebuffers(n, framebuffers); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glDeleteFramebuffers); + 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; + } + } +} + +void Debug_glDeleteProgram(GLuint program) +{ + 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_glDeleteProgram); + msg.set_arg0(program); + 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->glDeleteProgram(program); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glDeleteProgram); + 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; + } + } +} + +void Debug_glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers) +{ + 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_glDeleteRenderbuffers); + msg.set_arg0(n); + msg.set_arg1(ToInt(renderbuffers)); + std::string data; + // FIXME: check for pointer usage + data.reserve(n * sizeof(GLuint)); + for (unsigned i = 0; i < (n); i++) + data.append((const char *)(renderbuffers + i), sizeof(*renderbuffers)); + 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->glDeleteRenderbuffers(n, renderbuffers); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glDeleteRenderbuffers); + 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; + } + } +} + +void Debug_glDeleteShader(GLuint shader) +{ + 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_glDeleteShader); + msg.set_arg0(shader); + 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->glDeleteShader(shader); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glDeleteShader); + 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; + } + } +} + +void Debug_glDeleteTextures(GLsizei n, const GLuint* textures) +{ + 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_glDeleteTextures); + msg.set_arg0(n); + msg.set_arg1(ToInt(textures)); + std::string data; + // FIXME: check for pointer usage + data.reserve(n * sizeof(GLuint)); + for (unsigned i = 0; i < (n); i++) + data.append((const char *)(textures + i), sizeof(*textures)); + 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->glDeleteTextures(n, textures); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glDeleteTextures); + 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; + } + } +} + +void Debug_glDepthFunc(GLenum func) +{ + 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_glDepthFunc); + msg.set_arg0(func); + 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->glDepthFunc(func); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glDepthFunc); + 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; + } + } +} + +void Debug_glDepthMask(GLboolean flag) +{ + 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_glDepthMask); + msg.set_arg0(flag); + 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->glDepthMask(flag); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glDepthMask); + 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; + } + } +} + +void Debug_glDepthRangef(GLclampf zNear, GLclampf zFar) +{ + 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_glDepthRangef); + msg.set_arg0(ToInt(zNear)); + msg.set_arg1(ToInt(zFar)); + 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->glDepthRangef(zNear, zFar); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glDepthRangef); + 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; + } + } +} + +void Debug_glDetachShader(GLuint program, GLuint shader) +{ + 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_glDetachShader); + msg.set_arg0(program); + msg.set_arg1(shader); + 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->glDetachShader(program, shader); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glDetachShader); + 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; + } + } +} + +void Debug_glDisable(GLenum cap) +{ + 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_glDisable); + msg.set_arg0(cap); + 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->glDisable(cap); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glDisable); + 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; + } + } +} + +void Debug_glDisableVertexAttribArray(GLuint index) +{ + 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_glDisableVertexAttribArray); + msg.set_arg0(index); + 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->glDisableVertexAttribArray(index); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glDisableVertexAttribArray); + 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; + } + } +} + +void Debug_glDrawArrays(GLenum mode, GLint first, GLsizei count) +{ + 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_glDrawArrays); + msg.set_arg0(mode); + msg.set_arg1(first); + msg.set_arg2(count); + 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->glDrawArrays(mode, first, count); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glDrawArrays); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices) +{ + 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_glDrawElements); + msg.set_arg0(mode); + msg.set_arg1(count); + msg.set_arg2(type); + msg.set_arg3(ToInt(indices)); + // FIXME: check for pointer usage + 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->glDrawElements(mode, count, type, indices); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glDrawElements); + 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; + } + } +} + +void Debug_glEnable(GLenum cap) +{ + 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_glEnable); + msg.set_arg0(cap); + 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->glEnable(cap); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glEnable); + 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; + } + } +} + +void Debug_glEnableVertexAttribArray(GLuint index) +{ + 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_glEnableVertexAttribArray); + msg.set_arg0(index); + 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->glEnableVertexAttribArray(index); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glEnableVertexAttribArray); + 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; + } + } +} + +void Debug_glFinish(void) +{ + 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_glFinish); + 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->glFinish(); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glFinish); + 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; + } + } +} + +void Debug_glFlush(void) +{ + 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_glFlush); + 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->glFlush(); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glFlush); + 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; + } + } +} + +void Debug_glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) +{ + 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_glFramebufferRenderbuffer); + msg.set_arg0(target); + msg.set_arg1(attachment); + msg.set_arg2(renderbuffertarget); + msg.set_arg3(renderbuffer); + 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->glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glFramebufferRenderbuffer); + 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; + } + } +} + +void Debug_glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) +{ + 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_glFramebufferTexture2D); + msg.set_arg0(target); + msg.set_arg1(attachment); + msg.set_arg2(textarget); + msg.set_arg3(texture); + msg.set_arg4(level); + 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->glFramebufferTexture2D(target, attachment, textarget, texture, level); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glFramebufferTexture2D); + 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; + } + } +} + +void Debug_glFrontFace(GLenum mode) +{ + 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_glFrontFace); + msg.set_arg0(mode); + 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->glFrontFace(mode); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glFrontFace); + 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; + } + } +} + +void Debug_glGenBuffers(GLsizei n, GLuint* buffers) +{ + 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_glGenBuffers); + msg.set_arg0(n); + msg.set_arg1(ToInt(buffers)); + std::string data; + // FIXME: check for pointer usage + 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->glGenBuffers(n, buffers); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGenBuffers); + msg.set_has_next_message(false); + msg.set_expect_response(expectResponse); + data.reserve(n * sizeof(GLuint)); + for (unsigned i = 0; i < (n); i++) + data.append((const char *)(buffers + i), sizeof(*buffers)); + msg.set_data(data); + 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 Debug_glGenerateMipmap(GLenum target) +{ + 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_glGenerateMipmap); + msg.set_arg0(target); + 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->glGenerateMipmap(target); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGenerateMipmap); + 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; + } + } +} + +void Debug_glGenFramebuffers(GLsizei n, GLuint* framebuffers) +{ + 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_glGenFramebuffers); + msg.set_arg0(n); + msg.set_arg1(ToInt(framebuffers)); + std::string data; + // FIXME: check for pointer usage + 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->glGenFramebuffers(n, framebuffers); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGenFramebuffers); + msg.set_has_next_message(false); + msg.set_expect_response(expectResponse); + data.reserve(n * sizeof(GLuint)); + for (unsigned i = 0; i < (n); i++) + data.append((const char *)(framebuffers + i), sizeof(*framebuffers)); + msg.set_data(data); + 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 Debug_glGenRenderbuffers(GLsizei n, GLuint* renderbuffers) +{ + 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_glGenRenderbuffers); + msg.set_arg0(n); + msg.set_arg1(ToInt(renderbuffers)); + std::string data; + // FIXME: check for pointer usage + 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->glGenRenderbuffers(n, renderbuffers); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGenRenderbuffers); + msg.set_has_next_message(false); + msg.set_expect_response(expectResponse); + data.reserve(n * sizeof(GLuint)); + for (unsigned i = 0; i < (n); i++) + data.append((const char *)(renderbuffers + i), sizeof(*renderbuffers)); + msg.set_data(data); + 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 Debug_glGenTextures(GLsizei n, GLuint* textures) +{ + 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_glGenTextures); + msg.set_arg0(n); + msg.set_arg1(ToInt(textures)); + std::string data; + // FIXME: check for pointer usage + 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->glGenTextures(n, textures); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGenTextures); + msg.set_has_next_message(false); + msg.set_expect_response(expectResponse); + data.reserve(n * sizeof(GLuint)); + for (unsigned i = 0; i < (n); i++) + data.append((const char *)(textures + i), sizeof(*textures)); + msg.set_data(data); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name) +{ + 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_glGetActiveAttrib); + msg.set_arg0(program); + msg.set_arg1(index); + msg.set_arg2(bufsize); + msg.set_arg3(ToInt(length)); + msg.set_arg4(ToInt(size)); + msg.set_arg5(ToInt(type)); + msg.set_arg6(ToInt(name)); + std::string data; + // FIXME: check for pointer usage + data.reserve(strlen(name) * sizeof(GLchar)); + for (unsigned i = 0; i < (strlen(name)); i++) + data.append((const char *)(name + i), sizeof(*name)); + 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->glGetActiveAttrib(program, index, bufsize, length, size, type, name); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGetActiveAttrib); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name) +{ + 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_glGetActiveUniform); + msg.set_arg0(program); + msg.set_arg1(index); + msg.set_arg2(bufsize); + msg.set_arg3(ToInt(length)); + msg.set_arg4(ToInt(size)); + msg.set_arg5(ToInt(type)); + msg.set_arg6(ToInt(name)); + std::string data; + // FIXME: check for pointer usage + data.reserve(strlen(name) * sizeof(GLchar)); + for (unsigned i = 0; i < (strlen(name)); i++) + data.append((const char *)(name + i), sizeof(*name)); + 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->glGetActiveUniform(program, index, bufsize, length, size, type, name); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGetActiveUniform); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders) +{ + 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_glGetAttachedShaders); + msg.set_arg0(program); + msg.set_arg1(maxcount); + msg.set_arg2(ToInt(count)); + msg.set_arg3(ToInt(shaders)); + // FIXME: check for pointer usage + 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->glGetAttachedShaders(program, maxcount, count, shaders); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGetAttachedShaders); + 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; + } + } +} + +int Debug_glGetAttribLocation(GLuint program, const GLchar* name) +{ + int ret = 0; + 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_glGetAttribLocation); + msg.set_arg0(program); + msg.set_arg1(ToInt(name)); + std::string data; + // FIXME: check for pointer usage + data.reserve(strlen(name) * sizeof(GLchar)); + for (unsigned i = 0; i < (strlen(name)); i++) + data.append((const char *)(name + i), sizeof(*name)); + 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: + ret = _c->glGetAttribLocation(program, name); + msg.set_ret(ToInt(ret)); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGetAttribLocation); + 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: + if (cmd.has_ret()) + ret = FromInt<int>(cmd.ret()); + return ret; + default: + ASSERT(0); //GenerateCall(msg, cmd); + break; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glGetBooleanv(GLenum pname, GLboolean* params) +{ + 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_glGetBooleanv); + msg.set_arg0(pname); + msg.set_arg1(ToInt(params)); + // FIXME: check for pointer usage + 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->glGetBooleanv(pname, params); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGetBooleanv); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params) +{ + 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_glGetBufferParameteriv); + msg.set_arg0(target); + msg.set_arg1(pname); + msg.set_arg2(ToInt(params)); + // FIXME: check for pointer usage + 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->glGetBufferParameteriv(target, pname, params); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGetBufferParameteriv); + 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; + } + } +} + +GLenum Debug_glGetError(void) +{ + GLenum ret = 0; + 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_glGetError); + 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: + ret = _c->glGetError(); + msg.set_ret(ToInt(ret)); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGetError); + 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: + if (cmd.has_ret()) + ret = FromInt<GLenum>(cmd.ret()); + return ret; + default: + ASSERT(0); //GenerateCall(msg, cmd); + break; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glGetFloatv(GLenum pname, GLfloat* params) +{ + 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_glGetFloatv); + msg.set_arg0(pname); + msg.set_arg1(ToInt(params)); + // FIXME: check for pointer usage + 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->glGetFloatv(pname, params); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGetFloatv); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params) +{ + 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_glGetFramebufferAttachmentParameteriv); + msg.set_arg0(target); + msg.set_arg1(attachment); + msg.set_arg2(pname); + msg.set_arg3(ToInt(params)); + // FIXME: check for pointer usage + 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->glGetFramebufferAttachmentParameteriv(target, attachment, pname, params); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGetFramebufferAttachmentParameteriv); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glGetIntegerv(GLenum pname, GLint* params) +{ + 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_glGetIntegerv); + msg.set_arg0(pname); + msg.set_arg1(ToInt(params)); + // FIXME: check for pointer usage + 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->glGetIntegerv(pname, params); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGetIntegerv); + 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; + } + } +} + +void Debug_glGetProgramiv(GLuint program, GLenum pname, GLint* params) +{ + 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_glGetProgramiv); + msg.set_arg0(program); + msg.set_arg1(pname); + msg.set_arg2(ToInt(params)); + std::string data; + // FIXME: check for pointer usage + 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->glGetProgramiv(program, pname, params); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGetProgramiv); + msg.set_has_next_message(false); + msg.set_expect_response(expectResponse); + data.reserve(1 * sizeof(GLint)); + for (unsigned i = 0; i < (1); i++) + data.append((const char *)(params + i), sizeof(*params)); + msg.set_data(data); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog) +{ + 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_glGetProgramInfoLog); + msg.set_arg0(program); + msg.set_arg1(bufsize); + msg.set_arg2(ToInt(length)); + msg.set_arg3(ToInt(infolog)); + std::string data; + // FIXME: check for pointer usage + 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->glGetProgramInfoLog(program, bufsize, length, infolog); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGetProgramInfoLog); + msg.set_has_next_message(false); + msg.set_expect_response(expectResponse); + data.reserve(strlen(infolog) * sizeof(GLchar)); + for (unsigned i = 0; i < (strlen(infolog)); i++) + data.append((const char *)(infolog + i), sizeof(*infolog)); + msg.set_data(data); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params) +{ + 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_glGetRenderbufferParameteriv); + msg.set_arg0(target); + msg.set_arg1(pname); + msg.set_arg2(ToInt(params)); + // FIXME: check for pointer usage + 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->glGetRenderbufferParameteriv(target, pname, params); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGetRenderbufferParameteriv); + 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; + } + } +} + +void Debug_glGetShaderiv(GLuint shader, GLenum pname, GLint* params) +{ + 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_glGetShaderiv); + msg.set_arg0(shader); + msg.set_arg1(pname); + msg.set_arg2(ToInt(params)); + std::string data; + // FIXME: check for pointer usage + 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->glGetShaderiv(shader, pname, params); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGetShaderiv); + msg.set_has_next_message(false); + msg.set_expect_response(expectResponse); + data.reserve(1 * sizeof(GLint)); + for (unsigned i = 0; i < (1); i++) + data.append((const char *)(params + i), sizeof(*params)); + msg.set_data(data); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog) +{ + 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_glGetShaderInfoLog); + msg.set_arg0(shader); + msg.set_arg1(bufsize); + msg.set_arg2(ToInt(length)); + msg.set_arg3(ToInt(infolog)); + std::string data; + // FIXME: check for pointer usage + 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->glGetShaderInfoLog(shader, bufsize, length, infolog); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGetShaderInfoLog); + msg.set_has_next_message(false); + msg.set_expect_response(expectResponse); + data.reserve(strlen(infolog) * sizeof(GLchar)); + for (unsigned i = 0; i < (strlen(infolog)); i++) + data.append((const char *)(infolog + i), sizeof(*infolog)); + msg.set_data(data); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision) +{ + 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_glGetShaderPrecisionFormat); + msg.set_arg0(shadertype); + msg.set_arg1(precisiontype); + msg.set_arg2(ToInt(range)); + msg.set_arg3(ToInt(precision)); + // FIXME: check for pointer usage + 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->glGetShaderPrecisionFormat(shadertype, precisiontype, range, precision); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGetShaderPrecisionFormat); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source) +{ + 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_glGetShaderSource); + msg.set_arg0(shader); + msg.set_arg1(bufsize); + msg.set_arg2(ToInt(length)); + msg.set_arg3(ToInt(source)); + std::string data; + // FIXME: check for pointer usage + 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->glGetShaderSource(shader, bufsize, length, source); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGetShaderSource); + msg.set_has_next_message(false); + msg.set_expect_response(expectResponse); + data.reserve(strlen(source) * sizeof(GLchar)); + for (unsigned i = 0; i < (strlen(source)); i++) + data.append((const char *)(source + i), sizeof(*source)); + msg.set_data(data); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +const GLubyte* Debug_glGetString(GLenum name) +{ + const GLubyte* ret = 0; + 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_glGetString); + msg.set_arg0(name); + // FIXME: check for pointer usage + 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: + ret = _c->glGetString(name); + msg.set_ret(ToInt(ret)); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGetString); + 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: + if (cmd.has_ret()) + ret = FromInt<const GLubyte*>(cmd.ret()); + return ret; + default: + ASSERT(0); //GenerateCall(msg, cmd); + break; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params) +{ + 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_glGetTexParameterfv); + msg.set_arg0(target); + msg.set_arg1(pname); + msg.set_arg2(ToInt(params)); + // FIXME: check for pointer usage + 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->glGetTexParameterfv(target, pname, params); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGetTexParameterfv); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glGetTexParameteriv(GLenum target, GLenum pname, GLint* params) +{ + 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_glGetTexParameteriv); + msg.set_arg0(target); + msg.set_arg1(pname); + msg.set_arg2(ToInt(params)); + // FIXME: check for pointer usage + 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->glGetTexParameteriv(target, pname, params); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGetTexParameteriv); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glGetUniformfv(GLuint program, GLint location, GLfloat* params) +{ + 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_glGetUniformfv); + msg.set_arg0(program); + msg.set_arg1(location); + msg.set_arg2(ToInt(params)); + // FIXME: check for pointer usage + 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->glGetUniformfv(program, location, params); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGetUniformfv); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glGetUniformiv(GLuint program, GLint location, GLint* params) +{ + 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_glGetUniformiv); + msg.set_arg0(program); + msg.set_arg1(location); + msg.set_arg2(ToInt(params)); + // FIXME: check for pointer usage + 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->glGetUniformiv(program, location, params); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGetUniformiv); + 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; + } + } +} + +int Debug_glGetUniformLocation(GLuint program, const GLchar* name) +{ + int ret = 0; + 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_glGetUniformLocation); + msg.set_arg0(program); + msg.set_arg1(ToInt(name)); + std::string data; + // FIXME: check for pointer usage + data.reserve(strlen(name) * sizeof(GLchar)); + for (unsigned i = 0; i < (strlen(name)); i++) + data.append((const char *)(name + i), sizeof(*name)); + 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: + ret = _c->glGetUniformLocation(program, name); + msg.set_ret(ToInt(ret)); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGetUniformLocation); + 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: + if (cmd.has_ret()) + ret = FromInt<int>(cmd.ret()); + return ret; + default: + ASSERT(0); //GenerateCall(msg, cmd); + break; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params) +{ + 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_glGetVertexAttribfv); + msg.set_arg0(index); + msg.set_arg1(pname); + msg.set_arg2(ToInt(params)); + // FIXME: check for pointer usage + 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->glGetVertexAttribfv(index, pname, params); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGetVertexAttribfv); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params) +{ + 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_glGetVertexAttribiv); + msg.set_arg0(index); + msg.set_arg1(pname); + msg.set_arg2(ToInt(params)); + // FIXME: check for pointer usage + 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->glGetVertexAttribiv(index, pname, params); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGetVertexAttribiv); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid** pointer) +{ + 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_glGetVertexAttribPointerv); + msg.set_arg0(index); + msg.set_arg1(pname); + msg.set_arg2(ToInt(pointer)); + // FIXME: check for pointer usage + 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->glGetVertexAttribPointerv(index, pname, pointer); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glGetVertexAttribPointerv); + 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; + } + } +} + +void Debug_glHint(GLenum target, GLenum mode) +{ + 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_glHint); + msg.set_arg0(target); + msg.set_arg1(mode); + 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->glHint(target, mode); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glHint); + 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; + } + } +} + +GLboolean Debug_glIsBuffer(GLuint buffer) +{ + GLboolean ret = 0; + 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_glIsBuffer); + msg.set_arg0(buffer); + 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: + ret = _c->glIsBuffer(buffer); + msg.set_ret(ret); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glIsBuffer); + 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: + if (cmd.has_ret()) + ret = cmd.ret(); + return ret; + default: + ASSERT(0); //GenerateCall(msg, cmd); + break; + } + } +} + +GLboolean Debug_glIsEnabled(GLenum cap) +{ + GLboolean ret = 0; + 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_glIsEnabled); + msg.set_arg0(cap); + 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: + ret = _c->glIsEnabled(cap); + msg.set_ret(ret); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glIsEnabled); + 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: + if (cmd.has_ret()) + ret = cmd.ret(); + return ret; + default: + ASSERT(0); //GenerateCall(msg, cmd); + break; + } + } +} + +GLboolean Debug_glIsFramebuffer(GLuint framebuffer) +{ + GLboolean ret = 0; + 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_glIsFramebuffer); + msg.set_arg0(framebuffer); + 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: + ret = _c->glIsFramebuffer(framebuffer); + msg.set_ret(ret); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glIsFramebuffer); + 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: + if (cmd.has_ret()) + ret = cmd.ret(); + return ret; + default: + ASSERT(0); //GenerateCall(msg, cmd); + break; + } + } +} + +GLboolean Debug_glIsProgram(GLuint program) +{ + GLboolean ret = 0; + 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_glIsProgram); + msg.set_arg0(program); + 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: + ret = _c->glIsProgram(program); + msg.set_ret(ret); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glIsProgram); + 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: + if (cmd.has_ret()) + ret = cmd.ret(); + return ret; + default: + ASSERT(0); //GenerateCall(msg, cmd); + break; + } + } +} + +GLboolean Debug_glIsRenderbuffer(GLuint renderbuffer) +{ + GLboolean ret = 0; + 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_glIsRenderbuffer); + msg.set_arg0(renderbuffer); + 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: + ret = _c->glIsRenderbuffer(renderbuffer); + msg.set_ret(ret); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glIsRenderbuffer); + 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: + if (cmd.has_ret()) + ret = cmd.ret(); + return ret; + default: + ASSERT(0); //GenerateCall(msg, cmd); + break; + } + } +} + +GLboolean Debug_glIsShader(GLuint shader) +{ + GLboolean ret = 0; + 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_glIsShader); + msg.set_arg0(shader); + 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: + ret = _c->glIsShader(shader); + msg.set_ret(ret); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glIsShader); + 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: + if (cmd.has_ret()) + ret = cmd.ret(); + return ret; + default: + ASSERT(0); //GenerateCall(msg, cmd); + break; + } + } +} + +GLboolean Debug_glIsTexture(GLuint texture) +{ + GLboolean ret = 0; + 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_glIsTexture); + msg.set_arg0(texture); + 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: + ret = _c->glIsTexture(texture); + msg.set_ret(ret); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glIsTexture); + 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: + if (cmd.has_ret()) + ret = cmd.ret(); + return ret; + default: + ASSERT(0); //GenerateCall(msg, cmd); + break; + } + } +} + +void Debug_glLineWidth(GLfloat width) +{ + 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_glLineWidth); + msg.set_arg0(ToInt(width)); + 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->glLineWidth(width); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glLineWidth); + 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; + } + } +} + +void Debug_glLinkProgram(GLuint program) +{ + 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_glLinkProgram); + msg.set_arg0(program); + 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->glLinkProgram(program); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glLinkProgram); + 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; + } + } +} + +void Debug_glPixelStorei(GLenum pname, GLint param) +{ + 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_glPixelStorei); + msg.set_arg0(pname); + msg.set_arg1(param); + 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->glPixelStorei(pname, param); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glPixelStorei); + 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; + } + } +} + +void Debug_glPolygonOffset(GLfloat factor, GLfloat units) +{ + 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_glPolygonOffset); + msg.set_arg0(ToInt(factor)); + msg.set_arg1(ToInt(units)); + 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->glPolygonOffset(factor, units); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glPolygonOffset); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels) +{ + 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_glReadPixels); + msg.set_arg0(x); + msg.set_arg1(y); + msg.set_arg2(width); + msg.set_arg3(height); + msg.set_arg4(format); + msg.set_arg5(type); + msg.set_arg6(ToInt(pixels)); + // FIXME: check for pointer usage + 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->glReadPixels(x, y, width, height, format, type, pixels); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glReadPixels); + 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; + } + } +} + +void Debug_glReleaseShaderCompiler(void) +{ + 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_glReleaseShaderCompiler); + 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->glReleaseShaderCompiler(); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glReleaseShaderCompiler); + 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; + } + } +} + +void Debug_glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) +{ + 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_glRenderbufferStorage); + msg.set_arg0(target); + msg.set_arg1(internalformat); + msg.set_arg2(width); + msg.set_arg3(height); + 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->glRenderbufferStorage(target, internalformat, width, height); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glRenderbufferStorage); + 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; + } + } +} + +void Debug_glSampleCoverage(GLclampf value, GLboolean invert) +{ + 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_glSampleCoverage); + msg.set_arg0(ToInt(value)); + msg.set_arg1(invert); + 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->glSampleCoverage(value, invert); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glSampleCoverage); + 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; + } + } +} + +void Debug_glScissor(GLint x, GLint y, GLsizei width, GLsizei height) +{ + 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_glScissor); + msg.set_arg0(x); + msg.set_arg1(y); + msg.set_arg2(width); + msg.set_arg3(height); + 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->glScissor(x, y, width, height); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glScissor); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glShaderBinary(GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei 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_glShaderBinary); + msg.set_arg0(n); + msg.set_arg1(ToInt(shaders)); + msg.set_arg2(binaryformat); + msg.set_arg3(ToInt(binary)); + msg.set_arg4(length); + // FIXME: check for pointer usage + 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->glShaderBinary(n, shaders, binaryformat, binary, length); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glShaderBinary); + 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; + } + } +} + +void Debug_glStencilFunc(GLenum func, GLint ref, GLuint mask) +{ + 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_glStencilFunc); + msg.set_arg0(func); + msg.set_arg1(ref); + msg.set_arg2(mask); + 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->glStencilFunc(func, ref, mask); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glStencilFunc); + 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; + } + } +} + +void Debug_glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask) +{ + 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_glStencilFuncSeparate); + msg.set_arg0(face); + msg.set_arg1(func); + msg.set_arg2(ref); + msg.set_arg3(mask); + 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->glStencilFuncSeparate(face, func, ref, mask); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glStencilFuncSeparate); + 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; + } + } +} + +void Debug_glStencilMask(GLuint mask) +{ + 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_glStencilMask); + msg.set_arg0(mask); + 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->glStencilMask(mask); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glStencilMask); + 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; + } + } +} + +void Debug_glStencilMaskSeparate(GLenum face, GLuint mask) +{ + 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_glStencilMaskSeparate); + msg.set_arg0(face); + msg.set_arg1(mask); + 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->glStencilMaskSeparate(face, mask); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glStencilMaskSeparate); + 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; + } + } +} + +void Debug_glStencilOp(GLenum fail, GLenum zfail, GLenum zpass) +{ + 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_glStencilOp); + msg.set_arg0(fail); + msg.set_arg1(zfail); + msg.set_arg2(zpass); + 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->glStencilOp(fail, zfail, zpass); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glStencilOp); + 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; + } + } +} + +void Debug_glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass) +{ + 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_glStencilOpSeparate); + msg.set_arg0(face); + msg.set_arg1(fail); + msg.set_arg2(zfail); + msg.set_arg3(zpass); + 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->glStencilOpSeparate(face, fail, zfail, zpass); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glStencilOpSeparate); + 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; + } + } +} + +void Debug_glTexParameterf(GLenum target, GLenum pname, GLfloat param) +{ + 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_glTexParameterf); + msg.set_arg0(target); + msg.set_arg1(pname); + msg.set_arg2(ToInt(param)); + 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->glTexParameterf(target, pname, param); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glTexParameterf); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glTexParameterfv(GLenum target, GLenum pname, const GLfloat* params) +{ + 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_glTexParameterfv); + msg.set_arg0(target); + msg.set_arg1(pname); + msg.set_arg2(ToInt(params)); + // FIXME: check for pointer usage + 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->glTexParameterfv(target, pname, params); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glTexParameterfv); + 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; + } + } +} + +void Debug_glTexParameteri(GLenum target, GLenum pname, GLint param) +{ + 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_glTexParameteri); + msg.set_arg0(target); + msg.set_arg1(pname); + msg.set_arg2(param); + 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->glTexParameteri(target, pname, param); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glTexParameteri); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glTexParameteriv(GLenum target, GLenum pname, const GLint* params) +{ + 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_glTexParameteriv); + msg.set_arg0(target); + msg.set_arg1(pname); + msg.set_arg2(ToInt(params)); + // FIXME: check for pointer usage + 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->glTexParameteriv(target, pname, params); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glTexParameteriv); + 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; + } + } +} + +void Debug_glUniform1f(GLint location, GLfloat x) +{ + 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_glUniform1f); + msg.set_arg0(location); + msg.set_arg1(ToInt(x)); + 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->glUniform1f(location, x); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glUniform1f); + 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; + } + } +} + +void Debug_glUniform1fv(GLint location, GLsizei count, const GLfloat* v) +{ + 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_glUniform1fv); + msg.set_arg0(location); + msg.set_arg1(count); + msg.set_arg2(ToInt(v)); + std::string data; + // FIXME: check for pointer usage + data.reserve(1*count * sizeof(GLfloat)); + for (unsigned i = 0; i < (1*count); i++) + data.append((const char *)(v + i), sizeof(*v)); + 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->glUniform1fv(location, count, v); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glUniform1fv); + 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; + } + } +} + +void Debug_glUniform1i(GLint location, GLint x) +{ + 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_glUniform1i); + msg.set_arg0(location); + msg.set_arg1(x); + 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->glUniform1i(location, x); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glUniform1i); + 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; + } + } +} + +void Debug_glUniform1iv(GLint location, GLsizei count, const GLint* v) +{ + 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_glUniform1iv); + msg.set_arg0(location); + msg.set_arg1(count); + msg.set_arg2(ToInt(v)); + std::string data; + // FIXME: check for pointer usage + data.reserve(1*count * sizeof(GLint)); + for (unsigned i = 0; i < (1*count); i++) + data.append((const char *)(v + i), sizeof(*v)); + 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->glUniform1iv(location, count, v); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glUniform1iv); + 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; + } + } +} + +void Debug_glUniform2f(GLint location, GLfloat x, GLfloat y) +{ + 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_glUniform2f); + msg.set_arg0(location); + msg.set_arg1(ToInt(x)); + msg.set_arg2(ToInt(y)); + 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->glUniform2f(location, x, y); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glUniform2f); + 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; + } + } +} + +void Debug_glUniform2fv(GLint location, GLsizei count, const GLfloat* v) +{ + 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_glUniform2fv); + msg.set_arg0(location); + msg.set_arg1(count); + msg.set_arg2(ToInt(v)); + std::string data; + // FIXME: check for pointer usage + data.reserve(2*count * sizeof(GLfloat)); + for (unsigned i = 0; i < (2*count); i++) + data.append((const char *)(v + i), sizeof(*v)); + 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->glUniform2fv(location, count, v); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glUniform2fv); + 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; + } + } +} + +void Debug_glUniform2i(GLint location, GLint x, GLint y) +{ + 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_glUniform2i); + msg.set_arg0(location); + msg.set_arg1(x); + msg.set_arg2(y); + 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->glUniform2i(location, x, y); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glUniform2i); + 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; + } + } +} + +void Debug_glUniform2iv(GLint location, GLsizei count, const GLint* v) +{ + 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_glUniform2iv); + msg.set_arg0(location); + msg.set_arg1(count); + msg.set_arg2(ToInt(v)); + std::string data; + // FIXME: check for pointer usage + data.reserve(2*count * sizeof(GLint)); + for (unsigned i = 0; i < (2*count); i++) + data.append((const char *)(v + i), sizeof(*v)); + 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->glUniform2iv(location, count, v); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glUniform2iv); + 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; + } + } +} + +void Debug_glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z) +{ + 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_glUniform3f); + msg.set_arg0(location); + msg.set_arg1(ToInt(x)); + msg.set_arg2(ToInt(y)); + msg.set_arg3(ToInt(z)); + 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->glUniform3f(location, x, y, z); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glUniform3f); + 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; + } + } +} + +void Debug_glUniform3fv(GLint location, GLsizei count, const GLfloat* v) +{ + 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_glUniform3fv); + msg.set_arg0(location); + msg.set_arg1(count); + msg.set_arg2(ToInt(v)); + std::string data; + // FIXME: check for pointer usage + data.reserve(3*count * sizeof(GLfloat)); + for (unsigned i = 0; i < (3*count); i++) + data.append((const char *)(v + i), sizeof(*v)); + 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->glUniform3fv(location, count, v); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glUniform3fv); + 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; + } + } +} + +void Debug_glUniform3i(GLint location, GLint x, GLint y, GLint z) +{ + 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_glUniform3i); + msg.set_arg0(location); + msg.set_arg1(x); + msg.set_arg2(y); + msg.set_arg3(z); + 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->glUniform3i(location, x, y, z); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glUniform3i); + 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; + } + } +} + +void Debug_glUniform3iv(GLint location, GLsizei count, const GLint* v) +{ + 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_glUniform3iv); + msg.set_arg0(location); + msg.set_arg1(count); + msg.set_arg2(ToInt(v)); + std::string data; + // FIXME: check for pointer usage + data.reserve(3*count * sizeof(GLint)); + for (unsigned i = 0; i < (3*count); i++) + data.append((const char *)(v + i), sizeof(*v)); + 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->glUniform3iv(location, count, v); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glUniform3iv); + 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; + } + } +} + +void Debug_glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) +{ + 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_glUniform4f); + msg.set_arg0(location); + msg.set_arg1(ToInt(x)); + msg.set_arg2(ToInt(y)); + msg.set_arg3(ToInt(z)); + msg.set_arg4(ToInt(w)); + 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->glUniform4f(location, x, y, z, w); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glUniform4f); + 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; + } + } +} + +void Debug_glUniform4fv(GLint location, GLsizei count, const GLfloat* v) +{ + 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_glUniform4fv); + msg.set_arg0(location); + msg.set_arg1(count); + msg.set_arg2(ToInt(v)); + std::string data; + // FIXME: check for pointer usage + data.reserve(4*count * sizeof(GLfloat)); + for (unsigned i = 0; i < (4*count); i++) + data.append((const char *)(v + i), sizeof(*v)); + 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->glUniform4fv(location, count, v); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glUniform4fv); + 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; + } + } +} + +void Debug_glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w) +{ + 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_glUniform4i); + msg.set_arg0(location); + msg.set_arg1(x); + msg.set_arg2(y); + msg.set_arg3(z); + msg.set_arg4(w); + 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->glUniform4i(location, x, y, z, w); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glUniform4i); + 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; + } + } +} + +void Debug_glUniform4iv(GLint location, GLsizei count, const GLint* v) +{ + 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_glUniform4iv); + msg.set_arg0(location); + msg.set_arg1(count); + msg.set_arg2(ToInt(v)); + std::string data; + // FIXME: check for pointer usage + data.reserve(4*count * sizeof(GLint)); + for (unsigned i = 0; i < (4*count); i++) + data.append((const char *)(v + i), sizeof(*v)); + 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->glUniform4iv(location, count, v); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glUniform4iv); + 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; + } + } +} + +void Debug_glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) +{ + 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_glUniformMatrix2fv); + msg.set_arg0(location); + msg.set_arg1(count); + msg.set_arg2(transpose); + msg.set_arg3(ToInt(value)); + std::string data; + // FIXME: check for pointer usage + data.reserve(4*count * sizeof(GLfloat)); + for (unsigned i = 0; i < (4*count); i++) + data.append((const char *)(value + i), sizeof(*value)); + 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->glUniformMatrix2fv(location, count, transpose, value); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glUniformMatrix2fv); + 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; + } + } +} + +void Debug_glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) +{ + 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_glUniformMatrix3fv); + msg.set_arg0(location); + msg.set_arg1(count); + msg.set_arg2(transpose); + msg.set_arg3(ToInt(value)); + std::string data; + // FIXME: check for pointer usage + data.reserve(9*count * sizeof(GLfloat)); + for (unsigned i = 0; i < (9*count); i++) + data.append((const char *)(value + i), sizeof(*value)); + 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->glUniformMatrix3fv(location, count, transpose, value); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glUniformMatrix3fv); + 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; + } + } +} + +void Debug_glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) +{ + 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_glUniformMatrix4fv); + msg.set_arg0(location); + msg.set_arg1(count); + msg.set_arg2(transpose); + msg.set_arg3(ToInt(value)); + std::string data; + // FIXME: check for pointer usage + data.reserve(16*count * sizeof(GLfloat)); + for (unsigned i = 0; i < (16*count); i++) + data.append((const char *)(value + i), sizeof(*value)); + 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->glUniformMatrix4fv(location, count, transpose, value); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glUniformMatrix4fv); + 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; + } + } +} + +void Debug_glUseProgram(GLuint program) +{ + 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_glUseProgram); + msg.set_arg0(program); + 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->glUseProgram(program); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glUseProgram); + 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; + } + } +} + +void Debug_glValidateProgram(GLuint program) +{ + 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_glValidateProgram); + msg.set_arg0(program); + 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->glValidateProgram(program); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glValidateProgram); + 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; + } + } +} + +void Debug_glVertexAttrib1f(GLuint indx, GLfloat x) +{ + 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_glVertexAttrib1f); + msg.set_arg0(indx); + msg.set_arg1(ToInt(x)); + 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->glVertexAttrib1f(indx, x); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glVertexAttrib1f); + 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; + } + } +} + +void Debug_glVertexAttrib1fv(GLuint indx, const GLfloat* values) +{ + 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_glVertexAttrib1fv); + msg.set_arg0(indx); + msg.set_arg1(ToInt(values)); + std::string data; + // FIXME: check for pointer usage + data.reserve(1 * sizeof(GLfloat)); + for (unsigned i = 0; i < (1); i++) + data.append((const char *)(values + i), sizeof(*values)); + 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->glVertexAttrib1fv(indx, values); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glVertexAttrib1fv); + 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; + } + } +} + +void Debug_glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y) +{ + 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_glVertexAttrib2f); + msg.set_arg0(indx); + msg.set_arg1(ToInt(x)); + msg.set_arg2(ToInt(y)); + 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->glVertexAttrib2f(indx, x, y); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glVertexAttrib2f); + 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; + } + } +} + +void Debug_glVertexAttrib2fv(GLuint indx, const GLfloat* values) +{ + 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_glVertexAttrib2fv); + msg.set_arg0(indx); + msg.set_arg1(ToInt(values)); + std::string data; + // FIXME: check for pointer usage + data.reserve(2 * sizeof(GLfloat)); + for (unsigned i = 0; i < (2); i++) + data.append((const char *)(values + i), sizeof(*values)); + 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->glVertexAttrib2fv(indx, values); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glVertexAttrib2fv); + 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; + } + } +} + +void Debug_glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z) +{ + 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_glVertexAttrib3f); + msg.set_arg0(indx); + msg.set_arg1(ToInt(x)); + msg.set_arg2(ToInt(y)); + msg.set_arg3(ToInt(z)); + 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->glVertexAttrib3f(indx, x, y, z); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glVertexAttrib3f); + 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; + } + } +} + +void Debug_glVertexAttrib3fv(GLuint indx, const GLfloat* values) +{ + 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_glVertexAttrib3fv); + msg.set_arg0(indx); + msg.set_arg1(ToInt(values)); + std::string data; + // FIXME: check for pointer usage + data.reserve(3 * sizeof(GLfloat)); + for (unsigned i = 0; i < (3); i++) + data.append((const char *)(values + i), sizeof(*values)); + 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->glVertexAttrib3fv(indx, values); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glVertexAttrib3fv); + 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; + } + } +} + +void Debug_glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w) +{ + 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_glVertexAttrib4f); + msg.set_arg0(indx); + msg.set_arg1(ToInt(x)); + msg.set_arg2(ToInt(y)); + msg.set_arg3(ToInt(z)); + msg.set_arg4(ToInt(w)); + 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->glVertexAttrib4f(indx, x, y, z, w); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glVertexAttrib4f); + 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; + } + } +} + +void Debug_glVertexAttrib4fv(GLuint indx, const GLfloat* values) +{ + 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_glVertexAttrib4fv); + msg.set_arg0(indx); + msg.set_arg1(ToInt(values)); + std::string data; + // FIXME: check for pointer usage + data.reserve(4 * sizeof(GLfloat)); + for (unsigned i = 0; i < (4); i++) + data.append((const char *)(values + i), sizeof(*values)); + 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->glVertexAttrib4fv(indx, values); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glVertexAttrib4fv); + 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; + } + } +} + +// FIXME: this function has pointers, it should be hand written +void Debug_glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr) +{ + 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_glVertexAttribPointer); + msg.set_arg0(indx); + msg.set_arg1(size); + msg.set_arg2(type); + msg.set_arg3(normalized); + msg.set_arg4(stride); + msg.set_arg5(ToInt(ptr)); + // FIXME: check for pointer usage + 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->glVertexAttribPointer(indx, size, type, normalized, stride, ptr); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glVertexAttribPointer); + 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; + } + } +} + +void Debug_glViewport(GLint x, GLint y, GLsizei width, GLsizei height) +{ + 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_glViewport); + msg.set_arg0(x); + msg.set_arg1(y); + msg.set_arg2(width); + msg.set_arg3(height); + 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->glViewport(x, y, width, height); + msg.set_time((float(clock()) - c0) / CLOCKS_PER_SEC); + msg.set_context_id(0); + msg.set_function(GLESv2Debugger::Message_Function_glViewport); + 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; + } + } +} + +// FIXME: the following functions should be written by hand +void Debug_glBufferData(GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage); +void Debug_glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data); +void Debug_glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data); +void Debug_glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data); +void Debug_glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices); +void Debug_glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name); +void Debug_glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name); +void Debug_glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders); +void Debug_glGetBooleanv(GLenum pname, GLboolean* params); +void Debug_glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params); +void Debug_glGetFloatv(GLenum pname, GLfloat* params); +void Debug_glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params); +void Debug_glGetIntegerv(GLenum pname, GLint* params); +void Debug_glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog); +void Debug_glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params); +void Debug_glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog); +void Debug_glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision); +void Debug_glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source); +const GLubyte* Debug_glGetString(GLenum name); +void Debug_glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params); +void Debug_glGetTexParameteriv(GLenum target, GLenum pname, GLint* params); +void Debug_glGetUniformfv(GLuint program, GLint location, GLfloat* params); +void Debug_glGetUniformiv(GLuint program, GLint location, GLint* params); +void Debug_glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params); +void Debug_glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params); +void Debug_glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid** pointer); +void Debug_glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels); +void Debug_glShaderBinary(GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length); +void Debug_glTexParameterfv(GLenum target, GLenum pname, const GLfloat* params); +void Debug_glTexParameteriv(GLenum target, GLenum pname, const GLint* params); +void Debug_glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr); diff --git a/opengl/libs/GLES2_dbg/src/header.h b/opengl/libs/GLES2_dbg/src/header.h new file mode 100644 index 0000000..e1b194d --- /dev/null +++ b/opengl/libs/GLES2_dbg/src/header.h @@ -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 { diff --git a/opengl/libs/GLES2_dbg/src/server.cpp b/opengl/libs/GLES2_dbg/src/server.cpp new file mode 100644 index 0000000..33f78e4 --- /dev/null +++ b/opengl/libs/GLES2_dbg/src/server.cpp @@ -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 { diff --git a/opengl/libs/GLES2_dbg/src/shader.cpp b/opengl/libs/GLES2_dbg/src/shader.cpp new file mode 100644 index 0000000..c2b2557 --- /dev/null +++ b/opengl/libs/GLES2_dbg/src/shader.cpp @@ -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; + } + } +} diff --git a/opengl/libs/GLES2_dbg/src/texture.cpp b/opengl/libs/GLES2_dbg/src/texture.cpp new file mode 100644 index 0000000..a149487 --- /dev/null +++ b/opengl/libs/GLES2_dbg/src/texture.cpp @@ -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; + } + } +} |