mesa: replace _mesa_get_current_fixedfunc_tex_unit with _mesa_get_fixedfunc_tex_unit
authorPierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Mon, 29 Apr 2019 17:23:36 +0000 (19:23 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Tue, 6 Aug 2019 21:02:52 +0000 (17:02 -0400)
The new function implements the same feature but doesn't depend
on ctx->Texture.CurrentUnit.
This change allows to use it from indexed functions.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/mesa/main/enable.c
src/mesa/main/texenv.c
src/mesa/main/texgen.c
src/mesa/main/texstate.h

index 418fc75c72443f8b645413ac5eb75ed5212f83d2..8c3a9a789a9521754674f695736e340c272def41 100644 (file)
@@ -247,7 +247,7 @@ static GLboolean
 enable_texture(struct gl_context *ctx, GLboolean state, GLbitfield texBit)
 {
    struct gl_fixedfunc_texture_unit *texUnit =
-      _mesa_get_current_fixedfunc_tex_unit(ctx);
+      _mesa_get_fixedfunc_tex_unit(ctx, ctx->Texture.CurrentUnit);
    if (!texUnit)
       return GL_FALSE;
 
@@ -1401,7 +1401,7 @@ static GLboolean
 is_texture_enabled(struct gl_context *ctx, GLbitfield bit)
 {
    const struct gl_fixedfunc_texture_unit *const texUnit =
-      _mesa_get_current_fixedfunc_tex_unit(ctx);
+      _mesa_get_fixedfunc_tex_unit(ctx, ctx->Texture.CurrentUnit);
 
    if (!texUnit)
       return GL_FALSE;
index a69c8dd74353bfd3e26126780f8865ad5c621f50..95b44004c32e435a03429013898ebf5fa91a40a1 100644 (file)
@@ -408,7 +408,7 @@ _mesa_TexEnvfv( GLenum target, GLenum pname, const GLfloat *param )
 
    if (target == GL_TEXTURE_ENV) {
       struct gl_fixedfunc_texture_unit *texUnit =
-         _mesa_get_current_fixedfunc_tex_unit(ctx);
+         _mesa_get_fixedfunc_tex_unit(ctx, ctx->Texture.CurrentUnit);
 
       /* The GL spec says that we should report an error if the unit is greater
        * than GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, but in practice, only
@@ -670,7 +670,7 @@ _mesa_GetTexEnvfv( GLenum target, GLenum pname, GLfloat *params )
 
    if (target == GL_TEXTURE_ENV) {
       struct gl_fixedfunc_texture_unit *texUnit =
-         _mesa_get_current_fixedfunc_tex_unit(ctx);
+         _mesa_get_fixedfunc_tex_unit(ctx, ctx->Texture.CurrentUnit);
 
       /* The GL spec says that we should report an error if the unit is greater
        * than GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, but in practice, only
@@ -747,7 +747,7 @@ _mesa_GetTexEnviv( GLenum target, GLenum pname, GLint *params )
 
    if (target == GL_TEXTURE_ENV) {
       struct gl_fixedfunc_texture_unit *texUnit =
-         _mesa_get_current_fixedfunc_tex_unit(ctx);
+         _mesa_get_fixedfunc_tex_unit(ctx, ctx->Texture.CurrentUnit);
 
       /* The GL spec says that we should report an error if the unit is greater
        * than GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, but in practice, only
index 4eb2f60464ad91583f4f6bb149374d8230502a41..96d0228d8cac892f35217cf1de2cdb563ed068bb 100644 (file)
@@ -85,7 +85,7 @@ _mesa_TexGenfv( GLenum coord, GLenum pname, const GLfloat *params )
       return;
    }
 
-   texUnit = _mesa_get_current_fixedfunc_tex_unit(ctx);
+   texUnit = _mesa_get_fixedfunc_tex_unit(ctx, ctx->Texture.CurrentUnit);
 
    texgen = get_texgen(ctx, texUnit, coord);
    if (!texgen) {
@@ -297,7 +297,7 @@ _mesa_GetTexGendv( GLenum coord, GLenum pname, GLdouble *params )
       return;
    }
 
-   texUnit = _mesa_get_current_fixedfunc_tex_unit(ctx);
+   texUnit = _mesa_get_fixedfunc_tex_unit(ctx, ctx->Texture.CurrentUnit);
 
    texgen = get_texgen(ctx, texUnit, coord);
    if (!texgen) {
@@ -334,7 +334,7 @@ _mesa_GetTexGenfv( GLenum coord, GLenum pname, GLfloat *params )
       return;
    }
 
-   texUnit = _mesa_get_current_fixedfunc_tex_unit(ctx);
+   texUnit = _mesa_get_fixedfunc_tex_unit(ctx, ctx->Texture.CurrentUnit);
 
    texgen = get_texgen(ctx, texUnit, coord);
    if (!texgen) {
@@ -379,7 +379,7 @@ _mesa_GetTexGeniv( GLenum coord, GLenum pname, GLint *params )
       return;
    }
 
-   texUnit = _mesa_get_current_fixedfunc_tex_unit(ctx);
+   texUnit = _mesa_get_fixedfunc_tex_unit(ctx, ctx->Texture.CurrentUnit);
 
    texgen = get_texgen(ctx, texUnit, coord);
    if (!texgen) {
index c0b73b14e828ccbeb8d5bd765a46194c3faf5fdd..f2e55f1a4af3fcf5742fe08caebf8f44cf1d8ac5 100644 (file)
@@ -61,10 +61,8 @@ _mesa_get_current_tex_unit(struct gl_context *ctx)
  * \return NULL if the current unit is not a fixed-func texture unit
  */
 static inline struct gl_fixedfunc_texture_unit *
-_mesa_get_current_fixedfunc_tex_unit(struct gl_context *ctx)
+_mesa_get_fixedfunc_tex_unit(struct gl_context *ctx, GLuint unit)
 {
-   unsigned unit = ctx->Texture.CurrentUnit;
-
    if (unit >= ARRAY_SIZE(ctx->Texture.FixedFuncUnit))
       return NULL;