diff options
author | Keith Whitwell <[email protected]> | 2005-11-01 17:25:49 +0000 |
---|---|---|
committer | Keith Whitwell <[email protected]> | 2005-11-01 17:25:49 +0000 |
commit | c3626a91cee5034528f3f92c802a8e5947ea5f92 (patch) | |
tree | fd16d99ef237e31067e9f7a74bc2cee471bcc7e9 /src/mesa/shader/arbprogparse.c | |
parent | 6aa6d440d9d312cb984020e746aa80c3dbf6ea2c (diff) |
Several fp and vp tweaks:
- Renumber VERT_RESULT_* values so that they match the
numbers of the corresponding FRAG_ATTRIB_ values.
- Add ctx->VertexProgram._Current and FragmentProgram._Current
values which point to either the current client-supplied
program if enabled, or otherwise to the current mesa-internal
program. Thus this program is always the correct one for
the current state, providing that the mesa flags to turn on
automatic generation are enabled.
- Add callbacks to ctx->Driver.BindProgram() in texenvprogram.c
and t_vp_build.c so that the driver knows when the generated
program changes. This is cleaner than trying to code all the
possible _NEW_* flags into the driver, and more precise as well.
- Add a UsesKill flag to identify fragment programs with that
instruction, as these can require special treatment.
- Move the FRAG_OUTPUT values to mtypes.h, near to similar defn's.
Diffstat (limited to 'src/mesa/shader/arbprogparse.c')
-rw-r--r-- | src/mesa/shader/arbprogparse.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/mesa/shader/arbprogparse.c b/src/mesa/shader/arbprogparse.c index e8fe869d0bb..19c38b6272a 100644 --- a/src/mesa/shader/arbprogparse.c +++ b/src/mesa/shader/arbprogparse.c @@ -3013,6 +3013,7 @@ parse_fp_instruction (GLcontext * ctx, GLubyte ** inst, break; case OP_TEX_KIL: + Program->UsesKill = 1; if (parse_fp_vector_src_reg(ctx, inst, vc_head, Program, &fp->SrcReg[0])) return 1; fp->Opcode = FP_OPCODE_KIL; @@ -4014,6 +4015,8 @@ _mesa_parse_arb_program (GLcontext * ctx, const GLubyte * str, GLsizei len, program->NumTexInstructions = program->NumTexIndirections = 0; + program->UsesKill = 0; + program->FPInstructions = NULL; program->VPInstructions = NULL; |