summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBrian <brian.paul@tungstengraphics.com>2007-10-29 09:24:29 -0600
committerBrian <brian.paul@tungstengraphics.com>2007-10-29 09:25:00 -0600
commitcc0b55c242e9f53a8e45c5d4392f964af44f396e (patch)
tree51ff2194b5083244b08881e2af94e2ac64e56a8e /src
parent2a3f3679eba802dcb4b46f90c66326c9195cdbcb (diff)
simplify code which access the current vertex/fragment shaders
Diffstat (limited to 'src')
-rw-r--r--src/mesa/state_tracker/st_atom_sampler.c21
-rw-r--r--src/mesa/state_tracker/st_atom_shader.c27
2 files changed, 5 insertions, 43 deletions
diff --git a/src/mesa/state_tracker/st_atom_sampler.c b/src/mesa/state_tracker/st_atom_sampler.c
index 80b8cae013..bdc6024477 100644
--- a/src/mesa/state_tracker/st_atom_sampler.c
+++ b/src/mesa/state_tracker/st_atom_sampler.c
@@ -113,24 +113,6 @@ gl_filter_to_img_filter(GLenum filter)
}
-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)
{
@@ -186,8 +168,7 @@ 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++) {
diff --git a/src/mesa/state_tracker/st_atom_shader.c b/src/mesa/state_tracker/st_atom_shader.c
index 92ca22851e..d4976941f9 100644
--- a/src/mesa/state_tracker/st_atom_shader.c
+++ b/src/mesa/state_tracker/st_atom_shader.c
@@ -264,30 +264,11 @@ update_linkage( struct st_context *st )
/* 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);