diff options
author | Marek Olšák <[email protected]> | 2017-11-15 22:02:51 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2018-02-13 01:00:45 +0100 |
commit | 07c10cc59c164ddd0109e061dac8edf47437d8ca (patch) | |
tree | ad38e5e0408a4fe07fb41a77b0bacef2e19a7100 /src/mesa/drivers/dri/r200 | |
parent | 79aca14f5f37de32140fb710970133c72886a0f2 (diff) |
mesa: separate legacy stuff from gl_texture_unit into gl_fixedfunc_texture_unit
Reviewed-by: Brian Paul <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri/r200')
-rw-r--r-- | src/mesa/drivers/dri/r200/r200_tex.c | 3 | ||||
-rw-r--r-- | src/mesa/drivers/dri/r200/r200_texstate.c | 31 |
2 files changed, 20 insertions, 14 deletions
diff --git a/src/mesa/drivers/dri/r200/r200_tex.c b/src/mesa/drivers/dri/r200/r200_tex.c index 0696c0dc683..1b217b9ed2b 100644 --- a/src/mesa/drivers/dri/r200/r200_tex.c +++ b/src/mesa/drivers/dri/r200/r200_tex.c @@ -297,7 +297,8 @@ static void r200TexEnv( struct gl_context *ctx, GLenum target, { r200ContextPtr rmesa = R200_CONTEXT(ctx); GLuint unit = ctx->Texture.CurrentUnit; - struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit]; + struct gl_fixedfunc_texture_unit *texUnit = + &ctx->Texture.FixedFuncUnit[unit]; radeon_print(RADEON_TEXTURE | RADEON_STATE, RADEON_VERBOSE, "%s( %s )\n", __func__, _mesa_enum_to_string( pname ) ); diff --git a/src/mesa/drivers/dri/r200/r200_texstate.c b/src/mesa/drivers/dri/r200/r200_texstate.c index dcf211f521e..60a20071d97 100644 --- a/src/mesa/drivers/dri/r200/r200_texstate.c +++ b/src/mesa/drivers/dri/r200/r200_texstate.c @@ -217,7 +217,9 @@ do { \ static GLboolean r200UpdateTextureEnv( struct gl_context *ctx, int unit, int slot, GLuint replaceargs ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); - const struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit]; + const struct gl_texture_unit *rtexUnit = &ctx->Texture.Unit[unit]; + const struct gl_fixedfunc_texture_unit *texUnit = + &ctx->Texture.FixedFuncUnit[unit]; GLuint color_combine, alpha_combine; GLuint color_scale = rmesa->hw.pix[slot].cmd[PIX_PP_TXCBLEND2] & ~(R200_TXC_SCALE_MASK | R200_TXC_OUTPUT_REG_MASK | R200_TXC_TFACTOR_SEL_MASK | @@ -244,7 +246,7 @@ static GLboolean r200UpdateTextureEnv( struct gl_context *ctx, int unit, int slo (unit << R200_TXA_TFACTOR_SEL_SHIFT) | (replaceargs << R200_TXA_TFACTOR1_SEL_SHIFT); - if ( !texUnit->_Current ) { + if ( !rtexUnit->_Current ) { assert( unit == 0); color_combine = R200_TXC_ARG_A_ZERO | R200_TXC_ARG_B_ZERO | R200_TXC_ARG_C_DIFFUSE_COLOR | R200_TXC_OP_MADD; @@ -261,9 +263,9 @@ static GLboolean r200UpdateTextureEnv( struct gl_context *ctx, int unit, int slo const GLint replaceoprgb = - ctx->Texture.Unit[replaceargs]._CurrentCombine->OperandRGB[0] - GL_SRC_COLOR; + ctx->Texture.FixedFuncUnit[replaceargs]._CurrentCombine->OperandRGB[0] - GL_SRC_COLOR; const GLint replaceopa = - ctx->Texture.Unit[replaceargs]._CurrentCombine->OperandA[0] - GL_SRC_ALPHA; + ctx->Texture.FixedFuncUnit[replaceargs]._CurrentCombine->OperandA[0] - GL_SRC_ALPHA; /* Step 1: * Extract the color and alpha combine function arguments. @@ -286,7 +288,7 @@ static GLboolean r200UpdateTextureEnv( struct gl_context *ctx, int unit, int slo case GL_PREVIOUS: if (replaceargs != unit) { const GLint srcRGBreplace = - ctx->Texture.Unit[replaceargs]._CurrentCombine->SourceRGB[0]; + ctx->Texture.FixedFuncUnit[replaceargs]._CurrentCombine->SourceRGB[0]; if (op >= 2) { op = op ^ replaceopa; } @@ -373,7 +375,7 @@ static GLboolean r200UpdateTextureEnv( struct gl_context *ctx, int unit, int slo case GL_PREVIOUS: if (replaceargs != unit) { const GLint srcAreplace = - ctx->Texture.Unit[replaceargs]._CurrentCombine->SourceA[0]; + ctx->Texture.FixedFuncUnit[replaceargs]._CurrentCombine->SourceA[0]; op = op ^ replaceopa; switch (srcAreplace) { case GL_TEXTURE: @@ -771,7 +773,9 @@ static GLboolean r200UpdateAllTexEnv( struct gl_context *ctx ) stageref[maxunitused + 1] = REF_COLOR | REF_ALPHA; for ( j = maxunitused; j >= 0; j-- ) { - const struct gl_texture_unit *texUnit = &ctx->Texture.Unit[j]; + const struct gl_texture_unit *rtexUnit = &ctx->Texture.Unit[j]; + const struct gl_fixedfunc_texture_unit *texUnit = + &ctx->Texture.FixedFuncUnit[j]; rmesa->state.texture.unit[j].outputreg = -1; @@ -793,7 +797,7 @@ static GLboolean r200UpdateAllTexEnv( struct gl_context *ctx ) nextunit[j] = currentnext; - if (!texUnit->_Current) { + if (!rtexUnit->_Current) { /* the not enabled stages are referenced "indirectly", must not cut off the lower stages */ stageref[j] = REF_COLOR | REF_ALPHA; @@ -880,10 +884,10 @@ static GLboolean r200UpdateAllTexEnv( struct gl_context *ctx ) if (ctx->Texture.Unit[i]._Current && stageref[i+1]) { GLuint replaceunit = i; /* try to optimize GL_REPLACE away (only one level deep though) */ - if ( (ctx->Texture.Unit[i]._CurrentCombine->ModeRGB == GL_REPLACE) && - (ctx->Texture.Unit[i]._CurrentCombine->ModeA == GL_REPLACE) && - (ctx->Texture.Unit[i]._CurrentCombine->ScaleShiftRGB == 0) && - (ctx->Texture.Unit[i]._CurrentCombine->ScaleShiftA == 0) && + if ( (ctx->Texture.FixedFuncUnit[i]._CurrentCombine->ModeRGB == GL_REPLACE) && + (ctx->Texture.FixedFuncUnit[i]._CurrentCombine->ModeA == GL_REPLACE) && + (ctx->Texture.FixedFuncUnit[i]._CurrentCombine->ScaleShiftRGB == 0) && + (ctx->Texture.FixedFuncUnit[i]._CurrentCombine->ScaleShiftA == 0) && (nextunit[i] > 0) ) { /* yippie! can optimize it away! */ replaceunit = i; @@ -1086,7 +1090,8 @@ static GLuint r200_need_dis_texgen(const GLbitfield texGenEnabled, static GLboolean r200_validate_texgen( struct gl_context *ctx, GLuint unit ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); - const struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit]; + const struct gl_fixedfunc_texture_unit *texUnit = + &ctx->Texture.FixedFuncUnit[unit]; GLuint inputshift = R200_TEXGEN_0_INPUT_SHIFT + unit*4; GLuint tgi, tgcm; GLuint mode = 0; |