python: Use transfer objects to initialise texture data.
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user