diff options
author | Brian Paul <brian.paul@tungstengraphics.com> | 2006-10-30 00:12:05 +0000 |
---|---|---|
committer | Brian Paul <brian.paul@tungstengraphics.com> | 2006-10-30 00:12:05 +0000 |
commit | a23e668d40b10236fcf5ca83fdbda93ab36fa86f (patch) | |
tree | 04517d0b6ddaa6b44ec6b01c50570974f76023a0 /src/mesa/tnl | |
parent | 0781339b395a9b2a89ff800eb827ed733f34a8a1 (diff) |
Move gl_vertex_program_machine struct out of mtypes.h and put into nvvertexec.h.
Massage nvvertexec.c code to work more like s_nvfragprog.c - another step
toward unifying vertex/fragment program execution.
Diffstat (limited to 'src/mesa/tnl')
-rw-r--r-- | src/mesa/tnl/t_vb_program.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/mesa/tnl/t_vb_program.c b/src/mesa/tnl/t_vb_program.c index b8828ec36a..f11ac616f1 100644 --- a/src/mesa/tnl/t_vb_program.c +++ b/src/mesa/tnl/t_vb_program.c @@ -76,6 +76,7 @@ run_vp( GLcontext *ctx, struct tnl_pipeline_stage *stage ) struct vp_stage_data *store = VP_STAGE_DATA(stage); struct vertex_buffer *VB = &tnl->vb; struct gl_vertex_program *program = ctx->VertexProgram.Current; + struct vp_machine machine; GLuint i; if (ctx->ShaderObjects._VertexShaderPresent) @@ -91,7 +92,7 @@ run_vp( GLcontext *ctx, struct tnl_pipeline_stage *stage ) for (i = 0; i < VB->Count; i++) { GLuint attr; - _mesa_init_vp_per_vertex_registers(ctx); + _mesa_init_vp_per_vertex_registers(ctx, &machine); #if 0 printf("Input %d: %f, %f, %f, %f\n", i, @@ -118,30 +119,29 @@ run_vp( GLcontext *ctx, struct tnl_pipeline_stage *stage ) const GLuint size = VB->AttribPtr[attr]->size; const GLuint stride = VB->AttribPtr[attr]->stride; const GLfloat *data = (GLfloat *) (ptr + stride * i); - COPY_CLEAN_4V(ctx->VertexProgram.Machine.Inputs[attr], size, data); + COPY_CLEAN_4V(machine.Inputs[attr], size, data); } } /* execute the program */ ASSERT(program); - _mesa_exec_vertex_program(ctx, program); + _mesa_exec_vertex_program(ctx, &machine, program); /* Fixup fog an point size results if needed */ if (ctx->Fog.Enabled && (program->Base.OutputsWritten & (1 << VERT_RESULT_FOGC)) == 0) { - ctx->VertexProgram.Machine.Outputs[VERT_RESULT_FOGC][0] = 1.0; + machine.Outputs[VERT_RESULT_FOGC][0] = 1.0; } if (ctx->VertexProgram.PointSizeEnabled && (program->Base.OutputsWritten & (1 << VERT_RESULT_PSIZ)) == 0) { - ctx->VertexProgram.Machine.Outputs[VERT_RESULT_PSIZ][0] = ctx->Point.Size; + machine.Outputs[VERT_RESULT_PSIZ][0] = ctx->Point.Size; } /* copy the output registers into the VB->attribs arrays */ /* XXX (optimize) could use a conditional and smaller loop limit here */ for (attr = 0; attr < 15; attr++) { - COPY_4V(store->attribs[attr].data[i], - ctx->VertexProgram.Machine.Outputs[attr]); + COPY_4V(store->attribs[attr].data[i], machine.Outputs[attr]); } } |