diff options
author | Michel Dänzer <daenzer@vmware.com> | 2009-02-18 16:43:02 +0100 |
---|---|---|
committer | Michel Dänzer <daenzer@vmware.com> | 2009-02-18 16:43:02 +0100 |
commit | 3bd7c5ceffc88a052c5e8e114df2f2c7549ddb4a (patch) | |
tree | bdb352609c3ef21875a2699428e26b8c8c930f73 /src/gallium/include/pipe/p_screen.h | |
parent | 76d8951fd3adbb91b2f71d461eec0f304619ca0b (diff) | |
parent | b89aa1d87ad6cebdbb3f2067863c600f50bf0ff1 (diff) |
Merge branch 'gallium-texture-transfer'
Conflicts:
src/gallium/drivers/softpipe/sp_tile_cache.c
Diffstat (limited to 'src/gallium/include/pipe/p_screen.h')
-rw-r--r-- | src/gallium/include/pipe/p_screen.h | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/src/gallium/include/pipe/p_screen.h b/src/gallium/include/pipe/p_screen.h index 17d1548253..341d1caea0 100644 --- a/src/gallium/include/pipe/p_screen.h +++ b/src/gallium/include/pipe/p_screen.h @@ -55,6 +55,7 @@ struct pipe_winsys; struct pipe_buffer; + /** * Gallium screen/adapter context. Basically everything * hardware-specific that doesn't actually require a rendering @@ -128,12 +129,25 @@ struct pipe_screen { struct pipe_surface ** ); - void *(*surface_map)( struct pipe_screen *, - struct pipe_surface *surface, - unsigned flags ); + /** Get a transfer object for transferring data to/from a texture */ + struct pipe_transfer *(*get_tex_transfer)(struct pipe_screen *, + struct pipe_texture *texture, + unsigned face, unsigned level, + unsigned zslice, + enum pipe_transfer_usage usage, + unsigned x, unsigned y, + unsigned w, unsigned h); + + /* Transfer objects allocated by the above must be released here: + */ + void (*tex_transfer_release)( struct pipe_screen *, + struct pipe_transfer ** ); + + void *(*transfer_map)( struct pipe_screen *, + struct pipe_transfer *transfer ); - void (*surface_unmap)( struct pipe_screen *, - struct pipe_surface *surface ); + void (*transfer_unmap)( struct pipe_screen *, + struct pipe_transfer *transfer ); /** |