mesa: Reuse _mesa_max_texture_levels() instead of open-coding it.
authorEric Anholt <eric@anholt.net>
Wed, 1 May 2019 21:13:18 +0000 (14:13 -0700)
committerEric Anholt <eric@anholt.net>
Mon, 13 May 2019 19:02:59 +0000 (12:02 -0700)
The shared function has some extension presence checks, but other than
that has the same switch statement contents.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/mesa/main/teximage.c
src/mesa/main/teximage.h
src/mesa/main/texobj.c

index 1efdd7dd902421d4e5b902dc174149c4b73490b9..edcb48d9a6da8d0d9df4af19a87776097f2b687f 100644 (file)
@@ -503,7 +503,7 @@ get_proxy_tex_image(struct gl_context *ctx, GLenum target, GLint level)
  * \sa gl_constants.
  */
 GLint
-_mesa_max_texture_levels(struct gl_context *ctx, GLenum target)
+_mesa_max_texture_levels(const struct gl_context *ctx, GLenum target)
 {
    switch (target) {
    case GL_TEXTURE_1D:
index 266a9f3d83db242467983234fe113e5e03938b36..261daae39486935bf02e95cd129dae815a80163b 100644 (file)
@@ -179,7 +179,7 @@ _mesa_base_tex_image(const struct gl_texture_object *texObj)
 
 
 extern GLint
-_mesa_max_texture_levels(struct gl_context *ctx, GLenum target);
+_mesa_max_texture_levels(const struct gl_context *ctx, GLenum target);
 
 
 extern GLboolean
index 38860fed4f0ebf1745b680354b981710dc9c0a11..ef6458e417fcfcc43c1355c84ffaf56b13a37f04 100644 (file)
@@ -715,33 +715,8 @@ _mesa_test_texobj_completeness( const struct gl_context *ctx,
       return;
    }
 
-   /* Compute _MaxLevel (the maximum mipmap level we'll sample from given the
-    * mipmap image sizes and GL_TEXTURE_MAX_LEVEL state).
-    */
-   switch (t->Target) {
-   case GL_TEXTURE_1D:
-   case GL_TEXTURE_1D_ARRAY_EXT:
-      maxLevels = ctx->Const.MaxTextureLevels;
-      break;
-   case GL_TEXTURE_2D:
-   case GL_TEXTURE_2D_ARRAY_EXT:
-      maxLevels = ctx->Const.MaxTextureLevels;
-      break;
-   case GL_TEXTURE_3D:
-      maxLevels = ctx->Const.Max3DTextureLevels;
-      break;
-   case GL_TEXTURE_CUBE_MAP:
-   case GL_TEXTURE_CUBE_MAP_ARRAY:
-      maxLevels = ctx->Const.MaxCubeTextureLevels;
-      break;
-   case GL_TEXTURE_RECTANGLE_NV:
-   case GL_TEXTURE_BUFFER:
-   case GL_TEXTURE_EXTERNAL_OES:
-   case GL_TEXTURE_2D_MULTISAMPLE:
-   case GL_TEXTURE_2D_MULTISAMPLE_ARRAY:
-      maxLevels = 1;  /* no mipmapping */
-      break;
-   default:
+   maxLevels = _mesa_max_texture_levels(ctx, t->Target);
+   if (maxLevels == 0) {
       _mesa_problem(ctx, "Bad t->Target in _mesa_test_texobj_completeness");
       return;
    }