mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 13:38:06 +02:00
mesa: Handle uninitialized textures like other textures in get_tex_level_parameter_image
Instead of catching the special case early, handle it by constructing a
fake gl_texture_image that will cause the values required by the OpenGL
4.0 spec to be returned.
Previously, calling
glGenTextures(1, &t);
glBindTexture(GL_TEXTURE_2D, t);
glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, 0xDEADBEEF, &value);
would not generate an error.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Suggested-by: Brian Paul <brianp@vmware.com>
Cc: "10.2" <mesa-stable@lists.freedesktop.org>
Cc: Anuj Phogat <anuj.phogat@gmail.com>
(cherry picked from commit ee58c71a65)
This commit is contained in:
parent
8b056fc486
commit
d82ca4e2b2
1 changed files with 6 additions and 5 deletions
|
|
@ -1051,6 +1051,7 @@ get_tex_level_parameter_image(struct gl_context *ctx,
|
||||||
GLenum pname, GLint *params)
|
GLenum pname, GLint *params)
|
||||||
{
|
{
|
||||||
const struct gl_texture_image *img = NULL;
|
const struct gl_texture_image *img = NULL;
|
||||||
|
struct gl_texture_image dummy_image;
|
||||||
mesa_format texFormat;
|
mesa_format texFormat;
|
||||||
|
|
||||||
img = _mesa_select_tex_image(ctx, texObj, target, level);
|
img = _mesa_select_tex_image(ctx, texObj, target, level);
|
||||||
|
|
@ -1062,12 +1063,12 @@ get_tex_level_parameter_image(struct gl_context *ctx,
|
||||||
* instead of 1. TEXTURE_COMPONENTS is deprecated; always
|
* instead of 1. TEXTURE_COMPONENTS is deprecated; always
|
||||||
* use TEXTURE_INTERNAL_FORMAT."
|
* use TEXTURE_INTERNAL_FORMAT."
|
||||||
*/
|
*/
|
||||||
|
memset(&dummy_image, 0, sizeof(dummy_image));
|
||||||
|
dummy_image.TexFormat = MESA_FORMAT_NONE;
|
||||||
|
dummy_image.InternalFormat = GL_RGBA;
|
||||||
|
dummy_image._BaseFormat = GL_NONE;
|
||||||
|
|
||||||
if (pname == GL_TEXTURE_INTERNAL_FORMAT)
|
img = &dummy_image;
|
||||||
*params = GL_RGBA;
|
|
||||||
else
|
|
||||||
*params = 0;
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
texFormat = img->TexFormat;
|
texFormat = img->TexFormat;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue