diff options
author | José Fonseca <jfonseca@vmware.com> | 2009-03-27 19:50:15 +0000 |
---|---|---|
committer | José Fonseca <jfonseca@vmware.com> | 2009-03-27 19:51:33 +0000 |
commit | e0a55dc9dae39384c18dd275081c24b7dce14eeb (patch) | |
tree | f10b226fe1d8498dc3f75bf80dd1c58997ff5742 /src/mesa/state_tracker/st_cb_drawpixels.c | |
parent | 2431a027c197c7172d6769eb616d4301cc6a0bca (diff) |
mesa: Support Z24S8 wherever S8Z24 is supported.
Diffstat (limited to 'src/mesa/state_tracker/st_cb_drawpixels.c')
-rw-r--r-- | src/mesa/state_tracker/st_cb_drawpixels.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/mesa/state_tracker/st_cb_drawpixels.c b/src/mesa/state_tracker/st_cb_drawpixels.c index 821ea67ce4..f9f139ff07 100644 --- a/src/mesa/state_tracker/st_cb_drawpixels.c +++ b/src/mesa/state_tracker/st_cb_drawpixels.c @@ -686,6 +686,17 @@ draw_stencil_pixels(GLcontext *ctx, GLint x, GLint y, } } break; + case PIPE_FORMAT_Z24S8_UNORM: + { + uint *dest = (uint *) (stmap + spanY * pt->stride + spanX*4); + GLint k; + for (k = 0; k < spanWidth; k++) { + uint p = dest[k]; + p = (p & 0xffffff00) | (values[k] & 0xff); + dest[k] = p; + } + } + break; default: assert(0); } @@ -821,6 +832,16 @@ copy_stencil_pixels(GLcontext *ctx, GLint srcx, GLint srcy, } } break; + case PIPE_FORMAT_Z24S8_UNORM: + { + uint *dst4 = (uint *) dst; + int j; + for (j = 0; j < width; j++) { + *dst4 = (*dst4 & 0xffffff00) | (src[j] & 0xff); + dst4++; + } + } + break; case PIPE_FORMAT_S8_UNORM: memcpy(dst, src, width); break; |