st/mesa: fix the texture format in st_context_teximage
authorFredrik Höglund <fredrik@kde.org>
Tue, 19 Jul 2011 21:25:32 +0000 (15:25 -0600)
committerBrian Paul <brianp@vmware.com>
Tue, 19 Jul 2011 21:28:43 +0000 (15:28 -0600)
Commit 1a339b6c71ebab6e1a64f05b2e133022d3bbcd15 made
st_ChooseTextureFormat map GL_RGBA with type GL_UNSIGNED_BYTE
to PIPE_FORMAT_A8B8G8R8_UNORM.

The image format for ARGB pixmaps is PIPE_FORMAT_B8G8R8A8_UNORM
however. This mismatch caused the texture to be recreated in
st_finalize_texture.

NOTE: This is a candidate for the 7.11 branch.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=39209
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Signed-off-by: Brian Paul <brianp@vmware.com>
src/mesa/state_tracker/st_manager.c

index 7bd82aae20601c5ddaf6ba7bede5ea6e0d85bf5e..d5228d387f7471e7a0910254cc125ac6fca441ca 100644 (file)
@@ -587,7 +587,7 @@ st_context_teximage(struct st_context_iface *stctxi,
          internalFormat = GL_RGB;
 
       texFormat = st_ChooseTextureFormat(ctx, internalFormat,
-                                         GL_RGBA, GL_UNSIGNED_BYTE);
+                                         GL_BGRA, GL_UNSIGNED_BYTE);
 
       _mesa_init_teximage_fields(ctx, target, texImage,
                                  tex->width0, tex->height0, 1, 0,