mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 17:48:10 +02:00
mesa: Implement TEXTURE_IMMUTABLE_LEVELS for ES 3.0.
NOTE: This is a candidate for the 9.1 branch.
Fixes piglit's texture-immutable-levels test.
Reported-by: Marek Olšák <maraeo@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit 12dc4be8a6)
This commit is contained in:
parent
82ac970d37
commit
c7720a24be
3 changed files with 14 additions and 0 deletions
|
|
@ -1274,6 +1274,7 @@ struct gl_texture_object
|
|||
GLfloat Priority; /**< in [0,1] */
|
||||
GLint BaseLevel; /**< min mipmap level, OpenGL 1.2 */
|
||||
GLint MaxLevel; /**< max mipmap level, OpenGL 1.2 */
|
||||
GLint ImmutableLevels; /**< ES 3.0 / ARB_texture_view */
|
||||
GLint _MaxLevel; /**< actual max mipmap level (q in the spec) */
|
||||
GLfloat _MaxLambda; /**< = _MaxLevel - BaseLevel (q - b in spec) */
|
||||
GLint CropRect[4]; /**< GL_OES_draw_texture */
|
||||
|
|
|
|||
|
|
@ -1432,6 +1432,12 @@ _mesa_GetTexParameterfv( GLenum target, GLenum pname, GLfloat *params )
|
|||
*params = (GLfloat) obj->Immutable;
|
||||
break;
|
||||
|
||||
case GL_TEXTURE_IMMUTABLE_LEVELS:
|
||||
if (!_mesa_is_gles3(ctx))
|
||||
goto invalid_pname;
|
||||
*params = (GLfloat) obj->ImmutableLevels;
|
||||
break;
|
||||
|
||||
case GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES:
|
||||
if (!_mesa_is_gles(ctx) || !ctx->Extensions.OES_EGL_image_external)
|
||||
goto invalid_pname;
|
||||
|
|
@ -1609,6 +1615,12 @@ _mesa_GetTexParameteriv( GLenum target, GLenum pname, GLint *params )
|
|||
*params = (GLint) obj->Immutable;
|
||||
break;
|
||||
|
||||
case GL_TEXTURE_IMMUTABLE_LEVELS:
|
||||
if (!_mesa_is_gles3(ctx))
|
||||
goto invalid_pname;
|
||||
*params = obj->ImmutableLevels;
|
||||
break;
|
||||
|
||||
case GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES:
|
||||
if (!_mesa_is_gles(ctx) || !ctx->Extensions.OES_EGL_image_external)
|
||||
goto invalid_pname;
|
||||
|
|
|
|||
|
|
@ -397,6 +397,7 @@ texstorage(GLuint dims, GLenum target, GLsizei levels, GLenum internalformat,
|
|||
}
|
||||
|
||||
texObj->Immutable = GL_TRUE;
|
||||
texObj->ImmutableLevels = levels;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue