Missing from previous commit
authorKeith Whitwell <keith@tungstengraphics.com>
Tue, 10 May 2005 11:41:33 +0000 (11:41 +0000)
committerKeith Whitwell <keith@tungstengraphics.com>
Tue, 10 May 2005 11:41:33 +0000 (11:41 +0000)
src/mesa/tnl/t_vb_arbprogram.c
src/mesa/tnl/t_vp_build.c

index cb7639c33de44da29a9417d15dd197c1686df3fe..3be82c72985c2cad9f46170313ba3f897eb9b169 100644 (file)
@@ -1383,7 +1383,7 @@ run_arb_vertex_program(GLcontext *ctx, struct tnl_pipeline_stage *stage)
 {
    struct vertex_program *program = (ctx->VertexProgram._Enabled ?
                                     ctx->VertexProgram.Current :
-                                    &ctx->_TnlProgram);
+                                    ctx->_TnlProgram);
    struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb;
    struct arb_vp_machine *m = ARB_VP_MACHINE(stage);
    GLuint i, j, outputs = program->OutputsWritten;
@@ -1479,7 +1479,7 @@ validate_vertex_program( GLcontext *ctx, struct tnl_pipeline_stage *stage )
 
 #if TNL_FIXED_FUNCTION_PROGRAM
    if (!program) {
-      program = &ctx->_TnlProgram;
+      program = ctx->_TnlProgram;
    }
 #endif
 
index 9034fc77121e355ce28b9d9d00574f1a86e1eac0..22dc595abb8be03e6573152dfe72aa4dc8493752 100644 (file)
@@ -1097,10 +1097,14 @@ void _tnl_UpdateFixedFunctionProgram( GLcontext *ctx )
 
    if (ctx->VertexProgram._Enabled)
       return;
+   
+   if (!ctx->_TnlProgram)
+      ctx->_TnlProgram = (struct vertex_program *)
+        ctx->Driver.NewProgram(ctx, GL_VERTEX_PROGRAM_ARB, 0);
 
    memset(&p, 0, sizeof(p));
    p.ctx = ctx;
-   p.program = &ctx->_TnlProgram;
+   p.program = ctx->_TnlProgram;
    
    p.eye_position = undef;
    p.eye_position_normalized = undef;
@@ -1122,7 +1126,7 @@ void _tnl_UpdateFixedFunctionProgram( GLcontext *ctx )
    p.program->Base.NumAttributes = p.program->Base.NumAddressRegs = 0;
    if (p.program->Parameters)
       _mesa_free_parameter_list(p.program->Parameters);
-   p.program->Parameters = _mesa_new_parameter_list ();
+   p.program->Parameters = _mesa_new_parameter_list();
    p.program->InputsRead = 0;
    p.program->OutputsWritten = 0;