xserver/render filter.c,1.7,1.8 mipict.c,1.24,1.25

Lars Knoll <xserver-commit-u7BhqnqprCWvj1b/[email protected]> Mon, 13 Jun 2005 01:01:01 -0700 (PDT)
Newsgroups gmane.comp.freedesktop.xserver.cvs
Message-ID <[email protected]>
Committed by: lars

Update of /cvs/xserver/xserver/render
In directory gabe:/tmp/cvs-serv1949/render

Modified Files:
	filter.c mipict.c 
Log Message:
readd the convolution filter that got lost during our move to
the new implementation in fbcompose.


Index: filter.c
===================================================================
RCS file: /cvs/xserver/xserver/render/filter.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- filter.c	2 Mar 2005 15:30:03 -0000	1.7
+++ filter.c	13 Jun 2005 08:00:59 -0000	1.8
@@ -39,6 +39,7 @@
 #include "gcstruct.h"
 #include "servermd.h"
 #include "picturestr.h"
+#include "mipict.h"
 
 static char **filterNames;
 static int  nfilterNames;
@@ -87,12 +88,12 @@
 PictureSetDefaultIds (void)
 {
     /* careful here -- this list must match the #define values */
-    
+
     if (PictureGetFilterId (FilterNearest, -1, TRUE) != PictFilterNearest)
 	return FALSE;
     if (PictureGetFilterId (FilterBilinear, -1, TRUE) != PictFilterBilinear)
 	return FALSE;
-    
+
     if (PictureGetFilterId (FilterFast, -1, TRUE) != PictFilterFast)
 	return FALSE;
     if (PictureGetFilterId (FilterGood, -1, TRUE) != PictFilterGood)
@@ -174,7 +175,7 @@
 
 	if (ps->filterAliases)
 	    aliases = xrealloc (ps->filterAliases,
-				(ps->nfilterAliases + 1) * 
+				(ps->nfilterAliases + 1) *
 				sizeof (PictFilterAliasRec));
 	else
 	    aliases = xalloc (sizeof (PictFilterAliasRec));
@@ -223,13 +224,16 @@
 	return FALSE;
     if (PictureAddFilter (pScreen, FilterBilinear, 0) < 0)
 	return FALSE;
-    
+
     if (!PictureSetFilterAlias (pScreen, FilterNearest, FilterFast))
 	return FALSE;
     if (!PictureSetFilterAlias (pScreen, FilterBilinear, FilterGood))
 	return FALSE;
     if (!PictureSetFilterAlias (pScreen, FilterBilinear, FilterBest))
 	return FALSE;
+
+    if (PictureAddFilter (pScreen, FilterConvolution, miFilterValidateParams) < 0)
+	return FALSE;
     return TRUE;
 }
 
@@ -271,7 +275,7 @@
 		return BadAlloc;
 	} else
 	    new_params = NULL;
-	
+
 	if (pPicture->filter_nparams)
 	    xfree (pPicture->filter_params);
 	pPicture->filter_params = new_params;

Index: mipict.c
===================================================================
RCS file: /cvs/xserver/xserver/render/mipict.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -d -r1.24 -r1.25
--- mipict.c	2 Mar 2005 15:30:03 -0000	1.24
+++ mipict.c	13 Jun 2005 08:00:59 -0000	1.25
@@ -69,7 +69,7 @@
     }
     pPicture->clientClip = NULL;
     pPicture->clientClipType = CT_NONE;
-}    
+}
 
 int
 miChangePictureClip (PicturePtr    pPicture,
@@ -81,7 +81,7 @@
     PictureScreenPtr    ps = GetPictureScreen(pScreen);
     pointer		clientClip;
     int			clientClipType;
-    
+
     switch (type) {
     case CT_PIXMAP:
 	/* convert the pixmap to a region */
@@ -228,12 +228,12 @@
 	    {
 		if(pDrawable->x || pDrawable->y) {
 		    REGION_TRANSLATE(pScreen, pPicture->clientClip,
-				     pDrawable->x + pPicture->clipOrigin.x, 
+				     pDrawable->x + pPicture->clipOrigin.x,
 				     pDrawable->y + pPicture->clipOrigin.y);
 		    REGION_INTERSECT(pScreen, pPicture->pCompositeClip,
 				     pPicture->pCompositeClip, pPicture->clientClip);
 		    REGION_TRANSLATE(pScreen, pPicture->clientClip,
-				     -(pDrawable->x + pPicture->clipOrigin.x), 
+				     -(pDrawable->x + pPicture->clipOrigin.x),
 				     -(pDrawable->y + pPicture->clipOrigin.y));
 		} else {
 		    REGION_TRANSLATE(pScreen, pPicture->pCompositeClip,
@@ -280,17 +280,17 @@
     case PictFilterConvolution:
 	if (nparams < 3)
 	    return FALSE;
-	
+
 	if (xFixedFrac (params[0]) || xFixedFrac (params[1]))
 	    return FALSE;
 
 	nparams -= 2;
 	if ((xFixedToInt (params[0]) * xFixedToInt (params[1])) > nparams)
 	    return FALSE;
-	
+
 	break;
-    } 
-    
+    }
+
     return TRUE;
 }
 
@@ -336,7 +336,7 @@
     }
     return REGION_NOTEMPTY(pScreen, pRegion);
 }
-		  
+
 static __inline Bool
 miClipPictureSrc (RegionPtr	pRegion,
 		  PicturePtr	pPicture,
@@ -346,23 +346,23 @@
     /* XXX what to do with clipping from transformed pictures? */
     if (pPicture->transform)
 	return TRUE;
-    
+
     /* XXX what to do with clipping from pictures with filter that touch
        pixels outside the drawable? */
     if (pPicture->filter == PictFilterConvolution)
 	return TRUE;
-    
+
     if (pPicture->repeat)
     {
 	if (pPicture->clientClipType != CT_NONE)
 	{
-	    REGION_TRANSLATE(pScreen, pRegion, 
+	    REGION_TRANSLATE(pScreen, pRegion,
 			     dx - pPicture->clipOrigin.x,
 			     dy - pPicture->clipOrigin.y);
-	    if (!REGION_INTERSECT (pScreen, pRegion, pRegion, 
+	    if (!REGION_INTERSECT (pScreen, pRegion, pRegion,
 				   (RegionPtr) pPicture->clientClip))
 		return FALSE;
-	    REGION_TRANSLATE(pScreen, pRegion, 
+	    REGION_TRANSLATE(pScreen, pRegion,
 			     - (dx - pPicture->clipOrigin.x),
 			     - (dy - pPicture->clipOrigin.y));
 	}
@@ -386,7 +386,7 @@
 {
     DrawablePtr	pDrawable = pPicture->pDrawable;
     ScreenPtr	pScreen = pDrawable->pScreen;
-    
+
     if (pScreen->SourceValidate)
     {
         x -= pPicture->pDrawable->x;
@@ -518,7 +518,7 @@
 	{
 	    REGION_UNINIT (pScreen, pRegion);
 	    return FALSE;
-	}	
+	}
 	if (pMask->alphaMap)
 	{
 	    if (!miClipPictureSrc (pRegion, pMask->alphaMap,
@@ -592,7 +592,7 @@
 {
     ScreenPtr	pScreen = pSrc->pDrawable->pScreen;
     char	line[1];
-    
+
     /* Alpha-only */
     if (PICT_FORMAT_TYPE (pSrc->format) != PICT_TYPE_A)
 	return FALSE;
@@ -623,7 +623,7 @@
 {
     CARD32	    r, g, b, a;
     miIndexedPtr    pIndexed;
-    
+
     switch (format->type) {
     case PictTypeDirect:
 	r = (pixel >> format->direct.red) & format->direct.redMask;
@@ -653,7 +653,7 @@
 miPictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats)
 {
     PictureScreenPtr    ps;
-    
+
     if (!PictureInit (pScreen, formats, nformats))
 	return FALSE;
     ps = GetPictureScreen(pScreen);
@@ -680,7 +680,7 @@
     ps->Triangles	= miTriangles;
     ps->TriStrip	= miTriStrip;
     ps->TriFan		= miTriFan;
-    
+
     ps->RasterizeTrapezoid = 0;			/* requires DDX support */
     ps->AddTraps	= 0;			/* requires DDX support */
     ps->AddTriangles	= 0;			/* requires DDX support */