Mesa (master): xeglthreads: Check current context for EGL per-thread support.

Brian Paul brianp at kemper.freedesktop.org
Fri Jul 17 17:57:22 UTC 2009


Module: Mesa
Branch: master
Commit: 30bccf8ea9cd84d1a52a31b6f86b783dfb919374
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=30bccf8ea9cd84d1a52a31b6f86b783dfb919374

Author: Chia-I Wu <olvaffe at gmail.com>
Date:   Thu Jul 16 21:21:59 2009 -0700

xeglthreads: Check current context for EGL per-thread support.

Signed-off-by: Chia-I Wu <olvaffe at gmail.com>

---

 progs/egl/xeglthreads.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/progs/egl/xeglthreads.c b/progs/egl/xeglthreads.c
index 5cc856a..508dbc0 100644
--- a/progs/egl/xeglthreads.c
+++ b/progs/egl/xeglthreads.c
@@ -261,6 +261,12 @@ draw_loop(struct winthread *wt)
       if (Locking)
          pthread_mutex_unlock(&Mutex);
 
+      eglBindAPI(EGL_OPENGL_API);
+      if (eglGetCurrentContext() != wt->Context) {
+         printf("xeglthreads: current context %p != %p\n",
+               eglGetCurrentContext(), wt->Context);
+      }
+
       glEnable(GL_DEPTH_TEST);
 
       if (wt->NewSize) {
@@ -308,6 +314,7 @@ draw_loop(struct winthread *wt)
       }
       wt->Angle += 1.0;
    }
+   eglMakeCurrent(wt->Display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
 }
 
 
@@ -574,7 +581,7 @@ clean_up(void)
    }
 
    for (i = 0; i < NumWinThreads; i++) {
-      eglDestroyContext(WinThreads[i].Dpy, WinThreads[i].Context);
+      eglDestroyContext(WinThreads[i].Display, WinThreads[i].Context);
       XDestroyWindow(WinThreads[i].Dpy, WinThreads[i].Win);
    }
 }
@@ -742,7 +749,7 @@ main(int argc, char *argv[])
       }
    }
    else {
-      eglTerminate(dpy);
+      eglTerminate(egl_dpy);
       XCloseDisplay(dpy);
    }
 




More information about the mesa-commit mailing list