mesa: clean up validate_texture_wrap_mode
[mesa.git] / src / mesa / main / api_arrayelt.h
index 706a72308c55fbffa14dfcbf224e9137214193ea..03810c69b5e40b3e4278aece9b1db41b97a5c9d4 100644 (file)
 #ifndef API_ARRAYELT_H
 #define API_ARRAYELT_H
 
-#include "mtypes.h"
 
-extern GLboolean _ae_create_context( GLcontext *ctx );
-extern void _ae_destroy_context( GLcontext *ctx );
-extern void _ae_invalidate_state( GLcontext *ctx, GLuint new_state );
-extern void _ae_loopback_array_elt( GLint elt );
+#include "main/mfeatures.h"
+#include "main/mtypes.h"
 
-#endif
+#if FEATURE_arrayelt
+
+#define _MESA_INIT_ARRAYELT_VTXFMT(vfmt, impl)     \
+   do {                                            \
+      (vfmt)->ArrayElement = impl ## ArrayElement; \
+   } while (0)
+
+extern GLboolean _ae_create_context( struct gl_context *ctx );
+extern void _ae_destroy_context( struct gl_context *ctx );
+extern void _ae_invalidate_state( struct gl_context *ctx, GLuint new_state );
+extern void GLAPIENTRY _ae_ArrayElement( GLint elt );
+
+/* May optionally be called before a batch of element calls:
+ */
+extern void _ae_map_vbos( struct gl_context *ctx );
+extern void _ae_unmap_vbos( struct gl_context *ctx );
+
+extern void
+_mesa_install_arrayelt_vtxfmt(struct _glapi_table *disp,
+                              const GLvertexformat *vfmt);
+
+#else /* FEATURE_arrayelt */
+
+#define _MESA_INIT_ARRAYELT_VTXFMT(vfmt, impl) do { } while (0)
+
+static inline GLboolean
+_ae_create_context( struct gl_context *ctx )
+{
+   return GL_TRUE;
+}
+
+static inline void
+_ae_destroy_context( struct gl_context *ctx )
+{
+}
+
+static inline void
+_ae_invalidate_state( struct gl_context *ctx, GLuint new_state )
+{
+}
+
+static inline void
+_mesa_install_arrayelt_vtxfmt(struct _glapi_table *disp,
+                              const GLvertexformat *vfmt)
+{
+}
+
+#endif /* FEATURE_arrayelt */
+
+
+#endif /* API_ARRAYELT_H */