python: Use transfer objects to initialise texture data.

This commit is contained in:
michal
2009-03-16 06:44:16 +01:00
committed by Michal Krol
parent f6c3edb308
commit 38b074495a

View File

@@ -231,7 +231,7 @@ st_context_create(struct st_device *st_dev)
{ {
struct pipe_screen *screen = st_dev->screen; struct pipe_screen *screen = st_dev->screen;
struct pipe_texture templat; struct pipe_texture templat;
struct pipe_surface *surface; struct pipe_transfer *transfer;
unsigned i; unsigned i;
memset( &templat, 0, sizeof( templat ) ); memset( &templat, 0, sizeof( templat ) );
@@ -247,17 +247,21 @@ st_context_create(struct st_device *st_dev)
st_ctx->default_texture = screen->texture_create( screen, &templat ); st_ctx->default_texture = screen->texture_create( screen, &templat );
if(st_ctx->default_texture) { if(st_ctx->default_texture) {
surface = screen->get_tex_surface( screen, transfer = screen->get_tex_transfer(screen,
st_ctx->default_texture, 0, 0, 0, st_ctx->default_texture,
PIPE_BUFFER_USAGE_CPU_WRITE ); 0, 0, 0,
if(surface) { PIPE_TRANSFER_WRITE,
0, 0,
st_ctx->default_texture->width[0],
st_ctx->default_texture->height[0]);
if (transfer) {
uint32_t *map; uint32_t *map;
map = (uint32_t *) pipe_surface_map(surface, PIPE_BUFFER_USAGE_CPU_WRITE ); map = (uint32_t *) screen->transfer_map(screen, transfer);
if(map) { if(map) {
*map = 0x00000000; *map = 0x00000000;
pipe_surface_unmap( surface ); screen->transfer_unmap(screen, transfer);
} }
pipe_surface_reference(&surface, NULL); screen->tex_transfer_destroy(transfer);
} }
} }