X11WindowSystem: Fix swapinterval=1
authorRahul Singhal <rasinghal@nvidia.com>
Mon, 25 Jun 2012 12:14:53 +0000 (17:44 +0530)
committerMichael Schuldt <michael.schuldt@bmw.de>
Thu, 28 Jun 2012 10:58:21 +0000 (12:58 +0200)
Using a non-default visual results in a redirected pixmap for the
root window which does not respect VSYNC.

Also use default screen instead of hard-coded screen 0.

LayerManagerPlugins/Renderers/Graphic/src/GraphicSystems/GLESGraphicSystem.cpp
LayerManagerPlugins/Renderers/Graphic/src/WindowSystems/X11WindowSystem.cpp

index 4a95628..499f9e9 100644 (file)
@@ -153,7 +153,7 @@ bool GLESGraphicsystem::init(EGLNativeDisplayType display, EGLNativeWindowType N
     eglMakeCurrent(m_eglDisplay, m_eglSurface, m_eglSurface, m_eglContext);
     LOG_INFO("GLESGraphicsystem", "made current");
 
-    eglSwapInterval(m_eglDisplay, 1); // TODO: does not seem to work
+    eglSwapInterval(m_eglDisplay, 1);
 
     if (!initOpenGLES(m_windowWidth, m_windowHeight))
     {
index 8a79819..8cee5df 100644 (file)
@@ -92,7 +92,7 @@ XVisualInfo* X11WindowSystem::getDefaultVisual(Display *dpy)
     XVisualInfo* windowVis = new XVisualInfo();
     if (windowVis)
     {
-        windowVis->depth = 32;//DefaultDepth(dpy, 0);
+        windowVis->depth = DefaultDepth(dpy, DefaultScreen(dpy));
         if (!XMatchVisualInfo( dpy, 0, windowVis->depth, TrueColor, windowVis))
         {
             LOG_ERROR("X11WindowSystem", "Error: Required visual not found\n");
@@ -471,7 +471,7 @@ bool X11WindowSystem::CreatePixmapsForAllWindows()
 {
     bool result = true;
     LOG_DEBUG("X11WindowSystem", "redirecting all windows");
-    Window root = RootWindow(x11Display, 0);
+    Window root = RootWindow(x11Display, DefaultScreen(x11Display));
     XCompositeRedirectSubwindows(x11Display,root,CompositeRedirectManual);
     XSync(x11Display,0);
     return result;
@@ -482,7 +482,7 @@ bool X11WindowSystem::CreateCompositorWindow()
     LOG_DEBUG("X11WindowSystem", "Get root window");
     bool result = true;
     CompositorWindow = None;
-    Window root = RootWindow(x11Display,0);
+    Window root = RootWindow(x11Display, DefaultScreen(x11Display));
 
     LOG_DEBUG("X11WindowSystem", "Creating Compositor Window");
 
@@ -1041,7 +1041,7 @@ void X11WindowSystem::cleanup(){
     LOG_DEBUG("X11WindowSystem", "Cleanup");
     if (None != CompositorWindow)
     {
-        Window root = RootWindow(x11Display, 0);
+        Window root = RootWindow(x11Display, DefaultScreen(x11Display));
         XCompositeUnredirectSubwindows(x11Display,root,CompositeRedirectManual);
         XDestroyWindow(x11Display,CompositorWindow);
     }