i915 will use _TexEnvProgram (if active)
This commit is contained in:
@@ -72,11 +72,13 @@ static void i915InvalidateState( GLcontext *ctx, GLuint new_state )
|
||||
*/
|
||||
{
|
||||
struct i915_fragment_program *p =
|
||||
(struct i915_fragment_program *)ctx->FragmentProgram.Current;
|
||||
if (p->nr_params)
|
||||
(struct i915_fragment_program *)ctx->FragmentProgram._Current;
|
||||
if (p && p->nr_params)
|
||||
p->params_uptodate = 0;
|
||||
}
|
||||
|
||||
if (new_state & (_NEW_FOG|_NEW_HINT|_NEW_PROGRAM))
|
||||
i915_update_fog(ctx);
|
||||
}
|
||||
|
||||
|
||||
|
@@ -309,6 +309,7 @@ extern void i915_print_ureg( const char *msg, GLuint ureg );
|
||||
*/
|
||||
extern void i915InitStateFunctions( struct dd_function_table *functions );
|
||||
extern void i915InitState( i915ContextPtr i915 );
|
||||
extern void i915_update_fog( GLcontext *ctx );
|
||||
|
||||
|
||||
/*======================================================================
|
||||
|
@@ -245,7 +245,7 @@ do { \
|
||||
*/
|
||||
static void upload_program( struct i915_fragment_program *p )
|
||||
{
|
||||
const struct fragment_program *program = p->ctx->FragmentProgram.Current;
|
||||
const struct fragment_program *program = p->ctx->FragmentProgram._Current;
|
||||
const struct fp_instruction *inst = program->Instructions;
|
||||
|
||||
/* _mesa_debug_fp_inst(program->Base.NumInstructions, inst); */
|
||||
@@ -949,7 +949,7 @@ void i915ValidateFragmentProgram( i915ContextPtr i915 )
|
||||
struct vertex_buffer *VB = &tnl->vb;
|
||||
|
||||
struct i915_fragment_program *p =
|
||||
(struct i915_fragment_program *)ctx->FragmentProgram.Current;
|
||||
(struct i915_fragment_program *)ctx->FragmentProgram._Current;
|
||||
|
||||
GLuint inputsRead = p->FragProg.InputsRead;
|
||||
GLuint s4 = i915->state.Ctx[I915_CTXREG_LIS4] & ~S4_VFMT_MASK;
|
||||
|
@@ -521,17 +521,17 @@ static void i915ShadeModel(GLcontext *ctx, GLenum mode)
|
||||
/* =============================================================
|
||||
* Fog
|
||||
*/
|
||||
static void update_fog( GLcontext *ctx )
|
||||
void i915_update_fog( GLcontext *ctx )
|
||||
{
|
||||
i915ContextPtr i915 = I915_CONTEXT(ctx);
|
||||
GLenum mode;
|
||||
GLboolean enabled;
|
||||
GLboolean try_pixel_fog;
|
||||
|
||||
if (ctx->FragmentProgram.Enabled && ctx->FragmentProgram.Current) {
|
||||
if (ctx->FragmentProgram._Active) {
|
||||
/* Pull in static fog state from program */
|
||||
|
||||
mode = ctx->FragmentProgram.Current->FogOption;
|
||||
mode = ctx->FragmentProgram._Current->FogOption;
|
||||
enabled = (mode != GL_NONE);
|
||||
try_pixel_fog = 1;
|
||||
}
|
||||
@@ -623,7 +623,6 @@ static void i915Fogfv(GLcontext *ctx, GLenum pname, const GLfloat *param)
|
||||
case GL_FOG_MODE:
|
||||
case GL_FOG_START:
|
||||
case GL_FOG_END:
|
||||
update_fog( ctx );
|
||||
break;
|
||||
|
||||
case GL_FOG_DENSITY:
|
||||
@@ -658,7 +657,6 @@ static void i915Hint(GLcontext *ctx, GLenum target, GLenum state)
|
||||
{
|
||||
switch (target) {
|
||||
case GL_FOG_HINT:
|
||||
update_fog( ctx );
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -703,7 +701,6 @@ static void i915Enable(GLcontext *ctx, GLenum cap, GLboolean state)
|
||||
break;
|
||||
|
||||
case GL_FRAGMENT_PROGRAM_ARB:
|
||||
update_fog( ctx );
|
||||
break;
|
||||
|
||||
case GL_DITHER:
|
||||
@@ -743,7 +740,6 @@ static void i915Enable(GLcontext *ctx, GLenum cap, GLboolean state)
|
||||
break;
|
||||
|
||||
case GL_FOG:
|
||||
update_fog( ctx );
|
||||
break;
|
||||
|
||||
case GL_CULL_FACE:
|
||||
|
@@ -46,7 +46,7 @@ static void i915_render_start( intelContextPtr intel )
|
||||
GLcontext *ctx = &intel->ctx;
|
||||
i915ContextPtr i915 = I915_CONTEXT(intel);
|
||||
|
||||
if (ctx->FragmentProgram.Enabled && ctx->FragmentProgram.Current)
|
||||
if (ctx->FragmentProgram._Active)
|
||||
i915ValidateFragmentProgram( i915 );
|
||||
else
|
||||
i915ValidateTextureProgram( i915 );
|
||||
|
@@ -642,7 +642,7 @@ void intelChooseRenderState(GLcontext *ctx)
|
||||
TNLcontext *tnl = TNL_CONTEXT(ctx);
|
||||
intelContextPtr intel = INTEL_CONTEXT(ctx);
|
||||
GLuint flags = ctx->_TriangleCaps;
|
||||
struct fragment_program *program = ctx->FragmentProgram.Current;
|
||||
struct fragment_program *program = ctx->FragmentProgram._Current;
|
||||
GLboolean have_wpos = (program && (program->InputsRead & FRAG_BIT_WPOS));
|
||||
GLuint index = 0;
|
||||
|
||||
|
Reference in New Issue
Block a user