[100878] trunk/dports/x11/xorg-server-devel
jeremyhu at macports.org
jeremyhu at macports.org
Sun Dec 30 13:40:30 PST 2012
Revision: 100878
https://trac.macports.org/changeset/100878
Author: jeremyhu at macports.org
Date: 2012-12-30 13:40:30 -0800 (Sun, 30 Dec 2012)
Log Message:
-----------
xorg-server-devel: Bump to 1.14 RC1
Modified Paths:
--------------
trunk/dports/x11/xorg-server-devel/Portfile
trunk/dports/x11/xorg-server-devel/files/5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch
trunk/dports/x11/xorg-server-devel/files/5001-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch
trunk/dports/x11/xorg-server-devel/files/5002-fb-Revert-fb-changes-that-broke-XQuartz.patch
Added Paths:
-----------
trunk/dports/x11/xorg-server-devel/files/5003-fb-Revert-fb-changes-that-broke-XQuartz.patch
Removed Paths:
-------------
trunk/dports/x11/xorg-server-devel/files/0001-XQuartz-Avoid-a-possible-deadlock-with-DRI-on-OS-X-1.patch
trunk/dports/x11/xorg-server-devel/files/0002-XQuartz-Add-some-verbose-logging-to-debug-xp_lock_wi.patch
Modified: trunk/dports/x11/xorg-server-devel/Portfile
===================================================================
--- trunk/dports/x11/xorg-server-devel/Portfile 2012-12-30 21:40:27 UTC (rev 100877)
+++ trunk/dports/x11/xorg-server-devel/Portfile 2012-12-30 21:40:30 UTC (rev 100878)
@@ -5,7 +5,7 @@
name xorg-server-devel
conflicts xorg-server
set my_name xorg-server
-version 1.13.99.0
+version 1.13.99.901
categories x11 devel
maintainers jeremyhu openmaintainer
description The X.org / Xquartz X server.
@@ -15,7 +15,7 @@
fetch.type git
git.url git://anongit.freedesktop.org/xorg/xserver
-git.branch d01921ec18c21f21d377b60626cc2d3418b84a7c
+git.branch bd91b05b631f13afd1f7a9d6cbc4f0c5408b523a
use_parallel_build yes
@@ -73,11 +73,10 @@
RAWCPP=${configure.cpp}
patchfiles \
- 0001-XQuartz-Avoid-a-possible-deadlock-with-DRI-on-OS-X-1.patch \
- 0002-XQuartz-Add-some-verbose-logging-to-debug-xp_lock_wi.patch \
- 5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch \
- 5001-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch \
- 5002-fb-Revert-fb-changes-that-broke-XQuartz.patch
+ 5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch \
+ 5001-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch \
+ 5002-fb-Revert-fb-changes-that-broke-XQuartz.patch \
+ 5003-fb-Revert-fb-changes-that-broke-XQuartz.patch
patch.pre_args -p1
Deleted: trunk/dports/x11/xorg-server-devel/files/0001-XQuartz-Avoid-a-possible-deadlock-with-DRI-on-OS-X-1.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0001-XQuartz-Avoid-a-possible-deadlock-with-DRI-on-OS-X-1.patch 2012-12-30 21:40:27 UTC (rev 100877)
+++ trunk/dports/x11/xorg-server-devel/files/0001-XQuartz-Avoid-a-possible-deadlock-with-DRI-on-OS-X-1.patch 2012-12-30 21:40:30 UTC (rev 100878)
@@ -1,41 +0,0 @@
-From b6b4287a1db26f75e88f53486c91bfefeb7726fd Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
-Date: Thu, 20 Sep 2012 21:49:40 -0700
-Subject: [PATCH 1/2] XQuartz: Avoid a possible deadlock with DRI on OS X
- 10.7.5 and OS X 10.8.2
-
-<rdar://problem/12338921>
-http://bugs.winehq.org/show_bug.cgi?id=31751
-
-Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
----
- hw/xquartz/xpr/dri.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/hw/xquartz/xpr/dri.c b/hw/xquartz/xpr/dri.c
-index 03af163..4fa4aa8 100644
---- a/hw/xquartz/xpr/dri.c
-+++ b/hw/xquartz/xpr/dri.c
-@@ -64,6 +64,7 @@
- #include "mi.h"
- #include "mipointer.h"
- #include "rootless.h"
-+#include "rootlessCommon.h"
- #include "x-hash.h"
- #include "x-hook.h"
- #include "driWrap.h"
-@@ -385,6 +386,11 @@ DRICreateSurface(ScreenPtr pScreen, Drawable id,
-
- if (NULL == pDRIDrawablePriv)
- return FALSE; /*error*/
-+
-+ /* <rdar://problem/12338921>
-+ * http://bugs.winehq.org/show_bug.cgi?id=31751
-+ */
-+ RootlessStopDrawing((WindowPtr)pDrawable, FALSE);
- }
- #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
- else if (pDrawable->type == DRAWABLE_PIXMAP) {
---
-1.7.11.5
-
Deleted: trunk/dports/x11/xorg-server-devel/files/0002-XQuartz-Add-some-verbose-logging-to-debug-xp_lock_wi.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/0002-XQuartz-Add-some-verbose-logging-to-debug-xp_lock_wi.patch 2012-12-30 21:40:27 UTC (rev 100877)
+++ trunk/dports/x11/xorg-server-devel/files/0002-XQuartz-Add-some-verbose-logging-to-debug-xp_lock_wi.patch 2012-12-30 21:40:30 UTC (rev 100878)
@@ -1,67 +0,0 @@
-From a55ccb7e8f80992e985694a5ec40b5aa72526d39 Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
-Date: Thu, 20 Sep 2012 21:11:21 -0700
-Subject: [PATCH 2/2] XQuartz: Add some verbose logging to debug
- xp_lock_window being unbalanced
-
-Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
----
- hw/xquartz/xpr/xprFrame.c | 28 ++++++++++++++++++++++++++++
- 1 file changed, 28 insertions(+)
-
-diff --git a/hw/xquartz/xpr/xprFrame.c b/hw/xquartz/xpr/xprFrame.c
-index 01f1def..aad375b 100644
---- a/hw/xquartz/xpr/xprFrame.c
-+++ b/hw/xquartz/xpr/xprFrame.c
-@@ -49,6 +49,10 @@
- #include <pthread.h>
- #endif
-
-+#ifdef DEBUG_XP_LOCK_WINDOW
-+#include <execinfo.h>
-+#endif
-+
- #define DEFINE_ATOM_HELPER(func, atom_name) \
- static Atom func(void) { \
- static int generation; \
-@@ -376,6 +380,18 @@ xprStartDrawing(RootlessFrameID wid, char **pixelData, int *bytesPerRow)
- unsigned int rowbytes[2];
- xp_error err;
-
-+#ifdef DEBUG_XP_LOCK_WINDOW
-+ void* callstack[128];
-+ int i, frames = backtrace(callstack, 128);
-+ char** strs = backtrace_symbols(callstack, frames);
-+
-+ ErrorF("=== LOCK %d ===\n", (int)x_cvt_vptr_to_uint(wid));
-+ for (i = 0; i < frames; ++i) {
-+ ErrorF(" %s\n", strs[i]);
-+ }
-+ free(strs);
-+#endif
-+
- err = xp_lock_window(x_cvt_vptr_to_uint(
- wid), NULL, NULL, data, rowbytes, NULL);
- if (err != Success)
-@@ -395,6 +411,18 @@ xprStopDrawing(RootlessFrameID wid, Bool flush)
- {
- xp_error err;
-
-+#ifdef DEBUG_XP_LOCK_WINDOW
-+ void* callstack[128];
-+ int i, frames = backtrace(callstack, 128);
-+ char** strs = backtrace_symbols(callstack, frames);
-+
-+ ErrorF("=== UNLOCK %d ===\n", (int)x_cvt_vptr_to_uint(wid));
-+ for (i = 0; i < frames; ++i) {
-+ ErrorF(" %s\n", strs[i]);
-+ }
-+ free(strs);
-+#endif
-+
- err = xp_unlock_window(x_cvt_vptr_to_uint(wid), flush);
- /* This should be a FatalError, but we started tripping over it. Make it a
- * FatalError after http://xquartz.macosforge.org/trac/ticket/482 is fixed.
---
-1.7.11.5
-
Modified: trunk/dports/x11/xorg-server-devel/files/5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch 2012-12-30 21:40:27 UTC (rev 100877)
+++ trunk/dports/x11/xorg-server-devel/files/5000-sdksyms.sh-Use-CPPFLAGS-not-CFLAGS.patch 2012-12-30 21:40:30 UTC (rev 100878)
@@ -1,7 +1,7 @@
-From 6dfb7cd702c1130fbe2bc15ef5d00c1983037451 Mon Sep 17 00:00:00 2001
+From 2cad1b044ebe3007b9c18fce0525c75aeccde309 Mon Sep 17 00:00:00 2001
From: Jeremy Huddleston <jeremyhu at apple.com>
Date: Fri, 13 Jan 2012 12:00:57 -0800
-Subject: [PATCH 5000/5002] sdksyms.sh: Use CPPFLAGS, not CFLAGS
+Subject: [PATCH 5000/5003] 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
@@ -10,11 +10,11 @@
Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
Reviewed-by: Keith Packard <keithp at keithp.com>
---
- hw/xfree86/Makefile.am | 4 ++--
+ hw/xfree86/Makefile.am | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
-index e50cb88..7ccac80 100644
+index c3899b5..4f48b85 100644
--- a/hw/xfree86/Makefile.am
+++ b/hw/xfree86/Makefile.am
@@ -38,7 +38,7 @@ DIST_SUBDIRS = common ddc i2c x86emu int10 fbdevhw os-support \
@@ -24,9 +24,9 @@
-AM_CFLAGS = $(DIX_CFLAGS) @XORG_CFLAGS@
+AM_CPPFLAGS = $(DIX_CFLAGS) @XORG_CFLAGS@
INCLUDES = $(XORG_INCS) -I$(srcdir)/parser -I$(top_srcdir)/miext/cw \
- -I$(srcdir)/ddc -I$(srcdir)/i2c -I$(srcdir)/modes -I$(srcdir)/ramdac
-
-@@ -112,7 +112,7 @@ CLEANFILES = sdksyms.c sdksyms.dep
+ -I$(srcdir)/ddc -I$(srcdir)/i2c -I$(srcdir)/modes -I$(srcdir)/ramdac \
+ -I$(srcdir)/dri -I$(srcdir)/dri2
+@@ -115,7 +115,7 @@ CLEANFILES = sdksyms.c sdksyms.dep
EXTRA_DIST += sdksyms.sh
sdksyms.dep sdksyms.c: sdksyms.sh
@@ -36,5 +36,5 @@
SDKSYMS_DEP = sdksyms.dep
include $(SDKSYMS_DEP)
--
-1.7.10.2
+1.8.0.2
Modified: trunk/dports/x11/xorg-server-devel/files/5001-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/5001-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch 2012-12-30 21:40:27 UTC (rev 100877)
+++ trunk/dports/x11/xorg-server-devel/files/5001-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch 2012-12-30 21:40:30 UTC (rev 100878)
@@ -1,19 +1,19 @@
-From 6e3829d167383a2fa4b1f14817a91dc3ec12138e Mon Sep 17 00:00:00 2001
+From b54625d24e217592ef5f00415c58e1622b4c8008 Mon Sep 17 00:00:00 2001
From: Jeremy Huddleston <jeremyhu at apple.com>
Date: Fri, 30 Apr 2010 13:08:25 -0700
-Subject: [PATCH 5001/5002] Workaround the GC clipping problem in
- miPaintWindow and add some debugging output.
+Subject: [PATCH 5001/5003] Workaround the GC clipping problem in miPaintWindow
+ and add some debugging output.
Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
---
- mi/miexpose.c | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++------
+ mi/miexpose.c | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
1 file changed, 94 insertions(+), 10 deletions(-)
diff --git a/mi/miexpose.c b/mi/miexpose.c
-index dbb29ca..93fd8a1 100644
+index 8b7c93f..3e972f7 100644
--- a/mi/miexpose.c
+++ b/mi/miexpose.c
-@@ -490,7 +490,8 @@ void RootlessSetPixmapOfAncestors(WindowPtr pWin);
+@@ -489,7 +489,8 @@ void RootlessSetPixmapOfAncestors(WindowPtr pWin);
void RootlessStartDrawing(WindowPtr pWin);
void RootlessDamageRegion(WindowPtr pWin, RegionPtr prgn);
Bool IsFramedWindow(WindowPtr pWin);
@@ -23,7 +23,7 @@
void
miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
-@@ -519,23 +520,37 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
+@@ -518,23 +519,37 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
Bool solid = TRUE;
DrawablePtr drawable = &pWin->drawable;
@@ -70,7 +70,7 @@
while (pWin->backgroundState == ParentRelative)
pWin = pWin->parent;
-@@ -560,6 +575,18 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
+@@ -559,6 +574,18 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
else {
PixmapPtr pixmap;
@@ -89,7 +89,7 @@
tile_x_off = drawable->x;
tile_y_off = drawable->y;
-@@ -568,6 +595,12 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
+@@ -567,6 +594,12 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
return;
pixmap = (*pScreen->GetWindowPixmap) ((WindowPtr) drawable);
drawable = &pixmap->drawable;
@@ -102,7 +102,7 @@
#ifdef COMPOSITE
draw_x_off = pixmap->screen_x;
draw_y_off = pixmap->screen_y;
-@@ -630,6 +663,57 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
+@@ -629,6 +662,57 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
ChangeGC(NullClient, pGC, gcmask, gcval);
ValidateGC(drawable, pGC);
@@ -161,5 +161,5 @@
pbox = RegionRects(prgn);
for (i = numRects; --i >= 0; pbox++, prect++) {
--
-1.7.10.2
+1.8.0.2
Modified: trunk/dports/x11/xorg-server-devel/files/5002-fb-Revert-fb-changes-that-broke-XQuartz.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/5002-fb-Revert-fb-changes-that-broke-XQuartz.patch 2012-12-30 21:40:27 UTC (rev 100877)
+++ trunk/dports/x11/xorg-server-devel/files/5002-fb-Revert-fb-changes-that-broke-XQuartz.patch 2012-12-30 21:40:30 UTC (rev 100878)
@@ -1,7 +1,7 @@
-From c36c05c6a2536e442964cfea2adaf8c8e3dc3356 Mon Sep 17 00:00:00 2001
+From fa26b51f4582e97b68a7ee9382147bc5b3c8cc3a Mon Sep 17 00:00:00 2001
From: Jeremy Huddleston <jeremyhu at apple.com>
Date: Fri, 12 Feb 2010 19:48:52 -0800
-Subject: [PATCH 5002/5002] fb: Revert fb changes that broke XQuartz
+Subject: [PATCH 5002/5003] fb: Revert fb changes that broke XQuartz
http://bugs.freedesktop.org/show_bug.cgi?id=26124
@@ -15,16 +15,16 @@
Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
---
- fb/fb.h | 3 +--
- fb/fbpict.c | 82 +++++++++++++++++------------------------------------------
- fb/fbtrap.c | 43 +++++++++++++------------------
+ 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 b327ce6..53a6c1a 100644
+index b869d12..895b148 100644
--- a/fb/fb.h
+++ b/fb/fb.h
-@@ -1683,8 +1683,7 @@ fbFillRegionSolid(DrawablePtr pDrawable,
+@@ -1686,8 +1686,7 @@ fbFillRegionSolid(DrawablePtr pDrawable,
RegionPtr pRegion, FbBits and, FbBits xor);
extern _X_EXPORT pixman_image_t *image_from_pict(PicturePtr pict,
@@ -35,7 +35,7 @@
extern _X_EXPORT void free_pixman_pict(PicturePtr, pixman_image_t *);
diff --git a/fb/fbpict.c b/fb/fbpict.c
-index 097a1a6..dc0ca3c 100644
+index 2804ff4..80c2a91 100644
--- a/fb/fbpict.c
+++ b/fb/fbpict.c
@@ -46,23 +46,18 @@ fbComposite(CARD8 op,
@@ -67,7 +67,7 @@
}
free_pixman_pict(pSrc, src);
-@@ -143,20 +138,22 @@ create_conical_gradient_image(PictGradient * gradient)
+@@ -293,20 +288,22 @@ create_conical_gradient_image(PictGradient * gradient)
}
static pixman_image_t *
@@ -97,7 +97,7 @@
stride * sizeof(FbStride));
if (!image)
-@@ -183,57 +180,31 @@ create_bits_picture(PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
+@@ -333,57 +330,31 @@ create_bits_picture(PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
if (pict->clientClipType != CT_NONE)
pixman_image_set_has_client_clip(image, TRUE);
@@ -159,7 +159,7 @@
}
switch (pict->repeatType) {
-@@ -261,10 +232,8 @@ set_image_properties(pixman_image_t * image, PicturePtr pict, Bool has_clip,
+@@ -411,10 +382,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) {
@@ -171,7 +171,7 @@
pixman_image_set_alpha_map(image, alpha_map, pict->alphaOrigin.x,
pict->alphaOrigin.y);
-@@ -298,8 +267,7 @@ set_image_properties(pixman_image_t * image, PicturePtr pict, Bool has_clip,
+@@ -448,8 +417,7 @@ set_image_properties(pixman_image_t * image, PicturePtr pict, Bool has_clip,
}
static pixman_image_t *
@@ -181,7 +181,7 @@
{
pixman_image_t *image = NULL;
-@@ -307,7 +275,7 @@ image_from_pict_internal(PicturePtr pict, Bool has_clip, int *xoff, int *yoff,
+@@ -457,7 +425,7 @@ image_from_pict_internal(PicturePtr pict, Bool has_clip, int *xoff, int *yoff,
return NULL;
if (pict->pDrawable) {
@@ -190,7 +190,7 @@
}
else if (pict->pSourcePict) {
SourcePict *sp = pict->pSourcePict;
-@@ -325,19 +293,17 @@ image_from_pict_internal(PicturePtr pict, Bool has_clip, int *xoff, int *yoff,
+@@ -475,19 +443,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);
}
@@ -312,5 +312,5 @@
DamageRegionProcessPending(pDst->pDrawable);
--
-1.7.10.2
+1.8.0.2
Added: trunk/dports/x11/xorg-server-devel/files/5003-fb-Revert-fb-changes-that-broke-XQuartz.patch
===================================================================
--- trunk/dports/x11/xorg-server-devel/files/5003-fb-Revert-fb-changes-that-broke-XQuartz.patch (rev 0)
+++ trunk/dports/x11/xorg-server-devel/files/5003-fb-Revert-fb-changes-that-broke-XQuartz.patch 2012-12-30 21:40:30 UTC (rev 100878)
@@ -0,0 +1,230 @@
+From b61545ca749f1b5da43f63dc847719d7ecbb9fd5 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Tue, 18 Dec 2012 01:03:38 -0800
+Subject: [PATCH 5003/5003] 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"
+
+This reverts commit 9cbcb5bd6a5360a128d15b77a02d8d3351f74366.
+---
+ configure.ac | 2 +-
+ fb/fb.h | 3 --
+ fb/fbpict.c | 153 +---------------------------------------------------------
+ fb/fbscreen.c | 1 -
+ 4 files changed, 2 insertions(+), 157 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 435a38f..4629fdd 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -811,7 +811,7 @@ LIBPCIACCESS="pciaccess >= 0.12.901"
+ LIBUDEV="libudev >= 143"
+ LIBSELINUX="libselinux >= 2.0.86"
+ LIBDBUS="dbus-1 >= 1.0"
+-LIBPIXMAN="pixman-1 >= 0.27.2"
++LIBPIXMAN="pixman-1 >= 0.21.8"
+
+ dnl Pixman is always required, but we separate it out so we can link
+ dnl specific modules against it
+diff --git a/fb/fb.h b/fb/fb.h
+index 895b148..cc5759c 100644
+--- a/fb/fb.h
++++ b/fb/fb.h
+@@ -1344,9 +1344,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 80c2a91..dc0ca3c 100644
+--- a/fb/fbpict.c
++++ b/fb/fbpict.c
+@@ -65,156 +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);
+-}
+-
+-static 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 = 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;
+- int x, y;
+-
+- format = maskFormat->format | (maskFormat->depth << 24);
+-
+- pixman_glyph_get_extents(glyphCache, n_glyphs, pglyphs, &extents);
+-
+- x = extents.x1;
+- y = extents.y1;
+-
+- pixman_composite_glyphs(op, srcImage, dstImage, format,
+- xSrc + srcXoff + xDst, ySrc + srcYoff + yDst,
+- x, y,
+- x + dstXoff, y + 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)
+ {
+@@ -473,8 +323,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->Trapezoids = fbTrapezoids;
+diff --git a/fb/fbscreen.c b/fb/fbscreen.c
+index f9080a4..7c7d656 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);
+--
+1.8.0.2
+
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20121230/d69d5106/attachment-0001.html>
More information about the macports-changes
mailing list