Render performance improvements. (Lars Knoll, Zack Rusin)
This commit is contained in:
parent
2c9b1e337b
commit
2de24db63e
5220
fb/fbcompose.c
5220
fb/fbcompose.c
File diff suppressed because it is too large
Load Diff
51
fb/fbpict.c
51
fb/fbpict.c
|
@ -32,6 +32,19 @@
|
|||
#include "fbpict.h"
|
||||
#include "fbmmx.h"
|
||||
|
||||
typedef void (*CompositeFunc) (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
|
||||
fbOver (CARD32 x, CARD32 y)
|
||||
{
|
||||
|
@ -824,7 +837,7 @@ fbComposite (CARD8 op,
|
|||
RegionRec region;
|
||||
int n;
|
||||
BoxPtr pbox;
|
||||
CompositeFunc func;
|
||||
CompositeFunc func = 0;
|
||||
Bool srcRepeat = pSrc->repeat;
|
||||
Bool maskRepeat = FALSE;
|
||||
Bool srcAlphaMap = pSrc->alphaMap != 0;
|
||||
|
@ -845,21 +858,6 @@ fbComposite (CARD8 op,
|
|||
maskAlphaMap = pMask->alphaMap != 0;
|
||||
}
|
||||
|
||||
if (!miComputeCompositeRegion (®ion,
|
||||
pSrc,
|
||||
pMask,
|
||||
pDst,
|
||||
xSrc,
|
||||
ySrc,
|
||||
xMask,
|
||||
yMask,
|
||||
xDst,
|
||||
yDst,
|
||||
width,
|
||||
height))
|
||||
return;
|
||||
|
||||
func = fbCompositeGeneral;
|
||||
if (!pSrc->transform && !(pMask && pMask->transform))
|
||||
if (!maskAlphaMap && !srcAlphaMap && !dstAlphaMap)
|
||||
switch (op) {
|
||||
|
@ -1212,6 +1210,27 @@ fbComposite (CARD8 op,
|
|||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (!func) {
|
||||
/* no fast path, use the general code */
|
||||
fbCompositeGeneral(op, pSrc, pMask, pDst, xSrc, ySrc, xMask, yMask, xDst, yDst, width, height);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!miComputeCompositeRegion (®ion,
|
||||
pSrc,
|
||||
pMask,
|
||||
pDst,
|
||||
xSrc,
|
||||
ySrc,
|
||||
xMask,
|
||||
yMask,
|
||||
xDst,
|
||||
yDst,
|
||||
width,
|
||||
height))
|
||||
return;
|
||||
|
||||
n = REGION_NUM_RECTS (®ion);
|
||||
pbox = REGION_RECTS (®ion);
|
||||
while (n--)
|
||||
|
|
810
fb/fbpict.h
810
fb/fbpict.h
|
@ -59,18 +59,10 @@
|
|||
(CARD32) ((CARD8) ((t) | (0 - ((t) >> 8)))) << (i))
|
||||
|
||||
|
||||
typedef void (*CompositeFunc) (CARD8 op,
|
||||
PicturePtr pSrc,
|
||||
PicturePtr pMask,
|
||||
PicturePtr pDst,
|
||||
INT16 xSrc,
|
||||
INT16 ySrc,
|
||||
INT16 xMask,
|
||||
INT16 yMask,
|
||||
INT16 xDst,
|
||||
INT16 yDst,
|
||||
CARD16 width,
|
||||
CARD16 height);
|
||||
#define Alpha(x) ((x) >> 24)
|
||||
#define Red(x) (((x) >> 16) & 0xff)
|
||||
#define Green(x) (((x) >> 8) & 0xff)
|
||||
#define Blue(x) ((x) & 0xff)
|
||||
|
||||
#define fbComposeGetSolid(pict, bits, fmt) { \
|
||||
FbBits *__bits__; \
|
||||
|
@ -143,675 +135,145 @@ typedef void (*CompositeFunc) (CARD8 op,
|
|||
(*((a)+2) = (CARD8) ((v) >> 16))))
|
||||
#endif
|
||||
|
||||
|
||||
typedef struct _FbCompositeOperand FbCompositeOperand;
|
||||
|
||||
typedef CARD32 (*FbCompositeFetch)(FbCompositeOperand *op);
|
||||
typedef void (*FbCompositeStore) (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
typedef void (*FbCompositeStep) (FbCompositeOperand *op);
|
||||
typedef void (*FbCompositeSet) (FbCompositeOperand *op, int x, int y);
|
||||
|
||||
struct _FbCompositeOperand {
|
||||
union {
|
||||
struct {
|
||||
FbBits *top_line;
|
||||
int left_offset;
|
||||
|
||||
int start_offset;
|
||||
FbBits *line;
|
||||
CARD32 offset;
|
||||
FbStride stride;
|
||||
int bpp;
|
||||
} drawable;
|
||||
struct {
|
||||
int alpha_dx;
|
||||
int alpha_dy;
|
||||
} external;
|
||||
struct {
|
||||
int top_y;
|
||||
int left_x;
|
||||
int start_x;
|
||||
int x;
|
||||
int y;
|
||||
PictTransformPtr transform;
|
||||
int filter;
|
||||
} transform;
|
||||
} u;
|
||||
FbCompositeFetch fetch;
|
||||
FbCompositeFetch fetcha;
|
||||
FbCompositeStore store;
|
||||
FbCompositeStep over;
|
||||
FbCompositeStep down;
|
||||
FbCompositeSet set;
|
||||
miIndexedPtr indexed;
|
||||
RegionPtr clip;
|
||||
};
|
||||
|
||||
typedef void (*FbCombineFunc) (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
/*
|
||||
The methods below use some tricks to be able to do two color
|
||||
components at the same time.
|
||||
*/
|
||||
|
||||
/*
|
||||
* indexed by op
|
||||
*/
|
||||
extern FbCombineFunc fbCombineFunc[];
|
||||
|
||||
typedef struct _FbAccessMap {
|
||||
CARD32 format;
|
||||
FbCompositeFetch fetch;
|
||||
FbCompositeFetch fetcha;
|
||||
FbCompositeStore store;
|
||||
} FbAccessMap;
|
||||
x_c = (x_c * a) / 255
|
||||
*/
|
||||
#define FbByteMul(x, a) do { \
|
||||
CARD32 t = (x & 0xff00ff) *a; \
|
||||
t = (t + ((t >> 8) & 0xff00ff) + 0x800080) >> 8; \
|
||||
t &= 0xff00ff; \
|
||||
\
|
||||
x = ((x >> 8) & 0xff00ff) * a; \
|
||||
x = (x + ((x >> 8) & 0xff00ff) + 0x800080); \
|
||||
x &= 0xff00ff00; \
|
||||
x += t; \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
* search on format
|
||||
*/
|
||||
extern FbAccessMap fbAccessMap[];
|
||||
x_c = (x_c * a + y_c * b) / 255
|
||||
*/
|
||||
#define FbByteAddMul(x, a, y, b) do { \
|
||||
CARD32 t = (x & 0xff00ff) * a + (y & 0xff00ff) * b; \
|
||||
t = (t + ((t >> 8) & 0xff00ff) + 0x800080) >> 8; \
|
||||
t &= 0xff00ff; \
|
||||
\
|
||||
x = ((x >> 8) & 0xff00ff) * a + ((y >> 8) & 0xff00ff) * b; \
|
||||
x = (x + ((x >> 8) & 0xff00ff) + 0x800080); \
|
||||
x &= 0xff00ff00; \
|
||||
x += t; \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
x_c = (x_c * a + y_c *b) / 256
|
||||
*/
|
||||
#define FbByteAddMul_256(x, a, y, b) do { \
|
||||
CARD32 t = (x & 0xff00ff) * a + (y & 0xff00ff) * b; \
|
||||
t >>= 8; \
|
||||
t &= 0xff00ff; \
|
||||
\
|
||||
x = ((x >> 8) & 0xff00ff) * a + ((y >> 8) & 0xff00ff) * b; \
|
||||
x &= 0xff00ff00; \
|
||||
x += t; \
|
||||
} while (0)
|
||||
/*
|
||||
x_c = (x_c * a_c) / 255
|
||||
*/
|
||||
#define FbByteMulC(x, a) do { \
|
||||
CARD32 t; \
|
||||
CARD32 r = (x & 0xff) * (a & 0xff); \
|
||||
r |= (x & 0xff0000) * ((a >> 16) & 0xff); \
|
||||
r = (r + ((r >> 8) & 0xff00ff) + 0x800080) >> 8; \
|
||||
r &= 0xff00ff; \
|
||||
\
|
||||
x >>= 8; \
|
||||
t = (x & 0xff) * ((a >> 8) & 0xff); \
|
||||
t |= (x & 0xff0000) * (a >> 24); \
|
||||
t = (t + ((t >> 8) & 0xff00ff) + 0x800080); \
|
||||
x = r | (t & 0xff00ff00); \
|
||||
\
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
x_c = (x_c * a_c + y_c * b) / 255
|
||||
*/
|
||||
#define FbByteAddMulC(x, a, y, b) do { \
|
||||
CARD32 t; \
|
||||
CARD32 r = (x & 0xff) * (a & 0xff); \
|
||||
r |= (x & 0xff0000) * ((a >> 16) & 0xff); \
|
||||
r += (y & 0xff00ff) * b; \
|
||||
r = (r + ((r >> 8) & 0xff00ff) + 0x800080) >> 8; \
|
||||
r &= 0xff00ff; \
|
||||
\
|
||||
x >>= 8; \
|
||||
t = (x & 0xff) * ((a >> 8) & 0xff); \
|
||||
t |= (x & 0xff0000) * (a >> 24); \
|
||||
t += ((y >> 8) & 0xff00ff) * b; \
|
||||
t = (t + ((t >> 8) & 0xff00ff) + 0x800080); \
|
||||
x = r | (t & 0xff00ff00); \
|
||||
\
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
x_c = min(x_c + y_c, 255)
|
||||
*/
|
||||
#define FbByteAdd(x, y) do { \
|
||||
CARD32 t; \
|
||||
CARD32 r = (x & 0xff00ff) + (y & 0xff00ff); \
|
||||
r |= 0 - ((r >> 8) & 0xff00ff); \
|
||||
r &= 0xff00ff; \
|
||||
\
|
||||
t = ((x >> 8) & 0xff00ff) + ((y >> 8) & 0xff00ff); \
|
||||
t |= 0 - ((t >> 8) & 0xff00ff); \
|
||||
r |= (t & 0xff00ff) << 8; \
|
||||
x = r; \
|
||||
} while (0)
|
||||
|
||||
#define div_255(x) (((x) + ((x) >> 8) + 0x80) >> 8)
|
||||
|
||||
#if defined(__i386__) && defined(__GNUC__)
|
||||
#define FASTCALL __attribute__((regparm(3)))
|
||||
#else
|
||||
#define FASTCALL
|
||||
#endif
|
||||
|
||||
#if defined(__GNUC__)
|
||||
#define INLINE __inline__
|
||||
#else
|
||||
#define INLINE
|
||||
#endif
|
||||
|
||||
typedef struct _FbComposeData {
|
||||
CARD8 op;
|
||||
PicturePtr src;
|
||||
PicturePtr mask;
|
||||
PicturePtr dest;
|
||||
INT16 xSrc;
|
||||
INT16 ySrc;
|
||||
INT16 xMask;
|
||||
INT16 yMask;
|
||||
INT16 xDest;
|
||||
INT16 yDest;
|
||||
CARD16 width;
|
||||
CARD16 height;
|
||||
} FbComposeData;
|
||||
|
||||
|
||||
/* fbaddtrap.c */
|
||||
|
||||
void
|
||||
fbAddTraps (PicturePtr pPicture,
|
||||
INT16 xOff,
|
||||
INT16 yOff,
|
||||
int ntrap,
|
||||
xTrap *traps);
|
||||
|
||||
/* fbcompose.c */
|
||||
|
||||
typedef struct _fbCompSrc {
|
||||
CARD32 value;
|
||||
CARD32 alpha;
|
||||
} FbCompSrc;
|
||||
|
||||
/*
|
||||
* All compositing operators *
|
||||
*/
|
||||
|
||||
CARD32
|
||||
fbCombineMaskU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk);
|
||||
|
||||
FbCompSrc
|
||||
fbCombineMaskC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk);
|
||||
|
||||
CARD32
|
||||
fbCombineMaskValueC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk);
|
||||
|
||||
CARD32
|
||||
fbCombineMaskAlphaU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk);
|
||||
|
||||
CARD32
|
||||
fbCombineMaskAlphaC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk);
|
||||
|
||||
|
||||
#if 0
|
||||
CARD32
|
||||
FbCombineMask (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk);
|
||||
#endif
|
||||
|
||||
void
|
||||
fbCombineClear (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineSrcU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineSrcC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineDst (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineOverU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineOverC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineOverReverseU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineOverReverseC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineInU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineInC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineInReverseU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineInReverseC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineOutU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineOutC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineOutReverseU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineOutReverseC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineAtopU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
|
||||
void
|
||||
fbCombineAtopC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineAtopReverseU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineAtopReverseC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineXorU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineXorC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
|
||||
void
|
||||
fbCombineAddU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineAddC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineSaturateU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineSaturateC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
CARD8
|
||||
fbCombineDisjointOutPart (CARD8 a, CARD8 b);
|
||||
|
||||
CARD8
|
||||
fbCombineDisjointInPart (CARD8 a, CARD8 b);
|
||||
|
||||
void
|
||||
fbCombineDisjointGeneralU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst,
|
||||
CARD8 combine);
|
||||
|
||||
void
|
||||
fbCombineDisjointGeneralC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst,
|
||||
CARD8 combine);
|
||||
|
||||
void
|
||||
fbCombineDisjointOverU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineDisjointOverC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
#define fbCombineDisjointOverReverseU fbCombineSaturateU
|
||||
#define fbCombineDisjointOverReverseC fbCombineSaturateC
|
||||
|
||||
void
|
||||
fbCombineDisjointInU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineDisjointInC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineDisjointInReverseU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineDisjointInReverseC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineDisjointOutU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineDisjointOutC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
void
|
||||
fbCombineDisjointOutReverseU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineDisjointOutReverseC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineDisjointAtopU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineDisjointAtopC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineDisjointAtopReverseU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineDisjointAtopReverseC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineDisjointXorU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineDisjointXorC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
CARD8
|
||||
fbCombineConjointOutPart (CARD8 a, CARD8 b);
|
||||
|
||||
CARD8
|
||||
fbCombineConjointInPart (CARD8 a, CARD8 b);
|
||||
|
||||
|
||||
void
|
||||
fbCombineConjointGeneralU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst,
|
||||
CARD8 combine);
|
||||
|
||||
void
|
||||
fbCombineConjointGeneralC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst,
|
||||
CARD8 combine);
|
||||
|
||||
void
|
||||
fbCombineConjointOverU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineConjointOverC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
void
|
||||
fbCombineConjointOverReverseU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineConjointOverReverseC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineConjointInU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineConjointInC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineConjointInReverseU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
|
||||
void
|
||||
fbCombineConjointInReverseC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineConjointOutU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineConjointOutC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineConjointOutReverseU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineConjointOutReverseC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineConjointAtopU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineConjointAtopC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineConjointAtopReverseU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
void
|
||||
fbCombineConjointAtopReverseC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineConjointXorU (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
void
|
||||
fbCombineConjointXorC (FbCompositeOperand *src,
|
||||
FbCompositeOperand *msk,
|
||||
FbCompositeOperand *dst);
|
||||
|
||||
/*
|
||||
* All fetch functions
|
||||
*/
|
||||
|
||||
CARD32
|
||||
fbFetch_a8r8g8b8 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_x8r8g8b8 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_a8b8g8r8 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_x8b8g8r8 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_r8g8b8 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_b8g8r8 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_r5g6b5 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_b5g6r5 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_a1r5g5b5 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_x1r5g5b5 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_a1b5g5r5 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_x1b5g5r5 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_a4r4g4b4 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_x4r4g4b4 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_a4b4g4r4 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_x4b4g4r4 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_a8 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetcha_a8 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_r3g3b2 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_b2g3r3 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_a2r2g2b2 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_a2b2g2r2 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_c8 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_a4 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetcha_a4 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_r1g2b1 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_b1g2r1 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_a1r1g1b1 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_a1b1g1r1 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_c4 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_a1 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetcha_a1 (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_g1 (FbCompositeOperand *op);
|
||||
|
||||
void
|
||||
fbStore_a8r8g8b8 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_x8r8g8b8 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_a8b8g8r8 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_x8b8g8r8 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_r8g8b8 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_b8g8r8 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_r5g6b5 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_b5g6r5 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_a1r5g5b5 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_x1r5g5b5 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_a1b5g5r5 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_x1b5g5r5 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_a4r4g4b4 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_x4r4g4b4 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_a4b4g4r4 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_x4b4g4r4 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_a8 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_r3g3b2 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_b2g3r3 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_a2r2g2b2 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_c8 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_g8 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
|
||||
void
|
||||
fbStore_a4 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_r1g2b1 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_b1g2r1 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_a1r1g1b1 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_a1b1g1r1 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_c4 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_g4 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_a1 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
void
|
||||
fbStore_g1 (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
CARD32
|
||||
fbFetch_external (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetch_transform (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetcha_transform (FbCompositeOperand *op);
|
||||
|
||||
CARD32
|
||||
fbFetcha_external (FbCompositeOperand *op);
|
||||
|
||||
void
|
||||
fbStore_external (FbCompositeOperand *op, CARD32 value);
|
||||
|
||||
Bool
|
||||
fbBuildOneCompositeOperand (PicturePtr pPict,
|
||||
FbCompositeOperand *op,
|
||||
INT16 x,
|
||||
INT16 y);
|
||||
|
||||
Bool
|
||||
fbBuildCompositeOperand (PicturePtr pPict,
|
||||
FbCompositeOperand *op,
|
||||
INT16 x,
|
||||
INT16 y,
|
||||
Bool transform,
|
||||
Bool alpha);
|
||||
void
|
||||
fbCompositeGeneral (CARD8 op,
|
||||
PicturePtr pSrc,
|
||||
|
|
Loading…
Reference in New Issue
Block a user