]> git.cworth.org Git - apitrace/blobdiff - retrace/glstate_shaders.cpp
attrib_list support for glXChooseVisual, the last GLX function.
[apitrace] / retrace / glstate_shaders.cpp
index a651d994736780f1d331d29c4af03d1db28936c2..29d4768587abbe1b95f694b8aeb9ae51f5f5741c 100644 (file)
@@ -24,6 +24,7 @@
  **************************************************************************/
 
 
+#include <assert.h>
 #include <string.h>
 
 #include <algorithm>
@@ -245,16 +246,16 @@ dumpUniformValues(JSONWriter &json, GLenum type, const void *values, GLint matri
 
             switch (elemType) {
             case GL_FLOAT:
-                json.writeNumber(*u.fvalue);
+                json.writeFloat(*u.fvalue);
                 break;
             case GL_DOUBLE:
-                json.writeNumber(*u.dvalue);
+                json.writeFloat(*u.dvalue);
                 break;
             case GL_INT:
-                json.writeNumber(*u.ivalue);
+                json.writeInt(*u.ivalue);
                 break;
             case GL_UNSIGNED_INT:
-                json.writeNumber(*u.uivalue);
+                json.writeInt(*u.uivalue);
                 break;
             case GL_BOOL:
                 json.writeBool(*u.uivalue);
@@ -625,10 +626,10 @@ dumpArbProgramUniforms(JSONWriter &json, GLenum target, const char *prefix)
 
         json.beginMember(name);
         json.beginArray();
-        json.writeNumber(params[0]);
-        json.writeNumber(params[1]);
-        json.writeNumber(params[2]);
-        json.writeNumber(params[3]);
+        json.writeFloat(params[0]);
+        json.writeFloat(params[1]);
+        json.writeFloat(params[2]);
+        json.writeFloat(params[3]);
         json.endArray();
         json.endMember();
     }
@@ -648,10 +649,10 @@ dumpArbProgramUniforms(JSONWriter &json, GLenum target, const char *prefix)
 
         json.beginMember(name);
         json.beginArray();
-        json.writeNumber(params[0]);
-        json.writeNumber(params[1]);
-        json.writeNumber(params[2]);
-        json.writeNumber(params[3]);
+        json.writeFloat(params[0]);
+        json.writeFloat(params[1]);
+        json.writeFloat(params[2]);
+        json.writeFloat(params[3]);
         json.endArray();
         json.endMember();
     }
@@ -678,6 +679,7 @@ dumpShadersUniforms(JSONWriter &json, Context &context)
     GLint geometry_program = 0;
     GLint tess_control_program = 0;
     GLint tess_evaluation_program = 0;
+    GLint compute_program = 0;
 
     if (!context.ES) {
         glGetIntegerv(GL_PROGRAM_PIPELINE_BINDING, &pipeline);
@@ -687,6 +689,7 @@ dumpShadersUniforms(JSONWriter &json, Context &context)
             glGetProgramPipelineiv(pipeline, GL_GEOMETRY_SHADER, &geometry_program);
             glGetProgramPipelineiv(pipeline, GL_TESS_CONTROL_SHADER, &tess_control_program);
             glGetProgramPipelineiv(pipeline, GL_TESS_EVALUATION_SHADER, &tess_evaluation_program);
+            glGetProgramPipelineiv(pipeline, GL_COMPUTE_SHADER, &compute_program);
         }
     }
 
@@ -707,6 +710,7 @@ dumpShadersUniforms(JSONWriter &json, Context &context)
         dumpProgram(json, geometry_program);
         dumpProgram(json, tess_control_program);
         dumpProgram(json, tess_evaluation_program);
+        dumpProgram(json, compute_program);
     } else if (program) {
         dumpProgram(json, program);
     } else if (programObj) {
@@ -726,6 +730,7 @@ dumpShadersUniforms(JSONWriter &json, Context &context)
         dumpProgramUniformsStage(json, geometry_program, "GL_GEOMETRY_SHADER");
         dumpProgramUniformsStage(json, tess_control_program, "GL_TESS_CONTROL_SHADER");
         dumpProgramUniformsStage(json, tess_evaluation_program, "GL_TESS_EVALUATION_SHADER");
+        dumpProgramUniformsStage(json, compute_program, "GL_COMPUTE_SHADER");
     } else if (program) {
         dumpProgramUniforms(json, program);
     } else if (programObj) {