summaryrefslogtreecommitdiff
path: root/src/mesa/main/texenvprogram.c
diff options
context:
space:
mode:
authorKeith Whitwell <keith@tungstengraphics.com>2008-10-15 17:20:30 +0100
committerKeith Whitwell <keith@tungstengraphics.com>2008-10-15 17:20:30 +0100
commitcf85e413ad7672c1cef73215222ca1caa8e48b30 (patch)
treef6c22fe6664f2512a06653768ca27b17d2294134 /src/mesa/main/texenvprogram.c
parentd533a5d00ae2d0669e9da41718ee847de0c343aa (diff)
parent055d986efefa310d6ffd1106e565ca2f5964159a (diff)
Merge commit 'origin/gallium-0.1' into gallium-0.2
Conflicts: src/mesa/main/context.c
Diffstat (limited to 'src/mesa/main/texenvprogram.c')
-rw-r--r--src/mesa/main/texenvprogram.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c
index c23173014d..2c7df7b8d9 100644
--- a/src/mesa/main/texenvprogram.c
+++ b/src/mesa/main/texenvprogram.c
@@ -217,8 +217,18 @@ static GLbitfield get_fp_input_mask( GLcontext *ctx )
{
GLbitfield fp_inputs = 0x0;
- if (!ctx->VertexProgram._Enabled ||
- !ctx->VertexProgram._Current) {
+ if (ctx->VertexProgram._Overriden) {
+ /* Somebody's messing with the vertex program and we don't have
+ * a clue what's happening. Assume that it could be producing
+ * all possible outputs.
+ */
+ fp_inputs = ~0;
+ }
+ else if (ctx->RenderMode == GL_FEEDBACK) {
+ fp_inputs = (FRAG_BIT_COL0 | FRAG_BIT_TEX0);
+ }
+ else if (!ctx->VertexProgram._Enabled ||
+ !ctx->VertexProgram._Current) {
/* Fixed function logic */
GLbitfield varying_inputs = ctx->varying_vp_inputs;