use combined depth/stencil buffer when possible

This commit is contained in:
Brian
2007-10-20 15:19:14 -06:00
parent 7e83963998
commit 46e2d2bb0a
+17 -7
View File
@@ -430,17 +430,27 @@ create_xmesa_buffer(XMesaDrawable d, BufferType type,
b->swAlpha = GL_FALSE;
}
if (vis->mesa_visual.depthBits > 0) {
if (vis->mesa_visual.depthBits > 0 &&
vis->mesa_visual.stencilBits > 0) {
/* combined depth/stencil */
struct gl_renderbuffer *rb
= st_new_renderbuffer_fb(GL_DEPTH_COMPONENT32);
= st_new_renderbuffer_fb(GL_DEPTH24_STENCIL8_EXT);
_mesa_add_renderbuffer(&b->mesa_buffer, BUFFER_DEPTH, rb);
}
if (vis->mesa_visual.stencilBits > 0) {
struct gl_renderbuffer *rb
= st_new_renderbuffer_fb(GL_STENCIL_INDEX8_EXT);
_mesa_add_renderbuffer(&b->mesa_buffer, BUFFER_STENCIL, rb);
}
else {
if (vis->mesa_visual.depthBits > 0) {
struct gl_renderbuffer *rb
= st_new_renderbuffer_fb(GL_DEPTH_COMPONENT32);
_mesa_add_renderbuffer(&b->mesa_buffer, BUFFER_DEPTH, rb);
}
if (vis->mesa_visual.stencilBits > 0) {
struct gl_renderbuffer *rb
= st_new_renderbuffer_fb(GL_STENCIL_INDEX8_EXT);
_mesa_add_renderbuffer(&b->mesa_buffer, BUFFER_STENCIL, rb);
}
}
if (vis->mesa_visual.accumRedBits > 0) {
struct gl_renderbuffer *rb