summaryrefslogtreecommitdiffstats
path: root/src/mesa/swrast/s_arbshader.c
diff options
context:
space:
mode:
authorMichal Krol <[email protected]>2006-03-21 10:37:40 +0000
committerMichal Krol <[email protected]>2006-03-21 10:37:40 +0000
commit071357096e682e9af59ad45ea5abc444ab431837 (patch)
tree99fba2183fe97981f7c309d99b206b39e43f5bec /src/mesa/swrast/s_arbshader.c
parent519b23b21f9cd6945fd17cdb26e7a6f531cdeec0 (diff)
GLSL fixes:
- generate error on NULL pointers in glShaderSourceARB; - reinstall program object, if current, in glLinkProgramARB; - vertex and fragment shaders are optional in program object; - floor asm was wrongly computed for x86 back-end; - allow for (void) idiom in function prototypes; - all fixed-state uniforms are updated; - local variable initializers are working; - implement texture* and shadow* functions for vertex processor; - generate error if too many arguments in general constructor; - trim unused data in general constructor; - struct r-value field select was badly relocated; Changes: - add derived state gl_fog_attrib::_Scale; - add derived state gl_light::_CosCutoffNeg;
Diffstat (limited to 'src/mesa/swrast/s_arbshader.c')
-rw-r--r--src/mesa/swrast/s_arbshader.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/mesa/swrast/s_arbshader.c b/src/mesa/swrast/s_arbshader.c
index c915b97d6ec..ba146dd1bb9 100644
--- a/src/mesa/swrast/s_arbshader.c
+++ b/src/mesa/swrast/s_arbshader.c
@@ -40,14 +40,16 @@ void _swrast_exec_arbshader (GLcontext *ctx, struct sw_span *span)
struct gl2_program_intf **pro;
GLuint i;
- pro = ctx->ShaderObjects.CurrentProgram;
- if (pro == NULL)
+ if (!ctx->ShaderObjects._FragmentShaderPresent)
return;
+ pro = ctx->ShaderObjects.CurrentProgram;
+ if (!ctx->ShaderObjects._VertexShaderPresent)
+ (**pro).UpdateFixedUniforms (pro);
for (i = span->start; i < span->end; i++)
{
- /* only run shader on active fragments */
- if (span->array->mask[i]) {
+ /* only run shader on active fragments */
+ if (span->array->mask[i]) {
GLfloat vec[4];
GLuint j;
GLboolean discard;
@@ -91,7 +93,7 @@ void _swrast_exec_arbshader (GLcontext *ctx, struct sw_span *span)
UNCLAMPED_FLOAT_TO_CHAN(span->array->rgba[i][BCOMP], vec[2]);
UNCLAMPED_FLOAT_TO_CHAN(span->array->rgba[i][ACOMP], vec[3]);
}
- }
+ }
}
}