From: José Fonseca Date: Wed, 13 Apr 2011 10:12:20 +0000 (+0100) Subject: Dump ARB fragment/vertex programs too. X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=04b4b52f90a047630ab009e576aa490fe8d0468e;p=apitrace Dump ARB fragment/vertex programs too. --- diff --git a/glenum.py b/glenum.py index 72e85b1..4a40b74 100644 --- a/glenum.py +++ b/glenum.py @@ -1250,7 +1250,7 @@ GLenum = Enum("GLenum", [ "GL_SLICE_ACCUM_SUN", # 0x85CC "GL_QUAD_MESH_SUN", # 0x8614 "GL_TRIANGLE_MESH_SUN", # 0x8615 - "GL_VERTEX_PROGRAM_NV", # 0x8620 + "GL_VERTEX_PROGRAM_ARB", # 0x8620 "GL_VERTEX_STATE_PROGRAM_NV", # 0x8621 "GL_VERTEX_ATTRIB_ARRAY_ENABLED", # 0x8622 "GL_VERTEX_ATTRIB_ARRAY_SIZE", # 0x8623 diff --git a/glstate.py b/glstate.py index 7bd658b..27860b4 100644 --- a/glstate.py +++ b/glstate.py @@ -3104,6 +3104,31 @@ writeCurrentProgram(JSONWriter &json) } delete [] shaders; } + +static inline void +writeArbProgram(JSONWriter &json, GLenum target) +{ + if (!glIsEnabled(target)) { + return; + } + + GLint program_length = 0; + glGetProgramivARB(target, GL_PROGRAM_LENGTH_ARB, &program_length); + if (!program_length) { + return; + } + + GLchar *source = new GLchar[program_length + 1]; + source[0] = 0; + glGetProgramStringARB(target, GL_PROGRAM_STRING_ARB, source); + source[program_length] = 0; + + json.beginMember(enum_string(target)); + json.writeString(source); + json.endMember(); + + delete [] source; +} ''' # texture image @@ -3314,6 +3339,8 @@ writeDrawBufferImage(JSONWriter &json, GLenum format) print ' json.beginMember("shaders");' print ' json.beginObject();' print ' writeCurrentProgram(json);' + print ' writeArbProgram(json, GL_FRAGMENT_PROGRAM_ARB);' + print ' writeArbProgram(json, GL_VERTEX_PROGRAM_ARB);' print ' json.endObject();' print ' json.endMember(); //shaders' print