Index: client/deps/glbench/src/xlib_window.cc |
diff --git a/client/deps/glbench/src/xlib_window.cc b/client/deps/glbench/src/xlib_window.cc |
index ae17fe4e7f28c0351047e96441255b11e4fbed47..ff995e7312c4ee053042a31d3d5cbaabb05d5915 100644 |
--- a/client/deps/glbench/src/xlib_window.cc |
+++ b/client/deps/glbench/src/xlib_window.cc |
@@ -4,10 +4,12 @@ |
#include "main.h" |
#include "xlib_window.h" |
+#include "base/logging.h" |
Display *xlib_display = NULL; |
Window xlib_window = 0; |
+XVisualInfo *xlib_visinfo = NULL; |
GLint g_width = 512; |
GLint g_height = 512; |
@@ -15,7 +17,7 @@ bool g_override_redirect = true; |
bool XlibInit() { |
- xlib_display = ::XOpenDisplay(0); |
+ xlib_display = XOpenDisplay(0); |
if (!xlib_display) |
return false; |
@@ -28,38 +30,33 @@ bool XlibInit() { |
g_width = g_width == -1 ? attributes.width : g_width; |
g_height = g_height == -1 ? attributes.height : g_height; |
- int attrib[] = { |
- GLX_RGBA, |
- GLX_DOUBLEBUFFER, 1, |
- GLX_RED_SIZE, 1, |
- GLX_GREEN_SIZE, 1, |
- GLX_BLUE_SIZE, 1, |
- GLX_DEPTH_SIZE, 1, |
- GLX_STENCIL_SIZE, 1, |
- None |
- }; |
- XVisualInfo *visinfo = glXChooseVisual(xlib_display, screen, attrib); |
+ XVisualInfo vinfo_template; |
+ memset(&vinfo_template, sizeof(vinfo_template), 0); |
+ vinfo_template.visualid = GetVisualID(); |
+ int nitems; |
+ xlib_visinfo = XGetVisualInfo(xlib_display, |
+ VisualIDMask, &vinfo_template, &nitems); |
+ CHECK(nitems == 1); |
+ |
unsigned long mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask | |
CWOverrideRedirect; |
XSetWindowAttributes attr; |
attr.background_pixel = 0; |
attr.border_pixel = 0; |
- attr.colormap = XCreateColormap(xlib_display, root_window, visinfo->visual, |
- AllocNone); |
+ attr.colormap = XCreateColormap(xlib_display, root_window, |
+ xlib_visinfo->visual, AllocNone); |
attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; |
attr.override_redirect = g_override_redirect ? True : False; |
- xlib_window = ::XCreateWindow(xlib_display, root_window, |
- 0, 0, g_width, g_height, 0, visinfo->depth, |
- InputOutput, visinfo->visual, mask, &attr); |
+ xlib_window = XCreateWindow(xlib_display, root_window, |
+ 0, 0, g_width, g_height, 0, xlib_visinfo->depth, |
+ InputOutput, xlib_visinfo->visual, mask, &attr); |
- ::XMapWindow(xlib_display, xlib_window); |
- ::XSync(xlib_display, True); |
+ XMapWindow(xlib_display, xlib_window); |
+ XSync(xlib_display, True); |
- ::XGetWindowAttributes(xlib_display, xlib_window, &attributes); |
+ XGetWindowAttributes(xlib_display, xlib_window, &attributes); |
g_width = attributes.width; |
g_height = attributes.height; |
return true; |
} |
- |
- |