[cairo-commit] libic/src ic.c,1.11,1.12 ic.h,1.18,1.19 icblt.c,1.2,1.3 icbltone.c,1.4,1.5 iccolor.c,1.5,1.6 iccompose.c,1.10,1.11 icimage.c,1.12,1.13 icimage.h,1.13,1.14 icint.h,1.13,1.14 icrect.c,1.6,1.7 ictransform.c,1.3,1.4 ictrap.c,1.8,1.9 ictri.c,1.7,1.8

Carl Worth commit at pdx.freedesktop.org
Wed Oct 29 10:45:04 PST 2003


Committed by: cworth

Update of /cvs/cairo/libic/src
In directory pdx:/tmp/cvs-serv26988/src

Modified Files:
	ic.c ic.h icblt.c icbltone.c iccolor.c iccompose.c icimage.c 
	icimage.h icint.h icrect.c ictransform.c ictrap.c ictri.c 
Log Message:
Patch from Bryan Worth <bryan at theworths.org> to eliminate lots of leftover,
undesired dependencies on X header files.

Index: ic.c
===================================================================
RCS file: /cvs/cairo/libic/src/ic.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** ic.c	10 Sep 2003 00:36:25 -0000	1.11
--- ic.c	29 Oct 2003 18:45:02 -0000	1.12
***************
*** 141,145 ****
  
  static void
! IcCompositeSolidMask_nx8x8888 (uint8_t      op,
  			       IcImage    *iSrc,
  			       IcImage    *iMask,
--- 141,145 ----
  
  static void
! IcCompositeSolidMask_nx8x8888 (IcOperator   op,
  			       IcImage    *iSrc,
  			       IcImage    *iMask,
***************
*** 199,203 ****
  
  static void
! IcCompositeSolidMask_nx8888x8888C (uint8_t      op,
  				   IcImage    *iSrc,
  				   IcImage    *iMask,
--- 199,203 ----
  
  static void
! IcCompositeSolidMask_nx8888x8888C (IcOperator   op,
  				   IcImage    *iSrc,
  				   IcImage    *iMask,
***************
*** 272,276 ****
  
  static void
! IcCompositeSolidMask_nx8x0888 (uint8_t      op,
  			       IcImage    *iSrc,
  			       IcImage    *iMask,
--- 272,276 ----
  
  static void
! IcCompositeSolidMask_nx8x0888 (IcOperator   op,
  			       IcImage    *iSrc,
  			       IcImage    *iMask,
***************
*** 334,338 ****
  
  static void
! IcCompositeSolidMask_nx8x0565 (uint8_t      op,
  				  IcImage    *iSrc,
  				  IcImage    *iMask,
--- 334,338 ----
  
  static void
! IcCompositeSolidMask_nx8x0565 (IcOperator      op,
  				  IcImage    *iSrc,
  				  IcImage    *iMask,
***************
*** 397,401 ****
  
  static void
! IcCompositeSolidMask_nx8888x0565C (uint8_t      op,
  				   IcImage    *iSrc,
  				   IcImage    *iMask,
--- 397,401 ----
  
  static void
! IcCompositeSolidMask_nx8888x0565C (IcOperator   op,
  				   IcImage    *iSrc,
  				   IcImage    *iMask,
***************
*** 470,474 ****
  
  static void
! IcCompositeSrc_8888x8888 (uint8_t      op,
  			 IcImage    *iSrc,
  			 IcImage    *iMask,
--- 470,474 ----
  
  static void
! IcCompositeSrc_8888x8888 (IcOperator  op,
  			 IcImage    *iSrc,
  			 IcImage    *iMask,
***************
*** 516,520 ****
  
  static void
! IcCompositeSrc_8888x0888 (uint8_t      op,
  			 IcImage    *iSrc,
  			 IcImage    *iMask,
--- 516,520 ----
  
  static void
! IcCompositeSrc_8888x0888 (IcOperator  op,
  			 IcImage    *iSrc,
  			 IcImage    *iMask,
***************
*** 565,569 ****
  
  static void
! IcCompositeSrc_8888x0565 (uint8_t      op,
  			 IcImage    *iSrc,
  			 IcImage    *iMask,
--- 565,569 ----
  
  static void
! IcCompositeSrc_8888x0565 (IcOperator  op,
  			 IcImage    *iSrc,
  			 IcImage    *iMask,
***************
*** 617,621 ****
  
  static void
! IcCompositeSrc_0565x0565 (uint8_t      op,
  			  IcImage    *iSrc,
  			  IcImage    *iMask,
--- 617,621 ----
  
  static void
! IcCompositeSrc_0565x0565 (IcOperator   op,
  			  IcImage    *iSrc,
  			  IcImage    *iMask,
***************
*** 653,657 ****
  
  static void
! IcCompositeSrcAdd_8000x8000 (uint8_t	op,
  			     IcImage    *iSrc,
  			     IcImage    *iMask,
--- 653,657 ----
  
  static void
! IcCompositeSrcAdd_8000x8000 (IcOperator	  op,
  			     IcImage    *iSrc,
  			     IcImage    *iMask,
***************
*** 699,703 ****
  
  static void
! IcCompositeSrcAdd_8888x8888 (uint8_t	op,
  			     IcImage    *iSrc,
  			     IcImage    *iMask,
--- 699,703 ----
  
  static void
! IcCompositeSrcAdd_8888x8888 (IcOperator   op,
  			     IcImage    *iSrc,
  			     IcImage    *iMask,
***************
*** 752,756 ****
  
  static void
! IcCompositeSrcAdd_1000x1000 (uint8_t	op,
  			     IcImage    *iSrc,
  			     IcImage    *iMask,
--- 752,756 ----
  
  static void
! IcCompositeSrcAdd_1000x1000 (IcOperator   op,
  			     IcImage    *iSrc,
  			     IcImage    *iMask,
***************
*** 790,799 ****
  	   srcBpp,
  
! 	   FALSE,
! 	   FALSE);
  }
  
  static void
! IcCompositeSolidMask_nx1xn (uint8_t      op,
  			    IcImage    *iSrc,
  			    IcImage    *iMask,
--- 790,799 ----
  	   srcBpp,
  
! 	   0,
! 	   0);
  }
  
  static void
! IcCompositeSolidMask_nx1xn (IcOperator   op,
  			    IcImage    *iSrc,
  			    IcImage    *iMask,
***************
*** 861,865 ****
  
  void
! IcComposite (char	op,
  	     IcImage	*iSrc,
  	     IcImage	*iMask,
--- 861,865 ----
  
  void
! IcComposite (IcOperator	op,
  	     IcImage	*iSrc,
  	     IcImage	*iMask,
***************
*** 878,886 ****
      PixRegionBox    *pbox;
      CompositeFunc   func;
!     Bool	    srcRepeat = iSrc->repeat;
!     Bool	    maskRepeat = FALSE;
!     Bool	    srcAlphaMap = iSrc->alphaMap != 0;
!     Bool	    maskAlphaMap = FALSE;
!     Bool	    dstAlphaMap = iDst->alphaMap != 0;
      int		    x_msk, y_msk, x_src, y_src, x_dst, y_dst;
      int		    w, h, w_this, h_this;
--- 878,886 ----
      PixRegionBox    *pbox;
      CompositeFunc   func;
!     int	    srcRepeat = iSrc->repeat;
!     int	    maskRepeat = 0;
!     int	    srcAlphaMap = iSrc->alphaMap != 0;
!     int	    maskAlphaMap = 0;
!     int	    dstAlphaMap = iDst->alphaMap != 0;
      int		    x_msk, y_msk, x_src, y_src, x_dst, y_dst;
      int		    w, h, w_this, h_this;
***************
*** 919,923 ****
      if (!maskAlphaMap && !srcAlphaMap && !dstAlphaMap)
      switch (op) {
!     case PictOpOver:
  	if (iMask)
  	{
--- 919,923 ----
      if (!maskAlphaMap && !srcAlphaMap && !dstAlphaMap)
      switch (op) {
!     case IcOperatorOver:
  	if (iMask)
  	{
***************
*** 926,930 ****
  		iSrc->pixels->height == 1)
  	    {
! 		srcRepeat = FALSE;
  		if (PICT_FORMAT_COLOR(iSrc->format_code)) {
  		    switch (iMask->format_code) {
--- 926,930 ----
  		iSrc->pixels->height == 1)
  	    {
! 		srcRepeat = 0;
  		if (PICT_FORMAT_COLOR(iSrc->format_code)) {
  		    switch (iMask->format_code) {
***************
*** 1040,1044 ****
  	}
  	break;
!     case PictOpAdd:
  	if (iMask == 0)
  	{
--- 1040,1044 ----
  	}
  	break;
!     case IcOperatorAdd:
  	if (iMask == 0)
  	{
***************
*** 1075,1078 ****
--- 1075,1081 ----
  	}
  	break;
+     default:
+ 	func = IcCompositeGeneral;
+ 	break;
      }
      n = PixRegionNumRects (region);

Index: ic.h
===================================================================
RCS file: /cvs/cairo/libic/src/ic.h,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** ic.h	5 Sep 2003 22:24:45 -0000	1.18
--- ic.h	29 Oct 2003 18:45:02 -0000	1.19
***************
*** 53,56 ****
--- 53,75 ----
  /* icformat.c */
  
+ 
+ typedef enum _IcOperator {
+     IcOperatorClear,
+     IcOperatorSrc,
+     IcOperatorDst,
+     IcOperatorOver,
+     IcOperatorOverReverse,
+     IcOperatorIn,
+     IcOperatorInReverse,
+     IcOperatorOut,
+     IcOperatorOutReverse,
+     IcOperatorAtop,
+     IcOperatorAtopReverse,
+     IcOperatorXor,
+     IcOperatorAdd,
+     IcOperatorSaturate,
+ } IcOperator;
+ 
+ 
  typedef enum _IcFormatName {
      IcFormatNameARGB32,
***************
*** 206,210 ****
  
  extern void __external_linkage
! IcFillRectangle (char		op,
  		 IcImage	*dst,
  		 const IcColor	*color,
--- 225,229 ----
  
  extern void __external_linkage
! IcFillRectangle (IcOperator	op,
  		 IcImage	*dst,
  		 const IcColor	*color,
***************
*** 215,219 ****
  
  extern void __external_linkage
! IcFillRectangles (char			op,
  		  IcImage		*dst,
  		  const IcColor		*color,
--- 234,238 ----
  
  extern void __external_linkage
! IcFillRectangles (IcOperator		op,
  		  IcImage		*dst,
  		  const IcColor		*color,
***************
*** 225,229 ****
  /* XXX: Switch to enum for op */
  extern void __external_linkage
! IcCompositeTrapezoids (char		op,
  		       IcImage		*src,
  		       IcImage		*dst,
--- 244,248 ----
  /* XXX: Switch to enum for op */
  extern void __external_linkage
! IcCompositeTrapezoids (IcOperator	op,
  		       IcImage		*src,
  		       IcImage		*dst,
***************
*** 236,240 ****
  
  extern void __external_linkage
! IcCompositeTriangles (char		op,
  		      IcImage		*src,
  		      IcImage		*dst,
--- 255,259 ----
  
  extern void __external_linkage
! IcCompositeTriangles (IcOperator	op,
  		      IcImage		*src,
  		      IcImage		*dst,
***************
*** 245,249 ****
  
  extern void __external_linkage
! IcCompositeTriStrip (char		op,
  		     IcImage		*src,
  		     IcImage		*dst,
--- 264,268 ----
  
  extern void __external_linkage
! IcCompositeTriStrip (IcOperator		op,
  		     IcImage		*src,
  		     IcImage		*dst,
***************
*** 255,259 ****
  
  extern void __external_linkage
! IcCompositeTriFan (char			op,
  		   IcImage		*src,
  		   IcImage		*dst,
--- 274,278 ----
  
  extern void __external_linkage
! IcCompositeTriFan (IcOperator		op,
  		   IcImage		*src,
  		   IcImage		*dst,
***************
*** 266,270 ****
  
  extern void __external_linkage
! IcComposite (char	op,
  	     IcImage	*iSrc,
  	     IcImage    *iMask,
--- 285,289 ----
  
  extern void __external_linkage
! IcComposite (IcOperator	op,
  	     IcImage	*iSrc,
  	     IcImage    *iMask,

Index: icblt.c
===================================================================
RCS file: /cvs/cairo/libic/src/icblt.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** icblt.c	5 Sep 2003 22:24:45 -0000	1.2
--- icblt.c	29 Oct 2003 18:45:02 -0000	1.3
***************
*** 53,58 ****
         int	bpp,
         
!        Bool	reverse,
!        Bool	upsidedown)
  {
      IcBits  *src, *dst;
--- 53,58 ----
         int	bpp,
         
!        int	reverse,
!        int	upsidedown)
  {
      IcBits  *src, *dst;
***************
*** 61,65 ****
      IcBits  bits, bits1;
      int	    n, nmiddle;
!     Bool    destInvarient;
      int	    startbyte, endbyte;
      IcDeclareMergeRop ();
--- 61,65 ----
      IcBits  bits, bits1;
      int	    n, nmiddle;
!     int    destInvarient;
      int	    startbyte, endbyte;
      IcDeclareMergeRop ();
***************
*** 338,342 ****
  	     IcBits	    pm,
  	 
! 	     Bool	    reverse)
  {
  #ifdef DEBUG_BLT24
--- 338,342 ----
  	     IcBits	    pm,
  	 
! 	     int	    reverse)
  {
  #ifdef DEBUG_BLT24
***************
*** 555,560 ****
  	 IcBits	    pm,
  
! 	 Bool	    reverse,
! 	 Bool	    upsidedown)
  {
      if (upsidedown)
--- 555,560 ----
  	 IcBits	    pm,
  
! 	 int	    reverse,
! 	 int	    upsidedown)
  {
      if (upsidedown)
***************
*** 623,628 ****
      int	    n;
      
!     Bool    destInvarient;
!     Bool    even;
      IcDeclareMergeRop ();
  
--- 623,628 ----
      int	    n;
      
!     int    destInvarient;
!     int    even;
      IcDeclareMergeRop ();
  
***************
*** 640,644 ****
      IcMaskBits(dstXOdd, width, startmaskOdd, nmiddleOdd, endmaskOdd);
      
!     even = TRUE;
      InitializeShifts(srcXEven, dstXEven, leftShiftEven, rightShiftEven);
      InitializeShifts(srcXOdd, dstXOdd, leftShiftOdd, rightShiftOdd);
--- 640,644 ----
      IcMaskBits(dstXOdd, width, startmaskOdd, nmiddleOdd, endmaskOdd);
      
!     even = 1;
      InitializeShifts(srcXEven, dstXEven, leftShiftEven, rightShiftEven);
      InitializeShifts(srcXOdd, dstXOdd, leftShiftOdd, rightShiftOdd);
***************
*** 658,662 ****
  	    srcLine += srcStrideEven;
  	    dstLine += dstStrideEven;
! 	    even = FALSE;
  	}
  	else
--- 658,662 ----
  	    srcLine += srcStrideEven;
  	    dstLine += dstStrideEven;
! 	    even = 0;
  	}
  	else
***************
*** 671,675 ****
  	    srcLine += srcStrideOdd;
  	    dstLine += dstStrideOdd;
! 	    even = TRUE;
  	}
  	if (srcX == dstX)
--- 671,675 ----
  	    srcLine += srcStrideOdd;
  	    dstLine += dstStrideOdd;
! 	    even = 1;
  	}
  	if (srcX == dstX)
***************
*** 776,780 ****
  	    IcBits	pm)
  {
!     Bool    even = TRUE;
      
      while (height--)
--- 776,780 ----
  	    IcBits	pm)
  {
!     int    even = 1;
      
      while (height--)
***************
*** 783,798 ****
  	{
  	    IcBlt24Line (srcLine, srcXEven, dstLine, dstXEven,
! 			 width, alu, pm, FALSE);
  	    srcLine += srcStrideEven;
  	    dstLine += dstStrideEven;
! 	    even = FALSE;
  	}
  	else
  	{
  	    IcBlt24Line (srcLine, srcXOdd, dstLine, dstXOdd,
! 			 width, alu, pm, FALSE);
  	    srcLine += srcStrideOdd;
  	    dstLine += dstStrideOdd;
! 	    even = TRUE;
  	}
      }
--- 783,798 ----
  	{
  	    IcBlt24Line (srcLine, srcXEven, dstLine, dstXEven,
! 			 width, alu, pm, 0);
  	    srcLine += srcStrideEven;
  	    dstLine += dstStrideEven;
! 	    even = 0;
  	}
  	else
  	{
  	    IcBlt24Line (srcLine, srcXOdd, dstLine, dstXOdd,
! 			 width, alu, pm, 0);
  	    srcLine += srcStrideOdd;
  	    dstLine += dstStrideOdd;
! 	    even = 1;
  	}
      }
***************
*** 921,925 ****
  	       dstX, 
  	       width, height,
! 	       alu, pm, bpp, FALSE, FALSE);
      }
  }
--- 921,925 ----
  	       dstX, 
  	       width, height,
! 	       alu, pm, bpp, 0, 0);
      }
  }

Index: icbltone.c
===================================================================
RCS file: /cvs/cairo/libic/src/icbltone.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** icbltone.c	5 Sep 2003 22:24:45 -0000	1.4
--- icbltone.c	29 Oct 2003 18:45:02 -0000	1.5
***************
*** 77,81 ****
  							   
  #if IC_SHIFT == 6
! static CARD8 const Ic8Lane[256] = {
  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
  22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
--- 77,81 ----
  							   
  #if IC_SHIFT == 6
! static uint8_t const Ic8Lane[256] = {
  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
  22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
***************
*** 94,98 ****
  };
  
! static CARD8 const Ic16Lane[256] = {
      0x00, 0x03, 0x0c, 0x0f,
      0x30, 0x33, 0x3c, 0x3f,
--- 94,98 ----
  };
  
! static uint8_t const Ic16Lane[256] = {
      0x00, 0x03, 0x0c, 0x0f,
      0x30, 0x33, 0x3c, 0x3f,
***************
*** 101,105 ****
  };
  
! static CARD8 const Ic32Lane[16] = {
      0x00, 0x0f, 0xf0, 0xff,
  };
--- 101,105 ----
  };
  
! static uint8_t const Ic32Lane[16] = {
      0x00, 0x0f, 0xf0, 0xff,
  };
***************
*** 107,124 ****
  
  #if IC_SHIFT == 5
! static CARD8 const Ic8Lane[16] = {
      0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
  };
  
! static CARD8 const Ic16Lane[16] = {
      0, 3, 12, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  };
  
! static CARD8 const Ic32Lane[16] = {
      0, 15,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  };
  #endif
  
! static const CARD8 *
  IcLaneTable(int bpp)
  {
--- 107,124 ----
  
  #if IC_SHIFT == 5
! static uint8_t const Ic8Lane[16] = {
      0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
  };
  
! static uint8_t const Ic16Lane[16] = {
      0, 3, 12, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  };
  
! static uint8_t const Ic32Lane[16] = {
      0, 15,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  };
  #endif
  
! static const uint8_t *
  IcLaneTable(int bpp)
  {
***************
*** 164,173 ****
      int		    n, nmiddle;
      int		    dstS;			/* stipple-relative dst X coordinate */
!     Bool	    copy;			/* accelerate dest-invariant */
!     Bool	    transparent;		/* accelerate 0 nop */
      int		    srcinc;			/* source units consumed */
!     Bool	    endNeedsLoad = FALSE;	/* need load for endmask */
  #ifndef ICNOPIXADDR
!     const CARD8	    *IcLane;
  #endif
      int		    startbyte, endbyte;
--- 164,173 ----
      int		    n, nmiddle;
      int		    dstS;			/* stipple-relative dst X coordinate */
!     int	    copy;			/* accelerate dest-invariant */
!     int	    transparent;		/* accelerate 0 nop */
      int		    srcinc;			/* source units consumed */
!     int	    endNeedsLoad = 0;	/* need load for endmask */
  #ifndef ICNOPIXADDR
!     const uint8_t	    *IcLane;
  #endif
      int		    startbyte, endbyte;
***************
*** 195,204 ****
      unitsPerSrc = IC_STIP_UNIT / pixelsPerDst;
      
!     copy = FALSE;
!     transparent = FALSE;
      if (bgand == 0 && fgand == 0)
! 	copy = TRUE;
      else if (bgand == IC_ALLONES && bgxor == 0)
! 	transparent = TRUE;
  
      /*
--- 195,204 ----
      unitsPerSrc = IC_STIP_UNIT / pixelsPerDst;
      
!     copy = 0;
!     transparent = 0;
      if (bgand == 0 && fgand == 0)
! 	copy = 1;
      else if (bgand == IC_ALLONES && bgxor == 0)
! 	transparent = 1;
  
      /*
***************
*** 348,352 ****
  			{
  			    switch (IcLane[IcLeftStipBits(bits,pixelsPerDst)]) {
! 				LaneCases((CARD8 *) dst);
  			    }
  			    bits = IcStipLeft(bits,pixelsPerDst);
--- 348,352 ----
  			{
  			    switch (IcLane[IcLeftStipBits(bits,pixelsPerDst)]) {
! 				LaneCases((uint8_t *) dst);
  			    }
  			    bits = IcStipLeft(bits,pixelsPerDst);

Index: iccolor.c
===================================================================
RCS file: /cvs/cairo/libic/src/iccolor.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** iccolor.c	10 Sep 2003 00:36:25 -0000	1.5
--- iccolor.c	29 Oct 2003 18:45:02 -0000	1.6
***************
*** 42,46 ****
  		IcBits		*pixel)
  {
!     CARD32	    r, g, b, a;
  
      r = color->red >> (16 - _IcOnes (format->redMask));
--- 42,46 ----
  		IcBits		*pixel)
  {
!     uint32_t	    r, g, b, a;
  
      r = color->red >> (16 - _IcOnes (format->redMask));
***************
*** 56,61 ****
  slim_hidden_def(IcColorToPixel);
  
! static CARD16
! IcFillColor (CARD32 pixel, int bits)
  {
      while (bits < 16)
--- 56,61 ----
  slim_hidden_def(IcColorToPixel);
  
! static uint16_t
! IcFillColor (uint32_t pixel, int bits)
  {
      while (bits < 16)
***************
*** 64,68 ****
  	bits <<= 1;
      }
!     return (CARD16) pixel;
  }
  
--- 64,68 ----
  	bits <<= 1;
      }
!     return (uint16_t) pixel;
  }
  
***************
*** 72,76 ****
  		IcColor		*color)
  {
!     CARD32	    r, g, b, a;
  
      r = (pixel >> format->red) & format->redMask;
--- 72,76 ----
  		IcColor		*color)
  {
!     uint32_t	    r, g, b, a;
  
      r = (pixel >> format->red) & format->redMask;

Index: iccompose.c
===================================================================
RCS file: /cvs/cairo/libic/src/iccompose.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** iccompose.c	5 Sep 2003 22:24:45 -0000	1.10
--- iccompose.c	29 Oct 2003 18:45:02 -0000	1.11
***************
*** 2518,2534 ****
  
  
! Bool
  IcBuildCompositeOperand (IcImage	    *image,
  			 IcCompositeOperand op[4],
  			 int16_t		    x,
  			 int16_t		    y,
! 			 Bool		    transform,
! 			 Bool		    alpha)
  {
      /* Check for transform */
      if (transform && image->transform)
      {
! 	if (!IcBuildCompositeOperand (image, &op[1], 0, 0, FALSE, alpha))
! 	    return FALSE;
  	
  	op->u.transform.top_y = image->pixels->y;
--- 2518,2534 ----
  
  
! int
  IcBuildCompositeOperand (IcImage	    *image,
  			 IcCompositeOperand op[4],
  			 int16_t		    x,
  			 int16_t		    y,
! 			 int		    transform,
! 			 int		    alpha)
  {
      /* Check for transform */
      if (transform && image->transform)
      {
! 	if (!IcBuildCompositeOperand (image, &op[1], 0, 0, 0, alpha))
! 	    return 0;
  	
  	op->u.transform.top_y = image->pixels->y;
***************
*** 2550,2565 ****
  	op->clip = op[1].clip;
  	
! 	return TRUE;
      }
      /* Check for external alpha */
      else if (alpha && image->alphaMap)
      {
! 	if (!IcBuildCompositeOperand (image, &op[1], x, y, FALSE, FALSE))
! 	    return FALSE;
  	if (!IcBuildCompositeOperand (image->alphaMap, &op[2],
  				      x - image->alphaOrigin.x,
  				      y - image->alphaOrigin.y,
! 				      FALSE, FALSE))
! 	    return FALSE;
  	op->u.external.alpha_dx = image->alphaOrigin.x;
  	op->u.external.alpha_dy = image->alphaOrigin.y;
--- 2550,2565 ----
  	op->clip = op[1].clip;
  	
! 	return 1;
      }
      /* Check for external alpha */
      else if (alpha && image->alphaMap)
      {
! 	if (!IcBuildCompositeOperand (image, &op[1], x, y, 0, 0))
! 	    return 0;
  	if (!IcBuildCompositeOperand (image->alphaMap, &op[2],
  				      x - image->alphaOrigin.x,
  				      y - image->alphaOrigin.y,
! 				      0, 0))
! 	    return 0;
  	op->u.external.alpha_dx = image->alphaOrigin.x;
  	op->u.external.alpha_dy = image->alphaOrigin.y;
***************
*** 2574,2578 ****
  	op->clip = op[1].clip;
  	
! 	return TRUE;
      }
      /* Build simple operand */
--- 2574,2578 ----
  	op->clip = op[1].clip;
  	
! 	return 1;
      }
      /* Build simple operand */
***************
*** 2621,2632 ****
  		op->u.drawable.stride = stride;
  		op->u.drawable.bpp = bpp;
! 		return TRUE;
  	    }
! 	return FALSE;
      }
  }
  
  void
! IcCompositeGeneral (uint8_t	op,
  		    IcImage	*iSrc,
  		    IcImage	*iMask,
--- 2621,2632 ----
  		op->u.drawable.stride = stride;
  		op->u.drawable.bpp = bpp;
! 		return 1;
  	    }
! 	return 0;
      }
  }
  
  void
! IcCompositeGeneral (IcOperator	op,
  		    IcImage	*iSrc,
  		    IcImage	*iMask,
***************
*** 2648,2654 ****
      int			w;
  
!     if (!IcBuildCompositeOperand (iSrc, src, xSrc, ySrc, TRUE, TRUE))
  	return;
!     if (!IcBuildCompositeOperand (iDst, dst, xDst, yDst, FALSE, TRUE))
  	return;
      if (iSrc->alphaMap)
--- 2648,2654 ----
      int			w;
  
!     if (!IcBuildCompositeOperand (iSrc, src, xSrc, ySrc, 1, 1))
  	return;
!     if (!IcBuildCompositeOperand (iDst, dst, xDst, yDst, 0, 1))
  	return;
      if (iSrc->alphaMap)
***************
*** 2675,2679 ****
      if (iMask)
      {
! 	if (!IcBuildCompositeOperand (iMask, msk, xMask, yMask, TRUE, TRUE))
  	    return;
  	pmsk = msk;
--- 2675,2679 ----
      if (iMask)
      {
! 	if (!IcBuildCompositeOperand (iMask, msk, xMask, yMask, 1, 1))
  	    return;
  	pmsk = msk;

Index: icimage.c
===================================================================
RCS file: /cvs/cairo/libic/src/icimage.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** icimage.c	10 Sep 2003 00:36:25 -0000	1.12
--- icimage.c	29 Oct 2003 18:45:02 -0000	1.13
***************
*** 107,118 ****
      image->refcnt = 1;
      image->repeat = 0;
!     image->graphicsExposures = FALSE;
      image->subWindowMode = ClipByChildren;
      image->polyEdge = PolyEdgeSharp;
      image->polyMode = PolyModePrecise;
!     /* XXX: In the server this was FALSE. Why? */
!     image->freeCompClip = TRUE;
      image->clientClipType = CT_NONE;
!     image->componentAlpha = FALSE;
  
      image->alphaMap = 0;
--- 107,118 ----
      image->refcnt = 1;
      image->repeat = 0;
!     image->graphicsExposures = 0;
      image->subWindowMode = ClipByChildren;
      image->polyEdge = PolyEdgeSharp;
      image->polyMode = PolyModePrecise;
!     /* XXX: In the server this was 0. Why? */
!     image->freeCompClip = 1;
      image->clientClipType = CT_NONE;
!     image->componentAlpha = 0;
  
      image->alphaMap = 0;
***************
*** 124,128 ****
      image->clientClip = 0;
  
!     image->dither = None;
  
      image->stateChanges = (1 << (CPLastBit+1)) - 1;
--- 124,128 ----
      image->clientClip = 0;
  
!     image->dither = 0L;
  
      image->stateChanges = (1 << (CPLastBit+1)) - 1;
***************
*** 164,168 ****
  	    image->transform = malloc (sizeof (IcTransform));
  	    if (!image->transform)
! 		return BadAlloc;
  	}
  	*image->transform = *transform;
--- 164,168 ----
  	    image->transform = malloc (sizeof (IcTransform));
  	    if (!image->transform)
! 		return 1;
  	}
  	*image->transform = *transform;
***************
*** 176,180 ****
  	}
      }
!     return Success;
  }
  
--- 176,180 ----
  	}
      }
!     return 0;
  }
  
***************
*** 258,267 ****
      image->clientClipType = CT_REGION;
      image->stateChanges |= CPClipMask;
!     return Success;
  }
  
! #define BOUND(v)	(INT16) ((v) < MINSHORT ? MINSHORT : (v) > MAXSHORT ? MAXSHORT : (v))
  
! static __inline Bool
  IcClipImageReg (PixRegion	*region,
  		PixRegion	*clip,
--- 258,267 ----
      image->clientClipType = CT_REGION;
      image->stateChanges |= CPClipMask;
!     return 0;
  }
  
! #define BOUND(v)	(int16_t) ((v) < MINSHORT ? MINSHORT : (v) > MAXSHORT ? MAXSHORT : (v))
  
! static __inline int
  IcClipImageReg (PixRegion	*region,
  		PixRegion	*clip,
***************
*** 296,303 ****
  	PixRegionTranslate (region, -dx, -dy);
      }
!     return TRUE;
  }
  		  
! static __inline Bool
  IcClipImageSrc (PixRegion	*region,
  		IcImage		*image,
--- 296,303 ----
  	PixRegionTranslate (region, -dx, -dy);
      }
!     return 1;
  }
  		  
! static __inline int
  IcClipImageSrc (PixRegion	*region,
  		IcImage		*image,
***************
*** 307,311 ****
      /* XXX what to do with clipping from transformed pictures? */
      if (image->transform)
! 	return TRUE;
      if (image->repeat)
      {
--- 307,311 ----
      /* XXX what to do with clipping from transformed pictures? */
      if (image->transform)
! 	return 1;
      if (image->repeat)
      {
***************
*** 320,324 ****
  			   - (dy - image->clipOrigin.y));
  	}
! 	return TRUE;
      }
      else
--- 320,324 ----
  			   - (dy - image->clipOrigin.y));
  	}
! 	return 1;
      }
      else
***************
*** 329,333 ****
  			       dy);
      }
!     return TRUE;
  }
  
--- 329,333 ----
  			       dy);
      }
!     return 1;
  }
  
***************
*** 340,344 ****
  IcImageChange (IcImage		*image,
  	       Mask		vmask,
! 	       XID		*vlist,
  	       DevUnion		*ulist,
  	       int		*error_value)
--- 340,344 ----
  IcImageChange (IcImage		*image,
  	       Mask		vmask,
! 	       unsigned int	*vlist,
  	       DevUnion		*ulist,
  	       int		*error_value)
***************
*** 377,395 ****
  		    iAlpha->refcnt++;
  		if (image->alphaMap)
! 		    IcImageDestroy ((pointer) image->alphaMap);
  		image->alphaMap = iAlpha;
  	    }
  	    break;
  	case CPAlphaXOrigin:
! 	    image->alphaOrigin.x = NEXT_VAL(INT16);
  	    break;
  	case CPAlphaYOrigin:
! 	    image->alphaOrigin.y = NEXT_VAL(INT16);
  	    break;
  	case CPClipXOrigin:
! 	    image->clipOrigin.x = NEXT_VAL(INT16);
  	    break;
  	case CPClipYOrigin:
! 	    image->clipOrigin.y = NEXT_VAL(INT16);
  	    break;
  	case CPClipMask:
--- 377,395 ----
  		    iAlpha->refcnt++;
  		if (image->alphaMap)
! 		    IcImageDestroy ((void *) image->alphaMap);
  		image->alphaMap = iAlpha;
  	    }
  	    break;
  	case CPAlphaXOrigin:
! 	    image->alphaOrigin.x = NEXT_VAL(int16_t);
  	    break;
  	case CPAlphaYOrigin:
! 	    image->alphaOrigin.y = NEXT_VAL(int16_t);
  	    break;
  	case CPClipXOrigin:
! 	    image->clipOrigin.x = NEXT_VAL(int16_t);
  	    break;
  	case CPClipYOrigin:
! 	    image->clipOrigin.y = NEXT_VAL(int16_t);
  	    break;
  	case CPClipMask:
***************
*** 406,410 ****
  		}
  		error = IcImageChangeClip (image, clipType,
! 					   (pointer)mask, 0);
  		break;
  	    }
--- 406,410 ----
  		}
  		error = IcImageChangeClip (image, clipType,
! 					   (void *)mask, 0);
  		break;
  	    }
***************
*** 462,466 ****
  	    break;
  	case CPDither:
! 	    image->dither = NEXT_VAL(Atom);
  	    break;
  	case CPComponentAlpha:
--- 462,466 ----
  	    break;
  	case CPDither:
! 	    image->dither = NEXT_VAL(unsigned long);
  	    break;
  	case CPComponentAlpha:
***************
*** 504,511 ****
  				 nRect, rects, CT_UNSORTED);
      if (!clientClip)
! 	return BadAlloc;
      result =(*ps->ChangePictureClip) (pPicture, CT_REGION, 
! 				      (pointer) clientClip, 0);
!     if (result == Success)
      {
  	pPicture->clipOrigin.x = xOrigin;
--- 504,511 ----
  				 nRect, rects, CT_UNSORTED);
      if (!clientClip)
! 	return 1;
      result =(*ps->ChangePictureClip) (pPicture, CT_REGION, 
! 				      (void *) clientClip, 0);
!     if (result == 0)
      {
  	pPicture->clipOrigin.x = xOrigin;
***************
*** 518,534 ****
  */
  
! Bool
  IcComputeCompositeRegion (PixRegion	*region,
  			  IcImage	*iSrc,
  			  IcImage	*iMask,
  			  IcImage	*iDst,
! 			  INT16		xSrc,
! 			  INT16		ySrc,
! 			  INT16		xMask,
! 			  INT16		yMask,
! 			  INT16		xDst,
! 			  INT16		yDst,
! 			  CARD16	width,
! 			  CARD16	height)
  {
      int		v;
--- 518,534 ----
  */
  
! int
  IcComputeCompositeRegion (PixRegion	*region,
  			  IcImage	*iSrc,
  			  IcImage	*iMask,
  			  IcImage	*iDst,
! 			  int16_t		xSrc,
! 			  int16_t		ySrc,
! 			  int16_t		xMask,
! 			  int16_t		yMask,
! 			  int16_t		xDst,
! 			  int16_t		yDst,
! 			  uint16_t	width,
! 			  uint16_t	height)
  {
      int		v;
***************
*** 551,555 ****
      {
  	PixRegionEmpty (region);
! 	return TRUE;
      }
      /* clip against src */
--- 551,555 ----
      {
  	PixRegionEmpty (region);
! 	return 1;
      }
      /* clip against src */
***************
*** 557,561 ****
      {
  	PixRegionDestroy (region);
! 	return FALSE;
      }
      if (iSrc->alphaMap)
--- 557,561 ----
      {
  	PixRegionDestroy (region);
! 	return 0;
      }
      if (iSrc->alphaMap)
***************
*** 566,570 ****
  	{
  	    PixRegionDestroy (region);
! 	    return FALSE;
  	}
      }
--- 566,570 ----
  	{
  	    PixRegionDestroy (region);
! 	    return 0;
  	}
      }
***************
*** 575,579 ****
  	{
  	    PixRegionDestroy (region);
! 	    return FALSE;
  	}	
  	if (iMask->alphaMap)
--- 575,579 ----
  	{
  	    PixRegionDestroy (region);
! 	    return 0;
  	}	
  	if (iMask->alphaMap)
***************
*** 584,588 ****
  	    {
  		PixRegionDestroy (region);
! 		return FALSE;
  	    }
  	}
--- 584,588 ----
  	    {
  		PixRegionDestroy (region);
! 		return 0;
  	    }
  	}
***************
*** 591,595 ****
      {
  	PixRegionDestroy (region);
! 	return FALSE;
      }
      if (iDst->alphaMap)
--- 591,595 ----
      {
  	PixRegionDestroy (region);
! 	return 0;
      }
      if (iDst->alphaMap)
***************
*** 600,607 ****
  	{
  	    PixRegionDestroy (region);
! 	    return FALSE;
  	}
      }
!     return TRUE;
  }
  
--- 600,607 ----
  	{
  	    PixRegionDestroy (region);
! 	    return 0;
  	}
      }
!     return 1;
  }
  

Index: icimage.h
===================================================================
RCS file: /cvs/cairo/libic/src/icimage.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** icimage.h	5 Sep 2003 22:24:45 -0000	1.13
--- icimage.h	29 Oct 2003 18:45:02 -0000	1.14
***************
*** 27,40 ****
  #define _ICIMAGE_H_
  
- #include <X11/Xdefs.h>
  
- #include "X11/Xprotostr.h"
  
! typedef xPoint DDXPointRec;
  typedef union _DevUnion {
!     pointer		ptr;
      long		val;
      unsigned long	uval;
!     pointer		(*fptr)(
  #if NeedFunctionPrototypes
                          void
--- 27,38 ----
  #define _ICIMAGE_H_
  
  
  
! 
  typedef union _DevUnion {
!     void 		*ptr;
      long		val;
      unsigned long	uval;
!     void		*(*fptr)(
  #if NeedFunctionPrototypes
                          void
***************
*** 50,54 ****
  */
  
- #include <X11/Xutil.h>
  
  #define IcIntMult(a,b,t) ( (t) = (a) * (b) + 0x80, ( ( ( (t)>>8 ) + (t) )>>8 ) )
--- 48,51 ----
***************
*** 122,131 ****
  
      struct _IcImage *alphaMap;
!     DDXPointRec	    alphaOrigin;
  
!     DDXPointRec	    clipOrigin;
!     pointer	    clientClip;
  
!     Atom	    dither;
  
      unsigned long   stateChanges;
--- 119,128 ----
  
      struct _IcImage *alphaMap;
!     IcPoint	    alphaOrigin;
  
!     IcPoint 	    clipOrigin;
!     void	   *clientClip;
  
!     unsigned long   dither;
  
      unsigned long   stateChanges;
***************
*** 156,160 ****
  /* XXX: We're not supporting indexed operations, right?
  typedef struct _IcIndexed {
!     Bool	color;
      uint32_t	rgba[IC_MAX_INDEXED];
      IcIndexType	ent[32768];
--- 153,157 ----
  /* XXX: We're not supporting indexed operations, right?
  typedef struct _IcIndexed {
!     int	color;
      uint32_t	rgba[IC_MAX_INDEXED];
      IcIndexType	ent[32768];
***************
*** 181,185 ****
  IcImageChange (IcImage		*image,
  	       Mask		vmask,
! 	       XID		*vlist,
  	       DevUnion		*ulist,
  	       int		*error_value);
--- 178,182 ----
  IcImageChange (IcImage		*image,
  	       Mask		vmask,
! 	       unsigned int	*vlist,
  	       DevUnion		*ulist,
  	       int		*error_value);
***************
*** 196,200 ****
  
  /* XXX: What should this be?
! extern Bool __internal_linkage
  IcClipPicture (PixRegion    *region,
  	       IcImage	    *image,
--- 193,197 ----
  
  /* XXX: What should this be?
! extern int __internal_linkage
  IcClipPicture (PixRegion    *region,
  	       IcImage	    *image,
***************
*** 205,209 ****
  */
  
! extern Bool __internal_linkage
  IcComputeCompositeRegion (PixRegion	*region,
  			  IcImage	*iSrc,
--- 202,206 ----
  */
  
! extern int __internal_linkage
  IcComputeCompositeRegion (PixRegion	*region,
  			  IcImage	*iSrc,
***************
*** 220,224 ****
  
  /*
! extern Bool __internal_linkage
  IcPictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats);
  */
--- 217,221 ----
  
  /*
! extern int __internal_linkage
  IcPictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats);
  */
***************
*** 226,230 ****
  /*
  extern void __internal_linkage
! IcGlyphs (uint8_t		op,
  	  PicturePtr	pSrc,
  	  PicturePtr	pDst,
--- 223,227 ----
  /*
  extern void __internal_linkage
! IcGlyphs (IcOperator	op,
  	  PicturePtr	pSrc,
  	  PicturePtr	pDst,
***************
*** 239,243 ****
  /*
  extern void __internal_linkage
! IcCompositeRects (uint8_t		op,
  		  PicturePtr	pDst,
  		  xRenderColor  *color,
--- 236,240 ----
  /*
  extern void __internal_linkage
! IcCompositeRects (IcOperator	op,
  		  PicturePtr	pDst,
  		  xRenderColor  *color,
***************
*** 252,256 ****
  		      uint16_t	height);
  
! typedef void	(*CompositeFunc) (uint8_t      op,
  				  IcImage    *iSrc,
  				  IcImage    *iMask,
--- 249,253 ----
  		      uint16_t	height);
  
! typedef void	(*CompositeFunc) (IcOperator   op,
  				  IcImage    *iSrc,
  				  IcImage    *iMask,
***************
*** 329,342 ****
  } IcCompSrc;
  
! extern Bool __internal_linkage
  IcBuildCompositeOperand (IcImage	    *image,
  			 IcCompositeOperand op[4],
  			 int16_t		    x,
  			 int16_t		    y,
! 			 Bool		    transform,
! 			 Bool		    alpha);
  
  extern void __internal_linkage
! IcCompositeGeneral (uint8_t	op,
  		    IcImage	*iSrc,
  		    IcImage	*iMask,
--- 326,339 ----
  } IcCompSrc;
  
! extern int __internal_linkage
  IcBuildCompositeOperand (IcImage	    *image,
  			 IcCompositeOperand op[4],
  			 int16_t		    x,
  			 int16_t		    y,
! 			 int		    transform,
! 			 int		    alpha);
  
  extern void __internal_linkage
! IcCompositeGeneral (IcOperator	op,
  		    IcImage	*iSrc,
  		    IcImage	*iMask,

Index: icint.h
===================================================================
RCS file: /cvs/cairo/libic/src/icint.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** icint.h	5 Sep 2003 22:24:45 -0000	1.13
--- icint.h	29 Oct 2003 18:45:02 -0000	1.14
***************
*** 30,38 ****
  #include <limits.h>
  
! #include <X11/X.h>
! #include <X11/Xmd.h>
  
  #include <slim_internal.h>
  
  /* These few definitions avoid me needing to include servermd.h and misc.h from Xserver/include */
  #ifndef BITMAP_SCANLINE_PAD
--- 30,58 ----
  #include <limits.h>
  
! 
  
  #include <slim_internal.h>
  
+ 
+ 
+ 
+ 
+ typedef struct _IcPoint {
+ 	int16_t    x,y ;
+ } IcPoint;
+ 
+ typedef unsigned int	Mask;
+ 
+ 
+ #define GXor		0x7
+ #define ClipByChildren  0
+ #define PolyEdgeSharp   0
+ #define PolyModePrecise 0
+ #define CPClipMask      (1 << 6)
+ #define CPLastBit       11
+ 
+ 
+ 
+ 
  /* These few definitions avoid me needing to include servermd.h and misc.h from Xserver/include */
  #ifndef BITMAP_SCANLINE_PAD
***************
*** 42,47 ****
  #endif
  
! #define FALSE 0
! #define TRUE  1
  
  #define MAXSHORT SHRT_MAX
--- 62,67 ----
  #endif
  
! 
! 
  
  #define MAXSHORT SHRT_MAX
***************
*** 52,57 ****
  */
  
! #include "X11/Xprotostr.h"
! #include "X11/extensions/Xrender.h"
  
  #include "ic.h"
--- 72,76 ----
  */
  
! 
  
  #include "ic.h"
***************
*** 534,539 ****
         int	bpp,
         
!        Bool	reverse,
!        Bool	upsidedown);
  
  extern void __internal_linkage
--- 553,558 ----
         int	bpp,
         
!        int	reverse,
!        int	upsidedown);
  
  extern void __internal_linkage
***************
*** 552,557 ****
  	 IcBits	    pm,
  
! 	 Bool	    reverse,
! 	 Bool	    upsidedown);
      
  extern void __internal_linkage
--- 571,576 ----
  	 IcBits	    pm,
  
! 	 int	    reverse,
! 	 int	    upsidedown);
      
  extern void __internal_linkage
***************
*** 676,680 ****
  	   int	    stipWidth,
  	   int	    stipHeight,
! 	   Bool	    even,
  
  	   IcBits   fgand,
--- 695,699 ----
  	   int	    stipWidth,
  	   int	    stipHeight,
! 	   int	    even,
  
  	   IcBits   fgand,
***************
*** 769,773 ****
  /* ictransform.c */
  
! extern Bool __internal_linkage
  IcTransformPoint (IcTransform	*transform,
  		  IcVector	*vector);
--- 788,792 ----
  /* ictransform.c */
  
! extern int __internal_linkage
  IcTransformPoint (IcTransform	*transform,
  		  IcVector	*vector);

Index: icrect.c
===================================================================
RCS file: /cvs/cairo/libic/src/icrect.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** icrect.c	10 Sep 2003 00:36:25 -0000	1.6
--- icrect.c	29 Oct 2003 18:45:02 -0000	1.7
***************
*** 33,38 ****
  	      int	 yoff)
  {
!     CARD32		pixel;
!     CARD32		tmpval[4];
      Region		*clip;
      unsigned long	mask;
--- 33,38 ----
  	      int	 yoff)
  {
!     uint32_t		pixel;
!     uint32_t		tmpval[4];
      Region		*clip;
      unsigned long	mask;
***************
*** 73,77 ****
  */
  
! void IcFillRectangle (char		op,
  		      IcImage		*dst,
  		      const IcColor	*color,
--- 73,77 ----
  */
  
! void IcFillRectangle (IcOperator	op,
  		      IcImage		*dst,
  		      const IcColor	*color,
***************
*** 92,96 ****
  
  void
! IcFillRectangles (char			op,
  		  IcImage		*dst,
  		  const IcColor		*color,
--- 92,96 ----
  
  void
! IcFillRectangles (IcOperator		op,
  		  IcImage		*dst,
  		  const IcColor		*color,
***************
*** 102,113 ****
      if (color_s.alpha == 0xffff)
      {
! 	if (op == PictOpOver)
! 	    op = PictOpSrc;
      }
!     if (op == PictOpClear)
  	color_s.red = color_s.green = color_s.blue = color_s.alpha = 0;
  
  /* XXX: Really need this to optimize solid rectangles
!     if (op == PictOpSrc || op == PictOpClear)
      {
  	IcColorRects (dst, dst, &color_s, nRects, rects, 0, 0);
--- 102,113 ----
      if (color_s.alpha == 0xffff)
      {
! 	if (op == IcOperatorOver)
! 	    op = IcOperatorSrc;
      }
!     if (op == IcOperatorClear)
  	color_s.red = color_s.green = color_s.blue = color_s.alpha = 0;
  
  /* XXX: Really need this to optimize solid rectangles
!     if (op == IcOperatorSource || op == IcOperatorClear)
      {
  	IcColorRects (dst, dst, &color_s, nRects, rects, 0, 0);

Index: ictransform.c
===================================================================
RCS file: /cvs/cairo/libic/src/ictransform.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** ictransform.c	5 Sep 2003 22:24:45 -0000	1.3
--- ictransform.c	29 Oct 2003 18:45:02 -0000	1.4
***************
*** 29,33 ****
  #define MIN_FIXED_48_16	    (-((xFixed_48_16) 1 << 31))
  
! Bool
  IcTransformPoint (IcTransform	*transform,
  		  IcVector	*vector)
--- 29,33 ----
  #define MIN_FIXED_48_16	    (-((xFixed_48_16) 1 << 31))
  
! int
  IcTransformPoint (IcTransform	*transform,
  		  IcVector	*vector)
***************
*** 48,56 ****
  	}
  	if (v > MAX_FIXED_48_16 || v < MIN_FIXED_48_16)
! 	    return FALSE;
  	result.vector[j] = (xFixed) v;
      }
      if (!result.vector[2])
! 	return FALSE;
      for (j = 0; j < 2; j++)
      {
--- 48,56 ----
  	}
  	if (v > MAX_FIXED_48_16 || v < MIN_FIXED_48_16)
! 	    return 0;
  	result.vector[j] = (xFixed) v;
      }
      if (!result.vector[2])
! 	return 0;
      for (j = 0; j < 2; j++)
      {
***************
*** 58,66 ****
  	v = partial / result.vector[2];
  	if (v > MAX_FIXED_48_16 || v < MIN_FIXED_48_16)
! 	    return FALSE;
  	vector->vector[j] = (xFixed) v;
      }
      vector->vector[2] = xFixed1;
!     return TRUE;
  }
  
--- 58,66 ----
  	v = partial / result.vector[2];
  	if (v > MAX_FIXED_48_16 || v < MIN_FIXED_48_16)
! 	    return 0;
  	vector->vector[j] = (xFixed) v;
      }
      vector->vector[2] = xFixed1;
!     return 1;
  }
  

Index: ictrap.c
===================================================================
RCS file: /cvs/cairo/libic/src/ictrap.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** ictrap.c	5 Sep 2003 22:24:45 -0000	1.8
--- ictrap.c	29 Oct 2003 18:45:02 -0000	1.9
***************
*** 33,38 ****
  IcCreateAlphaPicture (IcImage	*dst,
  		      IcFormat	*format,
! 		      CARD16	width,
! 		      CARD16	height)
  {
      IcImage	*image;
--- 33,38 ----
  IcCreateAlphaPicture (IcImage	*dst,
  		      IcFormat	*format,
! 		      uint16_t	width,
! 		      uint16_t	height)
  {
      IcImage	*image;
***************
*** 67,71 ****
  
  static IcFixed16_16
! IcLineFixedX (const IcLineFixed *l, IcFixed16_16 y, Bool ceil)
  {
      IcFixed16_16    dx = l->p2.x - l->p1.x;
--- 67,71 ----
  
  static IcFixed16_16
! IcLineFixedX (const IcLineFixed *l, IcFixed16_16 y, int ceil)
  {
      IcFixed16_16    dx = l->p2.x - l->p1.x;
***************
*** 86,90 ****
      for (; ntrap; ntrap--, traps++)
      {
! 	INT16 x1, y1, x2, y2;
  
  	if (!xTrapezoidValid(traps))
--- 86,90 ----
      for (; ntrap; ntrap--, traps++)
      {
! 	int16_t x1, y1, x2, y2;
  
  	if (!xTrapezoidValid(traps))
***************
*** 98,108 ****
  	    box->y2 = y2;
  	
! 	x1 = xFixedToInt (MIN (IcLineFixedX (&traps->left, traps->top, FALSE),
! 			       IcLineFixedX (&traps->left, traps->bottom, FALSE)));
  	if (x1 < box->x1)
  	    box->x1 = x1;
  	
! 	x2 = xFixedToInt (xFixedCeil (MAX (IcLineFixedX (&traps->right, traps->top, TRUE),
! 					   IcLineFixedX (&traps->right, traps->bottom, TRUE))));
  	if (x2 > box->x2)
  	    box->x2 = x2;
--- 98,108 ----
  	    box->y2 = y2;
  	
! 	x1 = xFixedToInt (MIN (IcLineFixedX (&traps->left, traps->top, 0),
! 			       IcLineFixedX (&traps->left, traps->bottom, 0)));
  	if (x1 < box->x1)
  	    box->x1 = x1;
  	
! 	x2 = xFixedToInt (xFixedCeil (MAX (IcLineFixedX (&traps->right, traps->top, 1),
! 					   IcLineFixedX (&traps->right, traps->bottom, 1))));
  	if (x2 > box->x2)
  	    box->x2 = x2;
***************
*** 111,115 ****
  
  void
! IcCompositeTrapezoids (char		op,
  		       IcImage		*src,
  		       IcImage		*dst,
--- 111,115 ----
  
  void
! IcCompositeTrapezoids (IcOperator	op,
  		       IcImage		*src,
  		       IcImage		*dst,
***************
*** 121,126 ****
      IcImage		*image = NULL;
      PixRegionBox	bounds;
!     INT16		xDst, yDst;
!     INT16		xRel, yRel;
      IcFormat		*format;
  
--- 121,126 ----
      IcImage		*image = NULL;
      PixRegionBox	bounds;
!     int16_t		xDst, yDst;
!     int16_t		xRel, yRel;
      IcFormat		*format;
  
***************
*** 1133,1137 ****
  
  #define saturateAdd(t, a, b) (((t) = (a) + (b)), \
! 			       ((CARD8) ((t) | (0 - ((t) >> 8)))))
  
  #define addAlpha(mask, depth, alpha, temp) (\
--- 1133,1137 ----
  
  #define saturateAdd(t, a, b) (((t) = (a) + (b)), \
! 			       ((uint8_t) ((t) | (0 - ((t) >> 8)))))
  
  #define addAlpha(mask, depth, alpha, temp) (\
***************
*** 1187,1191 ****
      pixelWalkInit(&right, &trap.right, trap.top, trap.bottom);
  
!     if (!IcBuildCompositeOperand (pMask, &mask, 0, xFixedToInt (trap.top), FALSE, FALSE))
  	return;
      
--- 1187,1191 ----
      pixelWalkInit(&right, &trap.right, trap.top, trap.bottom);
  
!     if (!IcBuildCompositeOperand (pMask, &mask, 0, xFixedToInt (trap.top), 0, 0))
  	return;
      

Index: ictri.c
===================================================================
RCS file: /cvs/cairo/libic/src/ictri.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** ictri.c	5 Sep 2003 22:24:45 -0000	1.7
--- ictri.c	29 Oct 2003 18:45:02 -0000	1.8
***************
*** 136,140 ****
  
  void
! IcCompositeTriangles (char		op,
  		      IcImage		*src,
  		      IcImage		*dst,
--- 136,140 ----
  
  void
! IcCompositeTriangles (IcOperator	op,
  		      IcImage		*src,
  		      IcImage		*dst,
***************
*** 207,211 ****
  
  void
! IcCompositeTriStrip (char		op,
  		     IcImage		*src,
  		     IcImage		*dst,
--- 207,211 ----
  
  void
! IcCompositeTriStrip (IcOperator		op,
  		     IcImage		*src,
  		     IcImage		*dst,
***************
*** 283,287 ****
  
  void
! IcCompositeTriFan (char			op,
  		   IcImage		*src,
  		   IcImage		*dst,
--- 283,287 ----
  
  void
! IcCompositeTriFan (IcOperator		op,
  		   IcImage		*src,
  		   IcImage		*dst,





More information about the cairo-commit mailing list