summaryrefslogtreecommitdiff
path: root/community/tigervnc/glx.patch
diff options
context:
space:
mode:
Diffstat (limited to 'community/tigervnc/glx.patch')
-rw-r--r--community/tigervnc/glx.patch85
1 files changed, 85 insertions, 0 deletions
diff --git a/community/tigervnc/glx.patch b/community/tigervnc/glx.patch
new file mode 100644
index 000000000..b2ecb672f
--- /dev/null
+++ b/community/tigervnc/glx.patch
@@ -0,0 +1,85 @@
+diff -ur tigervnc-1.2.0.orig/unix/xserver/hw/vnc/Makefile.am tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am
+--- tigervnc-1.2.0.orig/unix/xserver/hw/vnc/Makefile.am 2011-10-31 09:14:40.000000000 +0100
++++ tigervnc-1.2.0/unix/xserver/hw/vnc/Makefile.am 2013-01-21 03:39:14.924841615 +0100
+@@ -7,6 +7,10 @@
+ XREGION_LIB=$(LIB_DIR)/Xregion/libXregion.la
+ COMMON_LIBS=$(NETWORK_LIB) $(RFB_LIB) $(RDR_LIB) $(XREGION_LIB)
+
++if GLX
++GLX_LIB = $(top_srcdir)/glx/libglx.la
++endif
++
+ noinst_LTLIBRARIES = libvnccommon.la
+
+ HDRS = RegionHelper.h vncExtInit.h vncHooks.h XserverDesktop.h xorg-version.h \
+@@ -34,7 +38,8 @@
+ -UHAVE_CONFIG_H \
+ -DXFree86Server -DVENDOR_RELEASE="$(VENDOR_RELEASE)" \
+ -DVENDOR_STRING="\"$(VENDOR_STRING)\"" -I$(TIGERVNC_SRCDIR)/common \
+- -I$(top_srcdir)/include ${XSERVERLIBS_CFLAGS} -I$(includedir)
++ -I$(top_srcdir)/include ${XSERVERLIBS_CFLAGS} -I$(includedir) \
++ -I$(top_srcdir)/glx
+
+ Xvnc_LDADD = $(XVNC_LIBS) libvnccommon.la $(COMMON_LIBS) \
+ $(XSERVER_LIBS) $(XSERVER_SYS_LIBS) $(XVNC_SYS_LIBS) -lX11
+@@ -55,7 +60,7 @@
+
+ libvnc_la_LDFLAGS = -module -avoid-version
+
+-libvnc_la_LIBADD = libvnccommon.la $(COMMON_LIBS)
++libvnc_la_LIBADD = libvnccommon.la $(COMMON_LIBS) $(GLX_LIB)
+
+ EXTRA_DIST = Xvnc.man
+
+diff -ur tigervnc-1.2.0.orig/unix/xserver/hw/vnc/xvnc.cc tigervnc-1.2.0/unix/xserver/hw/vnc/xvnc.cc
+--- tigervnc-1.2.0.orig/unix/xserver/hw/vnc/xvnc.cc 2012-03-09 21:34:29.000000000 +0100
++++ tigervnc-1.2.0/unix/xserver/hw/vnc/xvnc.cc 2013-01-21 03:38:38.187300899 +0100
+@@ -87,6 +87,17 @@
+ #include "version-config.h"
+ #include "site.h"
+ #endif
++
++#if XORG >= 113
++#ifdef GLXEXT
++/* C++ really is the worst */
++#define private _private
++#include "glxserver.h"
++#undef private
++#include "glx_extinit.h"
++#endif
++#endif
++
+ #undef class
+ #undef public
+ }
+@@ -1305,6 +1316,16 @@
+ dispatchException &= ~DE_RESET;
+ }
+
++#if XORG >= 113
++#ifdef GLXEXT
++static ExtensionModule vnc_glx_ext = {
++ GlxExtensionInit,
++ "GLX",
++ &noGlxExtension
++};
++#endif
++#endif
++
+ void
+ InitOutput(ScreenInfo *screenInfo, int argc, char **argv)
+ {
+@@ -1314,6 +1335,13 @@
+ int i;
+ int NumFormats = 0;
+
++#if XORG >= 113
++#ifdef GLXEXT
++ if (serverGeneration == 1)
++ LoadExtension(&vnc_glx_ext, TRUE);
++#endif
++#endif
++
+ /* initialize pixmap formats */
+
+ /* must have a pixmap depth to match every screen depth */