Parcourir la source

Add missing GetSubData callback.

Fill in various parts of the base gl_buffer_object struct as required from
each of our callbacks.
tags/texman_0_1_20060325
Keith Whitwell il y a 20 ans
Parent
révision
9826d83439
1 fichiers modifiés avec 25 ajouts et 1 suppressions
  1. 25
    1
      src/mesa/drivers/dri/i915/intel_buffer_objects.c

+ 25
- 1
src/mesa/drivers/dri/i915/intel_buffer_objects.c Voir le fichier

@@ -96,6 +96,10 @@ static void intel_bufferobj_data( GLcontext *ctx,
* argument below)
*/
assert(intel_obj);

obj->Size = size;
obj->Usage = usage;

bmBufferData(intel->bm, intel_obj->buffer, size, data, 0);
}

@@ -120,6 +124,22 @@ static void intel_bufferobj_subdata( GLcontext *ctx,



static void intel_bufferobj_get_subdata( GLcontext *ctx,
GLenum target,
GLintptrARB offset,
GLsizeiptrARB size,
GLvoid * data,
struct gl_buffer_object * obj )
{
struct intel_context *intel = intel_context(ctx);
struct intel_buffer_object *intel_obj = intel_buffer_object(obj);

assert(intel_obj);
bmBufferGetSubData(intel->bm, intel_obj->buffer, offset, size, data);
}




static void *intel_bufferobj_map( GLcontext *ctx,
GLenum target,
@@ -132,7 +152,8 @@ static void *intel_bufferobj_map( GLcontext *ctx,
/* XXX: Translate access to flags arg below:
*/
assert(intel_obj);
return bmMapBuffer(intel->bm, intel_obj->buffer, 0);
obj->Pointer = bmMapBuffer(intel->bm, intel_obj->buffer, 0);
return obj->Pointer;
}


@@ -144,7 +165,9 @@ static GLboolean intel_bufferobj_unmap( GLcontext *ctx,
struct intel_buffer_object *intel_obj = intel_buffer_object(obj);

assert(intel_obj);
assert(obj->Pointer);
bmUnmapBuffer(intel->bm, intel_obj->buffer);
obj->Pointer = NULL;
return GL_TRUE;
}

@@ -161,6 +184,7 @@ void intel_bufferobj_init( struct intel_context *intel )
ctx->Driver.DeleteBuffer = intel_bufferobj_free;
ctx->Driver.BufferData = intel_bufferobj_data;
ctx->Driver.BufferSubData = intel_bufferobj_subdata;
ctx->Driver.GetBufferSubData = intel_bufferobj_get_subdata;
ctx->Driver.MapBuffer = intel_bufferobj_map;
ctx->Driver.UnmapBuffer = intel_bufferobj_unmap;
}

Chargement…
Annuler
Enregistrer