nir: support lowering clipdist to arrays
[mesa.git] / src / mesa / main / texstate.h
index abc07eafb4ecdd4df19168c94266bed87e0fee4a..f2e55f1a4af3fcf5742fe08caebf8f44cf1d8ac5 100644 (file)
@@ -32,7 +32,6 @@
 #define TEXSTATE_H
 
 
-#include "compiler.h"
 #include "enums.h"
 #include "macros.h"
 #include "mtypes.h"
@@ -41,7 +40,7 @@
 static inline struct gl_texture_unit *
 _mesa_get_tex_unit(struct gl_context *ctx, GLuint unit)
 {
-   ASSERT(unit < Elements(ctx->Texture.Unit));
+   assert(unit < ARRAY_SIZE(ctx->Texture.Unit));
    return &(ctx->Texture.Unit[unit]);
 }
 
@@ -55,6 +54,22 @@ _mesa_get_current_tex_unit(struct gl_context *ctx)
    return _mesa_get_tex_unit(ctx, ctx->Texture.CurrentUnit);
 }
 
+
+/**
+ * Return pointer to current fixed-func texture unit.
+ * This the texture unit set by glActiveTexture(), not glClientActiveTexture().
+ * \return NULL if the current unit is not a fixed-func texture unit
+ */
+static inline struct gl_fixedfunc_texture_unit *
+_mesa_get_fixedfunc_tex_unit(struct gl_context *ctx, GLuint unit)
+{
+   if (unit >= ARRAY_SIZE(ctx->Texture.FixedFuncUnit))
+      return NULL;
+
+   return &ctx->Texture.FixedFuncUnit[unit];
+}
+
+
 static inline GLuint
 _mesa_max_tex_unit(struct gl_context *ctx)
 {
@@ -63,24 +78,6 @@ _mesa_max_tex_unit(struct gl_context *ctx)
                ctx->Const.MaxTextureCoordUnits);
 }
 
-static inline struct gl_texture_unit *
-_mesa_get_tex_unit_err(struct gl_context *ctx, GLuint unit, const char *func)
-{
-   if (unit < _mesa_max_tex_unit(ctx))
-      return _mesa_get_tex_unit(ctx, unit);
-
-   /* Note: This error is a precedent set by glBindTextures. From the GL 4.5
-    * specification (30.10.2014) Section 8.1 ("Texture Objects"):
-    *
-    *    "An INVALID_OPERATION error is generated if first + count is greater
-    *     than the number of texture image units supported by the
-    *     implementation."
-    */
-   _mesa_error(ctx, GL_INVALID_OPERATION, "%s(unit=%s)", func,
-               _mesa_lookup_enum_by_nr(GL_TEXTURE0+unit));
-   return NULL;
-}
-
 
 extern void
 _mesa_copy_texture_state( const struct gl_context *src, struct gl_context *dst );
@@ -95,6 +92,9 @@ _mesa_print_texunit_state( struct gl_context *ctx, GLuint unit );
  */
 /*@{*/
 
+extern void GLAPIENTRY
+_mesa_ActiveTexture_no_error( GLenum target );
+
 extern void GLAPIENTRY
 _mesa_ActiveTexture( GLenum target );
 
@@ -109,8 +109,11 @@ _mesa_ClientActiveTexture( GLenum target );
  */
 /*@{*/
 
-extern void 
-_mesa_update_texture( struct gl_context *ctx, GLuint new_state );
+extern void
+_mesa_update_texture_matrices(struct gl_context *ctx);
+
+extern void
+_mesa_update_texture_state(struct gl_context *ctx);
 
 extern GLboolean
 _mesa_init_texture( struct gl_context *ctx );