瀏覽代碼

Fixed bug 2101 - CWBackPixel causes weird window flickering on window resize

aBothe

I tried to experiment a bit with SDL2 and OpenGL today and noticed that something caused some weird flickering when resizing my nicely drawn SDL2/OpenGL window:
Just after resizing, the background went black and I had to let my OpenGL code redraw the contents..
However, after some hours spent with googling I found out that in OpenGL examples where this CWBackPixel flag was not used when creating X windows, there was no flickering while resizing the window.

See http://www.sbin.org/doc/Xlib/chapt_04.html @ "The Window Background" for more info.
Sam Lantinga 11 年之前
父節點
當前提交
8b6ad7ffba
共有 1 個文件被更改,包括 2 次插入2 次删除
  1. 2 2
      src/video/x11/SDL_x11window.c

+ 2 - 2
src/video/x11/SDL_x11window.c

@@ -395,7 +395,7 @@ X11_CreateWindow(_THIS, SDL_Window * window)
     }
 
     xattr.override_redirect = False;
-    xattr.background_pixel = 0;
+    xattr.background_pixmap = None;
     xattr.border_pixel = 0;
 
     if (visual->class == DirectColor) {
@@ -480,7 +480,7 @@ X11_CreateWindow(_THIS, SDL_Window * window)
     w = XCreateWindow(display, RootWindow(display, screen),
                       window->x, window->y, window->w, window->h,
                       0, depth, InputOutput, visual,
-                      (CWOverrideRedirect | CWBackPixel | CWBorderPixel |
+                      (CWOverrideRedirect | CWBackPixmap | CWBorderPixel |
                        CWColormap), &xattr);
     if (!w) {
         return SDL_SetError("Couldn't create window");