fix GLX server resize/crash when resizing windows
This commit is contained in:
@@ -1108,7 +1108,6 @@ update_framebuffer_size(GLcontext *ctx)
|
|||||||
get_buffer_size(fb, &newWidth, &newHeight);
|
get_buffer_size(fb, &newWidth, &newHeight);
|
||||||
if (newWidth != fb->Width || newHeight != fb->Height) {
|
if (newWidth != fb->Width || newHeight != fb->Height) {
|
||||||
xmesa_resize_buffers(ctx, fb, newWidth, newHeight);
|
xmesa_resize_buffers(ctx, fb, newWidth, newHeight);
|
||||||
ctx->NewState |= _NEW_BUFFERS; /* to update scissor / window bounds */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctx->WinSysReadBuffer != ctx->WinSysDrawBuffer) {
|
if (ctx->WinSysReadBuffer != ctx->WinSysDrawBuffer) {
|
||||||
|
@@ -224,6 +224,9 @@ _mesa_resize_framebuffer(GLcontext *ctx, struct gl_framebuffer *fb,
|
|||||||
|
|
||||||
fb->Width = width;
|
fb->Width = width;
|
||||||
fb->Height = height;
|
fb->Height = height;
|
||||||
|
|
||||||
|
/* to update scissor / window bounds */
|
||||||
|
ctx->NewState |= _NEW_BUFFERS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -984,7 +984,7 @@ _mesa_update_state( GLcontext *ctx )
|
|||||||
if (new_state & (_NEW_BUFFERS | _NEW_COLOR | _NEW_PIXEL))
|
if (new_state & (_NEW_BUFFERS | _NEW_COLOR | _NEW_PIXEL))
|
||||||
_mesa_update_framebuffer(ctx);
|
_mesa_update_framebuffer(ctx);
|
||||||
|
|
||||||
if (new_state & (_NEW_SCISSOR|_NEW_BUFFERS))
|
if (new_state & (_NEW_SCISSOR | _NEW_BUFFERS | _NEW_VIEWPORT))
|
||||||
_mesa_update_draw_buffer_bounds( ctx );
|
_mesa_update_draw_buffer_bounds( ctx );
|
||||||
|
|
||||||
if (new_state & _NEW_POINT)
|
if (new_state & _NEW_POINT)
|
||||||
|
Reference in New Issue
Block a user