X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fstate_tracker%2Fst_cb_bufferobjects.h;h=54e6a21ce57acebdb0f65a2352f83668081935f6;hb=137954408172a5104f0f5650bae943d2ebf0aa07;hp=dcbb5a52336a61a04d838812acf4a5714d46ac27;hpb=c417a2c3f37a6a28947db5dc5aa240473d29dd19;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..54e6a21ce57 100644 --- a/src/mesa/state_tracker/st_cb_bufferobjects.h +++ b/src/mesa/state_tracker/st_cb_bufferobjects.h @@ -1,6 +1,6 @@ /************************************************************************** * - * Copyright 2005 Tungsten Graphics, Inc., Cedar Park, Texas. + * Copyright 2005 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a @@ -18,7 +18,7 @@ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR + * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -28,9 +28,13 @@ #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 pipe_screen; struct st_context; -struct gl_buffer_object; -struct pipe_buffer; /** * State_tracker vertex/pixel buffer object, derived from Mesa's @@ -39,28 +43,28 @@ 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[MAP_COUNT]; }; -/* 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. - */ -static INLINE struct st_buffer_object * +/** 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_init_bufferobject_functions(struct dd_function_table *functions); +st_bufferobj_validate_usage(struct st_context *st, + struct st_buffer_object *obj, + unsigned usage); + + +extern void +st_init_bufferobject_functions(struct pipe_screen *screen, + struct dd_function_table *functions); #endif