diff options
author | Brian <[email protected]> | 2007-10-26 19:19:09 -0600 |
---|---|---|
committer | Brian <[email protected]> | 2007-10-26 19:19:51 -0600 |
commit | 8fed2466e4056668a76a87cf935b5fbff8ae15ca (patch) | |
tree | 81345e5b5ee66dc2dd299f5b9ce29314f2e52735 /src/mesa/shader/program.c | |
parent | 789d248558061fe4d65f664d6770a12b90fa2e34 (diff) |
Re-implement GLSL texture sampler variables.
GLSL sampler variables indicate which texture unit to use for TEX instructions.
Previously, this was baked into the fragment/vertex program and couldn't be
readily changed once set.
Now, SamplerUnits[] array indicates which texture unit is to be used for
each sampler variable. These values are set with glUniform1i().
This is extra state that must be passed to the fragment/vertex program
executor at runtime.
Diffstat (limited to 'src/mesa/shader/program.c')
-rw-r--r-- | src/mesa/shader/program.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mesa/shader/program.c b/src/mesa/shader/program.c index 1f227390afd..cafc0dcfaa4 100644 --- a/src/mesa/shader/program.c +++ b/src/mesa/shader/program.c @@ -187,12 +187,17 @@ _mesa_init_program_struct( GLcontext *ctx, struct gl_program *prog, { (void) ctx; if (prog) { + GLuint i; _mesa_bzero(prog, sizeof(*prog)); prog->Id = id; prog->Target = target; prog->Resident = GL_TRUE; prog->RefCount = 1; prog->Format = GL_PROGRAM_FORMAT_ASCII_ARB; + + /* default mapping from samplers to texture units */ + for (i = 0; i < MAX_SAMPLERS; i++) + prog->SamplerUnits[i] = i; } return prog; |