*/
struct pb_buffer
{
- /* This used to be a pipe_buffer struct:
- */
- struct {
- struct pipe_reference reference;
- unsigned size;
- unsigned alignment;
- unsigned usage;
- } base;
+ struct pipe_reference reference;
+ unsigned size;
+ unsigned alignment;
+ unsigned usage;
/**
* Pointer to the virtual function table.
* flags is bitmask of PB_USAGE_CPU_READ/WRITE.
*/
void *(*map)( struct pb_buffer *buf,
- unsigned flags );
+ unsigned flags, void *flush_ctx );
void (*unmap)( struct pb_buffer *buf );
*/
static INLINE void *
pb_map(struct pb_buffer *buf,
- unsigned flags)
+ unsigned flags, void *flush_ctx)
{
assert(buf);
if(!buf)
return NULL;
- assert(pipe_is_referenced(&buf->base.reference));
- return buf->vtbl->map(buf, flags);
+ assert(pipe_is_referenced(&buf->reference));
+ return buf->vtbl->map(buf, flags, flush_ctx);
}
assert(buf);
if(!buf)
return;
- assert(pipe_is_referenced(&buf->base.reference));
+ assert(pipe_is_referenced(&buf->reference));
buf->vtbl->unmap(buf);
}
offset = 0;
return;
}
- assert(pipe_is_referenced(&buf->base.reference));
+ assert(pipe_is_referenced(&buf->reference));
assert(buf->vtbl->get_base_buffer);
buf->vtbl->get_base_buffer(buf, base_buf, offset);
assert(*base_buf);
- assert(*offset < (*base_buf)->base.size);
+ assert(*offset < (*base_buf)->size);
}
assert(buf);
if(!buf)
return;
- assert(!pipe_is_referenced(&buf->base.reference));
+ assert(!pipe_is_referenced(&buf->reference));
buf->vtbl->destroy(buf);
}
{
struct pb_buffer *old = *dst;
- if (pipe_reference(&(*dst)->base.reference, &src->base.reference))
+ if (pipe_reference(&(*dst)->reference, &src->reference))
pb_destroy( old );
*dst = src;
}