"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
}
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
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