diff --git a/src/gui/sdlmain.cpp b/src/gui/sdlmain.cpp index 24807125..b0635487 100644 --- a/src/gui/sdlmain.cpp +++ b/src/gui/sdlmain.cpp @@ -1004,6 +1004,10 @@ void GFX_EndUpdate( const Bit16u *changedLines ) { break; #if C_OPENGL case SCREEN_OPENGL: + // Clear drawing area. Some drivers (on Linux) have more than 2 buffers and the screen might + // be dirty because of other programs. + glClearColor (0.0, 0.0, 0.0, 1.0); + glClear(GL_COLOR_BUFFER_BIT); if (sdl.opengl.pixel_buffer_object) { glUnmapBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT); glBindTexture(GL_TEXTURE_2D, sdl.opengl.texture);