summaryrefslogtreecommitdiff
path: root/src/mesa/pipe/xlib/xm_api.c
diff options
context:
space:
mode:
authorBrian <brian.paul@tungstengraphics.com>2007-11-07 14:41:01 -0700
committerBrian <brian.paul@tungstengraphics.com>2007-11-07 14:41:01 -0700
commitfc6172bc9abfc24836c6701f3bfcd791907ca9a7 (patch)
tree4ed14f649ffe17c9374b84f4ca01a8349a1b1bb0 /src/mesa/pipe/xlib/xm_api.c
parent187b631b6b3c504fa334e33f4b1af433b6232bac (diff)
better depth buffer selection
Diffstat (limited to 'src/mesa/pipe/xlib/xm_api.c')
-rw-r--r--src/mesa/pipe/xlib/xm_api.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/mesa/pipe/xlib/xm_api.c b/src/mesa/pipe/xlib/xm_api.c
index ec889ca34f..e456ea2fd4 100644
--- a/src/mesa/pipe/xlib/xm_api.c
+++ b/src/mesa/pipe/xlib/xm_api.c
@@ -380,11 +380,21 @@ create_xmesa_buffer(XMesaDrawable d, BufferType type,
_mesa_add_renderbuffer(fb, BUFFER_STENCIL, rb);
}
else {
- if (vis->mesa_visual.depthBits > 0) {
+ if (vis->mesa_visual.depthBits > 24) {
struct gl_renderbuffer *rb
= st_new_renderbuffer_fb(GL_DEPTH_COMPONENT32);
_mesa_add_renderbuffer(fb, BUFFER_DEPTH, rb);
}
+ else if (vis->mesa_visual.depthBits > 16) {
+ struct gl_renderbuffer *rb
+ = st_new_renderbuffer_fb(GL_DEPTH24_STENCIL8_EXT);
+ _mesa_add_renderbuffer(fb, BUFFER_DEPTH, rb);
+ }
+ else if (vis->mesa_visual.depthBits > 1) {
+ struct gl_renderbuffer *rb
+ = st_new_renderbuffer_fb(GL_DEPTH_COMPONENT16);
+ _mesa_add_renderbuffer(fb, BUFFER_DEPTH, rb);
+ }
if (vis->mesa_visual.stencilBits > 0) {
struct gl_renderbuffer *rb