}
-static struct gl_fragment_program *
-current_fragment_program(GLcontext *ctx)
-{
- struct gl_fragment_program *f;
-
- if (ctx->Shader.CurrentProgram &&
- ctx->Shader.CurrentProgram->LinkStatus &&
- ctx->Shader.CurrentProgram->FragmentProgram) {
- f = ctx->Shader.CurrentProgram->FragmentProgram;
- }
- else {
- f = ctx->FragmentProgram._Current;
- assert(f);
- }
- return f;
-}
-
-
static void
update_samplers(struct st_context *st)
{
/* mapping from sampler vars to texture units */
{
- struct gl_fragment_program *fprog = current_fragment_program(st->ctx);
- const GLubyte *samplerUnits = fprog->Base.SamplerUnits;
+ struct gl_fragment_program *fprog = st->ctx->FragmentProgram._Current;
uint sample_units[PIPE_MAX_SAMPLERS];
uint s;
for (s = 0; s < PIPE_MAX_SAMPLERS; s++) {
/* find active shader and params -- Should be covered by
* ST_NEW_VERTEX_PROGRAM
*/
- if (st->ctx->Shader.CurrentProgram &&
- st->ctx->Shader.CurrentProgram->LinkStatus &&
- st->ctx->Shader.CurrentProgram->VertexProgram) {
- struct gl_vertex_program *f
- = st->ctx->Shader.CurrentProgram->VertexProgram;
- stvp = st_vertex_program(f);
- }
- else {
- assert(st->ctx->VertexProgram._Current);
- stvp = st_vertex_program(st->ctx->VertexProgram._Current);
- }
-
+ assert(st->ctx->VertexProgram._Current);
+ stvp = st_vertex_program(st->ctx->VertexProgram._Current);
- if (st->ctx->Shader.CurrentProgram &&
- st->ctx->Shader.CurrentProgram->LinkStatus &&
- st->ctx->Shader.CurrentProgram->FragmentProgram) {
- struct gl_fragment_program *f
- = st->ctx->Shader.CurrentProgram->FragmentProgram;
- stfp = st_fragment_program(f);
- }
- else {
- assert(st->ctx->FragmentProgram._Current);
- stfp = st_fragment_program(st->ctx->FragmentProgram._Current);
- }
+ assert(st->ctx->FragmentProgram._Current);
+ stfp = st_fragment_program(st->ctx->FragmentProgram._Current);
xvp = find_translated_vp(st, stvp, stfp);