]> git.cworth.org Git - apitrace/commitdiff
Dump ARB fragment/vertex programs too.
authorJosé Fonseca <jose.r.fonseca@gmail.com>
Wed, 13 Apr 2011 10:12:20 +0000 (11:12 +0100)
committerJosé Fonseca <jose.r.fonseca@gmail.com>
Wed, 13 Apr 2011 10:12:20 +0000 (11:12 +0100)
glenum.py
glstate.py

index 72e85b184bfe4b883c15ac74d315c641083b792d..4a40b74e27683c6734dcf20f2a1e937682096388 100644 (file)
--- 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
index 7bd658ba948ebce0328e9a27d89ad72210d50269..27860b44479633982cece6f17aa0c07216b2f8d1 100644 (file)
@@ -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