aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/qemu/qemu-0.12.4/qemugl-allow-glxcontext-release.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/qemu/qemu-0.12.4/qemugl-allow-glxcontext-release.patch')
-rw-r--r--meta/recipes-devtools/qemu/qemu-0.12.4/qemugl-allow-glxcontext-release.patch63
1 files changed, 63 insertions, 0 deletions
diff --git a/meta/recipes-devtools/qemu/qemu-0.12.4/qemugl-allow-glxcontext-release.patch b/meta/recipes-devtools/qemu/qemu-0.12.4/qemugl-allow-glxcontext-release.patch
new file mode 100644
index 0000000000..43acc361a0
--- /dev/null
+++ b/meta/recipes-devtools/qemu/qemu-0.12.4/qemugl-allow-glxcontext-release.patch
@@ -0,0 +1,63 @@
+Allow releasing the GLXContext/Drawable with glXMakeCurrent.
+
+---
+commit d942ed4e853e08d2298f3e11e9a952c1d952bff5
+tree f0a934efd8a8ff48e2d96f0d6fc7d70bef106bfe
+parent 93619e6be184f8de08759d347825ee0d678a6f9c
+author Andrzej Zaborowski <andrew.zaborowski@intel.com> Tue, 16 Jun 2009 22:22:05 +0200
+committer Andrzej Zaborowski <andrew.zaborowski@intel.com> Tue, 16 Jun 2009 22:22:05 +0200
+
+ target-i386/opengl_exec.c | 31 ++++++++++++++++---------------
+ 1 files changed, 16 insertions(+), 15 deletions(-)
+
+Index: qemu/target-i386/opengl_exec.c
+===================================================================
+--- qemu.orig/target-i386/opengl_exec.c 2010-05-10 18:46:43.175394992 -0400
++++ qemu/target-i386/opengl_exec.c 2010-05-10 18:46:43.218419933 -0400
+@@ -1600,10 +1600,9 @@ int do_function_call(int func_number, ar
+ fprintf(stderr, "client_drawable=%p fake_ctx=%d\n",
+ (void *) client_drawable, fake_ctxt);
+
+- if (client_drawable == 0 && fake_ctxt == 0) {
++ if (client_drawable == 0 && fake_ctxt == 0)
+ ret_int = glXMakeCurrent(dpy, 0, NULL);
+- process->current_state = &process->default_state;
+- } else if ((drawable = (GLXDrawable)
++ else if ((drawable = (GLXDrawable)
+ get_association_fakepbuffer_pbuffer(
+ process, client_drawable))) {
+ GLXContext ctxt = get_association_fakecontext_glxcontext(
+@@ -1651,19 +1650,21 @@ int do_function_call(int func_number, ar
+ }
+
+ if (ret_int) {
+- for (i = 0; i < process->nb_states; i ++) {
+- if (process->glstates[i]->fake_ctxt == fake_ctxt) {
+- /* HACK !!! REMOVE */
+- process->current_state = process->glstates[i];
+- process->current_state->drawable = drawable;
+- break;
+- }
+- }
++ if (fake_ctxt) {
++ for (i = 0; i < process->nb_states; i ++)
++ if (process->glstates[i]->fake_ctxt == fake_ctxt) {
++ /* HACK !!! REMOVE */
++ process->current_state = process->glstates[i];
++ process->current_state->drawable = drawable;
++ break;
++ }
+
+- if (i == process->nb_states) {
+- fprintf(stderr, "error remembering the new context\n");
+- exit(-1);
+- }
++ if (i == process->nb_states) {
++ fprintf(stderr, "error remembering the new context\n");
++ exit(-1);
++ }
++ } else
++ process->current_state = &process->default_state;
+ }
+ break;
+ }