cell: adapt to context texture transfers (untested)
This commit is contained in:
@@ -158,6 +158,7 @@ cell_create_context(struct pipe_screen *screen,
|
||||
cell_init_shader_functions(cell);
|
||||
cell_init_surface_functions(cell);
|
||||
cell_init_vertex_functions(cell);
|
||||
cell_init_texture_transfer_funcs(cell);
|
||||
|
||||
cell->draw = cell_draw_create(cell);
|
||||
|
||||
|
||||
@@ -355,7 +355,7 @@ cell_tex_surface_destroy(struct pipe_surface *surf)
|
||||
* back out for glGetTexImage).
|
||||
*/
|
||||
static struct pipe_transfer *
|
||||
cell_get_tex_transfer(struct pipe_screen *screen,
|
||||
cell_get_tex_transfer(struct pipe_context *ctx,
|
||||
struct pipe_texture *texture,
|
||||
unsigned face, unsigned level, unsigned zslice,
|
||||
enum pipe_transfer_usage usage,
|
||||
@@ -402,7 +402,7 @@ cell_get_tex_transfer(struct pipe_screen *screen,
|
||||
|
||||
|
||||
static void
|
||||
cell_tex_transfer_destroy(struct pipe_transfer *t)
|
||||
cell_tex_transfer_destroy(struct pipe_context *ctx, struct pipe_transfer *t)
|
||||
{
|
||||
struct cell_transfer *transfer = cell_transfer(t);
|
||||
/* Effectively do the texture_update work here - if texture images
|
||||
@@ -419,7 +419,7 @@ cell_tex_transfer_destroy(struct pipe_transfer *t)
|
||||
* Return pointer to texture image data in linear layout.
|
||||
*/
|
||||
static void *
|
||||
cell_transfer_map(struct pipe_screen *screen, struct pipe_transfer *transfer)
|
||||
cell_transfer_map(struct pipe_context *ctx, struct pipe_transfer *transfer)
|
||||
{
|
||||
struct cell_transfer *ctrans = cell_transfer(transfer);
|
||||
struct pipe_texture *pt = transfer->texture;
|
||||
@@ -471,7 +471,7 @@ cell_transfer_map(struct pipe_screen *screen, struct pipe_transfer *transfer)
|
||||
* to tiled data.
|
||||
*/
|
||||
static void
|
||||
cell_transfer_unmap(struct pipe_screen *screen,
|
||||
cell_transfer_unmap(struct pipe_context *ctx,
|
||||
struct pipe_transfer *transfer)
|
||||
{
|
||||
struct cell_transfer *ctrans = cell_transfer(transfer);
|
||||
@@ -560,11 +560,14 @@ cell_init_screen_texture_funcs(struct pipe_screen *screen)
|
||||
screen->get_tex_surface = cell_get_tex_surface;
|
||||
screen->tex_surface_destroy = cell_tex_surface_destroy;
|
||||
|
||||
screen->get_tex_transfer = cell_get_tex_transfer;
|
||||
screen->tex_transfer_destroy = cell_tex_transfer_destroy;
|
||||
|
||||
screen->transfer_map = cell_transfer_map;
|
||||
screen->transfer_unmap = cell_transfer_unmap;
|
||||
|
||||
screen->flush_frontbuffer = cell_flush_frontbuffer;
|
||||
}
|
||||
|
||||
void
|
||||
cell_init_texture_transfer_funcs(struct cell_context *cell)
|
||||
{
|
||||
cell->pipe.get_tex_transfer = cell_get_tex_transfer;
|
||||
cell->pipe.tex_transfer_destroy = cell_tex_transfer_destroy;
|
||||
cell->pipe.transfer_map = cell_transfer_map;
|
||||
cell->pipe.transfer_unmap = cell_transfer_unmap;
|
||||
}
|
||||
|
||||
@@ -95,5 +95,7 @@ cell_transfer(struct pipe_transfer *pt)
|
||||
extern void
|
||||
cell_init_screen_texture_funcs(struct pipe_screen *screen);
|
||||
|
||||
extern void
|
||||
cell_init_texture_transfer_funcs(struct cell_context *cell);
|
||||
|
||||
#endif /* CELL_TEXTURE_H */
|
||||
|
||||
Reference in New Issue
Block a user