winex11.drv: Avoid grabbing syslevel locks in the wrong order.
This commit is contained in:
parent
7d98599d7d
commit
4d8135e0c8
|
@ -169,7 +169,7 @@ BOOL WINAPI wglMakeCurrent(HDC hdc, HGLRC hglrc)
|
||||||
if(hglrc == NULL)
|
if(hglrc == NULL)
|
||||||
dc = OPENGL_GetDefaultDC();
|
dc = OPENGL_GetDefaultDC();
|
||||||
else
|
else
|
||||||
dc = DC_GetDCPtr( hdc );
|
dc = DC_GetDCUpdate( hdc );
|
||||||
|
|
||||||
TRACE("hdc: (%p), hglrc: (%p)\n", hdc, hglrc);
|
TRACE("hdc: (%p), hglrc: (%p)\n", hdc, hglrc);
|
||||||
|
|
||||||
|
|
|
@ -1443,7 +1443,7 @@ PROC X11DRV_wglGetProcAddress(LPCSTR lpszProc)
|
||||||
* Adjust the current viewport and scissor in order to position
|
* Adjust the current viewport and scissor in order to position
|
||||||
* and size the current drawable correctly on the parent window.
|
* and size the current drawable correctly on the parent window.
|
||||||
*/
|
*/
|
||||||
static void sync_current_drawable(void)
|
static void sync_current_drawable(BOOL updatedc)
|
||||||
{
|
{
|
||||||
int dy;
|
int dy;
|
||||||
int width;
|
int width;
|
||||||
|
@ -1455,7 +1455,8 @@ static void sync_current_drawable(void)
|
||||||
|
|
||||||
if (ctx && ctx->physDev)
|
if (ctx && ctx->physDev)
|
||||||
{
|
{
|
||||||
GetClipBox(ctx->physDev->hdc, &rc); /* Make sure physDev is up to date */
|
if (updatedc)
|
||||||
|
GetClipBox(ctx->physDev->hdc, &rc); /* Make sure physDev is up to date */
|
||||||
|
|
||||||
dy = ctx->physDev->drawable_rect.bottom - ctx->physDev->drawable_rect.top -
|
dy = ctx->physDev->drawable_rect.bottom - ctx->physDev->drawable_rect.top -
|
||||||
ctx->physDev->dc_rect.bottom;
|
ctx->physDev->dc_rect.bottom;
|
||||||
|
@ -1535,7 +1536,7 @@ BOOL X11DRV_wglMakeCurrent(X11DRV_PDEVICE *physDev, HGLRC hglrc) {
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sync_current_drawable();
|
sync_current_drawable(FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1885,7 +1886,7 @@ static void WINAPI X11DRV_wglScissor(GLint x, GLint y, GLsizei width, GLsizei he
|
||||||
ctx->scissor.right = x + width;
|
ctx->scissor.right = x + width;
|
||||||
ctx->scissor.bottom = y + height;
|
ctx->scissor.bottom = y + height;
|
||||||
|
|
||||||
sync_current_drawable();
|
sync_current_drawable(TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void WINAPI X11DRV_wglViewport(GLint x, GLint y, GLsizei width, GLsizei height)
|
static void WINAPI X11DRV_wglViewport(GLint x, GLint y, GLsizei width, GLsizei height)
|
||||||
|
@ -1897,7 +1898,7 @@ static void WINAPI X11DRV_wglViewport(GLint x, GLint y, GLsizei width, GLsizei h
|
||||||
ctx->viewport.right = x + width;
|
ctx->viewport.right = x + width;
|
||||||
ctx->viewport.bottom = y + height;
|
ctx->viewport.bottom = y + height;
|
||||||
|
|
||||||
sync_current_drawable();
|
sync_current_drawable(TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue