From: Brian Date: Mon, 26 Mar 2007 16:13:02 +0000 (-0600) Subject: merge of glsl-compiler-1 branch X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d619cceea47dc3070ebb7f7ea4f8b6b31a672d38;p=mesa.git merge of glsl-compiler-1 branch --- d619cceea47dc3070ebb7f7ea4f8b6b31a672d38 diff --cc src/mesa/drivers/dri/r300/r300_context.c index 68c8f5b87d0,8aaf50b6d81..1f8d95078fb --- a/src/mesa/drivers/dri/r300/r300_context.c +++ b/src/mesa/drivers/dri/r300/r300_context.c @@@ -331,13 -334,13 +331,13 @@@ GLboolean r300CreateContext(const __GLc ctx->Const.FragmentProgram.MaxNativeTexIndirections = PFS_MAX_TEX_INDIRECT; ctx->Const.FragmentProgram.MaxNativeAddressRegs = 0; /* and these are?? */ _tnl_ProgramCacheInit(ctx); - ctx->_MaintainTexEnvProgram = GL_TRUE; + ctx->FragmentProgram._MaintainTexEnvProgram = GL_TRUE; driInitExtensions(ctx, card_extensions, GL_TRUE); - + if (driQueryOptionb(&r300->radeon.optionCache, "disable_stencil_two_side") == 0) driInitSingleExtension(ctx, stencil_two_side); - + if (r300->radeon.glCtx->Mesa_DXTn && !driQueryOptionb (&r300->radeon.optionCache, "disable_s3tc")) { _mesa_enable_extension( ctx, "GL_EXT_texture_compression_s3tc" ); _mesa_enable_extension( ctx, "GL_S3_s3tc" ); diff --cc src/mesa/drivers/dri/r300/r300_state.c index 17658efdb2f,fff11653de1..ff3c51c5edf --- a/src/mesa/drivers/dri/r300/r300_state.c +++ b/src/mesa/drivers/dri/r300/r300_state.c @@@ -1055,44 -1057,28 +1057,46 @@@ r300UpdateDrawBuffer(GLcontext *ctx #endif } - static void r300FetchStateParameter(GLcontext *ctx, const enum state_index state[], - GLfloat *value) + static void + r300FetchStateParameter(GLcontext *ctx, + const gl_state_index state[STATE_LENGTH], + GLfloat *value) { - r300ContextPtr r300 = R300_CONTEXT(ctx); + r300ContextPtr r300 = R300_CONTEXT(ctx); - switch(state[0]) - { - case STATE_INTERNAL: - switch(state[1]) - { - case STATE_R300_WINDOW_DIMENSION: - value[0] = r300->radeon.dri.drawable->w*0.5f;/* width*0.5 */ - value[1] = r300->radeon.dri.drawable->h*0.5f;/* height*0.5 */ - value[2] = 0.5F; /* for moving range [-1 1] -> [0 1] */ - value[3] = 1.0F; /* not used */ - break; - default:; + switch(state[0]) { + case STATE_INTERNAL: + switch(state[1]) { + case STATE_R300_WINDOW_DIMENSION: + value[0] = r300->radeon.dri.drawable->w*0.5f;/* width*0.5 */ + value[1] = r300->radeon.dri.drawable->h*0.5f;/* height*0.5 */ + value[2] = 0.5F; /* for moving range [-1 1] -> [0 1] */ + value[3] = 1.0F; /* not used */ + break; + + case STATE_R300_TEXRECT_FACTOR: { + struct gl_texture_object* t = ctx->Texture.Unit[state[2]].CurrentRect; + + if (t && t->Image[0][t->BaseLevel]) { + struct gl_texture_image* image = t->Image[0][t->BaseLevel]; + value[0] = 1.0 / image->Width2; + value[1] = 1.0 / image->Height2; + } else { + value[0] = 1.0; + value[1] = 1.0; + } + value[2] = 1.0; + value[3] = 1.0; + break; } + + default: + break; + } + break; + + default: + break; } - default:; - } } /** diff --cc src/mesa/main/texenvprogram.c index d1994f76d1b,54ae7ce0a13..0c6fa82f112 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@@ -1010,10 -1011,10 +1011,10 @@@ create_new_program(GLcontext *ctx, stru */ p.program->Base.Instructions = instBuffer; p.program->Base.Target = GL_FRAGMENT_PROGRAM_ARB; - p.program->NumTexIndirections = 1; /* correct? */ - p.program->NumTexInstructions = 0; - p.program->NumAluInstructions = 0; + p.program->Base.NumTexIndirections = 1; /* correct? */ + p.program->Base.NumTexInstructions = 0; + p.program->Base.NumAluInstructions = 0; - p.program->Base.String = 0; + p.program->Base.String = NULL; p.program->Base.NumInstructions = p.program->Base.NumTemporaries = p.program->Base.NumParameters =