e03198972c
Add XSERV_t, TRANS_SERVER, TRANS_REOPEN to quash warnings. Add #include <dix-config.h> or <xorg-config.h>, as appropriate, to all source files in the xserver/xorg tree, predicated on defines of HAVE_{DIX,XORG}_CONFIG_H. Change all Xfont includes to <X11/fonts/foo.h>.
147 lines
4.4 KiB
C
147 lines
4.4 KiB
C
/* $XFree86: xc/programs/Xserver/iplan2p4/iplmergerop.h,v 3.0 1996/08/18 01:54:53 dawes Exp $ */
|
|
#ifdef HAVE_DIX_CONFIG_H
|
|
#include <dix-config.h>
|
|
#endif
|
|
|
|
#ifndef _IPLANMERGEROP_H_
|
|
#define _IPLANMERGEROP_H_
|
|
|
|
/* Modified nov 94 by Martin Schaller (Martin_Schaller@maus.r.de) for use with
|
|
interleaved planes */
|
|
|
|
/* defines:
|
|
INTER_MROP_NAME
|
|
INTER_MROP_DECLARE_REG()
|
|
INTER_MROP_INITIALIZE(alu, pm)
|
|
INTER_MROP_SOLID(src1, src2, dst)
|
|
INTER_MROP_MASK(src1, src2, mask, dst)
|
|
INTER_MROP_PREBUILD(src)
|
|
INTER_MROP_PREBUILT_DECLARE()
|
|
INTER_MROP_PREBUILT_SOLID(src,dst)
|
|
INTER_MROP_PREBUILT_MASK(src,dst,mask)
|
|
*/
|
|
|
|
#ifndef GXcopy
|
|
#include <X11/X.h>
|
|
#endif
|
|
|
|
typedef struct _mergeRopBits {
|
|
unsigned long ca1, cx1, ca2, cx2;
|
|
} mergeRopRec, *mergeRopPtr;
|
|
|
|
extern mergeRopRec mergeRopBits[16];
|
|
|
|
#define INTER_DeclareMergeRop() \
|
|
INTER_DECLAREGP(_ca1); \
|
|
INTER_DECLAREGP(_cx1); \
|
|
INTER_DECLAREGP(_ca2); \
|
|
INTER_DECLAREGP(_cx2);
|
|
|
|
#define INTER_DeclarePrebuiltMergeRop() \
|
|
INTER_DECLAREGP(_cca); \
|
|
INTER_DECLAREGP(_ccx);
|
|
|
|
#define INTER_InitializeMergeRop(alu,pm) { \
|
|
INTER_DECLAREGP(_pm); \
|
|
mergeRopPtr _bits; \
|
|
INTER_PFILL(pm, _pm); \
|
|
_bits = &mergeRopBits[alu]; \
|
|
INTER_ANDMSK(_pm, _bits->ca1, _ca1); \
|
|
INTER_ANDMSK(_pm, _bits->ca2, _ca2); \
|
|
INTER_ANDMSK(_pm, _bits->cx2, _cx2); \
|
|
INTER_NOT(_pm, _pm); \
|
|
INTER_ORMSK(_pm, _bits->cx1, _cx1); \
|
|
}
|
|
|
|
#define INTER_DoMergeRop(src1, src2, dst) \
|
|
INTER_CPLX(src1, src2, _ca1, _cx1, _ca2, _cx2, dst)
|
|
|
|
#define INTER_DoMaskMergeRop(src1, src2, mask, dst) \
|
|
INTER_CPLXM(src1, src2, _ca1, _cx1, _ca2, _cx2, mask, dst)
|
|
|
|
#define INTER_DoPrebuiltMergeRop(src, dst) \
|
|
INTER_DoRRop(src, _cca, _ccx, dst)
|
|
|
|
#define INTER_DoMaskPrebuiltMergeRop(src, mask, dst) \
|
|
INTER_DoMaskRRop(src, _cca, _ccx, mask, dst)
|
|
|
|
#define INTER_PrebuildMergeRop(src) \
|
|
INTER_DoRRop(src, _ca1, _cx1, _cca); \
|
|
INTER_DoRRop(src, _ca2, _cx2, _ccx);
|
|
|
|
#ifndef MROP
|
|
#define MROP 0
|
|
#endif
|
|
|
|
#define Mclear (1<<GXclear)
|
|
#define Mand (1<<GXand)
|
|
#define MandReverse (1<<GXandReverse)
|
|
#define Mcopy (1<<GXcopy)
|
|
#define MandInverted (1<<GXandInverted)
|
|
#define Mnoop (1<<GXnoop)
|
|
#define Mxor (1<<GXxor)
|
|
#define Mor (1<<GXor)
|
|
#define Mnor (1<<GXnor)
|
|
#define Mequiv (1<<GXequiv)
|
|
#define Minvert (1<<GXinvert)
|
|
#define MorReverse (1<<GXorReverse)
|
|
#define McopyInverted (1<<GXcopyInverted)
|
|
#define MorInverted (1<<GXorInverted)
|
|
#define Mnand (1<<GXnand)
|
|
#define Mset (1<<GXset)
|
|
|
|
#if (MROP) == Mcopy
|
|
#define INTER_MROP_NAME(prefix) INTER_MROP_NAME_CAT(prefix,Copy)
|
|
#define INTER_MROP_DECLARE_REG()
|
|
#define INTER_MROP_INITIALIZE(alu,pm)
|
|
#define INTER_MROP_SOLID(src,dst,dst2) INTER_COPY(src, dst2)
|
|
#define INTER_MROP_MASK(src,dst,mask, dst2) INTER_COPYM(src,dst,mask,dst2)
|
|
#endif
|
|
|
|
#if (MROP) == Mxor
|
|
#define INTER_MROP_NAME(prefix) INTER_MROP_NAME_CAT(prefix,Xor)
|
|
#define INTER_MROP_DECLARE_REG()
|
|
#define INTER_MROP_INITIALIZE(alu,pm)
|
|
#define INTER_MROP_SOLID(src,dst,dst2) INTER_XOR(src,dst,dst2)
|
|
#define INTER_MROP_MASK(src,dst,mask,dst2) INTER_XORM(src,dst,mask,dst2)
|
|
#endif
|
|
|
|
#if (MROP) == Mor
|
|
#define INTER_MROP_NAME(prefix) INTER_MROP_NAME_CAT(prefix,Or)
|
|
#define INTER_MROP_DECLARE_REG()
|
|
#define INTER_MROP_INITIALIZE(alu,pm)
|
|
#define INTER_MROP_SOLID(src,dst,dst2) INTER_OR(src,dst,dst2)
|
|
#define INTER_MROP_MASK(src,dst,mask,dst2) INTER_ORM(src,dst,mask,dst2)
|
|
#endif
|
|
|
|
#if (MROP) == 0
|
|
#define INTER_MROP_NAME(prefix) INTER_MROP_NAME_CAT(prefix,General)
|
|
#define INTER_MROP_DECLARE_REG() INTER_DeclareMergeRop()
|
|
#define INTER_MROP_INITIALIZE(alu,pm) INTER_InitializeMergeRop(alu,pm)
|
|
#define INTER_MROP_SOLID(src,dst,dst2) INTER_DoMergeRop(src, dst, dst2)
|
|
#define INTER_MROP_MASK(src,dst,mask,dst2) \
|
|
INTER_DoMaskMergeRop(src, dst, mask, dst2)
|
|
#define INTER_MROP_PREBUILD(src) INTER_PrebuildMergeRop(src)
|
|
#define INTER_MROP_PREBUILT_DECLARE() INTER_DeclarePrebuiltMergeRop()
|
|
#define INTER_MROP_PREBUILT_SOLID(src,dst, dst2) \
|
|
INTER_DoPrebuiltMergeRop(dst,dst2)
|
|
#define INTER_MROP_PREBUILT_MASK(src,dst,mask,dst2) \
|
|
INTER_DoMaskPrebuiltMergeRop(dst,mask, dst2)
|
|
#endif
|
|
|
|
#ifndef INTER_MROP_PREBUILD
|
|
#define INTER_MROP_PREBUILD(src)
|
|
#define INTER_MROP_PREBUILT_DECLARE()
|
|
#define INTER_MROP_PREBUILT_SOLID(src,dst,dst2) INTER_MROP_SOLID(src,dst,dst2)
|
|
#define INTER_MROP_PREBUILT_MASK(src,dst,mask,dst2) \
|
|
INTER_MROP_MASK(src,dst,mask,dst2)
|
|
#endif
|
|
|
|
#if !defined(UNIXCPP) || defined(ANSICPP)
|
|
#define INTER_MROP_NAME_CAT(prefix,suffix) prefix##suffix
|
|
#else
|
|
#define INTER_MROP_NAME_CAT(prefix,suffix) prefix/**/suffix
|
|
#endif
|
|
|
|
#endif /* _IPLANMERGEROP_H_ */
|