]> git.cworth.org Git - apitrace/blobdiff - retrace/glstate_images.cpp
Call XInitThreads.
[apitrace] / retrace / glstate_images.cpp
index f16cba41194a3c5b58ff219b1ec8fcc70d6c762a..9bae85bba4861d73de6ef4ec9e723c3508ecb5d8 100644 (file)
@@ -232,6 +232,8 @@ getActiveTextureLevelDescOES(Context &context, GLenum target, GLint level, Image
 static inline bool
 getActiveTextureLevelDesc(Context &context, GLenum target, GLint level, ImageDesc &desc)
 {
+    assert(target != GL_TEXTURE_CUBE_MAP);
+
     if (context.ES) {
         return getActiveTextureLevelDescOES(context, target, level, desc);
     }
@@ -431,15 +433,18 @@ dumpTexture(JSONWriter &json, Context &context, GLenum target, GLenum binding)
     GLint level = 0;
     do {
         ImageDesc desc;
-        if (!getActiveTextureLevelDesc(context, target, level, desc)) {
-            break;
-        }
 
         if (target == GL_TEXTURE_CUBE_MAP) {
             for (int face = 0; face < 6; ++face) {
+                if (!getActiveTextureLevelDesc(context, GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, level, desc)) {
+                    return;
+                }
                 dumpActiveTextureLevel(json, context, GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, level);
             }
         } else {
+            if (!getActiveTextureLevelDesc(context, target, level, desc)) {
+                return;
+            }
             dumpActiveTextureLevel(json, context, target, level);
         }
 
@@ -467,7 +472,7 @@ dumpTextures(JSONWriter &json, Context &context)
      * proper value for this, but rather returns 0. The GL(ES) specification
      * mandates a minimum value of 2, so use this as a fall-back value.
      */
-    max_units = std::min(max_units, 2);
+    max_units = std::max(max_units, 2);
 
     for (GLint unit = 0; unit < max_units; ++unit) {
         GLenum texture = GL_TEXTURE0 + unit;
@@ -709,7 +714,7 @@ getFramebufferAttachmentDesc(Context &context, GLenum target, GLenum attachment,
 image::Image *
 getDrawBufferImage() {
     GLenum format = GL_RGB;
-    GLint channels = __gl_format_channels(format);
+    GLint channels = _gl_format_channels(format);
     if (channels > 4) {
         return NULL;
     }
@@ -816,7 +821,11 @@ static inline void
 dumpReadBufferImage(JSONWriter &json, GLint width, GLint height, GLenum format,
                     GLint internalFormat = GL_NONE)
 {
-    GLint channels = __gl_format_channels(format);
+    GLint channels = _gl_format_channels(format);
+
+    if (internalFormat == GL_NONE) {
+        internalFormat = format;
+    }
 
     Context context;