mesa: Set initial internal format of a texture to GL_RGBA

From OpenGL 4.0 spec, page 398:
   "The initial internal format of a texel array is RGBA
    instead of 1. TEXTURE_COMPONENTS is deprecated; always
    use TEXTURE_INTERNAL_FORMAT."

Fixes Khronos OpenGL CTS test failure: proxy_textures_invalid_size

Cc: <mesa-stable@lists.freedesktop.org>
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit 063980151e)
This commit is contained in:
Anuj Phogat 2014-02-21 16:58:07 -08:00 committed by Carl Worth
parent 50d65b4374
commit df15372b65

View file

@ -1038,9 +1038,16 @@ get_tex_level_parameter_image(struct gl_context *ctx,
img = _mesa_select_tex_image(ctx, texObj, target, level);
if (!img || img->TexFormat == MESA_FORMAT_NONE) {
/* undefined texture image */
if (pname == GL_TEXTURE_COMPONENTS)
*params = 1;
/* In case of undefined texture image return the default values.
*
* From OpenGL 4.0 spec, page 398:
* "The initial internal format of a texel array is RGBA
* instead of 1. TEXTURE_COMPONENTS is deprecated; always
* use TEXTURE_INTERNAL_FORMAT."
*/
if (pname == GL_TEXTURE_INTERNAL_FORMAT)
*params = GL_RGBA;
else
*params = 0;
return;