X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fvbo%2Fvbo.h;h=73478e666dcb2ee0d0e3d6d69555104343a75827;hb=e81aaeba37f5419323d8f88bc10943c77e25ed14;hp=57ab2acc18aa6e75de97614310f5106d0bca8959;hpb=72a5dff9cbc9ec9edee9e9ef539e4cb3f9051903;p=mesa.git diff --git a/src/mesa/vbo/vbo.h b/src/mesa/vbo/vbo.h index 57ab2acc18a..73478e666dc 100644 --- a/src/mesa/vbo/vbo.h +++ b/src/mesa/vbo/vbo.h @@ -58,6 +58,7 @@ struct _mesa_prim { GLint basevertex; GLuint num_instances; GLuint base_instance; + GLuint draw_id; GLsizeiptr indirect_offset; }; @@ -77,7 +78,7 @@ struct _mesa_index_buffer { GLboolean _vbo_CreateContext( struct gl_context *ctx ); void _vbo_DestroyContext( struct gl_context *ctx ); -void _vbo_InvalidateState( struct gl_context *ctx, GLuint new_state ); +void _vbo_InvalidateState( struct gl_context *ctx, GLbitfield new_state ); void @@ -89,7 +90,12 @@ vbo_initialize_save_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_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_save_EndCallList(struct gl_context *ctx); typedef void (*vbo_draw_func)( struct gl_context *ctx, @@ -104,6 +110,18 @@ typedef void (*vbo_draw_func)( struct gl_context *ctx, struct gl_buffer_object *indirect); +typedef void (*vbo_indirect_draw_func)( + struct gl_context *ctx, + GLuint mode, + struct gl_buffer_object *indirect_data, + GLsizeiptr indirect_offset, + unsigned draw_count, + unsigned stride, + struct gl_buffer_object *indirect_params, + GLsizeiptr indirect_params_offset, + const struct _mesa_index_buffer *ib); + + /* Utility function to cope with various constraints on tnl modules or @@ -162,6 +180,9 @@ vbo_sizeof_ib_type(GLenum type) } } +void +vbo_delete_minmax_cache(struct gl_buffer_object *bufferObj); + void vbo_get_minmax_indices(struct gl_context *ctx, const struct _mesa_prim *prim, const struct _mesa_index_buffer *ib, @@ -173,7 +194,8 @@ void vbo_always_unmap_buffers(struct gl_context *ctx); void vbo_set_draw_func(struct gl_context *ctx, vbo_draw_func func); -void vbo_check_buffers_are_unmapped(struct gl_context *ctx); +void vbo_set_indirect_draw_func(struct gl_context *ctx, + vbo_indirect_draw_func func); void vbo_bind_arrays(struct gl_context *ctx);