diff options
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.patch | 70 |
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, |