*/
/**
- * \file vbo_context.h
- * \brief VBO builder module datatypes and definitions.
+ * \brief Public interface to the VBO module
* \author Keith Whitwell
*/
extern "C" {
#endif
-struct gl_client_array;
+struct gl_vertex_array;
struct gl_context;
struct gl_transform_feedback_object;
*/
struct _mesa_index_buffer {
GLuint count;
- GLenum type;
+ unsigned index_size;
struct gl_buffer_object *obj;
const void *ptr;
};
GLboolean _vbo_CreateContext( struct gl_context *ctx );
void _vbo_DestroyContext( struct gl_context *ctx );
-void _vbo_InvalidateState( struct gl_context *ctx, GLbitfield new_state );
+void
+vbo_exec_invalidate_state(struct gl_context *ctx);
+
+void
+_vbo_install_exec_vtxfmt(struct gl_context *ctx);
+
void
vbo_initialize_exec_dispatch(const struct gl_context *ctx,
struct _glapi_table *exec);
void vbo_exec_FlushVertices(struct gl_context *ctx, GLuint flags);
void vbo_save_SaveFlushVertices(struct gl_context *ctx);
-GLboolean vbo_save_NotifyBegin(struct gl_context *ctx, GLenum mode);
+void vbo_save_NotifyBegin(struct gl_context *ctx, GLenum mode);
void vbo_save_NewList(struct gl_context *ctx, GLuint list, GLenum mode);
void vbo_save_EndList(struct gl_context *ctx);
void vbo_save_BeginCallList(struct gl_context *ctx, struct gl_display_list *list);
void vbo_split_prims( struct gl_context *ctx,
- const struct gl_client_array *arrays[],
+ const struct gl_vertex_array *arrays[],
const struct _mesa_prim *prim,
GLuint nr_prims,
const struct _mesa_index_buffer *ib,
const struct split_limits *limits );
-/* Helpers for dealing translating away non-zero min_index.
- */
-GLboolean vbo_all_varyings_in_vbos( const struct gl_client_array *arrays[] );
-GLboolean vbo_any_varyings_in_vbos( const struct gl_client_array *arrays[] );
+GLboolean vbo_all_varyings_in_vbos( const struct gl_vertex_array *arrays[] );
void vbo_rebase_prims( struct gl_context *ctx,
- const struct gl_client_array *arrays[],
+ const struct gl_vertex_array *arrays[],
const struct _mesa_prim *prim,
GLuint nr_prims,
const struct _mesa_index_buffer *ib,
GLuint max_index,
vbo_draw_func draw );
-static inline int
-vbo_sizeof_ib_type(GLenum type)
-{
- switch (type) {
- case GL_UNSIGNED_INT:
- return sizeof(GLuint);
- case GL_UNSIGNED_SHORT:
- return sizeof(GLushort);
- case GL_UNSIGNED_BYTE:
- return sizeof(GLubyte);
- default:
- assert(!"unsupported index data type");
- /* In case assert is turned off */
- return 0;
- }
-}
void
vbo_delete_minmax_cache(struct gl_buffer_object *bufferObj);
void vbo_set_indirect_draw_func(struct gl_context *ctx,
vbo_indirect_draw_func func);
-bool vbo_bind_arrays(struct gl_context *ctx);
-
-size_t
-vbo_count_tessellated_primitives(GLenum mode, GLuint count,
- GLuint num_instances);
-
-void
-vbo_try_prim_conversion(struct _mesa_prim *p);
-
-bool
-vbo_can_merge_prims(const struct _mesa_prim *p0, const struct _mesa_prim *p1);
-
-void
-vbo_merge_prims(struct _mesa_prim *p0, const struct _mesa_prim *p1);
-
void
vbo_sw_primitive_restart(struct gl_context *ctx,
const struct _mesa_prim *prim,