From a1ffc8c7b60f8e5cfe794d8811f0287c219d9af0 Mon Sep 17 00:00:00 2001 From: kervala Date: Wed, 12 May 2010 12:45:17 +0200 Subject: [PATCH] Fixed: #884 24bpp support (patch provided by ThibG) --- code/nel/src/3d/driver/opengl/driver_opengl.cpp | 16 +++++++++++++++- code/ryzom/client/src/init.cpp | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/code/nel/src/3d/driver/opengl/driver_opengl.cpp b/code/nel/src/3d/driver/opengl/driver_opengl.cpp index af2d58e60..543fae802 100644 --- a/code/nel/src/3d/driver/opengl/driver_opengl.cpp +++ b/code/nel/src/3d/driver/opengl/driver_opengl.cpp @@ -1041,6 +1041,18 @@ bool CDriverGL::setDisplay(void *wnd, const GfxMode &mode, bool show, bool resiz None }; + static int sAttribList24bpp[] = + { + GLX_RGBA, + GLX_DOUBLEBUFFER, + //GLX_BUFFER_SIZE, 16, + GLX_DEPTH_SIZE, 24, + GLX_RED_SIZE, 8, + GLX_GREEN_SIZE, 8, + GLX_BLUE_SIZE, 8, + None + }; + static int sAttribList32bpp[] = { GLX_RGBA, @@ -1054,8 +1066,10 @@ bool CDriverGL::setDisplay(void *wnd, const GfxMode &mode, bool show, bool resiz None }; - // first try 32bpp and if that fails 16bpp + // first try 32bpp and if that fails 24bpp or 16bpp XVisualInfo *visual_info = glXChooseVisual (dpy, DefaultScreen(dpy), sAttribList32bpp); + if (visual_info == NULL) + visual_info = glXChooseVisual(dpy, DefaultScreen(dpy), sAttribList24bpp); if (visual_info == NULL) visual_info = glXChooseVisual(dpy, DefaultScreen(dpy), sAttribList16bpp); if(visual_info == NULL) diff --git a/code/ryzom/client/src/init.cpp b/code/ryzom/client/src/init.cpp index c2c8355b2..39b0808eb 100644 --- a/code/ryzom/client/src/init.cpp +++ b/code/ryzom/client/src/init.cpp @@ -571,7 +571,7 @@ void checkDriverDepth () #ifdef NL_OS_WINDOWS if (mode.Depth != 32) #else - if (mode.Depth < 24) + if (mode.Depth != 16 && mode.Depth != 24 && mode.Depth != 32) #endif ExitClientError (CI18N::get ("uiDesktopNotIn32").toUtf8().c_str ()); }