mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 19:40:10 +01:00
vbo: use _mesa_is_bufferobj()
This commit is contained in:
parent
684049d97d
commit
bd4c6a2e50
4 changed files with 21 additions and 18 deletions
|
|
@ -51,7 +51,7 @@ vbo_get_minmax_index(GLcontext *ctx,
|
|||
GLsizei count = prim->count;
|
||||
const void *indices;
|
||||
|
||||
if (ib->obj->Name) {
|
||||
if (_mesa_is_bufferobj(ib->obj)) {
|
||||
const GLvoid *map = ctx->Driver.MapBuffer(ctx,
|
||||
GL_ELEMENT_ARRAY_BUFFER_ARB,
|
||||
GL_READ_ONLY,
|
||||
|
|
@ -103,7 +103,7 @@ vbo_get_minmax_index(GLcontext *ctx,
|
|||
break;
|
||||
}
|
||||
|
||||
if (ib->obj->Name != 0) {
|
||||
if (_mesa_is_bufferobj(ib->obj)) {
|
||||
ctx->Driver.UnmapBuffer(ctx,
|
||||
GL_ELEMENT_ARRAY_BUFFER_ARB,
|
||||
ib->obj);
|
||||
|
|
@ -121,7 +121,7 @@ check_array_data(GLcontext *ctx, struct gl_client_array *array,
|
|||
{
|
||||
if (array->Enabled) {
|
||||
const void *data = array->Ptr;
|
||||
if (array->BufferObj->Name) {
|
||||
if (_mesa_is_bufferobj(array->BufferObj)) {
|
||||
if (!array->BufferObj->Pointer) {
|
||||
/* need to map now */
|
||||
array->BufferObj->Pointer = ctx->Driver.MapBuffer(ctx,
|
||||
|
|
@ -166,8 +166,8 @@ static void
|
|||
unmap_array_buffer(GLcontext *ctx, struct gl_client_array *array)
|
||||
{
|
||||
if (array->Enabled &&
|
||||
array->BufferObj->Name &&
|
||||
array->BufferObj->Pointer) {
|
||||
_mesa_is_bufferobj(array->BufferObj) &&
|
||||
_mesa_bufferobj_mapped(array->BufferObj)) {
|
||||
ctx->Driver.UnmapBuffer(ctx,
|
||||
GL_ARRAY_BUFFER_ARB,
|
||||
array->BufferObj);
|
||||
|
|
@ -186,7 +186,7 @@ check_draw_elements_data(GLcontext *ctx, GLsizei count, GLenum elemType,
|
|||
const void *elemMap;
|
||||
GLint i, k;
|
||||
|
||||
if (ctx->Array.ElementArrayBufferObj->Name) {
|
||||
if (_mesa_is_bufferobj(ctx->Array.ElementArrayBufferObj)) {
|
||||
elemMap = ctx->Driver.MapBuffer(ctx,
|
||||
GL_ELEMENT_ARRAY_BUFFER_ARB,
|
||||
GL_READ_ONLY,
|
||||
|
|
@ -225,7 +225,7 @@ check_draw_elements_data(GLcontext *ctx, GLsizei count, GLenum elemType,
|
|||
}
|
||||
}
|
||||
|
||||
if (ctx->Array.ElementArrayBufferObj->Name) {
|
||||
if (_mesa_is_bufferobj(ctx->Array.ElementArrayBufferObj)) {
|
||||
ctx->Driver.UnmapBuffer(ctx,
|
||||
GL_ELEMENT_ARRAY_BUFFER_ARB,
|
||||
ctx->Array.ElementArrayBufferObj);
|
||||
|
|
|
|||
|
|
@ -214,7 +214,7 @@ vbo_exec_bind_arrays( GLcontext *ctx )
|
|||
/* override the default array set above */
|
||||
exec->vtx.inputs[attr] = &arrays[attr];
|
||||
|
||||
if (exec->vtx.bufferobj->Name) {
|
||||
if (_mesa_is_bufferobj(exec->vtx.bufferobj)) {
|
||||
/* a real buffer obj: Ptr is an offset, not a pointer*/
|
||||
GLsizeiptr offset;
|
||||
assert(exec->vtx.bufferobj->Pointer); /* buf should be mapped */
|
||||
|
|
@ -251,7 +251,7 @@ vbo_exec_vtx_unmap( struct vbo_exec_context *exec )
|
|||
{
|
||||
GLenum target = GL_ARRAY_BUFFER_ARB;
|
||||
|
||||
if (exec->vtx.bufferobj->Name) {
|
||||
if (_mesa_is_bufferobj(exec->vtx.bufferobj)) {
|
||||
GLcontext *ctx = exec->ctx;
|
||||
|
||||
if (ctx->Driver.FlushMappedBufferRange) {
|
||||
|
|
@ -291,7 +291,7 @@ vbo_exec_vtx_map( struct vbo_exec_context *exec )
|
|||
MESA_MAP_NOWAIT_BIT;
|
||||
const GLenum usage = GL_STREAM_DRAW_ARB;
|
||||
|
||||
if (exec->vtx.bufferobj->Name == 0)
|
||||
if (!_mesa_is_bufferobj(exec->vtx.bufferobj))
|
||||
return;
|
||||
|
||||
if (exec->vtx.buffer_map != NULL) {
|
||||
|
|
@ -365,7 +365,7 @@ vbo_exec_vtx_flush( struct vbo_exec_context *exec, GLboolean unmap )
|
|||
if (ctx->NewState)
|
||||
_mesa_update_state( ctx );
|
||||
|
||||
if (exec->vtx.bufferobj->Name) {
|
||||
if (_mesa_is_bufferobj(exec->vtx.bufferobj)) {
|
||||
vbo_exec_vtx_unmap( exec );
|
||||
}
|
||||
|
||||
|
|
@ -384,7 +384,7 @@ vbo_exec_vtx_flush( struct vbo_exec_context *exec, GLboolean unmap )
|
|||
|
||||
/* If using a real VBO, get new storage -- unless asked not to.
|
||||
*/
|
||||
if (exec->vtx.bufferobj->Name && !unmap) {
|
||||
if (_mesa_is_bufferobj(exec->vtx.bufferobj) && !unmap) {
|
||||
vbo_exec_vtx_map( exec );
|
||||
}
|
||||
}
|
||||
|
|
@ -393,7 +393,7 @@ vbo_exec_vtx_flush( struct vbo_exec_context *exec, GLboolean unmap )
|
|||
/* May have to unmap explicitly if we didn't draw:
|
||||
*/
|
||||
if (unmap &&
|
||||
exec->vtx.bufferobj->Name &&
|
||||
_mesa_is_bufferobj(exec->vtx.bufferobj) &&
|
||||
exec->vtx.buffer_map) {
|
||||
vbo_exec_vtx_unmap( exec );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -911,7 +911,7 @@ static void GLAPIENTRY _save_OBE_DrawElements(GLenum mode, GLsizei count, GLenum
|
|||
|
||||
_ae_map_vbos( ctx );
|
||||
|
||||
if (ctx->Array.ElementArrayBufferObj->Name)
|
||||
if (_mesa_is_bufferobj(ctx->Array.ElementArrayBufferObj))
|
||||
indices = ADD_POINTERS(ctx->Array.ElementArrayBufferObj->Pointer, indices);
|
||||
|
||||
vbo_save_NotifyBegin( ctx, mode | VBO_SAVE_PRIM_WEAK );
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
*/
|
||||
|
||||
#include "main/glheader.h"
|
||||
#include "main/bufferobj.h"
|
||||
#include "main/imports.h"
|
||||
#include "main/image.h"
|
||||
#include "main/macros.h"
|
||||
|
|
@ -444,7 +445,7 @@ replay_init( struct copy_context *copy )
|
|||
copy->varying[j].size = attr_size(copy->array[i]);
|
||||
copy->vertex_size += attr_size(copy->array[i]);
|
||||
|
||||
if (vbo->Name && !vbo->Pointer)
|
||||
if (_mesa_is_bufferobj(vbo) && !_mesa_bufferobj_mapped(vbo))
|
||||
ctx->Driver.MapBuffer(ctx, GL_ARRAY_BUFFER, GL_READ_ONLY, vbo);
|
||||
|
||||
copy->varying[j].src_ptr = ADD_POINTERS(vbo->Pointer,
|
||||
|
|
@ -458,7 +459,8 @@ replay_init( struct copy_context *copy )
|
|||
* caller convert non-indexed prims to indexed. Could alternately
|
||||
* do it internally.
|
||||
*/
|
||||
if (copy->ib->obj->Name && !copy->ib->obj->Pointer)
|
||||
if (_mesa_is_bufferobj(copy->ib->obj) &&
|
||||
!_mesa_bufferobj_mapped(copy->ib->obj))
|
||||
ctx->Driver.MapBuffer(ctx, GL_ELEMENT_ARRAY_BUFFER, GL_READ_ONLY,
|
||||
copy->ib->obj);
|
||||
|
||||
|
|
@ -562,13 +564,14 @@ replay_finish( struct copy_context *copy )
|
|||
*/
|
||||
for (i = 0; i < copy->nr_varying; i++) {
|
||||
struct gl_buffer_object *vbo = copy->varying[i].array->BufferObj;
|
||||
if (vbo->Name && vbo->Pointer)
|
||||
if (_mesa_is_bufferobj(vbo) && _mesa_bufferobj_mapped(vbo))
|
||||
ctx->Driver.UnmapBuffer(ctx, GL_ARRAY_BUFFER, vbo);
|
||||
}
|
||||
|
||||
/* Unmap index buffer:
|
||||
*/
|
||||
if (copy->ib->obj->Name && copy->ib->obj->Pointer) {
|
||||
if (_mesa_is_bufferobj(copy->ib->obj) &&
|
||||
_mesa_bufferobj_mapped(copy->ib->obj)) {
|
||||
ctx->Driver.UnmapBuffer(ctx, GL_ELEMENT_ARRAY_BUFFER, copy->ib->obj);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue