aboutsummaryrefslogtreecommitdiff
path: root/doc/nx-X11_vs_XOrg69_patches/xf86glx.c.NX.patch
diff options
context:
space:
mode:
Diffstat (limited to 'doc/nx-X11_vs_XOrg69_patches/xf86glx.c.NX.patch')
-rw-r--r--doc/nx-X11_vs_XOrg69_patches/xf86glx.c.NX.patch70
1 files changed, 70 insertions, 0 deletions
diff --git a/doc/nx-X11_vs_XOrg69_patches/xf86glx.c.NX.patch b/doc/nx-X11_vs_XOrg69_patches/xf86glx.c.NX.patch
new file mode 100644
index 000000000..eaa3a1624
--- /dev/null
+++ b/doc/nx-X11_vs_XOrg69_patches/xf86glx.c.NX.patch
@@ -0,0 +1,70 @@
+--- ./nx-X11/programs/Xserver/GL/mesa/X/xf86glx.c.X.original 2015-02-13 14:03:44.680442769 +0100
++++ ./nx-X11/programs/Xserver/GL/mesa/X/xf86glx.c 2015-02-10 19:13:14.340665851 +0100
+@@ -71,6 +71,10 @@
+
+ #include "glcontextmodes.h"
+
++#ifdef NXAGENT_SERVER
++#include "../main/WSDrawBuffer.h"
++#endif
++
+ /*
+ * This structure is statically allocated in the __glXScreens[]
+ * structure. This struct is not used anywhere other than in
+@@ -95,6 +99,36 @@
+ NULL /* WrappedPositionWindow is overwritten */
+ };
+
++#ifdef NXAGENT_SERVER
++WSDrawBufferPtr pWSDrawBuffer = NULL;
++
++void AddWSDrawBuffer(GLframebuffer *mesa_buffer)
++{
++ WSDrawBufferPtr prevWSDB;
++ WSDrawBufferPtr newWSDB;
++ WSDrawBufferPtr p;
++
++ prevWSDB = NULL;
++ newWSDB = NULL;
++ p = pWSDrawBuffer;
++ while (p != NULL) {
++ prevWSDB = p;
++ if (prevWSDB -> DrawBuffer == mesa_buffer) {
++ return;
++ }
++ p = p -> next;
++ }
++ newWSDB = malloc(sizeof(WSDrawBufferRec));
++ newWSDB -> DrawBuffer = mesa_buffer;
++ newWSDB -> next = NULL;
++
++ if (pWSDrawBuffer == NULL)
++ pWSDrawBuffer = newWSDB;
++ else
++ prevWSDB -> next = newWSDB;
++}
++#endif
++
+ void *__glXglDDXScreenInfo(void) {
+ return &__glDDXScreenInfo;
+ }
+@@ -748,6 +782,10 @@
+ __MESA_buffer buf = (__MESA_buffer)glPriv->private;
+ __GLXdrawablePrivate *glxPriv = (__GLXdrawablePrivate *)glPriv->other;
+
++#ifdef NXAGENT_SERVER
++ AddWSDrawBuffer(& (buf -> xm_buf -> mesa_buffer) );
++#endif
++
+ /* Destroy Mesa's buffers */
+ if (buf->xm_buf)
+ XMesaDestroyBuffer(buf->xm_buf);
+@@ -757,7 +795,7 @@
+ glPriv->frontBuffer.resize = buf->fbresize;
+
+ __glXFree(glPriv->private);
+- glPriv->private = NULL;
++ glPriv->private = NULL;
+ }
+
+ __GLinterface *__MESA_createContext(__GLimports *imports,