winex11: Restore the X11DRV_FLUSH_GL_DRAWABLE XFlush() for setups without OML_sync_control.
This was removed in e75bc6228e
, but appears to
mitigate lack of OML_sync_control in at least some setups.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
549934eeea
commit
14ec499d5b
|
@ -259,6 +259,7 @@ static INT X11DRV_ExtEscape( PHYSDEV dev, INT escape, INT in_count, LPCVOID in_d
|
|||
RECT rect = physDev->dc_rect;
|
||||
|
||||
OffsetRect( &rect, -physDev->dc_rect.left, -physDev->dc_rect.top );
|
||||
if (data->flush) XFlush( gdi_display );
|
||||
XSetFunction( gdi_display, physDev->gc, GXcopy );
|
||||
XCopyArea( gdi_display, data->gl_drawable, physDev->drawable, physDev->gc,
|
||||
0, 0, rect.right, rect.bottom,
|
||||
|
|
|
@ -1976,6 +1976,7 @@ static void wglFinish(void)
|
|||
|
||||
escape.code = X11DRV_FLUSH_GL_DRAWABLE;
|
||||
escape.gl_drawable = 0;
|
||||
escape.flush = FALSE;
|
||||
|
||||
if ((gl = get_gl_drawable( WindowFromDC( ctx->hdc ), 0 )))
|
||||
{
|
||||
|
@ -2001,6 +2002,7 @@ static void wglFlush(void)
|
|||
|
||||
escape.code = X11DRV_FLUSH_GL_DRAWABLE;
|
||||
escape.gl_drawable = 0;
|
||||
escape.flush = FALSE;
|
||||
|
||||
if ((gl = get_gl_drawable( WindowFromDC( ctx->hdc ), 0 )))
|
||||
{
|
||||
|
@ -3286,6 +3288,7 @@ static BOOL glxdrv_wglSwapBuffers( HDC hdc )
|
|||
|
||||
escape.code = X11DRV_FLUSH_GL_DRAWABLE;
|
||||
escape.gl_drawable = 0;
|
||||
escape.flush = !pglXWaitForSbcOML;
|
||||
|
||||
if (!(gl = get_gl_drawable( WindowFromDC( hdc ), hdc )))
|
||||
{
|
||||
|
|
|
@ -304,6 +304,7 @@ struct x11drv_escape_flush_gl_drawable
|
|||
{
|
||||
enum x11drv_escape_codes code; /* escape code (X11DRV_FLUSH_GL_DRAWABLE) */
|
||||
Drawable gl_drawable; /* GL drawable */
|
||||
BOOL flush; /* flush X11 before copying */
|
||||
};
|
||||
|
||||
/**************************************************************************
|
||||
|
|
Loading…
Reference in New Issue