mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-23 22:00:13 +01:00
mesa: Rearrange legal_texobj_target to look more like _mesa_legal_get_tex_level_parameter_target
This makes it a bit easier to add support for more features in different APIs. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
ef5bad09c4
commit
d79c950eeb
1 changed files with 26 additions and 11 deletions
|
|
@ -51,11 +51,31 @@
|
||||||
static GLboolean
|
static GLboolean
|
||||||
legal_texobj_target(struct gl_context *ctx, GLuint dims, GLenum target)
|
legal_texobj_target(struct gl_context *ctx, GLuint dims, GLenum target)
|
||||||
{
|
{
|
||||||
if (_mesa_is_gles3(ctx)
|
if (dims < 1 || dims > 3) {
|
||||||
&& target != GL_TEXTURE_2D
|
_mesa_problem(ctx, "invalid dims=%u in legal_texobj_target()", dims);
|
||||||
&& target != GL_TEXTURE_CUBE_MAP
|
return GL_FALSE;
|
||||||
&& target != GL_TEXTURE_3D
|
}
|
||||||
&& target != GL_TEXTURE_2D_ARRAY)
|
|
||||||
|
switch (dims) {
|
||||||
|
case 2:
|
||||||
|
switch (target) {
|
||||||
|
case GL_TEXTURE_2D:
|
||||||
|
return GL_TRUE;
|
||||||
|
case GL_TEXTURE_CUBE_MAP:
|
||||||
|
return ctx->Extensions.ARB_texture_cube_map;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
switch (target) {
|
||||||
|
case GL_TEXTURE_3D:
|
||||||
|
return GL_TRUE;
|
||||||
|
case GL_TEXTURE_2D_ARRAY:
|
||||||
|
return ctx->Extensions.EXT_texture_array;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_mesa_is_desktop_gl(ctx))
|
||||||
return GL_FALSE;
|
return GL_FALSE;
|
||||||
|
|
||||||
switch (dims) {
|
switch (dims) {
|
||||||
|
|
@ -69,10 +89,8 @@ legal_texobj_target(struct gl_context *ctx, GLuint dims, GLenum target)
|
||||||
}
|
}
|
||||||
case 2:
|
case 2:
|
||||||
switch (target) {
|
switch (target) {
|
||||||
case GL_TEXTURE_2D:
|
|
||||||
case GL_PROXY_TEXTURE_2D:
|
case GL_PROXY_TEXTURE_2D:
|
||||||
return GL_TRUE;
|
return GL_TRUE;
|
||||||
case GL_TEXTURE_CUBE_MAP:
|
|
||||||
case GL_PROXY_TEXTURE_CUBE_MAP:
|
case GL_PROXY_TEXTURE_CUBE_MAP:
|
||||||
return ctx->Extensions.ARB_texture_cube_map;
|
return ctx->Extensions.ARB_texture_cube_map;
|
||||||
case GL_TEXTURE_RECTANGLE:
|
case GL_TEXTURE_RECTANGLE:
|
||||||
|
|
@ -86,10 +104,8 @@ legal_texobj_target(struct gl_context *ctx, GLuint dims, GLenum target)
|
||||||
}
|
}
|
||||||
case 3:
|
case 3:
|
||||||
switch (target) {
|
switch (target) {
|
||||||
case GL_TEXTURE_3D:
|
|
||||||
case GL_PROXY_TEXTURE_3D:
|
case GL_PROXY_TEXTURE_3D:
|
||||||
return GL_TRUE;
|
return GL_TRUE;
|
||||||
case GL_TEXTURE_2D_ARRAY:
|
|
||||||
case GL_PROXY_TEXTURE_2D_ARRAY:
|
case GL_PROXY_TEXTURE_2D_ARRAY:
|
||||||
return ctx->Extensions.EXT_texture_array;
|
return ctx->Extensions.EXT_texture_array;
|
||||||
case GL_TEXTURE_CUBE_MAP_ARRAY:
|
case GL_TEXTURE_CUBE_MAP_ARRAY:
|
||||||
|
|
@ -99,8 +115,7 @@ legal_texobj_target(struct gl_context *ctx, GLuint dims, GLenum target)
|
||||||
return GL_FALSE;
|
return GL_FALSE;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
_mesa_problem(ctx, "invalid dims=%u in legal_texobj_target()", dims);
|
unreachable("impossible dimensions");
|
||||||
return GL_FALSE;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue