mesa: ARB_texture_view get parameters

Add support for ARB_texture_view get parameters:
GL_TEXTURE_VIEW_MIN_LEVEL
GL_TEXTURE_VIEW_NUM_LEVELS
GL_TEXTURE_VIEW_MIN_LAYER
GL_TEXTURE_VIEW_NUM_LAYERS

Incorporate feedback regarding when to allow query of
GL_TEXTURE_IMMUTABLE_LEVELS.

Signed-off-by: Courtney Goeltzenleuchter <courtney@LunarG.com>

Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
Courtney Goeltzenleuchter 2013-11-04 13:29:48 -07:00 committed by Brian Paul
parent 668f3614ca
commit f1563e6392

View file

@ -1558,9 +1558,35 @@ _mesa_GetTexParameterfv( GLenum target, GLenum pname, GLfloat *params )
break; break;
case GL_TEXTURE_IMMUTABLE_LEVELS: case GL_TEXTURE_IMMUTABLE_LEVELS:
if (!_mesa_is_gles3(ctx)) if (_mesa_is_gles3(ctx) ||
goto invalid_pname; (_mesa_is_desktop_gl(ctx) && ctx->Extensions.ARB_texture_view))
*params = (GLfloat) obj->ImmutableLevels; *params = (GLfloat) obj->ImmutableLevels;
else
goto invalid_pname;
break;
case GL_TEXTURE_VIEW_MIN_LEVEL:
if (!ctx->Extensions.ARB_texture_view)
goto invalid_pname;
*params = (GLfloat) obj->MinLevel;
break;
case GL_TEXTURE_VIEW_NUM_LEVELS:
if (!ctx->Extensions.ARB_texture_view)
goto invalid_pname;
*params = (GLfloat) obj->NumLevels;
break;
case GL_TEXTURE_VIEW_MIN_LAYER:
if (!ctx->Extensions.ARB_texture_view)
goto invalid_pname;
*params = (GLfloat) obj->MinLayer;
break;
case GL_TEXTURE_VIEW_NUM_LAYERS:
if (!ctx->Extensions.ARB_texture_view)
goto invalid_pname;
*params = (GLfloat) obj->NumLayers;
break; break;
case GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES: case GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES:
@ -1742,9 +1768,35 @@ _mesa_GetTexParameteriv( GLenum target, GLenum pname, GLint *params )
break; break;
case GL_TEXTURE_IMMUTABLE_LEVELS: case GL_TEXTURE_IMMUTABLE_LEVELS:
if (!_mesa_is_gles3(ctx)) if (_mesa_is_gles3(ctx) ||
goto invalid_pname; (_mesa_is_desktop_gl(ctx) && ctx->Extensions.ARB_texture_view))
*params = obj->ImmutableLevels; *params = obj->ImmutableLevels;
else
goto invalid_pname;
break;
case GL_TEXTURE_VIEW_MIN_LEVEL:
if (!ctx->Extensions.ARB_texture_view)
goto invalid_pname;
*params = (GLint) obj->MinLevel;
break;
case GL_TEXTURE_VIEW_NUM_LEVELS:
if (!ctx->Extensions.ARB_texture_view)
goto invalid_pname;
*params = (GLint) obj->NumLevels;
break;
case GL_TEXTURE_VIEW_MIN_LAYER:
if (!ctx->Extensions.ARB_texture_view)
goto invalid_pname;
*params = (GLint) obj->MinLayer;
break;
case GL_TEXTURE_VIEW_NUM_LAYERS:
if (!ctx->Extensions.ARB_texture_view)
goto invalid_pname;
*params = (GLint) obj->NumLayers;
break; break;
case GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES: case GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES: