summaryrefslogtreecommitdiff
path: root/src/mesa/main
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2003-12-09 01:53:03 +0000
committerBrian Paul <brian.paul@tungstengraphics.com>2003-12-09 01:53:03 +0000
commit853bda3e7c4dfa7d8cc462729f6a3dce89e44963 (patch)
tree9fdbf1812276c8f1f2bb8e56d82d0d163e22eae0 /src/mesa/main
parente8bec8832b50b8c2310e40951bea8bd78f89715c (diff)
Update NEED_SECONDARY_COLOR macro to test if either vertex/fragment
programs are enabled and if they need secondary color input register. Patch by Karl Rasche, with tweaks by Brian.
Diffstat (limited to 'src/mesa/main')
-rw-r--r--src/mesa/main/context.h7
-rw-r--r--src/mesa/main/nvfragprog.h15
2 files changed, 21 insertions, 1 deletions
diff --git a/src/mesa/main/context.h b/src/mesa/main/context.h
index 2687dc596a..d6d7920bb4 100644
--- a/src/mesa/main/context.h
+++ b/src/mesa/main/context.h
@@ -374,7 +374,12 @@ do { \
#define NEED_SECONDARY_COLOR(CTX) \
(((CTX)->Light.Enabled && \
(CTX)->Light.Model.ColorControl == GL_SEPARATE_SPECULAR_COLOR) \
- || (CTX)->Fog.ColorSumEnabled)
+ || (CTX)->Fog.ColorSumEnabled \
+ || ((CTX)->VertexProgram.Enabled && \
+ ((CTX)->VertexProgram.Current->InputsRead & VERT_BIT_COLOR1)) \
+ || ((CTX)->FragmentProgram.Enabled && \
+ ((CTX)->FragmentProgram.Current->InputsRead & FRAG_BIT_COL1)) \
+ )
/**
diff --git a/src/mesa/main/nvfragprog.h b/src/mesa/main/nvfragprog.h
index 772edd6be4..7752ddbab4 100644
--- a/src/mesa/main/nvfragprog.h
+++ b/src/mesa/main/nvfragprog.h
@@ -50,6 +50,21 @@
#define FRAG_ATTRIB_TEX6 10
#define FRAG_ATTRIB_TEX7 11
+/* Bitmasks for the above */
+#define FRAG_BIT_WPOS (1 << FRAG_ATTRIB_WPOS)
+#define FRAG_BIT_COL0 (1 << FRAG_ATTRIB_COL0)
+#define FRAG_BIT_COL1 (1 << FRAG_ATTRIB_COL1)
+#define FRAG_BIT_FOGC (1 << FRAG_ATTRIB_FOGC)
+#define FRAG_BIT_TEX0 (1 << FRAG_ATTRIB_TEX0)
+#define FRAG_BIT_TEX1 (1 << FRAG_ATTRIB_TEX1)
+#define FRAG_BIT_TEX2 (1 << FRAG_ATTRIB_TEX2)
+#define FRAG_BIT_TEX3 (1 << FRAG_ATTRIB_TEX3)
+#define FRAG_BIT_TEX4 (1 << FRAG_ATTRIB_TEX4)
+#define FRAG_BIT_TEX5 (1 << FRAG_ATTRIB_TEX5)
+#define FRAG_BIT_TEX6 (1 << FRAG_ATTRIB_TEX6)
+#define FRAG_BIT_TEX7 (1 << FRAG_ATTRIB_TEX7)
+
+/* output registers */
#define FRAG_OUTPUT_COLR 0
#define FRAG_OUTPUT_COLH 1
#define FRAG_OUTPUT_DEPR 2