X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fstate_tracker%2Fst_cb_bufferobjects.h;h=1c991d2083776a0f062bb5d9f5c5540c60b18cdf;hb=69a07be3e527dbc2148a4e20c50e60266225f5f2;hp=dcbb5a52336a61a04d838812acf4a5714d46ac27;hpb=53116910b10e3b8a05f42970eff311c21808699f;p=mesa.git diff --git a/src/mesa/state_tracker/st_cb_bufferobjects.h b/src/mesa/state_tracker/st_cb_bufferobjects.h index dcbb5a52336..1c991d20837 100644 --- a/src/mesa/state_tracker/st_cb_bufferobjects.h +++ b/src/mesa/state_tracker/st_cb_bufferobjects.h @@ -28,9 +28,12 @@ #ifndef ST_CB_BUFFEROBJECTS_H #define ST_CB_BUFFEROBJECTS_H +#include "main/compiler.h" +#include "main/mtypes.h" + +struct dd_function_table; +struct pipe_resource; struct st_context; -struct gl_buffer_object; -struct pipe_buffer; /** * State_tracker vertex/pixel buffer object, derived from Mesa's @@ -39,26 +42,25 @@ struct pipe_buffer; struct st_buffer_object { struct gl_buffer_object Base; - struct pipe_buffer *buffer; - GLsizeiptrARB size; + struct pipe_resource *buffer; /* GPU storage */ + struct pipe_transfer *transfer; /* In-progress map information */ }; -/* Are the obj->Name tests necessary? Unfortunately yes, mesa - * allocates a couple of gl_buffer_object structs statically, and the - * Name == 0 test is the only way to identify them and avoid casting - * them erroneously to our structs. - */ +/** cast wrapper */ static INLINE struct st_buffer_object * st_buffer_object(struct gl_buffer_object *obj) { - if (obj->Name) - return (struct st_buffer_object *) obj; - else - return NULL; + return (struct st_buffer_object *) obj; } +extern void +st_bufferobj_validate_usage(struct st_context *st, + struct st_buffer_object *obj, + unsigned usage); + + extern void st_init_bufferobject_functions(struct dd_function_table *functions);