Commit b2f33ffb authored by Ulrich Czekalla's avatar Ulrich Czekalla Committed by Alexandre Julliard

winex11.drv: Don't crash when called with a NULL gl context.

parent 7329144c
...@@ -1795,6 +1795,8 @@ static void WINAPI X11DRV_wglDisable(GLenum cap) ...@@ -1795,6 +1795,8 @@ static void WINAPI X11DRV_wglDisable(GLenum cap)
if (cap == GL_SCISSOR_TEST) if (cap == GL_SCISSOR_TEST)
{ {
Wine_GLContext *ctx = (Wine_GLContext *) NtCurrentTeb()->glContext; Wine_GLContext *ctx = (Wine_GLContext *) NtCurrentTeb()->glContext;
if (ctx)
ctx->scissor_enabled = FALSE; ctx->scissor_enabled = FALSE;
} }
else else
...@@ -1810,6 +1812,8 @@ static void WINAPI X11DRV_wglEnable(GLenum cap) ...@@ -1810,6 +1812,8 @@ static void WINAPI X11DRV_wglEnable(GLenum cap)
if (cap == GL_SCISSOR_TEST) if (cap == GL_SCISSOR_TEST)
{ {
Wine_GLContext *ctx = (Wine_GLContext *) NtCurrentTeb()->glContext; Wine_GLContext *ctx = (Wine_GLContext *) NtCurrentTeb()->glContext;
if (ctx)
ctx->scissor_enabled = TRUE; ctx->scissor_enabled = TRUE;
} }
else else
...@@ -1861,11 +1865,13 @@ static void WINAPI X11DRV_wglGetIntegerv(GLenum pname, GLint* params) ...@@ -1861,11 +1865,13 @@ static void WINAPI X11DRV_wglGetIntegerv(GLenum pname, GLint* params)
static GLboolean WINAPI X11DRV_wglIsEnabled(GLenum cap) static GLboolean WINAPI X11DRV_wglIsEnabled(GLenum cap)
{ {
GLboolean enabled; GLboolean enabled = False;
if (cap == GL_SCISSOR_TEST) if (cap == GL_SCISSOR_TEST)
{ {
Wine_GLContext *ctx = (Wine_GLContext *) NtCurrentTeb()->glContext; Wine_GLContext *ctx = (Wine_GLContext *) NtCurrentTeb()->glContext;
if (ctx)
enabled = ctx->scissor_enabled; enabled = ctx->scissor_enabled;
} }
else else
...@@ -1881,24 +1887,30 @@ static void WINAPI X11DRV_wglScissor(GLint x, GLint y, GLsizei width, GLsizei he ...@@ -1881,24 +1887,30 @@ static void WINAPI X11DRV_wglScissor(GLint x, GLint y, GLsizei width, GLsizei he
{ {
Wine_GLContext *ctx = (Wine_GLContext *) NtCurrentTeb()->glContext; Wine_GLContext *ctx = (Wine_GLContext *) NtCurrentTeb()->glContext;
if (ctx)
{
ctx->scissor.left = x; ctx->scissor.left = x;
ctx->scissor.top = y; ctx->scissor.top = y;
ctx->scissor.right = x + width; ctx->scissor.right = x + width;
ctx->scissor.bottom = y + height; ctx->scissor.bottom = y + height;
sync_current_drawable(TRUE); 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)
{ {
Wine_GLContext *ctx = (Wine_GLContext *) NtCurrentTeb()->glContext; Wine_GLContext *ctx = (Wine_GLContext *) NtCurrentTeb()->glContext;
if (ctx)
{
ctx->viewport.left = x; ctx->viewport.left = x;
ctx->viewport.top = y; ctx->viewport.top = y;
ctx->viewport.right = x + width; ctx->viewport.right = x + width;
ctx->viewport.bottom = y + height; ctx->viewport.bottom = y + height;
sync_current_drawable(TRUE); sync_current_drawable(TRUE);
}
} }
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment