/** * There is some duplication between mesa's bufferobjects and our * bufmgr buffers. Both have an integer handle and a hashtable to * lookup an opaque structure. It would be nice if the handles and * internal structure where somehow shared. */ static struct gl_buffer_object * intel_bufferobj_alloc(GLcontext * ctx, GLuint name, GLenum target) { struct intel_buffer_object *obj = CALLOC_STRUCT(intel_buffer_object); _mesa_initialize_buffer_object(&obj->Base, name, target); obj->buffer = NULL; return &obj->Base; }
/** * Allocate and initialize a new buffer object. * * Default callback for the \c dd_function_table::NewBufferObject() hook. */ static struct gl_buffer_object * _mesa_new_buffer_object( GLcontext *ctx, GLuint name, GLenum target ) { struct gl_buffer_object *obj; (void) ctx; obj = MALLOC_STRUCT(gl_buffer_object); _mesa_initialize_buffer_object(obj, name, target); return obj; }
/** * There is some duplication between mesa's bufferobjects and our * bufmgr buffers. Both have an integer handle and a hashtable to * lookup an opaque structure. It would be nice if the handles and * internal structure where somehow shared. */ static struct gl_buffer_object * st_bufferobj_alloc(struct gl_context *ctx, GLuint name, GLenum target) { struct st_buffer_object *st_obj = ST_CALLOC_STRUCT(st_buffer_object); if (!st_obj) return NULL; _mesa_initialize_buffer_object(ctx, &st_obj->Base, name, target); return &st_obj->Base; }
static struct gl_buffer_object * nouveau_bufferobj_new(struct gl_context *ctx, GLuint buffer, GLenum target) { struct nouveau_bufferobj *nbo; nbo = CALLOC_STRUCT(nouveau_bufferobj); if (!nbo) return NULL; _mesa_initialize_buffer_object(&nbo->base, buffer, target); return &nbo->base; }
static struct gl_buffer_object * radeonNewBufferObject(struct gl_context * ctx, GLuint name, GLenum target) { struct radeon_buffer_object *obj = CALLOC_STRUCT(radeon_buffer_object); _mesa_initialize_buffer_object(&obj->Base, name, target); obj->bo = NULL; return &obj->Base; }
/** * The NewBufferObject() driver hook. * * Allocates a new intel_buffer_object structure and initializes it. * * There is some duplication between mesa's bufferobjects and our * bufmgr buffers. Both have an integer handle and a hashtable to * lookup an opaque structure. It would be nice if the handles and * internal structure where somehow shared. */ static struct gl_buffer_object * brw_new_buffer_object(struct gl_context * ctx, GLuint name) { struct intel_buffer_object *obj = CALLOC_STRUCT(intel_buffer_object); if (!obj) { _mesa_error_no_memory(__func__); } _mesa_initialize_buffer_object(ctx, &obj->Base, name); obj->buffer = NULL; return &obj->Base; }
/** * There is some duplication between mesa's bufferobjects and our * bufmgr buffers. Both have an integer handle and a hashtable to * lookup an opaque structure. It would be nice if the handles and * internal structure where somehow shared. */ static struct gl_buffer_object *intel_bufferobj_alloc( GLcontext *ctx, GLuint name, GLenum target ) { struct intel_context *intel = intel_context(ctx); struct intel_buffer_object *obj = MALLOC_STRUCT(intel_buffer_object); _mesa_initialize_buffer_object(&obj->Base, name, target); /* XXX: We generate our own handle, which is different to 'name' above. */ bmGenBuffers(intel->bm, 1, &obj->buffer, 0); return &obj->Base; }