summaryrefslogtreecommitdiffstats
path: root/opengl/libs/GLES2_dbg/generate_DebuggerMessage_proto.py
diff options
context:
space:
mode:
Diffstat (limited to 'opengl/libs/GLES2_dbg/generate_DebuggerMessage_proto.py')
-rwxr-xr-xopengl/libs/GLES2_dbg/generate_DebuggerMessage_proto.py73
1 files changed, 73 insertions, 0 deletions
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" ')