77 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
| /* $XFree86: xc/programs/Xserver/iplan2p4/iplrrop.h,v 3.0 1996/08/18 01:55:04 dawes Exp $ */
 | |
| /* Modified nov 94 by Martin Schaller (Martin_Schaller@maus.r.de) for use with
 | |
| interleaved planes */
 | |
| 
 | |
| /* reduced raster ops */
 | |
| /* INTER_RROP_DECLARE INTER_RROP_FETCH_GC, 
 | |
|    INTER_RROP_SOLID_MASK, INTER_RROP_SPAN INTER_RROP_NAME */
 | |
| 
 | |
| #define INTER_RROP_FETCH_GC(gc) \
 | |
| INTER_RROP_FETCH_GCPRIV(((iplPrivGCPtr)(gc)->devPrivates[iplGCPrivateIndex].ptr))
 | |
| 
 | |
| #if RROP == GXcopy
 | |
| #define INTER_RROP_DECLARE	register unsigned short *rrop_xor;
 | |
| #define INTER_RROP_FETCH_GCPRIV(devPriv)  rrop_xor = (devPriv)->xorg;
 | |
| #define INTER_RROP_SOLID(dst)	    	INTER_COPY(rrop_xor, dst)
 | |
| #define INTER_RROP_SOLID_MASK(dst,mask) INTER_COPYM(rrop_xor, dst, mask, dst)
 | |
| #define INTER_RROP_NAME(prefix) INTER_RROP_NAME_CAT(prefix,Copy)
 | |
| #endif /* GXcopy */
 | |
| 
 | |
| #if RROP == GXxor
 | |
| #define INTER_RROP_DECLARE	register unsigned short	*rrop_xor;
 | |
| #define INTER_RROP_FETCH_GCPRIV(devPriv)  rrop_xor = (devPriv)->xorg;
 | |
| #define INTER_RROP_SOLID(dst)		INTER_XOR(rrop_xor, dst, dst)
 | |
| #define INTER_RROP_SOLID_MASK(dst,mask) INTER_XORM(rrop_xor, dst, mask, dst)
 | |
| #define INTER_RROP_NAME(prefix) INTER_RROP_NAME_CAT(prefix,Xor)
 | |
| #endif /* GXxor */
 | |
| 
 | |
| #if RROP == GXand
 | |
| #define INTER_RROP_DECLARE	register unsigned short *rrop_and;
 | |
| #define INTER_RROP_FETCH_GCPRIV(devPriv)  rrop_and = (devPriv)->andg;
 | |
| #define INTER_RROP_SOLID(dst)	    	INTER_AND(rrop_and, dst, dst)
 | |
| #define INTER_RROP_SOLID_MASK(dst,mask) INTER_ANDM(rrop_and, dst, mask, dst)
 | |
| #define INTER_RROP_NAME(prefix) INTER_RROP_NAME_CAT(prefix,And)
 | |
| #endif /* GXand */
 | |
| 
 | |
| #if RROP == GXor
 | |
| #define INTER_RROP_DECLARE	register unsigned short *rrop_or;
 | |
| #define INTER_RROP_FETCH_GCPRIV(devPriv)  rrop_or = (devPriv)->xorg;
 | |
| #define INTER_RROP_SOLID(dst)	    	INTER_OR(rrop_or, dst, dst)
 | |
| #define INTER_RROP_SOLID_MASK(dst,mask) INTER_ORM(mask, rrop_or, dst, dst)
 | |
| #define INTER_RROP_NAME(prefix) INTER_RROP_NAME_CAT(prefix,Or)
 | |
| #endif /* GXor */
 | |
| 
 | |
| #if RROP == GXnoop
 | |
| #define INTER_RROP_DECLARE
 | |
| #define INTER_RROP_FETCH_GCPRIV(devPriv)
 | |
| #define INTER_RROP_SOLID(dst)
 | |
| #define INTER_RROP_SOLID_MASK(dst,mask)
 | |
| #define INTER_RROP_NAME(prefix) INTER_RROP_NAME_CAT(prefix,Noop)
 | |
| #endif /* GXnoop */
 | |
| 
 | |
| #if RROP ==  GXset
 | |
| #define INTER_RROP_DECLARE	    register unsigned short	*rrop_and, *rrop_xor;
 | |
| #define INTER_RROP_FETCH_GCPRIV(devPriv)  rrop_and = (devPriv)->andg; \
 | |
| 				    	  rrop_xor = (devPriv)->xorg;
 | |
| #define INTER_RROP_SOLID(dst)	INTER_DoRRop(dst, rrop_and, rrop_xor, dst)
 | |
| #define INTER_RROP_SOLID_MASK(dst,mask) \
 | |
| 	INTER_DoMaskRRop(dst, rrop_and, rrop_xor, mask, dst)
 | |
| #define INTER_RROP_NAME(prefix) INTER_RROP_NAME_CAT(prefix,General)
 | |
| #endif /* GXset */
 | |
| 
 | |
| #ifndef INTER_RROP_SPAN
 | |
| #define INTER_RROP_SPAN(pdst,nmiddle) 		\
 | |
|     while (--(nmiddle) >= 0) { 			\
 | |
| 	INTER_RROP_SOLID(pdst); 		\
 | |
| 	(pdst) = INTER_NEXT(pdst); 		\
 | |
|     }
 | |
| 
 | |
| #endif
 | |
| 
 | |
| #if !defined(UNIXCPP) || defined(ANSICPP)
 | |
| #define INTER_RROP_NAME_CAT(prefix,suffix)	prefix##suffix
 | |
| #else
 | |
| #define INTER_RROP_NAME_CAT(prefix,suffix)	prefix/**/suffix
 | |
| #endif
 | |
| 
 |