mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 02:10:11 +01:00
mesa: Reorganize check_textarget().
Having one top-level switch statement covering all known texture targets will make the next change easier to implement. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
This commit is contained in:
parent
53b8f6374f
commit
aecdb21be8
1 changed files with 37 additions and 43 deletions
|
|
@ -2991,54 +2991,48 @@ check_textarget(struct gl_context *ctx, int dims, GLenum target,
|
|||
{
|
||||
bool err = false;
|
||||
|
||||
switch (dims) {
|
||||
case 1:
|
||||
switch (textarget) {
|
||||
case GL_TEXTURE_1D:
|
||||
break;
|
||||
case GL_TEXTURE_1D_ARRAY:
|
||||
err = !ctx->Extensions.EXT_texture_array;
|
||||
break;
|
||||
default:
|
||||
err = true;
|
||||
}
|
||||
switch (textarget) {
|
||||
case GL_TEXTURE_1D:
|
||||
err = dims != 1;
|
||||
break;
|
||||
case 2:
|
||||
switch (textarget) {
|
||||
case GL_TEXTURE_2D:
|
||||
break;
|
||||
case GL_TEXTURE_RECTANGLE:
|
||||
err = _mesa_is_gles(ctx)
|
||||
|| !ctx->Extensions.NV_texture_rectangle;
|
||||
break;
|
||||
case GL_TEXTURE_CUBE_MAP_POSITIVE_X:
|
||||
case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:
|
||||
case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:
|
||||
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
|
||||
case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
|
||||
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
|
||||
err = !ctx->Extensions.ARB_texture_cube_map;
|
||||
break;
|
||||
case GL_TEXTURE_2D_ARRAY:
|
||||
err = (_mesa_is_gles(ctx) && ctx->Version < 30)
|
||||
|| !ctx->Extensions.EXT_texture_array;
|
||||
break;
|
||||
case GL_TEXTURE_2D_MULTISAMPLE:
|
||||
case GL_TEXTURE_2D_MULTISAMPLE_ARRAY:
|
||||
err = (_mesa_is_gles(ctx) ||
|
||||
!ctx->Extensions.ARB_texture_multisample) &&
|
||||
!_mesa_is_gles31(ctx);
|
||||
break;
|
||||
default:
|
||||
err = true;
|
||||
}
|
||||
case GL_TEXTURE_1D_ARRAY:
|
||||
err = dims != 1 || !ctx->Extensions.EXT_texture_array;
|
||||
break;
|
||||
case 3:
|
||||
if (textarget != GL_TEXTURE_3D)
|
||||
err = true;
|
||||
case GL_TEXTURE_2D:
|
||||
err = dims != 2;
|
||||
break;
|
||||
case GL_TEXTURE_2D_ARRAY:
|
||||
err = dims != 2 || !ctx->Extensions.EXT_texture_array ||
|
||||
(_mesa_is_gles(ctx) && ctx->Version < 30);
|
||||
break;
|
||||
case GL_TEXTURE_2D_MULTISAMPLE:
|
||||
case GL_TEXTURE_2D_MULTISAMPLE_ARRAY:
|
||||
err = dims != 2 ||
|
||||
!ctx->Extensions.ARB_texture_multisample ||
|
||||
(_mesa_is_gles(ctx) && ctx->Version < 31);
|
||||
break;
|
||||
case GL_TEXTURE_RECTANGLE:
|
||||
err = dims != 2 || _mesa_is_gles(ctx) ||
|
||||
!ctx->Extensions.NV_texture_rectangle;
|
||||
break;
|
||||
case GL_TEXTURE_CUBE_MAP:
|
||||
case GL_TEXTURE_CUBE_MAP_ARRAY:
|
||||
err = true;
|
||||
break;
|
||||
case GL_TEXTURE_CUBE_MAP_POSITIVE_X:
|
||||
case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:
|
||||
case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:
|
||||
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
|
||||
case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
|
||||
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
|
||||
err = dims != 2 || !ctx->Extensions.ARB_texture_cube_map;
|
||||
break;
|
||||
case GL_TEXTURE_3D:
|
||||
err = dims != 3;
|
||||
break;
|
||||
default:
|
||||
err = true;
|
||||
break;
|
||||
}
|
||||
|
||||
if (err) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue