summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/x11/xm_api.c
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2006-08-30 21:17:51 +0000
committerBrian Paul <brian.paul@tungstengraphics.com>2006-08-30 21:17:51 +0000
commit6c06ce281aa7a7e20eab1934f573bc5c673d41cb (patch)
tree497ad65b4f600466db26ed9dab093ffd76764177 /src/mesa/drivers/x11/xm_api.c
parent12a5f812fcf00708ea2b6501e7adcdd5e7a47fac (diff)
Use XAddExtension() to register an XCloseDisplay() callback function.
When the callback is called, free all Mesa's private visual and buffer data structures which are tied to the display. Fixes problems reported by Kitware.
Diffstat (limited to 'src/mesa/drivers/x11/xm_api.c')
-rw-r--r--src/mesa/drivers/x11/xm_api.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/mesa/drivers/x11/xm_api.c b/src/mesa/drivers/x11/xm_api.c
index d2e2c7137b..dea23fcf59 100644
--- a/src/mesa/drivers/x11/xm_api.c
+++ b/src/mesa/drivers/x11/xm_api.c
@@ -1,6 +1,6 @@
/*
* Mesa 3-D graphics library
- * Version: 6.5
+ * Version: 6.5.1
*
* Copyright (C) 1999-2006 Brian Paul All Rights Reserved.
*
@@ -2553,6 +2553,20 @@ XMesaBuffer XMesaFindBuffer( XMesaDisplay *dpy, XMesaDrawable d )
}
+/**
+ * Free/destroy all XMesaBuffers associated with given display.
+ */
+void xmesa_destroy_buffers_on_display(XMesaDisplay *dpy)
+{
+ XMesaBuffer b, next;
+ for (b = XMesaBufferList; b; b = next) {
+ next = b->Next;
+ if (b->display == dpy) {
+ free_xmesa_buffer(0, b);
+ }
+ }
+}
+
/*
* Look for XMesaBuffers whose X window has been destroyed.