diff options
author | marha <marha@users.sourceforge.net> | 2013-08-01 13:25:23 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2013-08-01 13:25:23 +0200 |
commit | c3d3ea464f7f4e53e8fe3e11ecada36cb209ba4d (patch) | |
tree | f86937d9126b2d543ffd13f861a1271f48bd69e6 /mesalib/src/gallium/auxiliary/util/u_inlines.h | |
parent | acad661e29a4f09d06f829fdfea949814da57da6 (diff) | |
parent | 0659c77949b38440a2a9ba67e1ee9cacef1f3a7f (diff) | |
download | vcxsrv-c3d3ea464f7f4e53e8fe3e11ecada36cb209ba4d.tar.gz vcxsrv-c3d3ea464f7f4e53e8fe3e11ecada36cb209ba4d.tar.bz2 vcxsrv-c3d3ea464f7f4e53e8fe3e11ecada36cb209ba4d.zip |
Merge remote-tracking branch 'origin/released'
* origin/released:
libX11 mesa xserver xkeyboard-config git update 1 aug 2013
Diffstat (limited to 'mesalib/src/gallium/auxiliary/util/u_inlines.h')
-rw-r--r-- | mesalib/src/gallium/auxiliary/util/u_inlines.h | 71 |
1 files changed, 55 insertions, 16 deletions
diff --git a/mesalib/src/gallium/auxiliary/util/u_inlines.h b/mesalib/src/gallium/auxiliary/util/u_inlines.h index 6e65ee6c9..7a82f05c3 100644 --- a/mesalib/src/gallium/auxiliary/util/u_inlines.h +++ b/mesalib/src/gallium/auxiliary/util/u_inlines.h @@ -227,6 +227,12 @@ pipe_surface_equal(struct pipe_surface *s1, struct pipe_surface *s2) * Convenience wrappers for screen buffer functions. */ + +/** + * Create a new resource. + * \param bind bitmask of PIPE_BIND_x flags + * \param usage bitmask of PIPE_USAGE_x flags + */ static INLINE struct pipe_resource * pipe_buffer_create( struct pipe_screen *screen, unsigned bind, @@ -247,12 +253,20 @@ pipe_buffer_create( struct pipe_screen *screen, return screen->resource_create(screen, &buffer); } + +/** + * Map a range of a resource. + * \param offset start of region, in bytes + * \param length size of region, in bytes + * \param access bitmask of PIPE_TRANSFER_x flags + * \param transfer returns a transfer object + */ static INLINE void * pipe_buffer_map_range(struct pipe_context *pipe, struct pipe_resource *buffer, unsigned offset, unsigned length, - unsigned usage, + unsigned access, struct pipe_transfer **transfer) { struct pipe_box box; @@ -264,7 +278,7 @@ pipe_buffer_map_range(struct pipe_context *pipe, u_box_1d(offset, length, &box); - map = pipe->transfer_map(pipe, buffer, 0, usage, &box, transfer); + map = pipe->transfer_map(pipe, buffer, 0, access, &box, transfer); if (map == NULL) { return NULL; } @@ -273,13 +287,18 @@ pipe_buffer_map_range(struct pipe_context *pipe, } +/** + * Map whole resource. + * \param access bitmask of PIPE_TRANSFER_x flags + * \param transfer returns a transfer object + */ static INLINE void * pipe_buffer_map(struct pipe_context *pipe, struct pipe_resource *buffer, - unsigned usage, + unsigned access, struct pipe_transfer **transfer) { - return pipe_buffer_map_range(pipe, buffer, 0, buffer->width0, usage, transfer); + return pipe_buffer_map_range(pipe, buffer, 0, buffer->width0, access, transfer); } @@ -322,12 +341,12 @@ pipe_buffer_write(struct pipe_context *pipe, const void *data) { struct pipe_box box; - unsigned usage = PIPE_TRANSFER_WRITE; + unsigned access = PIPE_TRANSFER_WRITE; if (offset == 0 && size == buf->width0) { - usage |= PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE; + access |= PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE; } else { - usage |= PIPE_TRANSFER_DISCARD_RANGE; + access |= PIPE_TRANSFER_DISCARD_RANGE; } u_box_1d(offset, size, &box); @@ -335,7 +354,7 @@ pipe_buffer_write(struct pipe_context *pipe, pipe->transfer_inline_write( pipe, buf, 0, - usage, + access, &box, data, size, @@ -368,12 +387,18 @@ pipe_buffer_write_nooverlap(struct pipe_context *pipe, 0, 0); } + +/** + * Create a new resource and immediately put data into it + * \param bind bitmask of PIPE_BIND_x flags + * \param usage bitmask of PIPE_USAGE_x flags + */ static INLINE struct pipe_resource * pipe_buffer_create_with_data(struct pipe_context *pipe, unsigned bind, unsigned usage, unsigned size, - void *ptr) + const void *ptr) { struct pipe_resource *res = pipe_buffer_create(pipe->screen, bind, usage, size); @@ -403,11 +428,16 @@ pipe_buffer_read(struct pipe_context *pipe, pipe_buffer_unmap(pipe, src_transfer); } + +/** + * Map a resource for reading/writing. + * \param access bitmask of PIPE_TRANSFER_x flags + */ static INLINE void * pipe_transfer_map(struct pipe_context *context, struct pipe_resource *resource, unsigned level, unsigned layer, - enum pipe_transfer_usage usage, + unsigned access, unsigned x, unsigned y, unsigned w, unsigned h, struct pipe_transfer **transfer) @@ -417,15 +447,20 @@ pipe_transfer_map(struct pipe_context *context, return context->transfer_map(context, resource, level, - usage, + access, &box, transfer); } + +/** + * Map a 3D (texture) resource for reading/writing. + * \param access bitmask of PIPE_TRANSFER_x flags + */ static INLINE void * pipe_transfer_map_3d(struct pipe_context *context, struct pipe_resource *resource, unsigned level, - enum pipe_transfer_usage usage, + unsigned access, unsigned x, unsigned y, unsigned z, unsigned w, unsigned h, unsigned d, struct pipe_transfer **transfer) @@ -435,7 +470,7 @@ pipe_transfer_map_3d(struct pipe_context *context, return context->transfer_map(context, resource, level, - usage, + access, &box, transfer); } @@ -463,9 +498,13 @@ pipe_set_constant_buffer(struct pipe_context *pipe, uint shader, uint index, } -static INLINE boolean util_get_offset( - const struct pipe_rasterizer_state *templ, - unsigned fill_mode) +/** + * Get the polygon offset enable/disable flag for the given polygon fill mode. + * \param fill_mode one of PIPE_POLYGON_MODE_POINT/LINE/FILL + */ +static INLINE boolean +util_get_offset(const struct pipe_rasterizer_state *templ, + unsigned fill_mode) { switch(fill_mode) { case PIPE_POLYGON_MODE_POINT: |