diff options
| author | Brian Paul <brian.paul@tungstengraphics.com> | 2008-12-17 14:04:03 -0700 | 
|---|---|---|
| committer | Brian Paul <brian.paul@tungstengraphics.com> | 2008-12-17 14:06:56 -0700 | 
| commit | 947d04d08bead28c43f525ea4c1d99a039bed047 (patch) | |
| tree | 1202123ae954192d77b763b7e56c012e4384cfa3 | |
| parent | 35bb2aa96a2499860869c0d307b599b3033b5264 (diff) | |
mesa: fix fixed-function test in get_fp_input_mask() - again.
The problem we're solving only occured when there was a user-defined
vertex shader but no fragment shader.  Check for that case now.
Fixes glean api2 vertex array failure.
| -rw-r--r-- | src/mesa/main/texenvprogram.c | 8 | 
1 files changed, 5 insertions, 3 deletions
diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index 0294c107b2..75f5baa3e1 100644 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@ -207,6 +207,9 @@ static GLuint translate_tex_src_bit( GLbitfield bit )   */  static GLbitfield get_fp_input_mask( GLcontext *ctx )  { +   const GLboolean vertexShader = (ctx->Shader.CurrentProgram && +                                   ctx->Shader.CurrentProgram->VertexProgram); +   const GLboolean vertexProgram = ctx->VertexProgram._Enabled;     GLbitfield fp_inputs = 0x0;     if (ctx->VertexProgram._Overriden) { @@ -219,10 +222,9 @@ static GLbitfield get_fp_input_mask( GLcontext *ctx )     else if (ctx->RenderMode == GL_FEEDBACK) {        fp_inputs = (FRAG_BIT_COL0 | FRAG_BIT_TEX0);     } -   else if (!ctx->VertexProgram._Enabled || +   else if (!(vertexProgram || vertexShader) ||              !ctx->VertexProgram._Current) { - -      /* Fixed function logic */ +      /* Fixed function vertex logic */        GLbitfield varying_inputs = ctx->varying_vp_inputs;        /* These get generated in the setup routine regardless of the  | 
