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;
This commit is contained in:
Michal Krol
2006-03-21 10:37:40 +00:00
parent 519b23b21f
commit 071357096e
34 changed files with 1772 additions and 1390 deletions

View File

@@ -1264,7 +1264,7 @@ run_arb_vertex_program(GLcontext *ctx, struct tnl_pipeline_stage *stage)
GLuint i, j;
GLbitfield outputs;
if (ctx->ShaderObjects.CurrentProgram != NULL)
if (ctx->ShaderObjects._VertexShaderPresent)
return GL_TRUE;
program = (ctx->VertexProgram._Enabled ? ctx->VertexProgram.Current : ctx->_TnlProgram);
@@ -1427,7 +1427,7 @@ validate_vertex_program( GLcontext *ctx, struct tnl_pipeline_stage *stage )
struct arb_vp_machine *m = ARB_VP_MACHINE(stage);
struct vertex_program *program;
if (ctx->ShaderObjects.CurrentProgram != NULL)
if (ctx->ShaderObjects._VertexShaderPresent)
return;
program = (ctx->VertexProgram._Enabled ? ctx->VertexProgram.Current : 0);