Revision: 148338 https://trac.macports.org/changeset/148338 Author: jeremyhu@macports.org Date: 2016-05-04 13:38:07 -0700 (Wed, 04 May 2016) Log Message: ----------- xorg-server: Bump to 1.18.3 Modified Paths: -------------- trunk/dports/x11/xorg-server/Portfile trunk/dports/x11/xorg-server/files/5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch trunk/dports/x11/xorg-server/files/5004-fb-Revert-fb-changes-that-broke-XQuartz.patch Added Paths: ----------- trunk/dports/x11/xorg-server/files/0001-XQuartz-Remove-with-launchd-id-prefix.patch trunk/dports/x11/xorg-server/files/0002-XQuartz-Fix-the-help-text-for-with-bundle-id-prefix.patch trunk/dports/x11/xorg-server/files/0003-XQuartz-Update-release-feed-URL-to-use-new-https-URL.patch trunk/dports/x11/xorg-server/files/0004-XQuartz-Add-with-sparkle-feed-url-configure-option.patch trunk/dports/x11/xorg-server/files/0005-XQuartz-Add-with-bundle-version-and-with-bundle-vers.patch trunk/dports/x11/xorg-server/files/0006-XQuartz-Update-copyright-years.patch trunk/dports/x11/xorg-server/files/5001-Revert-dix-Restore-PaintWindow-screen-hook.patch trunk/dports/x11/xorg-server/files/5002-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch trunk/dports/x11/xorg-server/files/5003-Use-old-miTrapezoids-and-miTriangles-routines.patch trunk/dports/x11/xorg-server/files/5005-fb-Revert-fb-changes-that-broke-XQuartz.patch Removed Paths: ------------- trunk/dports/x11/xorg-server/files/5001-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch trunk/dports/x11/xorg-server/files/5002-Use-old-miTrapezoids-and-miTriangles-routines.patch trunk/dports/x11/xorg-server/files/5003-fb-Revert-fb-changes-that-broke-XQuartz.patch Modified: trunk/dports/x11/xorg-server/Portfile =================================================================== --- trunk/dports/x11/xorg-server/Portfile 2016-05-04 19:54:31 UTC (rev 148337) +++ trunk/dports/x11/xorg-server/Portfile 2016-05-04 20:38:07 UTC (rev 148338) @@ -5,8 +5,7 @@ name xorg-server conflicts xorg-server-devel set my_name xorg-server -version 1.17.4 -revision 1 +version 1.18.3 categories x11 devel license X11 maintainers jeremyhu openmaintainer @@ -22,8 +21,8 @@ dist_subdir ${my_name} distname ${my_name}-${version} -checksums rmd160 d89d56015d093666e932fd0afc7d51aa2db7cc2f \ - sha256 0c4b45c116a812a996eb432d8508cf26c2ec8c3916ff2a50781796882f8d6457 +checksums rmd160 a09617c34be796aacd6edcbe470179b2abdcb188 \ + sha256 ea739c22517cdbe2b5f7c0a5fd05fe8a10ac0629003e71c0c7862f4bb60142cd use_bzip2 yes use_parallel_build yes @@ -88,11 +87,18 @@ RAWCPP=${configure.cpp} patchfiles \ + 0001-XQuartz-Remove-with-launchd-id-prefix.patch \ + 0002-XQuartz-Fix-the-help-text-for-with-bundle-id-prefix.patch \ + 0003-XQuartz-Update-release-feed-URL-to-use-new-https-URL.patch \ + 0004-XQuartz-Add-with-sparkle-feed-url-configure-option.patch \ + 0005-XQuartz-Add-with-bundle-version-and-with-bundle-vers.patch \ + 0006-XQuartz-Update-copyright-years.patch \ 5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch \ - 5001-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch \ - 5002-Use-old-miTrapezoids-and-miTriangles-routines.patch \ - 5003-fb-Revert-fb-changes-that-broke-XQuartz.patch \ - 5004-fb-Revert-fb-changes-that-broke-XQuartz.patch + 5001-Revert-dix-Restore-PaintWindow-screen-hook.patch \ + 5002-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch \ + 5003-Use-old-miTrapezoids-and-miTriangles-routines.patch \ + 5004-fb-Revert-fb-changes-that-broke-XQuartz.patch \ + 5005-fb-Revert-fb-changes-that-broke-XQuartz.patch patch.pre_args -p1 Added: trunk/dports/x11/xorg-server/files/0001-XQuartz-Remove-with-launchd-id-prefix.patch =================================================================== --- trunk/dports/x11/xorg-server/files/0001-XQuartz-Remove-with-launchd-id-prefix.patch (rev 0) +++ trunk/dports/x11/xorg-server/files/0001-XQuartz-Remove-with-launchd-id-prefix.patch 2016-05-04 20:38:07 UTC (rev 148338) @@ -0,0 +1,30 @@ +From 3600f8600f1a876409c3a7f2b29f036156b2c7c6 Mon Sep 17 00:00:00 2001 +From: Jeremy Huddleston Sequoia <jeremyhu@apple.com> +Date: Tue, 3 May 2016 23:16:46 -0700 +Subject: [PATCH 1/6] XQuartz: Remove --with-launchd-id-prefix + +It's been deprecated for years. + +Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> +(cherry picked from commit 214a66b661dcb56ebb9776e34049753f65c7510a) +--- + configure.ac | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 77cf234..c7b2258 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -555,9 +555,6 @@ AC_ARG_WITH(apple-application-name,AS_HELP_STRING([--with-apple-application-name + [ APPLE_APPLICATION_NAME="${withval}" ], + [ APPLE_APPLICATION_NAME="X11" ]) + AC_SUBST([APPLE_APPLICATION_NAME]) +-AC_ARG_WITH(launchd-id-prefix, AS_HELP_STRING([--with-launchd-id-prefix=PATH], [Deprecated: Use --with-bundle-id-prefix.]), +- [ BUNDLE_ID_PREFIX="${withval}" ], +- [ BUNDLE_ID_PREFIX="org.x" ]) + AC_ARG_WITH(bundle-id-prefix, AS_HELP_STRING([--with-bundle-id-prefix=PATH], [Prefix to use for bundle identifiers (default: org.x)]), + [ BUNDLE_ID_PREFIX="${withval}" ]) + AC_SUBST([BUNDLE_ID_PREFIX]) +-- +2.8.1 + Added: trunk/dports/x11/xorg-server/files/0002-XQuartz-Fix-the-help-text-for-with-bundle-id-prefix.patch =================================================================== --- trunk/dports/x11/xorg-server/files/0002-XQuartz-Fix-the-help-text-for-with-bundle-id-prefix.patch (rev 0) +++ trunk/dports/x11/xorg-server/files/0002-XQuartz-Fix-the-help-text-for-with-bundle-id-prefix.patch 2016-05-04 20:38:07 UTC (rev 148338) @@ -0,0 +1,27 @@ +From ab5f69e5419b34f21cfd30d38374d14103a88f40 Mon Sep 17 00:00:00 2001 +From: Jeremy Huddleston Sequoia <jeremyhu@apple.com> +Date: Tue, 3 May 2016 23:24:44 -0700 +Subject: [PATCH 2/6] XQuartz: Fix the help text for --with-bundle-id-prefix + +Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> +(cherry picked from commit 16d6733c63727d910eb516d7f6950f4675281f2d) +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index c7b2258..857a181 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -555,7 +555,7 @@ AC_ARG_WITH(apple-application-name,AS_HELP_STRING([--with-apple-application-name + [ APPLE_APPLICATION_NAME="${withval}" ], + [ APPLE_APPLICATION_NAME="X11" ]) + AC_SUBST([APPLE_APPLICATION_NAME]) +-AC_ARG_WITH(bundle-id-prefix, AS_HELP_STRING([--with-bundle-id-prefix=PATH], [Prefix to use for bundle identifiers (default: org.x)]), ++AC_ARG_WITH(bundle-id-prefix, AS_HELP_STRING([--with-bundle-id-prefix=RDNS_PREFIX], [Prefix to use for bundle identifiers (default: org.x)]), + [ BUNDLE_ID_PREFIX="${withval}" ]) + AC_SUBST([BUNDLE_ID_PREFIX]) + AC_DEFINE_UNQUOTED(BUNDLE_ID_PREFIX, "$BUNDLE_ID_PREFIX", [Prefix to use for bundle identifiers]) +-- +2.8.1 + Added: trunk/dports/x11/xorg-server/files/0003-XQuartz-Update-release-feed-URL-to-use-new-https-URL.patch =================================================================== --- trunk/dports/x11/xorg-server/files/0003-XQuartz-Update-release-feed-URL-to-use-new-https-URL.patch (rev 0) +++ trunk/dports/x11/xorg-server/files/0003-XQuartz-Update-release-feed-URL-to-use-new-https-URL.patch 2016-05-04 20:38:07 UTC (rev 148338) @@ -0,0 +1,40 @@ +From a1915ad14d89bdcd0f2a6607d6d1cb8f90201158 Mon Sep 17 00:00:00 2001 +From: Jeremy Huddleston Sequoia <jeremyhu@apple.com> +Date: Tue, 3 May 2016 23:14:24 -0700 +Subject: [PATCH 3/6] XQuartz: Update release feed URL to use new https URL + +Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> +(cherry picked from commit 299b01eabf827a7435b5d6004d50637ac710bbc7) +--- + hw/xquartz/bundle/Info.plist.cpp | 15 +-------------- + 1 file changed, 1 insertion(+), 14 deletions(-) + +diff --git a/hw/xquartz/bundle/Info.plist.cpp b/hw/xquartz/bundle/Info.plist.cpp +index 06e33f8..d98eaa6 100644 +--- a/hw/xquartz/bundle/Info.plist.cpp ++++ b/hw/xquartz/bundle/Info.plist.cpp +@@ -34,20 +34,7 @@ + <key>SUPublicDSAKeyFile</key> + <string>sparkle.pem</string> + <key>SUFeedURL</key> +- <string>http://xquartz.macosforge.org/downloads/sparkle/release.xml</string> +- <key>NSAppTransportSecurity</key> +- <dict> +- <key>NSExceptionDomains</key> +- <dict> +- <key>macosforge.org</key> +- <dict> +- <key>NSIncludesSubdomains</key> +- <true/> +- <key>NSExceptionAllowsInsecureHTTPLoads</key> +- <true/> +- </dict> +- </dict> +- </dict> ++ <string>https://www.xquartz.org/releases/sparkle/release.xml</string> + #endif + <key>LSApplicationCategoryType</key> + <string>public.app-category.utilities</string> +-- +2.8.1 + Added: trunk/dports/x11/xorg-server/files/0004-XQuartz-Add-with-sparkle-feed-url-configure-option.patch =================================================================== --- trunk/dports/x11/xorg-server/files/0004-XQuartz-Add-with-sparkle-feed-url-configure-option.patch (rev 0) +++ trunk/dports/x11/xorg-server/files/0004-XQuartz-Add-with-sparkle-feed-url-configure-option.patch 2016-05-04 20:38:07 UTC (rev 148338) @@ -0,0 +1,57 @@ +From bab72d3905bdafe4815ab1dc5509988c8e467769 Mon Sep 17 00:00:00 2001 +From: Jeremy Huddleston Sequoia <jeremyhu@apple.com> +Date: Tue, 3 May 2016 23:21:38 -0700 +Subject: [PATCH 4/6] XQuartz: Add --with-sparkle-feed-url configure option + +Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> +(cherry picked from commit c1614928c10a8f8400f99acfd1b7f96d503af7ec) +--- + configure.ac | 4 ++++ + hw/xquartz/bundle/Info.plist.cpp | 2 +- + hw/xquartz/bundle/Makefile.am | 2 +- + 3 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 857a181..2ec734c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -563,6 +563,10 @@ AC_ARG_ENABLE(sparkle,AS_HELP_STRING([--enable-sparkle], [Enable updating of X11 + [ XQUARTZ_SPARKLE="${enableval}" ], + [ XQUARTZ_SPARKLE="no" ]) + AC_SUBST([XQUARTZ_SPARKLE]) ++AC_ARG_WITH(sparkle-feed-url, AS_HELP_STRING([--with-sparkle-feed-url=URL], [URL for the Sparkle feed (default: https://www.xquartz.org/releases/sparkle/release.xml)]), ++ [ XQUARTZ_SPARKLE_FEED_URL="${withval}" ], ++ [ XQUARTZ_SPARKLE_FEED_URL="https://www.xquartz.org/releases/sparkle/release.xml" ]) ++AC_SUBST([XQUARTZ_SPARKLE_FEED_URL]) + AC_ARG_ENABLE(visibility, AS_HELP_STRING([--enable-visibility], [Enable symbol visibility (default: auto)]), + [SYMBOL_VISIBILITY=$enableval], + [SYMBOL_VISIBILITY=auto]) +diff --git a/hw/xquartz/bundle/Info.plist.cpp b/hw/xquartz/bundle/Info.plist.cpp +index d98eaa6..8d543a1 100644 +--- a/hw/xquartz/bundle/Info.plist.cpp ++++ b/hw/xquartz/bundle/Info.plist.cpp +@@ -34,7 +34,7 @@ + <key>SUPublicDSAKeyFile</key> + <string>sparkle.pem</string> + <key>SUFeedURL</key> +- <string>https://www.xquartz.org/releases/sparkle/release.xml</string> ++ <string>XQUARTZ_SPARKLE_FEED_URL</string> + #endif + <key>LSApplicationCategoryType</key> + <string>public.app-category.utilities</string> +diff --git a/hw/xquartz/bundle/Makefile.am b/hw/xquartz/bundle/Makefile.am +index 0740752..ac293db 100644 +--- a/hw/xquartz/bundle/Makefile.am ++++ b/hw/xquartz/bundle/Makefile.am +@@ -5,7 +5,7 @@ CPP_FILES_FLAGS = \ + -DAPPLE_APPLICATION_NAME="$(APPLE_APPLICATION_NAME)" + + if XQUARTZ_SPARKLE +-CPP_FILES_FLAGS += -DXQUARTZ_SPARKLE ++CPP_FILES_FLAGS += -DXQUARTZ_SPARKLE -DXQUARTZ_SPARKLE_FEED_URL="$(XQUARTZ_SPARKLE_FEED_URL)" + endif + + install-data-hook: +-- +2.8.1 + Added: trunk/dports/x11/xorg-server/files/0005-XQuartz-Add-with-bundle-version-and-with-bundle-vers.patch =================================================================== --- trunk/dports/x11/xorg-server/files/0005-XQuartz-Add-with-bundle-version-and-with-bundle-vers.patch (rev 0) +++ trunk/dports/x11/xorg-server/files/0005-XQuartz-Add-with-bundle-version-and-with-bundle-vers.patch 2016-05-04 20:38:07 UTC (rev 148338) @@ -0,0 +1,70 @@ +From 73987379d73cd6ef2701dad7e3027f9363cb81b4 Mon Sep 17 00:00:00 2001 +From: Jeremy Huddleston Sequoia <jeremyhu@apple.com> +Date: Tue, 3 May 2016 23:42:34 -0700 +Subject: [PATCH 5/6] XQuartz: Add --with-bundle-version and + --with-bundle-version-string configure options + +Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> +(cherry picked from commit d6ba4f2c52da150a9a92bdb00efe7902d17033bd) +--- + configure.ac | 10 ++++++++++ + hw/xquartz/bundle/Info.plist.cpp | 4 ++-- + hw/xquartz/bundle/Makefile.am | 4 +++- + 3 files changed, 15 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 2ec734c..a3c6382 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -559,6 +559,16 @@ AC_ARG_WITH(bundle-id-prefix, AS_HELP_STRING([--with-bundle-id-prefix=RDNS_PREF + [ BUNDLE_ID_PREFIX="${withval}" ]) + AC_SUBST([BUNDLE_ID_PREFIX]) + AC_DEFINE_UNQUOTED(BUNDLE_ID_PREFIX, "$BUNDLE_ID_PREFIX", [Prefix to use for bundle identifiers]) ++DEFAULT_BUNDLE_VERSION=`echo ${PACKAGE_VERSION} | cut -f1-3 -d.` ++m4_define(DEFAULT_BUNDLE_VERSION, m4_esyscmd([echo ]AC_PACKAGE_VERSION[ | cut -f1-3 -d.])) ++AC_ARG_WITH(bundle-version, AS_HELP_STRING([--with-bundle-version=VERSION], [Version to use for X11.app's CFBundleVersion (default: ]DEFAULT_BUNDLE_VERSION[)]), ++ [ BUNDLE_VERSION="${withval}" ], ++ [ BUNDLE_VERSION="${DEFAULT_BUNDLE_VERSION}" ]) ++AC_SUBST([BUNDLE_VERSION]) ++AC_ARG_WITH(bundle-version-string, AS_HELP_STRING([--with-bundle-version-string=VERSION], [Version to use for X11.app's CFBundleShortVersionString (default: ]AC_PACKAGE_VERSION[)]), ++ [ BUNDLE_VERSION_STRING="${withval}" ], ++ [ BUNDLE_VERSION_STRING="${PACKAGE_VERSION}" ]) ++AC_SUBST([BUNDLE_VERSION_STRING]) + AC_ARG_ENABLE(sparkle,AS_HELP_STRING([--enable-sparkle], [Enable updating of X11.app using the Sparkle Framework (default: disabled)]), + [ XQUARTZ_SPARKLE="${enableval}" ], + [ XQUARTZ_SPARKLE="no" ]) +diff --git a/hw/xquartz/bundle/Info.plist.cpp b/hw/xquartz/bundle/Info.plist.cpp +index 8d543a1..f6a72af 100644 +--- a/hw/xquartz/bundle/Info.plist.cpp ++++ b/hw/xquartz/bundle/Info.plist.cpp +@@ -19,9 +19,9 @@ + <key>CFBundlePackageType</key> + <string>APPL</string> + <key>CFBundleShortVersionString</key> +- <string>2.7.7</string> ++ <string>BUNDLE_VERSION_STRING</string> + <key>CFBundleVersion</key> +- <string>2.7.7</string> ++ <string>BUNDLE_VERSION</string> + <key>CFBundleSignature</key> + <string>x11a</string> + <key>CSResourcesFileMapped</key> +diff --git a/hw/xquartz/bundle/Makefile.am b/hw/xquartz/bundle/Makefile.am +index ac293db..424a747 100644 +--- a/hw/xquartz/bundle/Makefile.am ++++ b/hw/xquartz/bundle/Makefile.am +@@ -1,8 +1,10 @@ + include cpprules.in + + CPP_FILES_FLAGS = \ ++ -DAPPLE_APPLICATION_NAME="$(APPLE_APPLICATION_NAME)" \ + -DBUNDLE_ID_PREFIX="$(BUNDLE_ID_PREFIX)" \ +- -DAPPLE_APPLICATION_NAME="$(APPLE_APPLICATION_NAME)" ++ -DBUNDLE_VERSION="$(BUNDLE_VERSION)" \ ++ -DBUNDLE_VERSION_STRING="$(BUNDLE_VERSION_STRING)" + + if XQUARTZ_SPARKLE + CPP_FILES_FLAGS += -DXQUARTZ_SPARKLE -DXQUARTZ_SPARKLE_FEED_URL="$(XQUARTZ_SPARKLE_FEED_URL)" +-- +2.8.1 + Added: trunk/dports/x11/xorg-server/files/0006-XQuartz-Update-copyright-years.patch =================================================================== --- trunk/dports/x11/xorg-server/files/0006-XQuartz-Update-copyright-years.patch (rev 0) +++ trunk/dports/x11/xorg-server/files/0006-XQuartz-Update-copyright-years.patch 2016-05-04 20:38:07 UTC (rev 148338) @@ -0,0 +1,30 @@ +From 1a81f2a51955e5c8a9d1d80cc008e2927ddd0123 Mon Sep 17 00:00:00 2001 +From: Jeremy Huddleston Sequoia <jeremyhu@apple.com> +Date: Tue, 3 May 2016 23:43:06 -0700 +Subject: [PATCH 6/6] XQuartz: Update copyright years + +Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> +(cherry picked from commit 059d5ef30490233f410ca87084c7697b87e5b05e) +--- + hw/xquartz/bundle/Info.plist.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/hw/xquartz/bundle/Info.plist.cpp b/hw/xquartz/bundle/Info.plist.cpp +index f6a72af..3742353 100644 +--- a/hw/xquartz/bundle/Info.plist.cpp ++++ b/hw/xquartz/bundle/Info.plist.cpp +@@ -39,9 +39,9 @@ + <key>LSApplicationCategoryType</key> + <string>public.app-category.utilities</string> + <key>NSHumanReadableCopyright</key> +- <string>© 2003-2013 Apple Inc. ++ <string>© 2003-2016 Apple Inc. + © 2003 XFree86 Project, Inc. +-© 2003-2013 X.org Foundation, Inc. ++© 2003-2016 X.org Foundation, Inc. + </string> + <key>NSMainNibFile</key> + <string>main</string> +-- +2.8.1 + Modified: trunk/dports/x11/xorg-server/files/5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch =================================================================== --- trunk/dports/x11/xorg-server/files/5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch 2016-05-04 19:54:31 UTC (rev 148337) +++ trunk/dports/x11/xorg-server/files/5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch 2016-05-04 20:38:07 UTC (rev 148338) @@ -1,7 +1,7 @@ -From dfc68da05dee3746d12a276975ef24857f3c8d3c Mon Sep 17 00:00:00 2001 +From da0dc81ea081657dba3ba492359593ba40d7245a Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston <jeremyhu@apple.com> Date: Fri, 13 Jan 2012 12:00:57 -0800 -Subject: [PATCH 5000/5004] sdksyms.sh: Use CPPFLAGS, not CFLAGS +Subject: [PATCH 5000/5005] sdksyms.sh: Use CPPFLAGS, not CFLAGS CFLAGS can include flags which are not useful to the preprocessor or can even cause it to fail. This fixes a build issue on darwin @@ -14,7 +14,7 @@ 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am -index 27f2cc6..d898c43 100644 +index 85bd0be..6de7c10 100644 --- a/hw/xfree86/Makefile.am +++ b/hw/xfree86/Makefile.am @@ -48,8 +48,7 @@ DIST_SUBDIRS = common ddc i2c x86emu int10 fbdevhw os-support \ @@ -22,12 +22,12 @@ nodist_Xorg_SOURCES = sdksyms.c -AM_CFLAGS = $(DIX_CFLAGS) @XORG_CFLAGS@ --AM_CPPFLAGS = $(XORG_INCS) -I$(srcdir)/parser -I$(top_srcdir)/miext/cw \ -+AM_CPPFLAGS = $(DIX_CFLAGS) @XORG_CFLAGS@ $(XORG_INCS) -I$(srcdir)/parser -I$(top_srcdir)/miext/cw \ +-AM_CPPFLAGS = $(XORG_INCS) -I$(srcdir)/parser \ ++AM_CPPFLAGS = $(DIX_CFLAGS) @XORG_CFLAGS@ $(XORG_INCS) -I$(srcdir)/parser \ -I$(srcdir)/ddc -I$(srcdir)/i2c -I$(srcdir)/modes -I$(srcdir)/ramdac \ -I$(srcdir)/dri -I$(srcdir)/dri2 -I$(top_srcdir)/dri3 -@@ -135,7 +134,7 @@ CLEANFILES = sdksyms.c sdksyms.dep Xorg.sh +@@ -137,7 +136,7 @@ CLEANFILES = sdksyms.c sdksyms.dep Xorg.sh EXTRA_DIST += sdksyms.sh sdksyms.dep sdksyms.c: sdksyms.sh @@ -37,5 +37,5 @@ SDKSYMS_DEP = sdksyms.dep -include $(SDKSYMS_DEP) -- -2.6.3 +2.8.1 Added: trunk/dports/x11/xorg-server/files/5001-Revert-dix-Restore-PaintWindow-screen-hook.patch =================================================================== --- trunk/dports/x11/xorg-server/files/5001-Revert-dix-Restore-PaintWindow-screen-hook.patch (rev 0) +++ trunk/dports/x11/xorg-server/files/5001-Revert-dix-Restore-PaintWindow-screen-hook.patch 2016-05-04 20:38:07 UTC (rev 148338) @@ -0,0 +1,348 @@ +From 1d3dba846a7e51608b71797e7510d114555bfcd3 Mon Sep 17 00:00:00 2001 +From: Jeremy Huddleston Sequoia <jeremyhu@apple.com> +Date: Sat, 26 Dec 2015 10:56:52 -0800 +Subject: [PATCH 5001/5005] Revert "dix: Restore PaintWindow screen hook" + +This reverts commit cbd3cfbad3f07b20e90ea9498110f255813eb441. +--- + composite/compwindow.c | 2 +- + dix/window.c | 4 ++-- + hw/xquartz/quartz.c | 4 ++-- + hw/xwin/winrandr.c | 2 +- + include/scrnintstr.h | 5 ----- + mi/miexpose.c | 32 +++++++++++++++++++++++++++----- + mi/mioverlay.c | 11 +++++------ + mi/miscrinit.c | 1 - + mi/miwindow.c | 6 ++---- + miext/rootless/rootlessCommon.h | 1 - + miext/rootless/rootlessScreen.c | 3 +-- + miext/rootless/rootlessWindow.c | 23 +---------------------- + miext/rootless/rootlessWindow.h | 1 - + 13 files changed, 42 insertions(+), 53 deletions(-) + +diff --git a/composite/compwindow.c b/composite/compwindow.c +index 344138a..77bdfa2 100644 +--- a/composite/compwindow.c ++++ b/composite/compwindow.c +@@ -104,7 +104,7 @@ compRepaintBorder(ClientPtr pClient, void *closure) + + RegionNull(&exposed); + RegionSubtract(&exposed, &pWindow->borderClip, &pWindow->winSize); +- pWindow->drawable.pScreen->PaintWindow(pWindow, &exposed, PW_BORDER); ++ miPaintWindow(pWindow, &exposed, PW_BORDER); + RegionUninit(&exposed); + } + return TRUE; +diff --git a/dix/window.c b/dix/window.c +index ead4dc2..6f31396 100644 +--- a/dix/window.c ++++ b/dix/window.c +@@ -1592,7 +1592,7 @@ ChangeWindowAttributes(WindowPtr pWin, Mask vmask, XID *vlist, ClientPtr client) + + RegionNull(&exposed); + RegionSubtract(&exposed, &pWin->borderClip, &pWin->winSize); +- pWin->drawable.pScreen->PaintWindow(pWin, &exposed, PW_BORDER); ++ miPaintWindow(pWin, &exposed, PW_BORDER); + RegionUninit(&exposed); + } + return error; +@@ -3159,7 +3159,7 @@ dixSaveScreens(ClientPtr client, int on, int mode) + + /* make it look like screen saver is off, so that + * NotClippedByChildren will compute a clip list +- * for the root window, so PaintWindow works ++ * for the root window, so miPaintWindow works + */ + screenIsSaved = SCREEN_SAVER_OFF; + (*pWin->drawable.pScreen->MoveWindow) (pWin, +diff --git a/hw/xquartz/quartz.c b/hw/xquartz/quartz.c +index c8b6f96..2def8e3 100644 +--- a/hw/xquartz/quartz.c ++++ b/hw/xquartz/quartz.c +@@ -300,8 +300,8 @@ QuartzUpdateScreens(void) + + quartzProcs->UpdateScreen(pScreen); + +- /* PaintWindow needs to be called after RootlessUpdateScreenPixmap (from xprUpdateScreen) */ +- pScreen->PaintWindow(pRoot, &pRoot->borderClip, PW_BACKGROUND); ++ /* miPaintWindow needs to be called after RootlessUpdateScreenPixmap (from xprUpdateScreen) */ ++ miPaintWindow(pRoot, &pRoot->borderClip, PW_BACKGROUND); + + /* Tell RandR about the new size, so new connections get the correct info */ + RRScreenSizeNotify(pScreen); +diff --git a/hw/xwin/winrandr.c b/hw/xwin/winrandr.c +index 1560199..73bbc9d 100644 +--- a/hw/xwin/winrandr.c ++++ b/hw/xwin/winrandr.c +@@ -134,7 +134,7 @@ winDoRandRScreenSetSize(ScreenPtr pScreen, + SetRootClip(pScreen, ROOT_CLIP_FULL); + + // and arrange for it to be repainted +- pScreen->PaintWindow(pRoot, &pRoot->borderClip, PW_BACKGROUND); ++ miPaintWindow(pRoot, &pRoot->borderClip, PW_BACKGROUND); + + /* Indicate that a screen size change took place */ + RRScreenSizeNotify(pScreen); +diff --git a/include/scrnintstr.h b/include/scrnintstr.h +index 2e617c4..a627fe7 100644 +--- a/include/scrnintstr.h ++++ b/include/scrnintstr.h +@@ -158,10 +158,6 @@ typedef void (*PostValidateTreeProcPtr) (WindowPtr /*pParent */ , + typedef void (*WindowExposuresProcPtr) (WindowPtr /*pWindow */ , + RegionPtr /*prgn */); + +-typedef void (*PaintWindowProcPtr) (WindowPtr /*pWindow*/, +- RegionPtr /*pRegion*/, +- int /*what*/); +- + typedef void (*CopyWindowProcPtr) (WindowPtr /*pWindow */ , + DDXPointRec /*ptOldOrg */ , + RegionPtr /*prgnSrc */ ); +@@ -502,7 +498,6 @@ typedef struct _Screen { + ClearToBackgroundProcPtr ClearToBackground; + ClipNotifyProcPtr ClipNotify; + RestackWindowProcPtr RestackWindow; +- PaintWindowProcPtr PaintWindow; + + /* Pixmap procedures */ + +diff --git a/mi/miexpose.c b/mi/miexpose.c +index 148d1a6..f4c6e89 100644 +--- a/mi/miexpose.c ++++ b/mi/miexpose.c +@@ -268,11 +268,10 @@ miHandleExposures(DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable, + RegionTranslate(&rgnExposed, pDstDrawable->x, pDstDrawable->y); + + if (extents) { +- /* PaintWindow doesn't clip, so we have to */ ++ /* miPaintWindow doesn't clip, so we have to */ + RegionIntersect(&rgnExposed, &rgnExposed, &pWin->clipList); + } +- pDstDrawable->pScreen->PaintWindow((WindowPtr) pDstDrawable, +- &rgnExposed, PW_BACKGROUND); ++ miPaintWindow((WindowPtr) pDstDrawable, &rgnExposed, PW_BACKGROUND); + + if (extents) { + RegionReset(&rgnExposed, &expBox); +@@ -384,14 +383,16 @@ miWindowExposures(WindowPtr pWin, RegionPtr prgn) + * work overall, on both client and server. This is cheating, but + * isn't prohibited by the protocol ("spontaneous combustion" :-). + */ +- BoxRec box = *RegionExtents(prgn); ++ BoxRec box; ++ ++ box = *RegionExtents(prgn); + exposures = &expRec; + RegionInit(exposures, &box, 1); + RegionReset(prgn, &box); + /* miPaintWindow doesn't clip, so we have to */ + RegionIntersect(prgn, prgn, &pWin->clipList); + } +- pWin->drawable.pScreen->PaintWindow(pWin, prgn, PW_BACKGROUND); ++ miPaintWindow(pWin, prgn, PW_BACKGROUND); + if (clientInterested) + miSendExposures(pWin, exposures, + pWin->drawable.x, pWin->drawable.y); +@@ -401,6 +402,14 @@ miWindowExposures(WindowPtr pWin, RegionPtr prgn) + } + } + ++#ifdef ROOTLESS ++/* Ugly, ugly, but we lost our hooks into miPaintWindow... =/ */ ++void RootlessSetPixmapOfAncestors(WindowPtr pWin); ++void RootlessStartDrawing(WindowPtr pWin); ++void RootlessDamageRegion(WindowPtr pWin, RegionPtr prgn); ++Bool IsFramedWindow(WindowPtr pWin); ++#endif ++ + void + miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what) + { +@@ -428,6 +437,19 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what) + Bool solid = TRUE; + DrawablePtr drawable = &pWin->drawable; + ++#ifdef ROOTLESS ++ if (IsFramedWindow(pWin)) { ++ RootlessStartDrawing(pWin); ++ RootlessDamageRegion(pWin, prgn); ++ ++ if (pWin->backgroundState == ParentRelative) { ++ if ((what == PW_BACKGROUND) || ++ (what == PW_BORDER && !pWin->borderIsPixel)) ++ RootlessSetPixmapOfAncestors(pWin); ++ } ++ } ++#endif ++ + if (what == PW_BACKGROUND) { + while (pWin->backgroundState == ParentRelative) + pWin = pWin->parent; +diff --git a/mi/mioverlay.c b/mi/mioverlay.c +index b8b7a5b..a2715e9 100644 +--- a/mi/mioverlay.c ++++ b/mi/mioverlay.c +@@ -844,8 +844,8 @@ miOverlayHandleExposures(WindowPtr pWin) + if ((mival = pTree->valdata)) { + if (!((*pPriv->InOverlay) (pTree->pWin))) { + if (RegionNotEmpty(&mival->borderExposed)) { +- pScreen->PaintWindow(pTree->pWin, &mival->borderExposed, +- PW_BORDER); ++ miPaintWindow(pTree->pWin, &mival->borderExposed, ++ PW_BORDER); + } + RegionUninit(&mival->borderExposed); + +@@ -883,8 +883,7 @@ miOverlayHandleExposures(WindowPtr pWin) + } + else { + if (RegionNotEmpty(&val->after.borderExposed)) { +- pScreen->PaintWindow(pChild, &val->after.borderExposed, +- PW_BORDER); ++ miPaintWindow(pChild, &val->after.borderExposed, PW_BORDER); + } + (*WindowExposures) (pChild, &val->after.exposed); + } +@@ -1008,7 +1007,7 @@ miOverlayWindowExposures(WindowPtr pWin, RegionPtr prgn) + else + RegionIntersect(prgn, prgn, &pWin->clipList); + } +- pScreen->PaintWindow(pWin, prgn, PW_BACKGROUND); ++ miPaintWindow(pWin, prgn, PW_BACKGROUND); + if (clientInterested) + miSendExposures(pWin, exposures, + pWin->drawable.x, pWin->drawable.y); +@@ -1607,7 +1606,7 @@ miOverlayClearToBackground(WindowPtr pWin, + if (generateExposures) + (*pScreen->WindowExposures) (pWin, ®); + else if (pWin->backgroundState != None) +- pScreen->PaintWindow(pWin, ®, PW_BACKGROUND); ++ miPaintWindow(pWin, ®, PW_BACKGROUND); + RegionUninit(®); + } + +diff --git a/mi/miscrinit.c b/mi/miscrinit.c +index 9c6af0d..b53c7e4 100644 +--- a/mi/miscrinit.c ++++ b/mi/miscrinit.c +@@ -253,7 +253,6 @@ miScreenInit(ScreenPtr pScreen, void *pbits, /* pointer to screen bits */ + pScreen->ClearToBackground = miClearToBackground; + pScreen->ClipNotify = (ClipNotifyProcPtr) 0; + pScreen->RestackWindow = (RestackWindowProcPtr) 0; +- pScreen->PaintWindow = miPaintWindow; + /* CreatePixmap, DestroyPixmap */ + /* RealizeFont, UnrealizeFont */ + /* CreateGC */ +diff --git a/mi/miwindow.c b/mi/miwindow.c +index 39c279e..2fc7cfb 100644 +--- a/mi/miwindow.c ++++ b/mi/miwindow.c +@@ -113,7 +113,7 @@ miClearToBackground(WindowPtr pWin, + if (generateExposures) + (*pWin->drawable.pScreen->WindowExposures) (pWin, ®); + else if (pWin->backgroundState != None) +- pWin->drawable.pScreen->PaintWindow(pWin, ®, PW_BACKGROUND); ++ miPaintWindow(pWin, ®, PW_BACKGROUND); + RegionUninit(®); + } + +@@ -219,9 +219,7 @@ miHandleValidateExposures(WindowPtr pWin) + while (1) { + if ((val = pChild->valdata)) { + if (RegionNotEmpty(&val->after.borderExposed)) +- pWin->drawable.pScreen->PaintWindow(pChild, +- &val->after.borderExposed, +- PW_BORDER); ++ miPaintWindow(pChild, &val->after.borderExposed, PW_BORDER); + RegionUninit(&val->after.borderExposed); + (*WindowExposures) (pChild, &val->after.exposed); + RegionUninit(&val->after.exposed); +diff --git a/miext/rootless/rootlessCommon.h b/miext/rootless/rootlessCommon.h +index c3fa2a2..7fdea22 100644 +--- a/miext/rootless/rootlessCommon.h ++++ b/miext/rootless/rootlessCommon.h +@@ -94,7 +94,6 @@ typedef struct _RootlessScreenRec { + ChangeBorderWidthProcPtr ChangeBorderWidth; + PositionWindowProcPtr PositionWindow; + ChangeWindowAttributesProcPtr ChangeWindowAttributes; +- PaintWindowProcPtr PaintWindow; + + CreateGCProcPtr CreateGC; + CopyWindowProcPtr CopyWindow; +diff --git a/miext/rootless/rootlessScreen.c b/miext/rootless/rootlessScreen.c +index 4716564..6226ee8 100644 +--- a/miext/rootless/rootlessScreen.c ++++ b/miext/rootless/rootlessScreen.c +@@ -473,7 +473,7 @@ expose_1(WindowPtr pWin) + if (!pWin->realized) + return; + +- pWin->drawable.pScreen->PaintWindow(pWin, &pWin->borderClip, PW_BACKGROUND); ++ miPaintWindow(pWin, &pWin->borderClip, PW_BACKGROUND); + + /* FIXME: comments in windowstr.h indicate that borderClip doesn't + include subwindow visibility. But I'm not so sure.. so we may +@@ -669,7 +669,6 @@ RootlessWrap(ScreenPtr pScreen) + WRAP(CloseScreen); + WRAP(CreateGC); + WRAP(CopyWindow); +- WRAP(PaintWindow); + WRAP(GetImage); + WRAP(SourceValidate); + WRAP(CreateWindow); +diff --git a/miext/rootless/rootlessWindow.c b/miext/rootless/rootlessWindow.c +index e304299..3240acc 100644 +--- a/miext/rootless/rootlessWindow.c ++++ b/miext/rootless/rootlessWindow.c +@@ -720,7 +720,7 @@ RootlessResizeCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, + /* + * RootlessCopyWindow + * Update *new* location of window. Old location is redrawn with +- * PaintWindow. Cloned from fbCopyWindow. ++ * miPaintWindow. Cloned from fbCopyWindow. + * The original always draws on the root pixmap, which we don't have. + * Instead, draw on the parent window's pixmap. + */ +@@ -794,27 +794,6 @@ RootlessCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc) + RL_DEBUG_MSG("copywindowFB end\n"); + } + +-void +-RootlessPaintWindow(WindowPtr pWin, RegionPtr prgn, int what) +-{ +- ScreenPtr pScreen = pWin->drawable.pScreen; +- +- if (IsFramedWindow(pWin)) { +- RootlessStartDrawing(pWin); +- RootlessDamageRegion(pWin, prgn); +- +- if (pWin->backgroundState == ParentRelative) { +- if ((what == PW_BACKGROUND) || +- (what == PW_BORDER && !pWin->borderIsPixel)) +- RootlessSetPixmapOfAncestors(pWin); +- } +- } +- +- SCREEN_UNWRAP(pScreen, PaintWindow); +- pScreen->PaintWindow(pWin, prgn, what); +- SCREEN_WRAP(pScreen, PaintWindow); +-} +- + /* + * Window resize procedures + */ +diff --git a/miext/rootless/rootlessWindow.h b/miext/rootless/rootlessWindow.h +index 4fd34d5..d3955fc 100644 +--- a/miext/rootless/rootlessWindow.h ++++ b/miext/rootless/rootlessWindow.h +@@ -48,7 +48,6 @@ Bool RootlessUnrealizeWindow(WindowPtr pWin); + void RootlessRestackWindow(WindowPtr pWin, WindowPtr pOldNextSib); + void RootlessCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, + RegionPtr prgnSrc); +-void RootlessPaintWindow(WindowPtr pWin, RegionPtr prgn, int what); + void RootlessMoveWindow(WindowPtr pWin, int x, int y, WindowPtr pSib, + VTKind kind); + void RootlessResizeWindow(WindowPtr pWin, int x, int y, unsigned int w, +-- +2.8.1 + Deleted: trunk/dports/x11/xorg-server/files/5001-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch =================================================================== --- trunk/dports/x11/xorg-server/files/5001-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch 2016-05-04 19:54:31 UTC (rev 148337) +++ trunk/dports/x11/xorg-server/files/5001-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch 2016-05-04 20:38:07 UTC (rev 148338) @@ -1,164 +0,0 @@ -From 3b373e580907bdf97d17057db309df4055f5d4b8 Mon Sep 17 00:00:00 2001 -From: Jeremy Huddleston <jeremyhu@apple.com> -Date: Fri, 30 Apr 2010 13:08:25 -0700 -Subject: [PATCH 5001/5004] Workaround the GC clipping problem in miPaintWindow - and add some debugging output. - -Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com> ---- - mi/miexpose.c | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++++------ - 1 file changed, 93 insertions(+), 10 deletions(-) - -diff --git a/mi/miexpose.c b/mi/miexpose.c -index 3e49f15..bfb8333 100644 ---- a/mi/miexpose.c -+++ b/mi/miexpose.c -@@ -408,7 +408,8 @@ void RootlessSetPixmapOfAncestors(WindowPtr pWin); - void RootlessStartDrawing(WindowPtr pWin); - void RootlessDamageRegion(WindowPtr pWin, RegionPtr prgn); - Bool IsFramedWindow(WindowPtr pWin); --#endif -+#include "../fb/fb.h" -+#endif - - void - miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what) -@@ -437,23 +438,37 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what) - Bool solid = TRUE; - DrawablePtr drawable = &pWin->drawable; - -+#ifdef XQUARTZ_CLIP_DEBUG -+ ErrorF("START %d BS %d (pR = %ld)\n", what, pWin->backgroundState, ParentRelative); -+ ErrorF(" Rgn: %d %d %d %d\n", prgn->extents.x1, prgn->extents.y1, -+ prgn->extents.x2 - prgn->extents.x1, -+ prgn->extents.y2 - prgn->extents.y1); -+ ErrorF(" Win: %d %d (%d %d) %d %d\n", pWin->origin.x, pWin->origin.y, -+ pWin->winSize.extents.x1, pWin->winSize.extents.y1, -+ pWin->winSize.extents.x2 - pWin->winSize.extents.x1, -+ pWin->winSize.extents.y2 - pWin->winSize.extents.y1); -+ ErrorF(" Draw: %d %d %d %d\n", pWin->drawable.x, pWin->drawable.y, -+ pWin->drawable.width, pWin->drawable.height); -+#endif -+ - #ifdef ROOTLESS - if (!drawable || drawable->type == UNDRAWABLE_WINDOW) - return; -+#endif -+ -+ if (what == PW_BACKGROUND) -+ { -+#ifdef ROOTLESS -+ if(IsFramedWindow(pWin)) { -+ RootlessStartDrawing(pWin); -+ RootlessDamageRegion(pWin, prgn); - -- if (IsFramedWindow(pWin)) { -- RootlessStartDrawing(pWin); -- RootlessDamageRegion(pWin, prgn); -- -- if (pWin->backgroundState == ParentRelative) { -- if ((what == PW_BACKGROUND) || -- (what == PW_BORDER && !pWin->borderIsPixel)) -+ if(pWin->backgroundState == ParentRelative) { - RootlessSetPixmapOfAncestors(pWin); -+ } - } -- } - #endif - -- if (what == PW_BACKGROUND) { - while (pWin->backgroundState == ParentRelative) - pWin = pWin->parent; - -@@ -478,6 +493,18 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what) - else { - PixmapPtr pixmap; - -+#ifdef ROOTLESS -+ if(IsFramedWindow(pWin)) { -+ RootlessStartDrawing(pWin); -+ RootlessDamageRegion(pWin, prgn); -+ -+ if(!pWin->borderIsPixel && -+ pWin->backgroundState == ParentRelative) { -+ RootlessSetPixmapOfAncestors(pWin); -+ } -+ } -+#endif -+ - fill = pWin->border; - solid = pWin->borderIsPixel; - -@@ -487,6 +514,11 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what) - pixmap = (*pScreen->GetWindowPixmap) ((WindowPtr) drawable); - drawable = &pixmap->drawable; - -+#ifdef XQUARTZ_CLIP_DEBUG -+ ErrorF(" Draw: %d %d %d %d\n", -+ drawable->x, drawable->y, drawable->width, drawable->height); -+#endif -+ - while (pWin->backgroundState == ParentRelative) - pWin = pWin->parent; - -@@ -553,6 +585,57 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what) - ChangeGC(NullClient, pGC, gcmask, gcval); - ValidateGC(drawable, pGC); - -+#ifdef XQUARTZ_CLIP_DEBUG -+ ErrorF(" GC: %d %d %d %d\n", -+ pGC->pCompositeClip->extents.x1, pGC->pCompositeClip->extents.y1, -+ pGC->pCompositeClip->extents.x2 - pGC->pCompositeClip->extents.x1, -+ pGC->pCompositeClip->extents.y2 - pGC->pCompositeClip->extents.y1); -+#endif -+ -+#ifdef XQUARTZ -+ /* Looks like our clipping isn't set right for some reason: -+ * http://xquartz.macosforge.org/trac/ticket/290 -+ */ -+ if(what == PW_BORDER) { -+ -+#if 0 -+ if(solid) { -+#if 1 -+ fbFillRegionSolid(&pWin->drawable, -+ prgn, -+ 0, -+ fbReplicatePixel(fill.pixel, -+ pWin->drawable.bitsPerPixel)); -+#else -+ fbFillRegionSolid(drawable, -+ prgn, -+ 0, -+ fbReplicatePixel(fill.pixel, -+ drawable->bitsPerPixel)); -+#endif -+ return; -+ } -+#endif -+ -+ pGC->pCompositeClip->extents.x1 += prgn->extents.x1; -+ pGC->pCompositeClip->extents.y1 += prgn->extents.y1; -+ pGC->pCompositeClip->extents.x2 += prgn->extents.x1; -+ pGC->pCompositeClip->extents.y2 += prgn->extents.y1; -+ -+ if(pGC->pCompositeClip->extents.x2 > drawable->pScreen->width) -+ pGC->pCompositeClip->extents.x2 = drawable->pScreen->width; -+ if(pGC->pCompositeClip->extents.y2 > drawable->pScreen->height) -+ pGC->pCompositeClip->extents.y2 = drawable->pScreen->height; -+ } -+#endif -+ -+#ifdef XQUARTZ_CLIP_DEBUG -+ ErrorF(" GC: %d %d %d %d\n", -+ pGC->pCompositeClip->extents.x1, pGC->pCompositeClip->extents.y1, -+ pGC->pCompositeClip->extents.x2 - pGC->pCompositeClip->extents.x1, -+ pGC->pCompositeClip->extents.y2 - pGC->pCompositeClip->extents.y1); -+#endif -+ - numRects = RegionNumRects(prgn); - pbox = RegionRects(prgn); - for (i = numRects; --i >= 0; pbox++, prect++) { --- -2.6.3 - Deleted: trunk/dports/x11/xorg-server/files/5002-Use-old-miTrapezoids-and-miTriangles-routines.patch =================================================================== --- trunk/dports/x11/xorg-server/files/5002-Use-old-miTrapezoids-and-miTriangles-routines.patch 2016-05-04 19:54:31 UTC (rev 148337) +++ trunk/dports/x11/xorg-server/files/5002-Use-old-miTrapezoids-and-miTriangles-routines.patch 2016-05-04 20:38:07 UTC (rev 148338) @@ -1,297 +0,0 @@ -From 378118bbf40f70ca3fb7bb9d6e564aaefec104be Mon Sep 17 00:00:00 2001 -From: Jeremy Huddleston Sequoia <jeremyhu@apple.com> -Date: Sat, 2 Nov 2013 11:00:23 -0700 -Subject: [PATCH 5002/5004] Use old miTrapezoids and miTriangles routines - -Reverts commits: - 788ccb9a8bcf6a4fb4054c507111eec3338fb969 - 566f1931ee2916269e164e114bffaf2da1d039d1 - -http://xquartz.macosforge.org/trac/ticket/525 - -Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> ---- - fb/fbpict.c | 2 - - render/mipict.c | 4 +- - render/mipict.h | 27 ++++++++++++++ - render/mitrap.c | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - render/mitri.c | 61 +++++++++++++++++++++++++++++++ - 5 files changed, 201 insertions(+), 4 deletions(-) - -diff --git a/fb/fbpict.c b/fb/fbpict.c -index 5f6c88e..936a11b 100644 ---- a/fb/fbpict.c -+++ b/fb/fbpict.c -@@ -508,10 +508,8 @@ fbPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats) - ps->UnrealizeGlyph = fbUnrealizeGlyph; - ps->CompositeRects = miCompositeRects; - ps->RasterizeTrapezoid = fbRasterizeTrapezoid; -- ps->Trapezoids = fbTrapezoids; - ps->AddTraps = fbAddTraps; - ps->AddTriangles = fbAddTriangles; -- ps->Triangles = fbTriangles; - - return TRUE; - } -diff --git a/render/mipict.c b/render/mipict.c -index a725104..e14293a 100644 ---- a/render/mipict.c -+++ b/render/mipict.c -@@ -575,8 +575,8 @@ miPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats) - ps->Composite = 0; /* requires DDX support */ - ps->Glyphs = miGlyphs; - ps->CompositeRects = miCompositeRects; -- ps->Trapezoids = 0; -- ps->Triangles = 0; -+ ps->Trapezoids = miTrapezoids; -+ ps->Triangles = miTriangles; - - ps->RasterizeTrapezoid = 0; /* requires DDX support */ - ps->AddTraps = 0; /* requires DDX support */ -diff --git a/render/mipict.h b/render/mipict.h -index 23ce9e8..e0f1d4c 100644 ---- a/render/mipict.h -+++ b/render/mipict.h -@@ -122,6 +122,16 @@ miCompositeRects(CARD8 op, - xRenderColor * color, int nRect, xRectangle *rects); - - extern _X_EXPORT void -+miTriangles (CARD8 op, -+ PicturePtr pSrc, -+ PicturePtr pDst, -+ PictFormatPtr maskFormat, -+ INT16 xSrc, -+ INT16 ySrc, -+ int ntri, -+ xTriangle *tris); -+ -+extern _X_EXPORT void - - miTriStrip(CARD8 op, - PicturePtr pSrc, -@@ -137,10 +147,27 @@ miTriFan(CARD8 op, - PictFormatPtr maskFormat, - INT16 xSrc, INT16 ySrc, int npoints, xPointFixed * points); - -+extern _X_EXPORT PicturePtr -+miCreateAlphaPicture (ScreenPtr pScreen, -+ PicturePtr pDst, -+ PictFormatPtr pPictFormat, -+ CARD16 width, -+ CARD16 height); -+ - extern _X_EXPORT void - miTrapezoidBounds(int ntrap, xTrapezoid * traps, BoxPtr box); - - extern _X_EXPORT void -+miTrapezoids (CARD8 op, -+ PicturePtr pSrc, -+ PicturePtr pDst, -+ PictFormatPtr maskFormat, -+ INT16 xSrc, -+ INT16 ySrc, -+ int ntrap, -+ xTrapezoid *traps); -+ -+extern _X_EXPORT void - miPointFixedBounds(int npoint, xPointFixed * points, BoxPtr bounds); - - extern _X_EXPORT void -diff --git a/render/mitrap.c b/render/mitrap.c -index 17b6dcd..71c1857 100644 ---- a/render/mitrap.c -+++ b/render/mitrap.c -@@ -34,6 +34,55 @@ - #include "picturestr.h" - #include "mipict.h" - -+PicturePtr -+miCreateAlphaPicture (ScreenPtr pScreen, -+ PicturePtr pDst, -+ PictFormatPtr pPictFormat, -+ CARD16 width, -+ CARD16 height) -+{ -+ PixmapPtr pPixmap; -+ PicturePtr pPicture; -+ GCPtr pGC; -+ int error; -+ xRectangle rect; -+ -+ if (width > 32767 || height > 32767) -+ return 0; -+ -+ if (!pPictFormat) -+ { -+ if (pDst->polyEdge == PolyEdgeSharp) -+ pPictFormat = PictureMatchFormat (pScreen, 1, PICT_a1); -+ else -+ pPictFormat = PictureMatchFormat (pScreen, 8, PICT_a8); -+ if (!pPictFormat) -+ return 0; -+ } -+ -+ pPixmap = (*pScreen->CreatePixmap) (pScreen, width, height, -+ pPictFormat->depth, 0); -+ if (!pPixmap) -+ return 0; -+ pGC = GetScratchGC (pPixmap->drawable.depth, pScreen); -+ if (!pGC) -+ { -+ (*pScreen->DestroyPixmap) (pPixmap); -+ return 0; -+ } -+ ValidateGC (&pPixmap->drawable, pGC); -+ rect.x = 0; -+ rect.y = 0; -+ rect.width = width; -+ rect.height = height; -+ (*pGC->ops->PolyFillRect)(&pPixmap->drawable, pGC, 1, &rect); -+ FreeScratchGC (pGC); -+ pPicture = CreatePicture (0, &pPixmap->drawable, pPictFormat, -+ 0, 0, serverClient, &error); -+ (*pScreen->DestroyPixmap) (pPixmap); -+ return pPicture; -+} -+ - static xFixed - miLineFixedX(xLineFixed * l, xFixed y, Bool ceil) - { -@@ -79,3 +128,65 @@ miTrapezoidBounds(int ntrap, xTrapezoid * traps, BoxPtr box) - box->x2 = x2; - } - } -+ -+ -+void -+miTrapezoids (CARD8 op, -+ PicturePtr pSrc, -+ PicturePtr pDst, -+ PictFormatPtr maskFormat, -+ INT16 xSrc, -+ INT16 ySrc, -+ int ntrap, -+ xTrapezoid *traps) -+{ -+ ScreenPtr pScreen = pDst->pDrawable->pScreen; -+ PictureScreenPtr ps = GetPictureScreen(pScreen); -+ -+ /* -+ * Check for solid alpha add -+ */ -+ if (op == PictOpAdd && miIsSolidAlpha (pSrc)) -+ { -+ for (; ntrap; ntrap--, traps++) -+ (*ps->RasterizeTrapezoid) (pDst, traps, 0, 0); -+ } -+ else if (maskFormat) -+ { -+ PicturePtr pPicture; -+ BoxRec bounds; -+ INT16 xDst, yDst; -+ INT16 xRel, yRel; -+ -+ xDst = traps[0].left.p1.x >> 16; -+ yDst = traps[0].left.p1.y >> 16; -+ -+ miTrapezoidBounds (ntrap, traps, &bounds); -+ if (bounds.y1 >= bounds.y2 || bounds.x1 >= bounds.x2) -+ return; -+ pPicture = miCreateAlphaPicture (pScreen, pDst, maskFormat, -+ bounds.x2 - bounds.x1, -+ bounds.y2 - bounds.y1); -+ if (!pPicture) -+ return; -+ for (; ntrap; ntrap--, traps++) -+ (*ps->RasterizeTrapezoid) (pPicture, traps, -+ -bounds.x1, -bounds.y1); -+ xRel = bounds.x1 + xSrc - xDst; -+ yRel = bounds.y1 + ySrc - yDst; -+ CompositePicture (op, pSrc, pPicture, pDst, -+ xRel, yRel, 0, 0, bounds.x1, bounds.y1, -+ bounds.x2 - bounds.x1, -+ bounds.y2 - bounds.y1); -+ FreePicture (pPicture, 0); -+ } -+ else -+ { -+ if (pDst->polyEdge == PolyEdgeSharp) -+ maskFormat = PictureMatchFormat (pScreen, 1, PICT_a1); -+ else -+ maskFormat = PictureMatchFormat (pScreen, 8, PICT_a8); -+ for (; ntrap; ntrap--, traps++) -+ miTrapezoids (op, pSrc, pDst, maskFormat, xSrc, ySrc, 1, traps); -+ } -+} -diff --git a/render/mitri.c b/render/mitri.c -index 922f22a..bdca9ca 100644 ---- a/render/mitri.c -+++ b/render/mitri.c -@@ -65,3 +65,64 @@ miTriangleBounds(int ntri, xTriangle * tris, BoxPtr bounds) - { - miPointFixedBounds(ntri * 3, (xPointFixed *) tris, bounds); - } -+ -+ -+void -+miTriangles (CARD8 op, -+ PicturePtr pSrc, -+ PicturePtr pDst, -+ PictFormatPtr maskFormat, -+ INT16 xSrc, -+ INT16 ySrc, -+ int ntri, -+ xTriangle *tris) -+{ -+ ScreenPtr pScreen = pDst->pDrawable->pScreen; -+ PictureScreenPtr ps = GetPictureScreen(pScreen); -+ -+ /* -+ * Check for solid alpha add -+ */ -+ if (op == PictOpAdd && miIsSolidAlpha (pSrc)) -+ { -+ (*ps->AddTriangles) (pDst, 0, 0, ntri, tris); -+ } -+ else if (maskFormat) -+ { -+ BoxRec bounds; -+ PicturePtr pPicture; -+ INT16 xDst, yDst; -+ INT16 xRel, yRel; -+ -+ xDst = tris[0].p1.x >> 16; -+ yDst = tris[0].p1.y >> 16; -+ -+ miTriangleBounds (ntri, tris, &bounds); -+ if (bounds.x2 <= bounds.x1 || bounds.y2 <= bounds.y1) -+ return; -+ pPicture = miCreateAlphaPicture (pScreen, pDst, maskFormat, -+ bounds.x2 - bounds.x1, -+ bounds.y2 - bounds.y1); -+ if (!pPicture) -+ return; -+ (*ps->AddTriangles) (pPicture, -bounds.x1, -bounds.y1, ntri, tris); -+ -+ xRel = bounds.x1 + xSrc - xDst; -+ yRel = bounds.y1 + ySrc - yDst; -+ CompositePicture (op, pSrc, pPicture, pDst, -+ xRel, yRel, 0, 0, bounds.x1, bounds.y1, -+ bounds.x2 - bounds.x1, bounds.y2 - bounds.y1); -+ FreePicture (pPicture, 0); -+ } -+ else -+ { -+ if (pDst->polyEdge == PolyEdgeSharp) -+ maskFormat = PictureMatchFormat (pScreen, 1, PICT_a1); -+ else -+ maskFormat = PictureMatchFormat (pScreen, 8, PICT_a8); -+ -+ for (; ntri; ntri--, tris++) -+ miTriangles (op, pSrc, pDst, maskFormat, xSrc, ySrc, 1, tris); -+ } -+} -+ --- -2.6.3 - Added: trunk/dports/x11/xorg-server/files/5002-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch =================================================================== --- trunk/dports/x11/xorg-server/files/5002-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch (rev 0) +++ trunk/dports/x11/xorg-server/files/5002-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch 2016-05-04 20:38:07 UTC (rev 148338) @@ -0,0 +1,158 @@ +From d6058fa4f68b68dff95c5ce826f9b9b498df3951 Mon Sep 17 00:00:00 2001 +From: Jeremy Huddleston <jeremyhu@apple.com> +Date: Fri, 30 Apr 2010 13:08:25 -0700 +Subject: [PATCH 5002/5005] Workaround the GC clipping problem in miPaintWindow + and add some debugging output. + +Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com> +--- + mi/miexpose.c | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++------ + 1 file changed, 90 insertions(+), 9 deletions(-) + +diff --git a/mi/miexpose.c b/mi/miexpose.c +index f4c6e89..fe3bcb1 100644 +--- a/mi/miexpose.c ++++ b/mi/miexpose.c +@@ -408,7 +408,8 @@ void RootlessSetPixmapOfAncestors(WindowPtr pWin); + void RootlessStartDrawing(WindowPtr pWin); + void RootlessDamageRegion(WindowPtr pWin, RegionPtr prgn); + Bool IsFramedWindow(WindowPtr pWin); +-#endif ++#include "../fb/fb.h" ++#endif + + void + miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what) +@@ -437,20 +438,32 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what) + Bool solid = TRUE; + DrawablePtr drawable = &pWin->drawable; + ++#ifdef XQUARTZ_CLIP_DEBUG ++ ErrorF("START %d BS %d (pR = %ld)\n", what, pWin->backgroundState, ParentRelative); ++ ErrorF(" Rgn: %d %d %d %d\n", prgn->extents.x1, prgn->extents.y1, ++ prgn->extents.x2 - prgn->extents.x1, ++ prgn->extents.y2 - prgn->extents.y1); ++ ErrorF(" Win: %d %d (%d %d) %d %d\n", pWin->origin.x, pWin->origin.y, ++ pWin->winSize.extents.x1, pWin->winSize.extents.y1, ++ pWin->winSize.extents.x2 - pWin->winSize.extents.x1, ++ pWin->winSize.extents.y2 - pWin->winSize.extents.y1); ++ ErrorF(" Draw: %d %d %d %d\n", pWin->drawable.x, pWin->drawable.y, ++ pWin->drawable.width, pWin->drawable.height); ++#endif ++ ++ if (what == PW_BACKGROUND) ++ { + #ifdef ROOTLESS +- if (IsFramedWindow(pWin)) { +- RootlessStartDrawing(pWin); +- RootlessDamageRegion(pWin, prgn); ++ if(IsFramedWindow(pWin)) { ++ RootlessStartDrawing(pWin); ++ RootlessDamageRegion(pWin, prgn); + +- if (pWin->backgroundState == ParentRelative) { +- if ((what == PW_BACKGROUND) || +- (what == PW_BORDER && !pWin->borderIsPixel)) ++ if(pWin->backgroundState == ParentRelative) { + RootlessSetPixmapOfAncestors(pWin); ++ } + } +- } + #endif + +- if (what == PW_BACKGROUND) { + while (pWin->backgroundState == ParentRelative) + pWin = pWin->parent; + +@@ -475,6 +488,18 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what) + else { + PixmapPtr pixmap; + ++#ifdef ROOTLESS ++ if(IsFramedWindow(pWin)) { ++ RootlessStartDrawing(pWin); ++ RootlessDamageRegion(pWin, prgn); ++ ++ if(!pWin->borderIsPixel && ++ pWin->backgroundState == ParentRelative) { ++ RootlessSetPixmapOfAncestors(pWin); ++ } ++ } ++#endif ++ + fill = pWin->border; + solid = pWin->borderIsPixel; + +@@ -484,6 +509,11 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what) + pixmap = (*pScreen->GetWindowPixmap) ((WindowPtr) drawable); + drawable = &pixmap->drawable; + ++#ifdef XQUARTZ_CLIP_DEBUG ++ ErrorF(" Draw: %d %d %d %d\n", ++ drawable->x, drawable->y, drawable->width, drawable->height); ++#endif ++ + while (pWin->backgroundState == ParentRelative) + pWin = pWin->parent; + +@@ -550,6 +580,57 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what) + ChangeGC(NullClient, pGC, gcmask, gcval); + ValidateGC(drawable, pGC); + ++#ifdef XQUARTZ_CLIP_DEBUG ++ ErrorF(" GC: %d %d %d %d\n", ++ pGC->pCompositeClip->extents.x1, pGC->pCompositeClip->extents.y1, ++ pGC->pCompositeClip->extents.x2 - pGC->pCompositeClip->extents.x1, ++ pGC->pCompositeClip->extents.y2 - pGC->pCompositeClip->extents.y1); ++#endif ++ ++#ifdef XQUARTZ ++ /* Looks like our clipping isn't set right for some reason: ++ * http://xquartz.macosforge.org/trac/ticket/290 ++ */ ++ if(what == PW_BORDER) { ++ ++#if 0 ++ if(solid) { ++#if 1 ++ fbFillRegionSolid(&pWin->drawable, ++ prgn, ++ 0, ++ fbReplicatePixel(fill.pixel, ++ pWin->drawable.bitsPerPixel)); ++#else ++ fbFillRegionSolid(drawable, ++ prgn, ++ 0, ++ fbReplicatePixel(fill.pixel, ++ drawable->bitsPerPixel)); ++#endif ++ return; ++ } ++#endif ++ ++ pGC->pCompositeClip->extents.x1 += prgn->extents.x1; ++ pGC->pCompositeClip->extents.y1 += prgn->extents.y1; ++ pGC->pCompositeClip->extents.x2 += prgn->extents.x1; ++ pGC->pCompositeClip->extents.y2 += prgn->extents.y1; ++ ++ if(pGC->pCompositeClip->extents.x2 > drawable->pScreen->width) ++ pGC->pCompositeClip->extents.x2 = drawable->pScreen->width; ++ if(pGC->pCompositeClip->extents.y2 > drawable->pScreen->height) ++ pGC->pCompositeClip->extents.y2 = drawable->pScreen->height; ++ } ++#endif ++ ++#ifdef XQUARTZ_CLIP_DEBUG ++ ErrorF(" GC: %d %d %d %d\n", ++ pGC->pCompositeClip->extents.x1, pGC->pCompositeClip->extents.y1, ++ pGC->pCompositeClip->extents.x2 - pGC->pCompositeClip->extents.x1, ++ pGC->pCompositeClip->extents.y2 - pGC->pCompositeClip->extents.y1); ++#endif ++ + numRects = RegionNumRects(prgn); + pbox = RegionRects(prgn); + for (i = numRects; --i >= 0; pbox++, prect++) { +-- +2.8.1 + Added: trunk/dports/x11/xorg-server/files/5003-Use-old-miTrapezoids-and-miTriangles-routines.patch =================================================================== --- trunk/dports/x11/xorg-server/files/5003-Use-old-miTrapezoids-and-miTriangles-routines.patch (rev 0) +++ trunk/dports/x11/xorg-server/files/5003-Use-old-miTrapezoids-and-miTriangles-routines.patch 2016-05-04 20:38:07 UTC (rev 148338) @@ -0,0 +1,289 @@ +From 2850855f560451bb64dd5af3f005c6988961336e Mon Sep 17 00:00:00 2001 +From: Jeremy Huddleston Sequoia <jeremyhu@apple.com> +Date: Sat, 2 Nov 2013 11:00:23 -0700 +Subject: [PATCH 5003/5005] Use old miTrapezoids and miTriangles routines + +Reverts commits: + 788ccb9a8bcf6a4fb4054c507111eec3338fb969 + 566f1931ee2916269e164e114bffaf2da1d039d1 + +http://xquartz.macosforge.org/trac/ticket/525 + +Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> +--- + fb/fbpict.c | 2 - + render/mipict.c | 4 +- + render/mipict.h | 27 ++++++++++++++ + render/mitrap.c | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + render/mitri.c | 61 +++++++++++++++++++++++++++++++ + 5 files changed, 201 insertions(+), 4 deletions(-) + +diff --git a/fb/fbpict.c b/fb/fbpict.c +index 7ea0b66..434d890 100644 +--- a/fb/fbpict.c ++++ b/fb/fbpict.c +@@ -508,10 +508,8 @@ fbPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats) + ps->UnrealizeGlyph = fbUnrealizeGlyph; + ps->CompositeRects = miCompositeRects; + ps->RasterizeTrapezoid = fbRasterizeTrapezoid; +- ps->Trapezoids = fbTrapezoids; + ps->AddTraps = fbAddTraps; + ps->AddTriangles = fbAddTriangles; +- ps->Triangles = fbTriangles; + + return TRUE; + } +diff --git a/render/mipict.c b/render/mipict.c +index 4b85512..a39eb2c 100644 +--- a/render/mipict.c ++++ b/render/mipict.c +@@ -575,8 +575,8 @@ miPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats) + ps->Composite = 0; /* requires DDX support */ + ps->Glyphs = miGlyphs; + ps->CompositeRects = miCompositeRects; +- ps->Trapezoids = 0; +- ps->Triangles = 0; ++ ps->Trapezoids = miTrapezoids; ++ ps->Triangles = miTriangles; + + ps->RasterizeTrapezoid = 0; /* requires DDX support */ + ps->AddTraps = 0; /* requires DDX support */ +diff --git a/render/mipict.h b/render/mipict.h +index 3241be4..8ee7a8a 100644 +--- a/render/mipict.h ++++ b/render/mipict.h +@@ -102,9 +102,36 @@ miCompositeRects(CARD8 op, + xRenderColor * color, int nRect, xRectangle *rects); + + extern _X_EXPORT void ++miTriangles (CARD8 op, ++ PicturePtr pSrc, ++ PicturePtr pDst, ++ PictFormatPtr maskFormat, ++ INT16 xSrc, ++ INT16 ySrc, ++ int ntri, ++ xTriangle *tris); ++ ++extern _X_EXPORT PicturePtr ++miCreateAlphaPicture (ScreenPtr pScreen, ++ PicturePtr pDst, ++ PictFormatPtr pPictFormat, ++ CARD16 width, ++ CARD16 height); ++ ++extern _X_EXPORT void + miTrapezoidBounds(int ntrap, xTrapezoid * traps, BoxPtr box); + + extern _X_EXPORT void ++miTrapezoids (CARD8 op, ++ PicturePtr pSrc, ++ PicturePtr pDst, ++ PictFormatPtr maskFormat, ++ INT16 xSrc, ++ INT16 ySrc, ++ int ntrap, ++ xTrapezoid *traps); ++ ++extern _X_EXPORT void + miPointFixedBounds(int npoint, xPointFixed * points, BoxPtr bounds); + + extern _X_EXPORT void +diff --git a/render/mitrap.c b/render/mitrap.c +index 17b6dcd..71c1857 100644 +--- a/render/mitrap.c ++++ b/render/mitrap.c +@@ -34,6 +34,55 @@ + #include "picturestr.h" + #include "mipict.h" + ++PicturePtr ++miCreateAlphaPicture (ScreenPtr pScreen, ++ PicturePtr pDst, ++ PictFormatPtr pPictFormat, ++ CARD16 width, ++ CARD16 height) ++{ ++ PixmapPtr pPixmap; ++ PicturePtr pPicture; ++ GCPtr pGC; ++ int error; ++ xRectangle rect; ++ ++ if (width > 32767 || height > 32767) ++ return 0; ++ ++ if (!pPictFormat) ++ { ++ if (pDst->polyEdge == PolyEdgeSharp) ++ pPictFormat = PictureMatchFormat (pScreen, 1, PICT_a1); ++ else ++ pPictFormat = PictureMatchFormat (pScreen, 8, PICT_a8); ++ if (!pPictFormat) ++ return 0; ++ } ++ ++ pPixmap = (*pScreen->CreatePixmap) (pScreen, width, height, ++ pPictFormat->depth, 0); ++ if (!pPixmap) ++ return 0; ++ pGC = GetScratchGC (pPixmap->drawable.depth, pScreen); ++ if (!pGC) ++ { ++ (*pScreen->DestroyPixmap) (pPixmap); ++ return 0; ++ } ++ ValidateGC (&pPixmap->drawable, pGC); ++ rect.x = 0; ++ rect.y = 0; ++ rect.width = width; ++ rect.height = height; ++ (*pGC->ops->PolyFillRect)(&pPixmap->drawable, pGC, 1, &rect); ++ FreeScratchGC (pGC); ++ pPicture = CreatePicture (0, &pPixmap->drawable, pPictFormat, ++ 0, 0, serverClient, &error); ++ (*pScreen->DestroyPixmap) (pPixmap); ++ return pPicture; ++} ++ + static xFixed + miLineFixedX(xLineFixed * l, xFixed y, Bool ceil) + { +@@ -79,3 +128,65 @@ miTrapezoidBounds(int ntrap, xTrapezoid * traps, BoxPtr box) + box->x2 = x2; + } + } ++ ++ ++void ++miTrapezoids (CARD8 op, ++ PicturePtr pSrc, ++ PicturePtr pDst, ++ PictFormatPtr maskFormat, ++ INT16 xSrc, ++ INT16 ySrc, ++ int ntrap, ++ xTrapezoid *traps) ++{ ++ ScreenPtr pScreen = pDst->pDrawable->pScreen; ++ PictureScreenPtr ps = GetPictureScreen(pScreen); ++ ++ /* ++ * Check for solid alpha add ++ */ ++ if (op == PictOpAdd && miIsSolidAlpha (pSrc)) ++ { ++ for (; ntrap; ntrap--, traps++) ++ (*ps->RasterizeTrapezoid) (pDst, traps, 0, 0); ++ } ++ else if (maskFormat) ++ { ++ PicturePtr pPicture; ++ BoxRec bounds; ++ INT16 xDst, yDst; ++ INT16 xRel, yRel; ++ ++ xDst = traps[0].left.p1.x >> 16; ++ yDst = traps[0].left.p1.y >> 16; ++ ++ miTrapezoidBounds (ntrap, traps, &bounds); ++ if (bounds.y1 >= bounds.y2 || bounds.x1 >= bounds.x2) ++ return; ++ pPicture = miCreateAlphaPicture (pScreen, pDst, maskFormat, ++ bounds.x2 - bounds.x1, ++ bounds.y2 - bounds.y1); ++ if (!pPicture) ++ return; ++ for (; ntrap; ntrap--, traps++) ++ (*ps->RasterizeTrapezoid) (pPicture, traps, ++ -bounds.x1, -bounds.y1); ++ xRel = bounds.x1 + xSrc - xDst; ++ yRel = bounds.y1 + ySrc - yDst; ++ CompositePicture (op, pSrc, pPicture, pDst, ++ xRel, yRel, 0, 0, bounds.x1, bounds.y1, ++ bounds.x2 - bounds.x1, ++ bounds.y2 - bounds.y1); ++ FreePicture (pPicture, 0); ++ } ++ else ++ { ++ if (pDst->polyEdge == PolyEdgeSharp) ++ maskFormat = PictureMatchFormat (pScreen, 1, PICT_a1); ++ else ++ maskFormat = PictureMatchFormat (pScreen, 8, PICT_a8); ++ for (; ntrap; ntrap--, traps++) ++ miTrapezoids (op, pSrc, pDst, maskFormat, xSrc, ySrc, 1, traps); ++ } ++} +diff --git a/render/mitri.c b/render/mitri.c +index 922f22a..bdca9ca 100644 +--- a/render/mitri.c ++++ b/render/mitri.c +@@ -65,3 +65,64 @@ miTriangleBounds(int ntri, xTriangle * tris, BoxPtr bounds) + { + miPointFixedBounds(ntri * 3, (xPointFixed *) tris, bounds); + } ++ ++ ++void ++miTriangles (CARD8 op, ++ PicturePtr pSrc, ++ PicturePtr pDst, ++ PictFormatPtr maskFormat, ++ INT16 xSrc, ++ INT16 ySrc, ++ int ntri, ++ xTriangle *tris) ++{ ++ ScreenPtr pScreen = pDst->pDrawable->pScreen; ++ PictureScreenPtr ps = GetPictureScreen(pScreen); ++ ++ /* ++ * Check for solid alpha add ++ */ ++ if (op == PictOpAdd && miIsSolidAlpha (pSrc)) ++ { ++ (*ps->AddTriangles) (pDst, 0, 0, ntri, tris); ++ } ++ else if (maskFormat) ++ { ++ BoxRec bounds; ++ PicturePtr pPicture; ++ INT16 xDst, yDst; ++ INT16 xRel, yRel; ++ ++ xDst = tris[0].p1.x >> 16; ++ yDst = tris[0].p1.y >> 16; ++ ++ miTriangleBounds (ntri, tris, &bounds); ++ if (bounds.x2 <= bounds.x1 || bounds.y2 <= bounds.y1) ++ return; ++ pPicture = miCreateAlphaPicture (pScreen, pDst, maskFormat, ++ bounds.x2 - bounds.x1, ++ bounds.y2 - bounds.y1); ++ if (!pPicture) ++ return; ++ (*ps->AddTriangles) (pPicture, -bounds.x1, -bounds.y1, ntri, tris); ++ ++ xRel = bounds.x1 + xSrc - xDst; ++ yRel = bounds.y1 + ySrc - yDst; ++ CompositePicture (op, pSrc, pPicture, pDst, ++ xRel, yRel, 0, 0, bounds.x1, bounds.y1, ++ bounds.x2 - bounds.x1, bounds.y2 - bounds.y1); ++ FreePicture (pPicture, 0); ++ } ++ else ++ { ++ if (pDst->polyEdge == PolyEdgeSharp) ++ maskFormat = PictureMatchFormat (pScreen, 1, PICT_a1); ++ else ++ maskFormat = PictureMatchFormat (pScreen, 8, PICT_a8); ++ ++ for (; ntri; ntri--, tris++) ++ miTriangles (op, pSrc, pDst, maskFormat, xSrc, ySrc, 1, tris); ++ } ++} ++ +-- +2.8.1 + Deleted: trunk/dports/x11/xorg-server/files/5003-fb-Revert-fb-changes-that-broke-XQuartz.patch =================================================================== --- trunk/dports/x11/xorg-server/files/5003-fb-Revert-fb-changes-that-broke-XQuartz.patch 2016-05-04 19:54:31 UTC (rev 148337) +++ trunk/dports/x11/xorg-server/files/5003-fb-Revert-fb-changes-that-broke-XQuartz.patch 2016-05-04 20:38:07 UTC (rev 148338) @@ -1,320 +0,0 @@ -From bdcae84eefc467fa96a8feb033bf74c4e00e50df Mon Sep 17 00:00:00 2001 -From: Jeremy Huddleston <jeremyhu@apple.com> -Date: Fri, 12 Feb 2010 19:48:52 -0800 -Subject: [PATCH 5003/5004] fb: Revert fb changes that broke XQuartz - -http://bugs.freedesktop.org/show_bug.cgi?id=26124 - -Revert "Fix source pictures getting random transforms after 2d6a8f668342a5190cdf43b5." -Revert "fb: Adjust transform or composite coordinates for pixman operations" - -http://bugs.freedesktop.org/26124 - -This reverts commit a72c65e9176c51de95db2fdbf4c5d946a4911695. -This reverts commit a6bd5d2e482a5aa84acb3d4932e2a166d8670ef1. - -Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com> ---- - fb/fb.h | 3 +-- - fb/fbpict.c | 82 ++++++++++++++++++------------------------------------------- - fb/fbtrap.c | 43 ++++++++++++++------------------ - 3 files changed, 43 insertions(+), 85 deletions(-) - -diff --git a/fb/fb.h b/fb/fb.h -index c687aa7..256a1ee 100644 ---- a/fb/fb.h -+++ b/fb/fb.h -@@ -1321,8 +1321,7 @@ fbFillRegionSolid(DrawablePtr pDrawable, - RegionPtr pRegion, FbBits and, FbBits xor); - - extern _X_EXPORT pixman_image_t *image_from_pict(PicturePtr pict, -- Bool has_clip, -- int *xoff, int *yoff); -+ Bool has_clip); - - extern _X_EXPORT void free_pixman_pict(PicturePtr, pixman_image_t *); - -diff --git a/fb/fbpict.c b/fb/fbpict.c -index 936a11b..a99cee6 100644 ---- a/fb/fbpict.c -+++ b/fb/fbpict.c -@@ -46,23 +46,18 @@ fbComposite(CARD8 op, - INT16 yMask, INT16 xDst, INT16 yDst, CARD16 width, CARD16 height) - { - pixman_image_t *src, *mask, *dest; -- int src_xoff, src_yoff; -- int msk_xoff, msk_yoff; -- int dst_xoff, dst_yoff; -- - miCompositeSourceValidate(pSrc); - if (pMask) - miCompositeSourceValidate(pMask); - -- src = image_from_pict(pSrc, FALSE, &src_xoff, &src_yoff); -- mask = image_from_pict(pMask, FALSE, &msk_xoff, &msk_yoff); -- dest = image_from_pict(pDst, TRUE, &dst_xoff, &dst_yoff); -+ src = image_from_pict(pSrc, TRUE); -+ mask = image_from_pict(pMask, TRUE); -+ dest = image_from_pict(pDst, TRUE); - - if (src && dest && !(pMask && !mask)) { - pixman_image_composite(op, src, mask, dest, -- xSrc + src_xoff, ySrc + src_yoff, -- xMask + msk_xoff, yMask + msk_yoff, -- xDst + dst_xoff, yDst + dst_yoff, width, height); -+ xSrc, ySrc, xMask, yMask, xDst, yDst, -+ width, height); - } - - free_pixman_pict(pSrc, src); -@@ -289,20 +284,22 @@ create_conical_gradient_image(PictGradient * gradient) - } - - static pixman_image_t * --create_bits_picture(PicturePtr pict, Bool has_clip, int *xoff, int *yoff) -+create_bits_picture(PicturePtr pict, Bool has_clip) - { -- PixmapPtr pixmap; - FbBits *bits; - FbStride stride; -- int bpp; -+ int bpp, xoff, yoff; - pixman_image_t *image; - -- fbGetDrawablePixmap(pict->pDrawable, pixmap, *xoff, *yoff); -- fbGetPixmapBitsData(pixmap, bits, stride, bpp); -+ fbGetDrawable (pict->pDrawable, bits, stride, bpp, xoff, yoff); -+ -+ bits = (FbBits*)((CARD8*)bits + -+ (pict->pDrawable->y + yoff) * stride * sizeof(FbBits) + -+ (pict->pDrawable->x + xoff) * (bpp / 8)); - - image = pixman_image_create_bits((pixman_format_code_t) pict->format, -- pixmap->drawable.width, -- pixmap->drawable.height, (uint32_t *) bits, -+ pict->pDrawable->width, -+ pict->pDrawable->height, (uint32_t *) bits, - stride * sizeof(FbStride)); - - if (!image) -@@ -321,28 +318,21 @@ create_bits_picture(PicturePtr pict, Bool has_clip, int *xoff, int *yoff) - if (pict->clientClip) - pixman_image_set_has_client_clip(image, TRUE); - -- if (*xoff || *yoff) -- pixman_region_translate(pict->pCompositeClip, *xoff, *yoff); -+ pixman_region_translate (pict->pCompositeClip, - pict->pDrawable->x, - pict->pDrawable->y); - - pixman_image_set_clip_region(image, pict->pCompositeClip); - -- if (*xoff || *yoff) -- pixman_region_translate(pict->pCompositeClip, -*xoff, -*yoff); -+ pixman_region_translate (pict->pCompositeClip, pict->pDrawable->x, pict->pDrawable->y); - } - - /* Indexed table */ - if (pict->pFormat->index.devPrivate) - pixman_image_set_indexed(image, pict->pFormat->index.devPrivate); - -- /* Add in drawable origin to position within the image */ -- *xoff += pict->pDrawable->x; -- *yoff += pict->pDrawable->y; -- - return image; - } - - static pixman_image_t *image_from_pict_internal(PicturePtr pict, Bool has_clip, -- int *xoff, int *yoff, - Bool is_alpha_map); - - static void image_destroy(pixman_image_t *image, void *data) -@@ -351,32 +341,13 @@ static void image_destroy(pixman_image_t *image, void *data) - } - - static void --set_image_properties(pixman_image_t * image, PicturePtr pict, Bool has_clip, -- int *xoff, int *yoff, Bool is_alpha_map) -+set_image_properties(pixman_image_t * image, PicturePtr pict, Bool is_alpha_map) - { - pixman_repeat_t repeat; - pixman_filter_t filter; - - if (pict->transform) { -- /* For source images, adjust the transform to account -- * for the drawable offset within the pixman image, -- * then set the offset to 0 as it will be used -- * to compute positions within the transformed image. -- */ -- if (!has_clip) { -- struct pixman_transform adjusted; -- -- adjusted = *pict->transform; -- pixman_transform_translate(&adjusted, -- NULL, -- pixman_int_to_fixed(*xoff), -- pixman_int_to_fixed(*yoff)); -- pixman_image_set_transform(image, &adjusted); -- *xoff = 0; -- *yoff = 0; -- } -- else -- pixman_image_set_transform(image, pict->transform); -+ pixman_image_set_transform(image, pict->transform); - } - - switch (pict->repeatType) { -@@ -404,10 +375,8 @@ set_image_properties(pixman_image_t * image, PicturePtr pict, Bool has_clip, - * as the alpha map for this operation - */ - if (pict->alphaMap && !is_alpha_map) { -- int alpha_xoff, alpha_yoff; - pixman_image_t *alpha_map = -- image_from_pict_internal(pict->alphaMap, FALSE, &alpha_xoff, -- &alpha_yoff, TRUE); -+ image_from_pict_internal(pict->alphaMap, TRUE, TRUE); - - pixman_image_set_alpha_map(image, alpha_map, pict->alphaOrigin.x, - pict->alphaOrigin.y); -@@ -445,8 +414,7 @@ set_image_properties(pixman_image_t * image, PicturePtr pict, Bool has_clip, - } - - static pixman_image_t * --image_from_pict_internal(PicturePtr pict, Bool has_clip, int *xoff, int *yoff, -- Bool is_alpha_map) -+image_from_pict_internal(PicturePtr pict, Bool has_clip, Bool is_alpha_map) - { - pixman_image_t *image = NULL; - -@@ -454,7 +422,7 @@ image_from_pict_internal(PicturePtr pict, Bool has_clip, int *xoff, int *yoff, - return NULL; - - if (pict->pDrawable) { -- image = create_bits_picture(pict, has_clip, xoff, yoff); -+ image = create_bits_picture(pict, has_clip); - } - else if (pict->pSourcePict) { - SourcePict *sp = pict->pSourcePict; -@@ -472,19 +440,17 @@ image_from_pict_internal(PicturePtr pict, Bool has_clip, int *xoff, int *yoff, - else if (sp->type == SourcePictTypeConical) - image = create_conical_gradient_image(gradient); - } -- *xoff = *yoff = 0; - } - - if (image) -- set_image_properties(image, pict, has_clip, xoff, yoff, is_alpha_map); -- -+ set_image_properties (image, pict, is_alpha_map); - return image; - } - - pixman_image_t * --image_from_pict(PicturePtr pict, Bool has_clip, int *xoff, int *yoff) -+image_from_pict (PicturePtr pict, Bool has_clip) - { -- return image_from_pict_internal(pict, has_clip, xoff, yoff, FALSE); -+ return image_from_pict_internal (pict, has_clip, FALSE); - } - - void -diff --git a/fb/fbtrap.c b/fb/fbtrap.c -index bf82f8f..0145ce9 100644 ---- a/fb/fbtrap.c -+++ b/fb/fbtrap.c -@@ -36,13 +36,12 @@ fbAddTraps(PicturePtr pPicture, - INT16 x_off, INT16 y_off, int ntrap, xTrap * traps) - { - pixman_image_t *image; -- int dst_xoff, dst_yoff; - -- if (!(image = image_from_pict(pPicture, FALSE, &dst_xoff, &dst_yoff))) -- return; -- -- pixman_add_traps(image, x_off + dst_xoff, y_off + dst_yoff, -- ntrap, (pixman_trap_t *) traps); -+ if (!(image = image_from_pict (pPicture, FALSE))) -+ return; -+ -+ pixman_add_traps(image, x_off, y_off, -+ ntrap, (pixman_trap_t *)traps); - - free_pixman_pict(pPicture, image); - } -@@ -52,13 +51,12 @@ fbRasterizeTrapezoid(PicturePtr pPicture, - xTrapezoid * trap, int x_off, int y_off) - { - pixman_image_t *image; -- int dst_xoff, dst_yoff; - -- if (!(image = image_from_pict(pPicture, FALSE, &dst_xoff, &dst_yoff))) -+ if (!(image = image_from_pict (pPicture, FALSE))) - return; - -- pixman_rasterize_trapezoid(image, (pixman_trapezoid_t *) trap, -- x_off + dst_xoff, y_off + dst_yoff); -+ pixman_rasterize_trapezoid(image, (pixman_trapezoid_t *)trap, -+ x_off, y_off); - - free_pixman_pict(pPicture, image); - } -@@ -68,14 +66,12 @@ fbAddTriangles(PicturePtr pPicture, - INT16 x_off, INT16 y_off, int ntri, xTriangle * tris) - { - pixman_image_t *image; -- int dst_xoff, dst_yoff; - -- if (!(image = image_from_pict(pPicture, FALSE, &dst_xoff, &dst_yoff))) -+ if (!(image = image_from_pict (pPicture, FALSE))) - return; -- -- pixman_add_triangles(image, -- dst_xoff + x_off, dst_yoff + y_off, -- ntri, (pixman_triangle_t *) tris); -+ -+ pixman_add_triangles(image, x_off, y_off, ntri, -+ (pixman_triangle_t *)tris); - - free_pixman_pict(pPicture, image); - } -@@ -98,13 +94,11 @@ fbShapes(CompositeShapesFunc composite, - int16_t ySrc, int nshapes, int shape_size, const uint8_t * shapes) - { - pixman_image_t *src, *dst; -- int src_xoff, src_yoff; -- int dst_xoff, dst_yoff; - - miCompositeSourceValidate(pSrc); - -- src = image_from_pict(pSrc, FALSE, &src_xoff, &src_yoff); -- dst = image_from_pict(pDst, TRUE, &dst_xoff, &dst_yoff); -+ src = image_from_pict(pSrc, FALSE); -+ dst = image_from_pict(pDst, TRUE); - - if (src && dst) { - pixman_format_code_t format; -@@ -121,9 +115,8 @@ fbShapes(CompositeShapesFunc composite, - - for (i = 0; i < nshapes; ++i) { - composite(op, src, dst, format, -- xSrc + src_xoff, -- ySrc + src_yoff, -- dst_xoff, dst_yoff, 1, shapes + i * shape_size); -+ xSrc, ySrc, 0, 0, -+ 1, shapes + i * shape_size); - } - } - else { -@@ -143,8 +136,8 @@ fbShapes(CompositeShapesFunc composite, - } - - composite(op, src, dst, format, -- xSrc + src_xoff, -- ySrc + src_yoff, dst_xoff, dst_yoff, nshapes, shapes); -+ xSrc, ySrc, 0, 0, -+ nshapes, shapes); - } - - DamageRegionProcessPending(pDst->pDrawable); --- -2.6.3 - Modified: trunk/dports/x11/xorg-server/files/5004-fb-Revert-fb-changes-that-broke-XQuartz.patch =================================================================== --- trunk/dports/x11/xorg-server/files/5004-fb-Revert-fb-changes-that-broke-XQuartz.patch 2016-05-04 19:54:31 UTC (rev 148337) +++ trunk/dports/x11/xorg-server/files/5004-fb-Revert-fb-changes-that-broke-XQuartz.patch 2016-05-04 20:38:07 UTC (rev 148338) @@ -1,243 +1,320 @@ -From e1b7d7d104a545eea0443c8404cb2407977ea1bc Mon Sep 17 00:00:00 2001 -From: Jeremy Huddleston Sequoia <jeremyhu@apple.com> -Date: Sat, 31 May 2014 13:14:20 -0700 -Subject: [PATCH 5004/5004] fb: Revert fb changes that broke XQuartz +From 055a7bb8f22eb94a35cae6224d109daa435d288d Mon Sep 17 00:00:00 2001 +From: Jeremy Huddleston <jeremyhu@apple.com> +Date: Fri, 12 Feb 2010 19:48:52 -0800 +Subject: [PATCH 5004/5005] fb: Revert fb changes that broke XQuartz - http://bugs.freedesktop.org/show_bug.cgi?id=26124 +http://bugs.freedesktop.org/show_bug.cgi?id=26124 -Revert "Use new pixman_glyph_cache_t API that will be in pixman 0.28.0" -Revert "fb: Fix origin of source picture in fbGlyphs" -Revert "fb: Publish fbGlyphs and fbUnrealizeGlyph" +Revert "Fix source pictures getting random transforms after 2d6a8f668342a5190cdf43b5." +Revert "fb: Adjust transform or composite coordinates for pixman operations" -This reverts commit 9cbcb5bd6a5360a128d15b77a02d8d3351f74366. -This reverts commit 983e30361f49a67252d0b5d82630e70724d69dbf. -This reverts commit 3c2c59eed3c68c0e5a93c38cf01eedad015e3157. +http://bugs.freedesktop.org/26124 + +This reverts commit a72c65e9176c51de95db2fdbf4c5d946a4911695. +This reverts commit a6bd5d2e482a5aa84acb3d4932e2a166d8670ef1. + +Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com> --- - fb/fb.h | 3 -- - fb/fbpict.c | 149 +--------------------------------------------------------- - fb/fbpict.h | 11 +---- - fb/fbscreen.c | 1 - - 4 files changed, 2 insertions(+), 162 deletions(-) + fb/fb.h | 3 +-- + fb/fbpict.c | 82 ++++++++++++++++++------------------------------------------- + fb/fbtrap.c | 43 ++++++++++++++------------------ + 3 files changed, 43 insertions(+), 85 deletions(-) diff --git a/fb/fb.h b/fb/fb.h -index 256a1ee..8e87498 100644 +index c687aa7..256a1ee 100644 --- a/fb/fb.h +++ b/fb/fb.h -@@ -1111,9 +1111,6 @@ extern _X_EXPORT void - extern _X_EXPORT Bool - fbPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats); +@@ -1321,8 +1321,7 @@ fbFillRegionSolid(DrawablePtr pDrawable, + RegionPtr pRegion, FbBits and, FbBits xor); --extern _X_EXPORT void --fbDestroyGlyphCache(void); -- - /* - * fbpixmap.c - */ + extern _X_EXPORT pixman_image_t *image_from_pict(PicturePtr pict, +- Bool has_clip, +- int *xoff, int *yoff); ++ Bool has_clip); + + extern _X_EXPORT void free_pixman_pict(PicturePtr, pixman_image_t *); + diff --git a/fb/fbpict.c b/fb/fbpict.c -index a99cee6..66dd633 100644 +index 434d890..be8274b 100644 --- a/fb/fbpict.c +++ b/fb/fbpict.c -@@ -65,152 +65,6 @@ fbComposite(CARD8 op, - free_pixman_pict(pDst, dest); +@@ -46,23 +46,18 @@ fbComposite(CARD8 op, + INT16 yMask, INT16 xDst, INT16 yDst, CARD16 width, CARD16 height) + { + pixman_image_t *src, *mask, *dest; +- int src_xoff, src_yoff; +- int msk_xoff, msk_yoff; +- int dst_xoff, dst_yoff; +- + miCompositeSourceValidate(pSrc); + if (pMask) + miCompositeSourceValidate(pMask); + +- src = image_from_pict(pSrc, FALSE, &src_xoff, &src_yoff); +- mask = image_from_pict(pMask, FALSE, &msk_xoff, &msk_yoff); +- dest = image_from_pict(pDst, TRUE, &dst_xoff, &dst_yoff); ++ src = image_from_pict(pSrc, TRUE); ++ mask = image_from_pict(pMask, TRUE); ++ dest = image_from_pict(pDst, TRUE); + + if (src && dest && !(pMask && !mask)) { + pixman_image_composite(op, src, mask, dest, +- xSrc + src_xoff, ySrc + src_yoff, +- xMask + msk_xoff, yMask + msk_yoff, +- xDst + dst_xoff, yDst + dst_yoff, width, height); ++ xSrc, ySrc, xMask, yMask, xDst, yDst, ++ width, height); + } + + free_pixman_pict(pSrc, src); +@@ -289,20 +284,22 @@ create_conical_gradient_image(PictGradient * gradient) } --static pixman_glyph_cache_t *glyphCache; + static pixman_image_t * +-create_bits_picture(PicturePtr pict, Bool has_clip, int *xoff, int *yoff) ++create_bits_picture(PicturePtr pict, Bool has_clip) + { +- PixmapPtr pixmap; + FbBits *bits; + FbStride stride; +- int bpp; ++ int bpp, xoff, yoff; + pixman_image_t *image; + +- fbGetDrawablePixmap(pict->pDrawable, pixmap, *xoff, *yoff); +- fbGetPixmapBitsData(pixmap, bits, stride, bpp); ++ fbGetDrawable (pict->pDrawable, bits, stride, bpp, xoff, yoff); ++ ++ bits = (FbBits*)((CARD8*)bits + ++ (pict->pDrawable->y + yoff) * stride * sizeof(FbBits) + ++ (pict->pDrawable->x + xoff) * (bpp / 8)); + + image = pixman_image_create_bits((pixman_format_code_t) pict->format, +- pixmap->drawable.width, +- pixmap->drawable.height, (uint32_t *) bits, ++ pict->pDrawable->width, ++ pict->pDrawable->height, (uint32_t *) bits, + stride * sizeof(FbStride)); + + if (!image) +@@ -321,28 +318,21 @@ create_bits_picture(PicturePtr pict, Bool has_clip, int *xoff, int *yoff) + if (pict->clientClip) + pixman_image_set_has_client_clip(image, TRUE); + +- if (*xoff || *yoff) +- pixman_region_translate(pict->pCompositeClip, *xoff, *yoff); ++ pixman_region_translate (pict->pCompositeClip, - pict->pDrawable->x, - pict->pDrawable->y); + + pixman_image_set_clip_region(image, pict->pCompositeClip); + +- if (*xoff || *yoff) +- pixman_region_translate(pict->pCompositeClip, -*xoff, -*yoff); ++ pixman_region_translate (pict->pCompositeClip, pict->pDrawable->x, pict->pDrawable->y); + } + + /* Indexed table */ + if (pict->pFormat->index.devPrivate) + pixman_image_set_indexed(image, pict->pFormat->index.devPrivate); + +- /* Add in drawable origin to position within the image */ +- *xoff += pict->pDrawable->x; +- *yoff += pict->pDrawable->y; - --void --fbDestroyGlyphCache(void) --{ -- if (glyphCache) -- { -- pixman_glyph_cache_destroy (glyphCache); -- glyphCache = NULL; -- } --} + return image; + } + + static pixman_image_t *image_from_pict_internal(PicturePtr pict, Bool has_clip, +- int *xoff, int *yoff, + Bool is_alpha_map); + + static void image_destroy(pixman_image_t *image, void *data) +@@ -351,32 +341,13 @@ static void image_destroy(pixman_image_t *image, void *data) + } + + static void +-set_image_properties(pixman_image_t * image, PicturePtr pict, Bool has_clip, +- int *xoff, int *yoff, Bool is_alpha_map) ++set_image_properties(pixman_image_t * image, PicturePtr pict, Bool is_alpha_map) + { + pixman_repeat_t repeat; + pixman_filter_t filter; + + if (pict->transform) { +- /* For source images, adjust the transform to account +- * for the drawable offset within the pixman image, +- * then set the offset to 0 as it will be used +- * to compute positions within the transformed image. +- */ +- if (!has_clip) { +- struct pixman_transform adjusted; - --static void --fbUnrealizeGlyph(ScreenPtr pScreen, -- GlyphPtr pGlyph) --{ -- if (glyphCache) -- pixman_glyph_cache_remove (glyphCache, pGlyph, NULL); --} +- adjusted = *pict->transform; +- pixman_transform_translate(&adjusted, +- NULL, +- pixman_int_to_fixed(*xoff), +- pixman_int_to_fixed(*yoff)); +- pixman_image_set_transform(image, &adjusted); +- *xoff = 0; +- *yoff = 0; +- } +- else +- pixman_image_set_transform(image, pict->transform); ++ pixman_image_set_transform(image, pict->transform); + } + + switch (pict->repeatType) { +@@ -404,10 +375,8 @@ set_image_properties(pixman_image_t * image, PicturePtr pict, Bool has_clip, + * as the alpha map for this operation + */ + if (pict->alphaMap && !is_alpha_map) { +- int alpha_xoff, alpha_yoff; + pixman_image_t *alpha_map = +- image_from_pict_internal(pict->alphaMap, FALSE, &alpha_xoff, +- &alpha_yoff, TRUE); ++ image_from_pict_internal(pict->alphaMap, TRUE, TRUE); + + pixman_image_set_alpha_map(image, alpha_map, pict->alphaOrigin.x, + pict->alphaOrigin.y); +@@ -445,8 +414,7 @@ set_image_properties(pixman_image_t * image, PicturePtr pict, Bool has_clip, + } + + static pixman_image_t * +-image_from_pict_internal(PicturePtr pict, Bool has_clip, int *xoff, int *yoff, +- Bool is_alpha_map) ++image_from_pict_internal(PicturePtr pict, Bool has_clip, Bool is_alpha_map) + { + pixman_image_t *image = NULL; + +@@ -454,7 +422,7 @@ image_from_pict_internal(PicturePtr pict, Bool has_clip, int *xoff, int *yoff, + return NULL; + + if (pict->pDrawable) { +- image = create_bits_picture(pict, has_clip, xoff, yoff); ++ image = create_bits_picture(pict, has_clip); + } + else if (pict->pSourcePict) { + SourcePict *sp = pict->pSourcePict; +@@ -472,19 +440,17 @@ image_from_pict_internal(PicturePtr pict, Bool has_clip, int *xoff, int *yoff, + else if (sp->type == SourcePictTypeConical) + image = create_conical_gradient_image(gradient); + } +- *xoff = *yoff = 0; + } + + if (image) +- set_image_properties(image, pict, has_clip, xoff, yoff, is_alpha_map); - --void --fbGlyphs(CARD8 op, -- PicturePtr pSrc, -- PicturePtr pDst, -- PictFormatPtr maskFormat, -- INT16 xSrc, -- INT16 ySrc, int nlist, -- GlyphListPtr list, -- GlyphPtr *glyphs) --{ --#define N_STACK_GLYPHS 512 -- ScreenPtr pScreen = pDst->pDrawable->pScreen; -- pixman_glyph_t stack_glyphs[N_STACK_GLYPHS]; -- pixman_glyph_t *pglyphs = stack_glyphs; -- pixman_image_t *srcImage, *dstImage; -- int srcXoff, srcYoff, dstXoff, dstYoff; -- GlyphPtr glyph; -- int n_glyphs; -- int x, y; -- int i, n; -- int xDst = list->xOff, yDst = list->yOff; ++ set_image_properties (image, pict, is_alpha_map); + return image; + } + + pixman_image_t * +-image_from_pict(PicturePtr pict, Bool has_clip, int *xoff, int *yoff) ++image_from_pict (PicturePtr pict, Bool has_clip) + { +- return image_from_pict_internal(pict, has_clip, xoff, yoff, FALSE); ++ return image_from_pict_internal (pict, has_clip, FALSE); + } + + void +diff --git a/fb/fbtrap.c b/fb/fbtrap.c +index bf82f8f..0145ce9 100644 +--- a/fb/fbtrap.c ++++ b/fb/fbtrap.c +@@ -36,13 +36,12 @@ fbAddTraps(PicturePtr pPicture, + INT16 x_off, INT16 y_off, int ntrap, xTrap * traps) + { + pixman_image_t *image; +- int dst_xoff, dst_yoff; + +- if (!(image = image_from_pict(pPicture, FALSE, &dst_xoff, &dst_yoff))) +- return; - -- miCompositeSourceValidate(pSrc); -- -- n_glyphs = 0; -- for (i = 0; i < nlist; ++i) -- n_glyphs += list[i].len; -- -- if (!glyphCache) -- glyphCache = pixman_glyph_cache_create(); -- -- pixman_glyph_cache_freeze (glyphCache); -- -- if (n_glyphs > N_STACK_GLYPHS) { -- if (!(pglyphs = malloc (n_glyphs * sizeof (pixman_glyph_t)))) -- goto out; -- } -- -- i = 0; -- x = y = 0; -- while (nlist--) { -- x += list->xOff; -- y += list->yOff; -- n = list->len; -- while (n--) { -- const void *g; -- -- glyph = *glyphs++; -- -- if (!(g = pixman_glyph_cache_lookup (glyphCache, glyph, NULL))) { -- pixman_image_t *glyphImage; -- PicturePtr pPicture; -- int xoff, yoff; -- -- pPicture = GetGlyphPicture(glyph, pScreen); -- if (!pPicture) { -- n_glyphs--; -- goto next; -- } -- -- if (!(glyphImage = image_from_pict(pPicture, FALSE, &xoff, &yoff))) -- goto out; -- -- g = pixman_glyph_cache_insert(glyphCache, glyph, NULL, -- glyph->info.x, -- glyph->info.y, -- glyphImage); -- -- free_pixman_pict(pPicture, glyphImage); -- -- if (!g) -- goto out; -- } -- -- pglyphs[i].x = x; -- pglyphs[i].y = y; -- pglyphs[i].glyph = g; -- i++; -- -- next: -- x += glyph->info.xOff; -- y += glyph->info.yOff; -- } -- list++; -- } -- -- if (!(srcImage = image_from_pict(pSrc, FALSE, &srcXoff, &srcYoff))) -- goto out; -- -- if (!(dstImage = image_from_pict(pDst, TRUE, &dstXoff, &dstYoff))) -- goto out_free_src; -- -- if (maskFormat) { -- pixman_format_code_t format; -- pixman_box32_t extents; -- -- format = maskFormat->format | (maskFormat->depth << 24); -- -- pixman_glyph_get_extents(glyphCache, n_glyphs, pglyphs, &extents); -- -- pixman_composite_glyphs(op, srcImage, dstImage, format, -- xSrc + srcXoff + extents.x1 - xDst, ySrc + srcYoff + extents.y1 - yDst, -- extents.x1, extents.y1, -- extents.x1 + dstXoff, extents.y1 + dstYoff, -- extents.x2 - extents.x1, -- extents.y2 - extents.y1, -- glyphCache, n_glyphs, pglyphs); -- } -- else { -- pixman_composite_glyphs_no_mask(op, srcImage, dstImage, -- xSrc + srcXoff - xDst, ySrc + srcYoff - yDst, -- dstXoff, dstYoff, -- glyphCache, n_glyphs, pglyphs); -- } -- -- free_pixman_pict(pDst, dstImage); -- --out_free_src: -- free_pixman_pict(pSrc, srcImage); -- --out: -- pixman_glyph_cache_thaw(glyphCache); -- if (pglyphs != stack_glyphs) -- free(pglyphs); --} -- - static pixman_image_t * - create_solid_fill_image(PicturePtr pict) +- pixman_add_traps(image, x_off + dst_xoff, y_off + dst_yoff, +- ntrap, (pixman_trap_t *) traps); ++ if (!(image = image_from_pict (pPicture, FALSE))) ++ return; ++ ++ pixman_add_traps(image, x_off, y_off, ++ ntrap, (pixman_trap_t *)traps); + + free_pixman_pict(pPicture, image); + } +@@ -52,13 +51,12 @@ fbRasterizeTrapezoid(PicturePtr pPicture, + xTrapezoid * trap, int x_off, int y_off) { -@@ -470,8 +324,7 @@ fbPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats) - return FALSE; - ps = GetPictureScreen(pScreen); - ps->Composite = fbComposite; -- ps->Glyphs = fbGlyphs; -- ps->UnrealizeGlyph = fbUnrealizeGlyph; -+ ps->Glyphs = miGlyphs; - ps->CompositeRects = miCompositeRects; - ps->RasterizeTrapezoid = fbRasterizeTrapezoid; - ps->AddTraps = fbAddTraps; -diff --git a/fb/fbpict.h b/fb/fbpict.h -index 5cb8663..110f32d 100644 ---- a/fb/fbpict.h -+++ b/fb/fbpict.h -@@ -65,20 +65,11 @@ fbTrapezoids(CARD8 op, - INT16 xSrc, INT16 ySrc, int ntrap, xTrapezoid * traps); + pixman_image_t *image; +- int dst_xoff, dst_yoff; - extern _X_EXPORT void -+ - fbTriangles(CARD8 op, - PicturePtr pSrc, - PicturePtr pDst, - PictFormatPtr maskFormat, - INT16 xSrc, INT16 ySrc, int ntris, xTriangle * tris); +- if (!(image = image_from_pict(pPicture, FALSE, &dst_xoff, &dst_yoff))) ++ if (!(image = image_from_pict (pPicture, FALSE))) + return; --extern _X_EXPORT void --fbGlyphs(CARD8 op, -- PicturePtr pSrc, -- PicturePtr pDst, -- PictFormatPtr maskFormat, -- INT16 xSrc, -- INT16 ySrc, int nlist, -- GlyphListPtr list, -- GlyphPtr *glyphs); +- pixman_rasterize_trapezoid(image, (pixman_trapezoid_t *) trap, +- x_off + dst_xoff, y_off + dst_yoff); ++ pixman_rasterize_trapezoid(image, (pixman_trapezoid_t *)trap, ++ x_off, y_off); + + free_pixman_pict(pPicture, image); + } +@@ -68,14 +66,12 @@ fbAddTriangles(PicturePtr pPicture, + INT16 x_off, INT16 y_off, int ntri, xTriangle * tris) + { + pixman_image_t *image; +- int dst_xoff, dst_yoff; + +- if (!(image = image_from_pict(pPicture, FALSE, &dst_xoff, &dst_yoff))) ++ if (!(image = image_from_pict (pPicture, FALSE))) + return; - - #endif /* _FBPICT_H_ */ -diff --git a/fb/fbscreen.c b/fb/fbscreen.c -index 71bcc5d..55330fc 100644 ---- a/fb/fbscreen.c -+++ b/fb/fbscreen.c -@@ -32,7 +32,6 @@ fbCloseScreen(ScreenPtr pScreen) - int d; - DepthPtr depths = pScreen->allowedDepths; +- pixman_add_triangles(image, +- dst_xoff + x_off, dst_yoff + y_off, +- ntri, (pixman_triangle_t *) tris); ++ ++ pixman_add_triangles(image, x_off, y_off, ntri, ++ (pixman_triangle_t *)tris); -- fbDestroyGlyphCache(); - for (d = 0; d < pScreen->numDepths; d++) - free(depths[d].vids); - free(depths); + free_pixman_pict(pPicture, image); + } +@@ -98,13 +94,11 @@ fbShapes(CompositeShapesFunc composite, + int16_t ySrc, int nshapes, int shape_size, const uint8_t * shapes) + { + pixman_image_t *src, *dst; +- int src_xoff, src_yoff; +- int dst_xoff, dst_yoff; + + miCompositeSourceValidate(pSrc); + +- src = image_from_pict(pSrc, FALSE, &src_xoff, &src_yoff); +- dst = image_from_pict(pDst, TRUE, &dst_xoff, &dst_yoff); ++ src = image_from_pict(pSrc, FALSE); ++ dst = image_from_pict(pDst, TRUE); + + if (src && dst) { + pixman_format_code_t format; +@@ -121,9 +115,8 @@ fbShapes(CompositeShapesFunc composite, + + for (i = 0; i < nshapes; ++i) { + composite(op, src, dst, format, +- xSrc + src_xoff, +- ySrc + src_yoff, +- dst_xoff, dst_yoff, 1, shapes + i * shape_size); ++ xSrc, ySrc, 0, 0, ++ 1, shapes + i * shape_size); + } + } + else { +@@ -143,8 +136,8 @@ fbShapes(CompositeShapesFunc composite, + } + + composite(op, src, dst, format, +- xSrc + src_xoff, +- ySrc + src_yoff, dst_xoff, dst_yoff, nshapes, shapes); ++ xSrc, ySrc, 0, 0, ++ nshapes, shapes); + } + + DamageRegionProcessPending(pDst->pDrawable); -- -2.6.3 +2.8.1 Added: trunk/dports/x11/xorg-server/files/5005-fb-Revert-fb-changes-that-broke-XQuartz.patch =================================================================== --- trunk/dports/x11/xorg-server/files/5005-fb-Revert-fb-changes-that-broke-XQuartz.patch (rev 0) +++ trunk/dports/x11/xorg-server/files/5005-fb-Revert-fb-changes-that-broke-XQuartz.patch 2016-05-04 20:38:07 UTC (rev 148338) @@ -0,0 +1,243 @@ +From 3475655620bc51071f0ba9cbc30b39587d9b0b44 Mon Sep 17 00:00:00 2001 +From: Jeremy Huddleston Sequoia <jeremyhu@apple.com> +Date: Sat, 31 May 2014 13:14:20 -0700 +Subject: [PATCH 5005/5005] fb: Revert fb changes that broke XQuartz + + http://bugs.freedesktop.org/show_bug.cgi?id=26124 + +Revert "Use new pixman_glyph_cache_t API that will be in pixman 0.28.0" +Revert "fb: Fix origin of source picture in fbGlyphs" +Revert "fb: Publish fbGlyphs and fbUnrealizeGlyph" + +This reverts commit 9cbcb5bd6a5360a128d15b77a02d8d3351f74366. +This reverts commit 983e30361f49a67252d0b5d82630e70724d69dbf. +This reverts commit 3c2c59eed3c68c0e5a93c38cf01eedad015e3157. +--- + fb/fb.h | 3 -- + fb/fbpict.c | 149 +--------------------------------------------------------- + fb/fbpict.h | 11 +---- + fb/fbscreen.c | 1 - + 4 files changed, 2 insertions(+), 162 deletions(-) + +diff --git a/fb/fb.h b/fb/fb.h +index 256a1ee..8e87498 100644 +--- a/fb/fb.h ++++ b/fb/fb.h +@@ -1111,9 +1111,6 @@ extern _X_EXPORT void + extern _X_EXPORT Bool + fbPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats); + +-extern _X_EXPORT void +-fbDestroyGlyphCache(void); +- + /* + * fbpixmap.c + */ +diff --git a/fb/fbpict.c b/fb/fbpict.c +index be8274b..66dd633 100644 +--- a/fb/fbpict.c ++++ b/fb/fbpict.c +@@ -65,152 +65,6 @@ fbComposite(CARD8 op, + free_pixman_pict(pDst, dest); + } + +-static pixman_glyph_cache_t *glyphCache; +- +-void +-fbDestroyGlyphCache(void) +-{ +- if (glyphCache) +- { +- pixman_glyph_cache_destroy (glyphCache); +- glyphCache = NULL; +- } +-} +- +-static void +-fbUnrealizeGlyph(ScreenPtr pScreen, +- GlyphPtr pGlyph) +-{ +- if (glyphCache) +- pixman_glyph_cache_remove (glyphCache, pGlyph, NULL); +-} +- +-void +-fbGlyphs(CARD8 op, +- PicturePtr pSrc, +- PicturePtr pDst, +- PictFormatPtr maskFormat, +- INT16 xSrc, +- INT16 ySrc, int nlist, +- GlyphListPtr list, +- GlyphPtr *glyphs) +-{ +-#define N_STACK_GLYPHS 512 +- ScreenPtr pScreen = pDst->pDrawable->pScreen; +- pixman_glyph_t stack_glyphs[N_STACK_GLYPHS]; +- pixman_glyph_t *pglyphs = stack_glyphs; +- pixman_image_t *srcImage, *dstImage; +- int srcXoff, srcYoff, dstXoff, dstYoff; +- GlyphPtr glyph; +- int n_glyphs; +- int x, y; +- int i, n; +- int xDst = list->xOff, yDst = list->yOff; +- +- miCompositeSourceValidate(pSrc); +- +- n_glyphs = 0; +- for (i = 0; i < nlist; ++i) +- n_glyphs += list[i].len; +- +- if (!glyphCache) +- glyphCache = pixman_glyph_cache_create(); +- +- pixman_glyph_cache_freeze (glyphCache); +- +- if (n_glyphs > N_STACK_GLYPHS) { +- if (!(pglyphs = xallocarray(n_glyphs, sizeof(pixman_glyph_t)))) +- goto out; +- } +- +- i = 0; +- x = y = 0; +- while (nlist--) { +- x += list->xOff; +- y += list->yOff; +- n = list->len; +- while (n--) { +- const void *g; +- +- glyph = *glyphs++; +- +- if (!(g = pixman_glyph_cache_lookup (glyphCache, glyph, NULL))) { +- pixman_image_t *glyphImage; +- PicturePtr pPicture; +- int xoff, yoff; +- +- pPicture = GetGlyphPicture(glyph, pScreen); +- if (!pPicture) { +- n_glyphs--; +- goto next; +- } +- +- if (!(glyphImage = image_from_pict(pPicture, FALSE, &xoff, &yoff))) +- goto out; +- +- g = pixman_glyph_cache_insert(glyphCache, glyph, NULL, +- glyph->info.x, +- glyph->info.y, +- glyphImage); +- +- free_pixman_pict(pPicture, glyphImage); +- +- if (!g) +- goto out; +- } +- +- pglyphs[i].x = x; +- pglyphs[i].y = y; +- pglyphs[i].glyph = g; +- i++; +- +- next: +- x += glyph->info.xOff; +- y += glyph->info.yOff; +- } +- list++; +- } +- +- if (!(srcImage = image_from_pict(pSrc, FALSE, &srcXoff, &srcYoff))) +- goto out; +- +- if (!(dstImage = image_from_pict(pDst, TRUE, &dstXoff, &dstYoff))) +- goto out_free_src; +- +- if (maskFormat) { +- pixman_format_code_t format; +- pixman_box32_t extents; +- +- format = maskFormat->format | (maskFormat->depth << 24); +- +- pixman_glyph_get_extents(glyphCache, n_glyphs, pglyphs, &extents); +- +- pixman_composite_glyphs(op, srcImage, dstImage, format, +- xSrc + srcXoff + extents.x1 - xDst, ySrc + srcYoff + extents.y1 - yDst, +- extents.x1, extents.y1, +- extents.x1 + dstXoff, extents.y1 + dstYoff, +- extents.x2 - extents.x1, +- extents.y2 - extents.y1, +- glyphCache, n_glyphs, pglyphs); +- } +- else { +- pixman_composite_glyphs_no_mask(op, srcImage, dstImage, +- xSrc + srcXoff - xDst, ySrc + srcYoff - yDst, +- dstXoff, dstYoff, +- glyphCache, n_glyphs, pglyphs); +- } +- +- free_pixman_pict(pDst, dstImage); +- +-out_free_src: +- free_pixman_pict(pSrc, srcImage); +- +-out: +- pixman_glyph_cache_thaw(glyphCache); +- if (pglyphs != stack_glyphs) +- free(pglyphs); +-} +- + static pixman_image_t * + create_solid_fill_image(PicturePtr pict) + { +@@ -470,8 +324,7 @@ fbPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats) + return FALSE; + ps = GetPictureScreen(pScreen); + ps->Composite = fbComposite; +- ps->Glyphs = fbGlyphs; +- ps->UnrealizeGlyph = fbUnrealizeGlyph; ++ ps->Glyphs = miGlyphs; + ps->CompositeRects = miCompositeRects; + ps->RasterizeTrapezoid = fbRasterizeTrapezoid; + ps->AddTraps = fbAddTraps; +diff --git a/fb/fbpict.h b/fb/fbpict.h +index 5cb8663..110f32d 100644 +--- a/fb/fbpict.h ++++ b/fb/fbpict.h +@@ -65,20 +65,11 @@ fbTrapezoids(CARD8 op, + INT16 xSrc, INT16 ySrc, int ntrap, xTrapezoid * traps); + + extern _X_EXPORT void ++ + fbTriangles(CARD8 op, + PicturePtr pSrc, + PicturePtr pDst, + PictFormatPtr maskFormat, + INT16 xSrc, INT16 ySrc, int ntris, xTriangle * tris); + +-extern _X_EXPORT void +-fbGlyphs(CARD8 op, +- PicturePtr pSrc, +- PicturePtr pDst, +- PictFormatPtr maskFormat, +- INT16 xSrc, +- INT16 ySrc, int nlist, +- GlyphListPtr list, +- GlyphPtr *glyphs); +- + #endif /* _FBPICT_H_ */ +diff --git a/fb/fbscreen.c b/fb/fbscreen.c +index 71bcc5d..55330fc 100644 +--- a/fb/fbscreen.c ++++ b/fb/fbscreen.c +@@ -32,7 +32,6 @@ fbCloseScreen(ScreenPtr pScreen) + int d; + DepthPtr depths = pScreen->allowedDepths; + +- fbDestroyGlyphCache(); + for (d = 0; d < pScreen->numDepths; d++) + free(depths[d].vids); + free(depths); +-- +2.8.1 +