summaryrefslogtreecommitdiff
path: root/src/mesa/state_tracker/st_cb_drawpixels.c
diff options
context:
space:
mode:
authorJosé Fonseca <jfonseca@vmware.com>2009-03-27 19:50:15 +0000
committerJosé Fonseca <jfonseca@vmware.com>2009-03-27 19:51:33 +0000
commite0a55dc9dae39384c18dd275081c24b7dce14eeb (patch)
treef10b226fe1d8498dc3f75bf80dd1c58997ff5742 /src/mesa/state_tracker/st_cb_drawpixels.c
parent2431a027c197c7172d6769eb616d4301cc6a0bca (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.c21
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;