xserver: Branch 'xorg-server-1.5-apple' - 2 commits

Jeremy Huddleston jeremyhu at kemper.freedesktop.org
Tue Mar 18 00:12:08 PDT 2008


 configure.ac                                |    1 
 hw/xquartz/X11Application.m                 |    2 
 hw/xquartz/xpr/Makefile.am                  |    4 
 hw/xquartz/xpr/xprScreen.c                  |   10 -
 miext/rootless/Makefile.am                  |    2 
 miext/rootless/safeAlpha/Makefile.am        |    7 
 miext/rootless/safeAlpha/safeAlpha.h        |   42 -----
 miext/rootless/safeAlpha/safeAlphaPicture.c |  211 ----------------------------
 8 files changed, 4 insertions(+), 275 deletions(-)

New commits:
commit 8bc58eb9606420968c5732756e756f828370e27c
Author: Jeremy Huddleston <jeremy at tifa.local>
Date:   Mon Mar 17 23:57:41 2008 -0700

    Rootless: Removed safeAlphaXXXX() in favor of using fb/pixman
    (cherry picked from commit f03202ad15457c98be7ca78cc59bac88cf5f1966)

diff --git a/configure.ac b/configure.ac
index f3b238a..3cdc1a5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2113,7 +2113,6 @@ miext/damage/Makefile
 miext/shadow/Makefile
 miext/cw/Makefile
 miext/rootless/Makefile
-miext/rootless/safeAlpha/Makefile
 miext/rootless/accel/Makefile
 os/Makefile
 randr/Makefile
diff --git a/hw/xquartz/xpr/Makefile.am b/hw/xquartz/xpr/Makefile.am
index ae1b192..b4d67c7 100644
--- a/hw/xquartz/xpr/Makefile.am
+++ b/hw/xquartz/xpr/Makefile.am
@@ -4,8 +4,7 @@ AM_CFLAGS =  $(XSERVER_CFLAGS) $(DIX_CFLAGS)
 AM_CPPFLAGS = \
 	-I$(srcdir) -I$(srcdir)/.. \
 	-I$(top_srcdir)/miext \
-	-I$(top_srcdir)/miext/rootless \
-	-I$(top_srcdir)/miext/rootless/safeAlpha
+	-I$(top_srcdir)/miext/rootless
 
 Xquartz_SOURCES = \
 	appledri.c \
@@ -41,7 +40,6 @@ Xquartz_LDADD = \
 	$(top_builddir)/record/librecord.la \
 	$(top_builddir)/XTrap/libxtrap.la \
 	$(top_builddir)/miext/rootless/librootless.la \
-	$(top_builddir)/miext/rootless/safeAlpha/libsafeAlpha.la \
 	$(top_builddir)/miext/rootless/accel/librlAccel.la \
 	$(DARWIN_LIBS) $(XSERVER_LIBS) $(XSERVER_SYS_LIBS) -lXplugin
 
diff --git a/hw/xquartz/xpr/xprScreen.c b/hw/xquartz/xpr/xprScreen.c
index e4e1fda..db36403 100644
--- a/hw/xquartz/xpr/xprScreen.c
+++ b/hw/xquartz/xpr/xprScreen.c
@@ -37,7 +37,6 @@
 #include "pseudoramiX.h"
 #include "darwin.h"
 #include "rootless.h"
-#include "safeAlpha/safeAlpha.h"
 #include "dri.h"
 #include "globals.h"
 #include "Xplugin.h"
@@ -341,15 +340,6 @@ xprAddScreen(int index, ScreenPtr pScreen)
 static Bool
 xprSetupScreen(int index, ScreenPtr pScreen)
 {
-    // Add alpha protecting replacements for fb screen functions
-
-#ifdef RENDER
-    {
-        PictureScreenPtr ps = GetPictureScreen(pScreen);
-        ps->Composite = SafeAlphaComposite;
-    }
-#endif /* RENDER */
-
     // Initialize accelerated rootless drawing
     // Note that this must be done before DamageSetup().
     RootlessAccelInit(pScreen);
diff --git a/miext/rootless/Makefile.am b/miext/rootless/Makefile.am
index aa8528e..dc85170 100644
--- a/miext/rootless/Makefile.am
+++ b/miext/rootless/Makefile.am
@@ -1,7 +1,7 @@
 AM_CFLAGS = $(DIX_CFLAGS) $(XSERVER_CFLAGS)
 AM_CPPFLAGS = -I$(top_srcdir)/hw/xfree86/os-support
 
-SUBDIRS = safeAlpha accel
+SUBDIRS = accel
 
 noinst_LTLIBRARIES = librootless.la
 librootless_la_SOURCES = \
diff --git a/miext/rootless/safeAlpha/Makefile.am b/miext/rootless/safeAlpha/Makefile.am
deleted file mode 100644
index a22afb6..0000000
--- a/miext/rootless/safeAlpha/Makefile.am
+++ /dev/null
@@ -1,7 +0,0 @@
-AM_CFLAGS = $(DIX_CFLAGS) $(XSERVER_CFLAGS)
-AM_CPPFLAGS = -I$(srcdir)/.. -I$(top_srcdir)/hw/xfree86/os-support
-
-noinst_LTLIBRARIES = libsafeAlpha.la
-libsafeAlpha_la_SOURCES = safeAlphaPicture.c
-
-EXTRA_DIST = safeAlpha.h
diff --git a/miext/rootless/safeAlpha/safeAlpha.h b/miext/rootless/safeAlpha/safeAlpha.h
deleted file mode 100644
index 9b9b39c..0000000
--- a/miext/rootless/safeAlpha/safeAlpha.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Replacement functions to protect the alpha channel
- */
-/*
- * Copyright (c) 2002-2003 Torrey T. Lyons. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Except as contained in this notice, the name(s) of the above copyright
- * holders shall not be used in advertising or otherwise to promote the sale,
- * use or other dealings in this Software without prior written authorization.
- */
-
-#ifndef _SAFEALPHA_H
-#define _SAFEALPHA_H
-
-#include "picturestr.h"
-
-#ifdef RENDER
-void
-SafeAlphaComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst,
-                   INT16 xSrc, INT16 ySrc, INT16 xMask, INT16 yMask,
-                   INT16 xDst, INT16 yDst, CARD16 width, CARD16 height);
-#endif /* RENDER */
-
-#endif /* _SAFEALPHA_H */
diff --git a/miext/rootless/safeAlpha/safeAlphaPicture.c b/miext/rootless/safeAlpha/safeAlphaPicture.c
deleted file mode 100644
index 8f66315..0000000
--- a/miext/rootless/safeAlpha/safeAlphaPicture.c
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * Support for RENDER extension while protecting the alpha channel
- */
-/*
- * Copyright (c) 2002-2003 Torrey T. Lyons. All Rights Reserved.
- * Copyright (c) 2002 Apple Computer, Inc. All Rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Except as contained in this notice, the name(s) of the above copyright
- * holders shall not be used in advertising or otherwise to promote the sale,
- * use or other dealings in this Software without prior written authorization.
- */
-/* This file is largely based on fbcompose.c and fbpict.c, which contain
- * the following copyright:
- *
- * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc.
- */
-
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-#ifdef RENDER
-
-#include <stddef.h> /* For NULL */
-#include "fb.h"
-#include "picturestr.h"
-#include "mipict.h"
-#include "fbpict.h"
-#include "safeAlpha.h"
-#include "rootlessCommon.h"
-# define mod(a,b)	((b) == 1 ? 0 : (a) >= 0 ? (a) % (b) : (b) - (-a) % (b))
-
-/* Optimized version of fbCompositeSolidMask_nx8x8888 */
-void
-SafeAlphaCompositeSolidMask_nx8x8888(
-    CARD8      op,
-    PicturePtr pSrc,
-    PicturePtr pMask,
-    PicturePtr pDst,
-    INT16      xSrc,
-    INT16      ySrc,
-    INT16      xMask,
-    INT16      yMask,
-    INT16      xDst,
-    INT16      yDst,
-    CARD16     width,
-    CARD16     height)
-{
-    CARD32	src, srca;
-    CARD32	*dstLine, *dst, d, dstMask;
-    CARD8	*maskLine, *mask, m;
-    FbStride	dstStride, maskStride;
-    CARD16	w;
-
-    fbComposeGetSolid(pSrc, src, pDst->format);
-
-    dstMask = FbFullMask (pDst->pDrawable->depth);
-    srca = src >> 24;
-    if (src == 0)
-	return;
-
-    fbComposeGetStart (pDst, xDst, yDst, CARD32, dstStride, dstLine, 1);
-    fbComposeGetStart (pMask, xMask, yMask, CARD8, maskStride, maskLine, 1);
-
-    if (dstMask == FB_ALLONES && pDst->pDrawable->bitsPerPixel == 32 &&
-        width * height > rootless_CompositePixels_threshold &&
-        SCREENREC(pDst->pDrawable->pScreen)->imp->CompositePixels)
-    {
-	void *srcp[2], *destp[2];
-	unsigned int dest_rowbytes[2];
-	unsigned int fn;
-
-	srcp[0] = &src; srcp[1] = &src;
-	/* null rowbytes pointer means use first value as a constant */
-	destp[0] = dstLine; destp[1] = dstLine;
-	dest_rowbytes[0] = dstStride * 4; dest_rowbytes[1] = dest_rowbytes[0];
-	fn = RL_COMPOSITE_FUNCTION(RL_COMPOSITE_OVER, RL_DEPTH_ARGB8888,
-                                   RL_DEPTH_A8, RL_DEPTH_ARGB8888);
-
-	if (SCREENREC(pDst->pDrawable->pScreen)->imp->CompositePixels(
-                width, height, fn, srcp, NULL,
-                maskLine, maskStride,
-                destp, dest_rowbytes) == Success)
-	{
-	    return;
-	}
-    }
-
-    while (height--)
-    {
-	dst = dstLine;
-	dstLine += dstStride;
-	mask = maskLine;
-	maskLine += maskStride;
-	w = width;
-
-	while (w--)
-	{
-	    m = *mask++;
-	    if (m == 0xff)
-	    {
-		if (srca == 0xff)
-		    *dst = src & dstMask;
-		else
-		    *dst = fbOver (src, *dst) & dstMask;
-	    }
-	    else if (m)
-	    {
-		d = fbIn (src, m);
-		*dst = fbOver (d, *dst) & dstMask;
-	    }
-	    dst++;
-	}
-    }
-}
-
-void
-SafeAlphaComposite (CARD8           op,
-                    PicturePtr      pSrc,
-                    PicturePtr      pMask,
-                    PicturePtr      pDst,
-                    INT16           xSrc,
-                    INT16           ySrc,
-                    INT16           xMask,
-                    INT16           yMask,
-                    INT16           xDst,
-                    INT16           yDst,
-                    CARD16          width,
-                    CARD16          height)
-{
-  if (!pSrc) {
-    ErrorF("SafeAlphaComposite: pSrc must not be null!\n");
-    return;
-  }
-
-  if (!pDst) {
-    ErrorF("SafeAlphaComposite: pDst must not be null!\n");
-    return;
-  }
-  
-  int oldDepth = pDst->pDrawable->depth;
-  int oldFormat = pDst->format;
-    
-  /*
-   * We can use the more optimized fbpict code, but it sets bits above
-   * the depth to zero. Temporarily adjust destination depth if needed.
-   */
-  if (pDst->pDrawable->type == DRAWABLE_WINDOW
-        && pDst->pDrawable->depth == 24
-      && pDst->pDrawable->bitsPerPixel == 32)
-    {
-      pDst->pDrawable->depth = 32;
-    }
-    
-  /* For rootless preserve the alpha in x8r8g8b8 which really is
-   * a8r8g8b8
-   */
-  if (oldFormat == PICT_x8r8g8b8)
-    {
-      pDst->format = PICT_a8r8g8b8;
-    }
-    
-  if (pSrc->pDrawable && pMask && pMask->pDrawable &&
-        !pSrc->transform && !pMask->transform &&
-        !pSrc->alphaMap && !pMask->alphaMap &&
-        !pMask->repeat && !pMask->componentAlpha && !pDst->alphaMap &&
-        pMask->format == PICT_a8 &&
-       pSrc->repeatType == RepeatNormal && 
-        pSrc->pDrawable->width == 1 &&
-        pSrc->pDrawable->height == 1 &&
-      (pDst->format == PICT_a8r8g8b8 ||
-         pDst->format == PICT_x8r8g8b8 ||
-         pDst->format == PICT_a8b8g8r8 ||
-       pDst->format == PICT_x8b8g8r8))
-    {
-      fbWalkCompositeRegion (op, pSrc, pMask, pDst,
-			     xSrc, ySrc, xMask, yMask, xDst, yDst,
-			     width, height,
-			     TRUE /* srcRepeat */,
-			     FALSE /* maskRepeat */,
-			     SafeAlphaCompositeSolidMask_nx8x8888);
-    }
-  else
-    {
-      fbComposite (op, pSrc, pMask, pDst,
-		   xSrc, ySrc, xMask, yMask, xDst, yDst, width, height);
-    }
-
-  pDst->pDrawable->depth = oldDepth;
-  pDst->format = oldFormat;
-}
-
-#endif /* RENDER */
commit 851b16fd828d61c7eaeb5eeb3ce6fda226604e12
Author: Jeremy Huddleston <jeremy at tifa.local>
Date:   Fri Mar 14 17:31:54 2008 -0700

    Apple: Xserver half of the Exposé bug-fix (requires updated libXplugin from Apple... coming with 2.2)
    (cherry picked from commit 37be23e8c1d8e5c7a1157e9d66ef3f30a4c472c5)

diff --git a/hw/xquartz/X11Application.m b/hw/xquartz/X11Application.m
index be5511d..1cf992d 100644
--- a/hw/xquartz/X11Application.m
+++ b/hw/xquartz/X11Application.m
@@ -320,6 +320,8 @@ static void message_kit_thread (SEL selector, NSObject *arg) {
     SetFrontProcess(&psn);
 
     QuartzMessageServerThread(kXDarwinBringAllToFront, 0);
+    ProcessSerialNumber psn = { 0, kCurrentProcess };
+    SetFrontProcess(&psn);
 }
 
 - (void) set_can_quit:(NSNumber *)state {


More information about the xorg-commit mailing list