summaryrefslogtreecommitdiff
path: root/src/mesa/pipe/softpipe/sp_texture.c
diff options
context:
space:
mode:
authorMichel Dänzer <michel@tungstengraphics.com>2007-12-07 12:30:35 +0100
committerBen Skeggs <skeggsb@gmail.com>2007-12-09 12:05:26 +1100
commit0a44a3fa2f9eb295106cd4c64549f55cc54f432f (patch)
treee4b6a6075dfe37f8ab70505b1cbed33bbb74bece /src/mesa/pipe/softpipe/sp_texture.c
parent7f984e1d2ab65a3d34ec0c0ef7487211dd644561 (diff)
Eliminate struct pipe_region.
Directly use struct pipe_buffer_handle for storage and struct pipe_surface for (un)mapping.
Diffstat (limited to 'src/mesa/pipe/softpipe/sp_texture.c')
-rw-r--r--src/mesa/pipe/softpipe/sp_texture.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/mesa/pipe/softpipe/sp_texture.c b/src/mesa/pipe/softpipe/sp_texture.c
index 2f9a1e9837..53486f9bba 100644
--- a/src/mesa/pipe/softpipe/sp_texture.c
+++ b/src/mesa/pipe/softpipe/sp_texture.c
@@ -32,6 +32,7 @@
#include "pipe/p_context.h"
#include "pipe/p_defines.h"
+#include "pipe/p_inlines.h"
#include "pipe/p_util.h"
#include "pipe/p_winsys.h"
@@ -380,13 +381,18 @@ softpipe_texture_create(struct pipe_context *pipe, struct pipe_texture **pt)
sizeof(struct softpipe_texture) - sizeof(struct pipe_texture));
if (softpipe_mipmap_tree_layout(pipe, spt)) {
- spt->region = pipe->winsys->region_alloc(pipe->winsys,
- spt->pitch * (*pt)->cpp *
- spt->total_height,
- PIPE_SURFACE_FLAG_TEXTURE);
+ spt->buffer = pipe->winsys->buffer_create(pipe->winsys,
+ PIPE_SURFACE_FLAG_TEXTURE);
+
+ if (spt->buffer) {
+ pipe->winsys->buffer_data(pipe->winsys, spt->buffer,
+ spt->pitch * (*pt)->cpp *
+ spt->total_height, NULL,
+ PIPE_BUFFER_USAGE_PIXEL);
+ }
}
- if (!spt->region) {
+ if (!spt->buffer) {
FREE(spt);
spt = NULL;
}
@@ -413,7 +419,7 @@ softpipe_texture_release(struct pipe_context *pipe, struct pipe_texture **pt)
DBG("%s deleting %p\n", __FUNCTION__, (void *) spt);
*/
- pipe->winsys->region_release(pipe->winsys, &spt->region);
+ pipe->winsys->buffer_reference(pipe->winsys, &spt->buffer, NULL);
for (i = 0; i < PIPE_MAX_TEXTURE_LEVELS; i++)
if (spt->image_offset[i])