Merge branch '7.8'
[mesa.git] / src / mesa / drivers / dri / nouveau / nouveau_util.h
index 076f225fedc6a50b624c1e49df3a7fb184effccb..584cb80ef62fa3e8479d8428f91b9f1d09103abd 100644 (file)
@@ -173,4 +173,40 @@ OUT_RINGm(struct nouveau_channel *chan, float m[16])
                        OUT_RINGf(chan, m[4*j + i]);
 }
 
+static inline GLboolean
+is_color_operand(int op)
+{
+       return op == GL_SRC_COLOR || op == GL_ONE_MINUS_SRC_COLOR;
+}
+
+static inline GLboolean
+is_negative_operand(int op)
+{
+       return op == GL_ONE_MINUS_SRC_COLOR || op == GL_ONE_MINUS_SRC_ALPHA;
+}
+
+static inline GLboolean
+is_texture_source(int s)
+{
+       return s == GL_TEXTURE || (s >= GL_TEXTURE0 && s <= GL_TEXTURE31);
+}
+
+static inline struct gl_texgen *
+get_texgen_coord(struct gl_texture_unit *u, int i)
+{
+       return ((struct gl_texgen *[])
+               { &u->GenS, &u->GenT, &u->GenR, &u->GenQ }) [i];
+}
+
+static inline float *
+get_texgen_coeff(struct gl_texgen *c)
+{
+       if (c->Mode == GL_OBJECT_LINEAR)
+               return c->ObjectPlane;
+       else if (c->Mode == GL_EYE_LINEAR)
+               return c->EyePlane;
+       else
+               return NULL;
+}
+
 #endif