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.
This commit is contained in:
Sam Lantinga 2013-09-27 23:47:57 -07:00
parent b9567776d7
commit 8b6ad7ffba

View File

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