summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Reveman <davidr@novell.com>2006-05-22 00:59:32 +0000
committerDavid Reveman <davidr@novell.com>2006-05-22 00:59:32 +0000
commit0553b1fbf990b67911d53e9a11acbacebde3c8b3 (patch)
tree898430fe032c6fe16157f1e9b9b652e528973ebc
parent2a607d0971e66b62e4d29bf14531265c611760c3 (diff)
Fix pbuffer resize issue
-rw-r--r--ChangeLog9
-rw-r--r--src/glx/glitz_glx_context.c6
-rw-r--r--src/glx/glitz_glx_drawable.c4
3 files changed, 16 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 9ee79ce..0b00c9f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2006-05-22 David Reveman <davidr@novell.com>
+
+ * src/glx/glitz_glx_context.c (_glitz_glx_context_update): Update
+ drawable size before getting the current context.
+
+ * src/glx/glitz_glx_drawable.c (_glitz_glx_drawable_update_size):
+ Make no context current if pbuffer drawable we're about to destroy
+ is current. (bnc #175637)
+
2006-05-20 David Reveman <davidr@novell.com>
* src/glitz.h (GLITZ_REVISION): Bump version to 0.5.6.
diff --git a/src/glx/glitz_glx_context.c b/src/glx/glitz_glx_context.c
index 5fe5478..97a23d6 100644
--- a/src/glx/glitz_glx_context.c
+++ b/src/glx/glitz_glx_context.c
@@ -442,15 +442,15 @@ _glitz_glx_context_update (glitz_glx_drawable_t *drawable,
_glitz_glx_context_make_current (drawable, (context)? 1: 0);
break;
case GLITZ_DRAWABLE_CURRENT:
- if (!dinfo->thread_info->cctx)
- context = glXGetCurrentContext ();
-
if (drawable->base.width != drawable->width ||
drawable->base.height != drawable->height)
_glitz_glx_drawable_update_size (drawable,
drawable->base.width,
drawable->base.height);
+ if (!dinfo->thread_info->cctx)
+ context = glXGetCurrentContext ();
+
if ((context != drawable->context->context) ||
(glXGetCurrentDrawable () != drawable->drawable))
_glitz_glx_context_make_current (drawable, (context)? 1: 0);
diff --git a/src/glx/glitz_glx_drawable.c b/src/glx/glitz_glx_drawable.c
index d8c95b6..02dd6e8 100644
--- a/src/glx/glitz_glx_drawable.c
+++ b/src/glx/glitz_glx_drawable.c
@@ -79,6 +79,10 @@ _glitz_glx_drawable_update_size (glitz_glx_drawable_t *drawable,
{
if (drawable->pbuffer)
{
+ if (glXGetCurrentDrawable () == drawable->drawable)
+ glXMakeCurrent (drawable->screen_info->display_info->display,
+ None, NULL);
+
glitz_glx_pbuffer_destroy (drawable->screen_info, drawable->pbuffer);
drawable->drawable = drawable->pbuffer =
glitz_glx_pbuffer_create (drawable->screen_info,