diff options
author | José Fonseca <jfonseca@vmware.com> | 2009-03-26 10:47:25 +0000 |
---|---|---|
committer | José Fonseca <jfonseca@vmware.com> | 2009-03-26 11:16:56 +0000 |
commit | f4520277e1a5113146fb99e831d515ba7f74c1f8 (patch) | |
tree | ab8c997e3bfd4fc3a0395e007c65e99b33360a47 /src | |
parent | 6af3be43091eff32793bb722cd483fe3ca435954 (diff) |
python: Transfer only the requested tile.
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/state_trackers/python/p_texture.i | 50 |
1 files changed, 18 insertions, 32 deletions
diff --git a/src/gallium/state_trackers/python/p_texture.i b/src/gallium/state_trackers/python/p_texture.i index e53369cc56..de03f8f446 100644 --- a/src/gallium/state_trackers/python/p_texture.i +++ b/src/gallium/state_trackers/python/p_texture.i @@ -106,11 +106,9 @@ $self->level, $self->zslice, PIPE_TRANSFER_READ, - 0, 0, - $self->width, - $self->height); + x, y, w, h); if(transfer) { - pipe_get_tile_raw(transfer, x, y, w, h, raw, stride); + pipe_get_tile_raw(transfer, 0, 0, w, h, raw, stride); screen->tex_transfer_destroy(transfer); } } @@ -126,11 +124,9 @@ $self->level, $self->zslice, PIPE_TRANSFER_WRITE, - 0, 0, - $self->width, - $self->height); + x, y, w, h); if(transfer) { - pipe_put_tile_raw(transfer, x, y, w, h, raw, stride); + pipe_put_tile_raw(transfer, 0, 0, w, h, raw, stride); screen->tex_transfer_destroy(transfer); } } @@ -146,11 +142,9 @@ $self->level, $self->zslice, PIPE_TRANSFER_READ, - 0, 0, - $self->width, - $self->height); + x, y, w, h); if(transfer) { - pipe_get_tile_rgba(transfer, x, y, w, h, rgba); + pipe_get_tile_rgba(transfer, 0, 0, w, h, rgba); screen->tex_transfer_destroy(transfer); } } @@ -166,11 +160,9 @@ $self->level, $self->zslice, PIPE_TRANSFER_WRITE, - 0, 0, - $self->width, - $self->height); + x, y, w, h); if(transfer) { - pipe_put_tile_rgba(transfer, x, y, w, h, rgba); + pipe_put_tile_rgba(transfer, 0, 0, w, h, rgba); screen->tex_transfer_destroy(transfer); } } @@ -209,12 +201,12 @@ $self->level, $self->zslice, PIPE_TRANSFER_READ, - 0, 0, - $self->width, - $self->height); + x, y + j, + w, + 1); if(transfer) { pipe_get_tile_rgba(transfer, - x, y + j, w, 1, + 0, 0, w, 1, rgba); for(i = 0; i < w; ++i) for(k = 0; k <4; ++k) @@ -237,11 +229,9 @@ $self->level, $self->zslice, PIPE_TRANSFER_READ, - 0, 0, - $self->width, - $self->height); + x, y, w, h); if(transfer) { - pipe_get_tile_z(transfer, x, y, w, h, z); + pipe_get_tile_z(transfer, 0, 0, w, h, z); screen->tex_transfer_destroy(transfer); } } @@ -257,11 +247,9 @@ $self->level, $self->zslice, PIPE_TRANSFER_WRITE, - 0, 0, - $self->width, - $self->height); + x, y, w, h); if(transfer) { - pipe_put_tile_z(transfer, x, y, w, h, z); + pipe_put_tile_z(transfer, 0, 0, w, h, z); screen->tex_transfer_destroy(transfer); } } @@ -291,15 +279,13 @@ $self->level, $self->zslice, PIPE_TRANSFER_WRITE, - 0, 0, - $self->width, - $self->height); + x, y, w, h); if(!transfer) { FREE(rgba2); return ~0; } - pipe_get_tile_rgba(transfer, x, y, w, h, rgba2); + pipe_get_tile_rgba(transfer, 0, 0, w, h, rgba2); screen->tex_transfer_destroy(transfer); p1 = rgba; |