st/mesa: set correct baseInternalFormat for _mesa_texstore in DrawPixels
authorMarek Olšák <maraeo@gmail.com>
Fri, 13 May 2011 22:54:44 +0000 (00:54 +0200)
committerMarek Olšák <maraeo@gmail.com>
Fri, 13 May 2011 23:53:30 +0000 (01:53 +0200)
GL_RGBA was always used for baseInternalFormat regardless of the chosen
texture internal format.

https://bugs.freedesktop.org/show_bug.cgi?id=37154

Reviewed-by: Brian Paul <brianp@vmware.com>
src/mesa/state_tracker/st_cb_drawpixels.c

index e377861b8d2c06d9819662729d5d832ef7f255da..9948f8d2bc526133b2f20acb0afd5ee0cdfc2e78 100644 (file)
@@ -39,6 +39,7 @@
 #include "main/pack.h"
 #include "main/pbo.h"
 #include "main/texformat.h"
+#include "main/teximage.h"
 #include "main/texstore.h"
 #include "program/program.h"
 #include "program/prog_print.h"
@@ -419,10 +420,10 @@ make_texture(struct st_context *st,
    gl_format mformat;
    struct pipe_resource *pt;
    enum pipe_format pipeFormat;
-   GLenum baseFormat, intFormat;
+   GLenum baseInternalFormat, intFormat;
 
-   baseFormat = base_format(format);
    intFormat = internal_format(ctx, format, type);
+   baseInternalFormat = _mesa_base_tex_format(ctx, intFormat);
 
    mformat = st_ChooseTextureFormat_renderable(ctx, intFormat,
                                                format, type, GL_FALSE);
@@ -465,7 +466,7 @@ make_texture(struct st_context *st,
        * the texture.  We deal with that with texcoords.
        */
       success = _mesa_texstore(ctx, 2,           /* dims */
-                               baseFormat,       /* baseInternalFormat */
+                               baseInternalFormat, /* baseInternalFormat */
                                mformat,          /* gl_format */
                                dest,             /* dest */
                                0, 0, 0,          /* dstX/Y/Zoffset */