[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