diff options
author | Ben Skeggs <skeggsb@gmail.com> | 2008-03-23 14:18:06 +1100 |
---|---|---|
committer | Ben Skeggs <skeggsb@gmail.com> | 2008-03-23 14:18:06 +1100 |
commit | dcf04ee23c0131c2a3fdb267d132d6b27db393c4 (patch) | |
tree | d1a3fa9823f28c37dc8d7d8649d68e2f9a7c4b47 /src/mesa/state_tracker/st_cb_drawpixels.c | |
parent | 75b85fd33abe143d9cca6f8405f0a4243b6a5ddb (diff) | |
parent | a35c1ca3ad4361fee30d21ef13d8d37ae91aee66 (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.c | 20 |
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); |