summaryrefslogtreecommitdiff
path: root/src/mesa/state_tracker/st_cb_drawpixels.c
diff options
context:
space:
mode:
authorBen Skeggs <skeggsb@gmail.com>2008-03-23 14:18:06 +1100
committerBen Skeggs <skeggsb@gmail.com>2008-03-23 14:18:06 +1100
commitdcf04ee23c0131c2a3fdb267d132d6b27db393c4 (patch)
treed1a3fa9823f28c37dc8d7d8649d68e2f9a7c4b47 /src/mesa/state_tracker/st_cb_drawpixels.c
parent75b85fd33abe143d9cca6f8405f0a4243b6a5ddb (diff)
parenta35c1ca3ad4361fee30d21ef13d8d37ae91aee66 (diff)
Merge remote branch 'upstream/gallium-0.1' into nouveau-gallium-0.1
Diffstat (limited to 'src/mesa/state_tracker/st_cb_drawpixels.c')
-rw-r--r--src/mesa/state_tracker/st_cb_drawpixels.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/mesa/state_tracker/st_cb_drawpixels.c b/src/mesa/state_tracker/st_cb_drawpixels.c
index b4cd93cd54..2ebaf8a2c3 100644
--- a/src/mesa/state_tracker/st_cb_drawpixels.c
+++ b/src/mesa/state_tracker/st_cb_drawpixels.c
@@ -32,6 +32,7 @@
#include "main/imports.h"
#include "main/image.h"
+#include "main/bufferobj.h"
#include "main/macros.h"
#include "main/texformat.h"
#include "shader/program.h"
@@ -334,16 +335,15 @@ make_texture(struct st_context *st,
assert(pipeFormat);
cpp = st_sizeof_format(pipeFormat);
+ pixels = _mesa_map_drawpix_pbo(ctx, unpack, pixels);
+ if (!pixels)
+ return NULL;
+
pt = st_texture_create(st, PIPE_TEXTURE_2D, pipeFormat, 0, width, height,
1, 0);
- if (!pt)
+ if (!pt) {
+ _mesa_unmap_drapix_pbo(ctx, unpack);
return NULL;
-
- if (unpack->BufferObj && unpack->BufferObj->Name) {
- /*
- pt->region = buffer_object_region(unpack->BufferObj);
- */
- printf("st_DrawPixels (sourcing from PBO not implemented yet)\n");
}
{
@@ -388,6 +388,8 @@ make_texture(struct st_context *st,
ctx->_ImageTransferState = imageTransferStateSave;
}
+ _mesa_unmap_drapix_pbo(ctx, unpack);
+
return pt;
}
@@ -836,9 +838,9 @@ st_DrawPixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height,
bufferFormat = ps->format;
- if (any_fragment_ops(st) ||
+ if (1/*any_fragment_ops(st) ||
any_pixel_transfer_ops(st) ||
- !compatible_formats(format, type, ps->format)) {
+ !compatible_formats(format, type, ps->format)*/) {
/* textured quad */
struct pipe_texture *pt
= make_texture(ctx->st, width, height, format, type, unpack, pixels);