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 "fbpict.h"
|
||||||
#include "fbmmx.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
|
CARD32
|
||||||
fbOver (CARD32 x, CARD32 y)
|
fbOver (CARD32 x, CARD32 y)
|
||||||
{
|
{
|
||||||
|
@ -824,7 +837,7 @@ fbComposite (CARD8 op,
|
||||||
RegionRec region;
|
RegionRec region;
|
||||||
int n;
|
int n;
|
||||||
BoxPtr pbox;
|
BoxPtr pbox;
|
||||||
CompositeFunc func;
|
CompositeFunc func = 0;
|
||||||
Bool srcRepeat = pSrc->repeat;
|
Bool srcRepeat = pSrc->repeat;
|
||||||
Bool maskRepeat = FALSE;
|
Bool maskRepeat = FALSE;
|
||||||
Bool srcAlphaMap = pSrc->alphaMap != 0;
|
Bool srcAlphaMap = pSrc->alphaMap != 0;
|
||||||
|
@ -845,21 +858,6 @@ fbComposite (CARD8 op,
|
||||||
maskAlphaMap = pMask->alphaMap != 0;
|
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 (!pSrc->transform && !(pMask && pMask->transform))
|
||||||
if (!maskAlphaMap && !srcAlphaMap && !dstAlphaMap)
|
if (!maskAlphaMap && !srcAlphaMap && !dstAlphaMap)
|
||||||
switch (op) {
|
switch (op) {
|
||||||
|
@ -1212,6 +1210,27 @@ fbComposite (CARD8 op,
|
||||||
}
|
}
|
||||||
break;
|
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);
|
n = REGION_NUM_RECTS (®ion);
|
||||||
pbox = REGION_RECTS (®ion);
|
pbox = REGION_RECTS (®ion);
|
||||||
while (n--)
|
while (n--)
|
||||||
|
|
810
fb/fbpict.h
810
fb/fbpict.h
|
@ -59,18 +59,10 @@
|
||||||
(CARD32) ((CARD8) ((t) | (0 - ((t) >> 8)))) << (i))
|
(CARD32) ((CARD8) ((t) | (0 - ((t) >> 8)))) << (i))
|
||||||
|
|
||||||
|
|
||||||
typedef void (*CompositeFunc) (CARD8 op,
|
#define Alpha(x) ((x) >> 24)
|
||||||
PicturePtr pSrc,
|
#define Red(x) (((x) >> 16) & 0xff)
|
||||||
PicturePtr pMask,
|
#define Green(x) (((x) >> 8) & 0xff)
|
||||||
PicturePtr pDst,
|
#define Blue(x) ((x) & 0xff)
|
||||||
INT16 xSrc,
|
|
||||||
INT16 ySrc,
|
|
||||||
INT16 xMask,
|
|
||||||
INT16 yMask,
|
|
||||||
INT16 xDst,
|
|
||||||
INT16 yDst,
|
|
||||||
CARD16 width,
|
|
||||||
CARD16 height);
|
|
||||||
|
|
||||||
#define fbComposeGetSolid(pict, bits, fmt) { \
|
#define fbComposeGetSolid(pict, bits, fmt) { \
|
||||||
FbBits *__bits__; \
|
FbBits *__bits__; \
|
||||||
|
@ -143,675 +135,145 @@ typedef void (*CompositeFunc) (CARD8 op,
|
||||||
(*((a)+2) = (CARD8) ((v) >> 16))))
|
(*((a)+2) = (CARD8) ((v) >> 16))))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
typedef struct _FbCompositeOperand FbCompositeOperand;
|
The methods below use some tricks to be able to do two color
|
||||||
|
components at the same time.
|
||||||
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);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* indexed by op
|
x_c = (x_c * a) / 255
|
||||||
*/
|
*/
|
||||||
extern FbCombineFunc fbCombineFunc[];
|
#define FbByteMul(x, a) do { \
|
||||||
|
CARD32 t = (x & 0xff00ff) *a; \
|
||||||
typedef struct _FbAccessMap {
|
t = (t + ((t >> 8) & 0xff00ff) + 0x800080) >> 8; \
|
||||||
CARD32 format;
|
t &= 0xff00ff; \
|
||||||
FbCompositeFetch fetch;
|
\
|
||||||
FbCompositeFetch fetcha;
|
x = ((x >> 8) & 0xff00ff) * a; \
|
||||||
FbCompositeStore store;
|
x = (x + ((x >> 8) & 0xff00ff) + 0x800080); \
|
||||||
} FbAccessMap;
|
x &= 0xff00ff00; \
|
||||||
|
x += t; \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* search on format
|
x_c = (x_c * a + y_c * b) / 255
|
||||||
*/
|
*/
|
||||||
extern FbAccessMap fbAccessMap[];
|
#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 */
|
/* 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
|
void
|
||||||
fbCompositeGeneral (CARD8 op,
|
fbCompositeGeneral (CARD8 op,
|
||||||
PicturePtr pSrc,
|
PicturePtr pSrc,
|
||||||
|
|
Loading…
Reference in New Issue