wgl: Check support for all other depth/stencil formats.

This commit is contained in:
José Fonseca 2009-03-06 18:03:50 +00:00
parent 78071fe767
commit 0bbcb47901

View file

@ -109,7 +109,8 @@ framebuffer_create(
if (visual->depthBits == 0)
depthFormat = PIPE_FORMAT_NONE;
else if (visual->depthBits <= 16)
else if (visual->depthBits <= 16 &&
stw_is_supported_depth_stencil(PIPE_FORMAT_Z16_UNORM))
depthFormat = PIPE_FORMAT_Z16_UNORM;
else if (visual->depthBits <= 24 && visual->stencilBits != 8 &&
stw_is_supported_depth_stencil(PIPE_FORMAT_X8Z24_UNORM)) {
@ -127,14 +128,24 @@ framebuffer_create(
stw_is_supported_depth_stencil(PIPE_FORMAT_Z24S8_UNORM)) {
depthFormat = PIPE_FORMAT_Z24S8_UNORM;
}
else
else if(stw_is_supported_depth_stencil(PIPE_FORMAT_Z32_UNORM)) {
depthFormat = PIPE_FORMAT_Z32_UNORM;
}
else if(stw_is_supported_depth_stencil(PIPE_FORMAT_Z32_FLOAT)) {
depthFormat = PIPE_FORMAT_Z32_FLOAT;
}
else {
assert(0);
depthFormat = PIPE_FORMAT_NONE;
}
if (visual->stencilBits == 8) {
if (depthFormat == PIPE_FORMAT_S8Z24_UNORM || depthFormat == PIPE_FORMAT_Z24S8_UNORM)
stencilFormat = depthFormat;
else
stencilFormat = PIPE_FORMAT_S8_UNORM;
if (depthFormat == PIPE_FORMAT_S8Z24_UNORM ||
depthFormat == PIPE_FORMAT_Z24S8_UNORM) {
stencilFormat = depthFormat;
}
else if (visual->stencilBits == 8 &&
stw_is_supported_depth_stencil(PIPE_FORMAT_S8_UNORM)) {
stencilFormat = PIPE_FORMAT_S8_UNORM;
}
else {
stencilFormat = PIPE_FORMAT_NONE;