diff options
Diffstat (limited to 'src/gallium/include/pipe/p_screen.h')
-rw-r--r-- | src/gallium/include/pipe/p_screen.h | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/gallium/include/pipe/p_screen.h b/src/gallium/include/pipe/p_screen.h index 3688d58118..d7e79ec655 100644 --- a/src/gallium/include/pipe/p_screen.h +++ b/src/gallium/include/pipe/p_screen.h @@ -202,9 +202,28 @@ struct pipe_screen { void *(*buffer_map)( struct pipe_screen *screen, struct pipe_buffer *buf, unsigned usage ); + /** + * Map a subrange of the buffer data store into the client's address space. + * + * Return pointer is always relative to offset 0, regardless of the + * read/write ranges. + */ + void *(*buffer_map_range)( struct pipe_screen *screen, + struct pipe_buffer *buf, + unsigned offset, + unsigned length, + unsigned usage); + + /** + * written is the range that the client actually wrote. + */ + void (*buffer_flush_mapped_range)( struct pipe_screen *screen, + struct pipe_buffer *buf, + unsigned offset, + unsigned length); void (*buffer_unmap)( struct pipe_screen *screen, - struct pipe_buffer *buf ); + struct pipe_buffer *buf ); void (*buffer_destroy)( struct pipe_buffer *buf ); |