59d7222b13
Remove accidentally committed prototype.
1070 lines
26 KiB
C
1070 lines
26 KiB
C
/*
|
|
* $XFree86: xc/programs/Xserver/fb/fbpict.h,v 1.7 2001/07/18 10:15:02 keithp Exp $
|
|
*
|
|
* Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc.
|
|
*
|
|
* Permission to use, copy, modify, distribute, and sell this software and its
|
|
* documentation for any purpose is hereby granted without fee, provided that
|
|
* the above copyright notice appear in all copies and that both that
|
|
* copyright notice and this permission notice appear in supporting
|
|
* documentation, and that the name of Keith Packard not be used in
|
|
* advertising or publicity pertaining to distribution of the software without
|
|
* specific, written prior permission. Keith Packard makes no
|
|
* representations about the suitability of this software for any purpose. It
|
|
* is provided "as is" without express or implied warranty.
|
|
*
|
|
* KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
|
|
* EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
|
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
|
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
* PERFORMANCE OF THIS SOFTWARE.
|
|
*/
|
|
|
|
#ifndef _FBPICT_H_
|
|
#define _FBPICT_H_
|
|
|
|
#include "renderedge.h"
|
|
|
|
#define FbIntMult(a,b,t) ( (t) = (a) * (b) + 0x80, ( ( ( (t)>>8 ) + (t) )>>8 ) )
|
|
#define FbIntDiv(a,b) (((CARD16) (a) * 255) / (b))
|
|
|
|
#define FbGet8(v,i) ((CARD16) (CARD8) ((v) >> i))
|
|
|
|
/*
|
|
* There are two ways of handling alpha -- either as a single unified value or
|
|
* a separate value for each component, hence each macro must have two
|
|
* versions. The unified alpha version has a 'U' at the end of the name,
|
|
* the component version has a 'C'. Similarly, functions which deal with
|
|
* this difference will have two versions using the same convention.
|
|
*/
|
|
|
|
#define FbOverU(x,y,i,a,t) ((t) = FbIntMult(FbGet8(y,i),(a),(t)) + FbGet8(x,i),\
|
|
(CARD32) ((CARD8) ((t) | (0 - ((t) >> 8)))) << (i))
|
|
|
|
#define FbOverC(x,y,i,a,t) ((t) = FbIntMult(FbGet8(y,i),FbGet8(a,i),(t)) + FbGet8(x,i),\
|
|
(CARD32) ((CARD8) ((t) | (0 - ((t) >> 8)))) << (i))
|
|
|
|
#define FbInU(x,i,a,t) ((CARD32) FbIntMult(FbGet8(x,i),(a),(t)) << (i))
|
|
|
|
#define FbInC(x,i,a,t) ((CARD32) FbIntMult(FbGet8(x,i),FbGet8(a,i),(t)) << (i))
|
|
|
|
#define FbGen(x,y,i,ax,ay,t,u,v) ((t) = (FbIntMult(FbGet8(y,i),ay,(u)) + \
|
|
FbIntMult(FbGet8(x,i),ax,(v))),\
|
|
(CARD32) ((CARD8) ((t) | \
|
|
(0 - ((t) >> 8)))) << (i))
|
|
|
|
#define FbAdd(x,y,i,t) ((t) = FbGet8(x,i) + FbGet8(y,i), \
|
|
(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 fbComposeGetSolid(pict, bits, fmt) { \
|
|
FbBits *__bits__; \
|
|
FbStride __stride__; \
|
|
int __bpp__; \
|
|
int __xoff__,__yoff__; \
|
|
\
|
|
fbGetDrawable((pict)->pDrawable,__bits__,__stride__,__bpp__,__xoff__,__yoff__); \
|
|
switch (__bpp__) { \
|
|
case 32: \
|
|
(bits) = *(CARD32 *) __bits__; \
|
|
break; \
|
|
case 24: \
|
|
(bits) = Fetch24 ((CARD8 *) __bits__); \
|
|
break; \
|
|
case 16: \
|
|
(bits) = *(CARD16 *) __bits__; \
|
|
(bits) = cvt0565to8888(bits); \
|
|
break; \
|
|
default: \
|
|
return; \
|
|
} \
|
|
/* If necessary, convert RGB <--> BGR. */ \
|
|
if (PICT_FORMAT_TYPE((pict)->format) != PICT_FORMAT_TYPE(fmt)) \
|
|
{ \
|
|
(bits) = (((bits) & 0xff000000) | \
|
|
(((bits) & 0x00ff0000) >> 16) | \
|
|
(((bits) & 0x0000ff00) >> 0) | \
|
|
(((bits) & 0x000000ff) << 16)); \
|
|
} \
|
|
/* manage missing src alpha */ \
|
|
if ((pict)->pFormat->direct.alphaMask == 0) \
|
|
(bits) |= 0xff000000; \
|
|
}
|
|
|
|
#define fbComposeGetStart(pict,x,y,type,stride,line,mul) {\
|
|
FbBits *__bits__; \
|
|
FbStride __stride__; \
|
|
int __bpp__; \
|
|
int __xoff__,__yoff__; \
|
|
\
|
|
fbGetDrawable((pict)->pDrawable,__bits__,__stride__,__bpp__,__xoff__,__yoff__); \
|
|
(stride) = __stride__ * sizeof (FbBits) / sizeof (type); \
|
|
(line) = ((type *) __bits__) + (stride) * ((y) - __yoff__) + (mul) * ((x) - __xoff__); \
|
|
}
|
|
#define cvt8888to0565(s) ((((s) >> 3) & 0x001f) | \
|
|
(((s) >> 5) & 0x07e0) | \
|
|
(((s) >> 8) & 0xf800))
|
|
#define cvt0565to8888(s) (((((s) << 3) & 0xf8) | (((s) >> 2) & 0x7)) | \
|
|
((((s) << 5) & 0xfc00) | (((s) >> 1) & 0x300)) | \
|
|
((((s) << 8) & 0xf80000) | (((s) << 3) & 0x70000)))
|
|
|
|
#if IMAGE_BYTE_ORDER == MSBFirst
|
|
#define Fetch24(a) ((unsigned long) (a) & 1 ? \
|
|
((*(a) << 16) | *((CARD16 *) ((a)+1))) : \
|
|
((*((CARD16 *) (a)) << 8) | *((a)+2)))
|
|
#define Store24(a,v) ((unsigned long) (a) & 1 ? \
|
|
((*(a) = (CARD8) ((v) >> 16)), \
|
|
(*((CARD16 *) ((a)+1)) = (CARD16) (v))) : \
|
|
((*((CARD16 *) (a)) = (CARD16) ((v) >> 8)), \
|
|
(*((a)+2) = (CARD8) (v))))
|
|
#else
|
|
#define Fetch24(a) ((unsigned long) (a) & 1 ? \
|
|
((*(a)) | (*((CARD16 *) ((a)+1)) << 8)) : \
|
|
((*((CARD16 *) (a))) | (*((a)+2) << 16)))
|
|
#define Store24(a,v) ((unsigned long) (a) & 1 ? \
|
|
((*(a) = (CARD8) (v)), \
|
|
(*((CARD16 *) ((a)+1)) = (CARD16) ((v) >> 8))) : \
|
|
((*((CARD16 *) (a)) = (CARD16) (v)),\
|
|
(*((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);
|
|
|
|
/*
|
|
* indexed by op
|
|
*/
|
|
extern FbCombineFunc fbCombineFunc[];
|
|
|
|
typedef struct _FbAccessMap {
|
|
CARD32 format;
|
|
FbCompositeFetch fetch;
|
|
FbCompositeFetch fetcha;
|
|
FbCompositeStore store;
|
|
} FbAccessMap;
|
|
|
|
/*
|
|
* search on format
|
|
*/
|
|
extern FbAccessMap fbAccessMap[];
|
|
|
|
/* 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,
|
|
PicturePtr pMask,
|
|
PicturePtr pDst,
|
|
INT16 xSrc,
|
|
INT16 ySrc,
|
|
INT16 xMask,
|
|
INT16 yMask,
|
|
INT16 xDst,
|
|
INT16 yDst,
|
|
CARD16 width,
|
|
CARD16 height);
|
|
|
|
|
|
/* fbedge.c */
|
|
void
|
|
fbRasterizeEdges (FbBits *buf,
|
|
int bpp,
|
|
int width,
|
|
int stride,
|
|
RenderEdge *l,
|
|
RenderEdge *r,
|
|
xFixed t,
|
|
xFixed b);
|
|
|
|
/* fbpict.c */
|
|
CARD32
|
|
fbOver (CARD32 x, CARD32 y);
|
|
|
|
CARD32
|
|
fbOver24 (CARD32 x, CARD32 y);
|
|
|
|
CARD32
|
|
fbIn (CARD32 x, CARD8 y);
|
|
|
|
void
|
|
fbCompositeSolidMask_nx8x8888 (CARD8 op,
|
|
PicturePtr pSrc,
|
|
PicturePtr pMask,
|
|
PicturePtr pDst,
|
|
INT16 xSrc,
|
|
INT16 ySrc,
|
|
INT16 xMask,
|
|
INT16 yMask,
|
|
INT16 xDst,
|
|
INT16 yDst,
|
|
CARD16 width,
|
|
CARD16 height);
|
|
|
|
void
|
|
fbCompositeSolidMask_nx8x0888 (CARD8 op,
|
|
PicturePtr pSrc,
|
|
PicturePtr pMask,
|
|
PicturePtr pDst,
|
|
INT16 xSrc,
|
|
INT16 ySrc,
|
|
INT16 xMask,
|
|
INT16 yMask,
|
|
INT16 xDst,
|
|
INT16 yDst,
|
|
CARD16 width,
|
|
CARD16 height);
|
|
|
|
void
|
|
fbCompositeSolidMask_nx8888x8888C (CARD8 op,
|
|
PicturePtr pSrc,
|
|
PicturePtr pMask,
|
|
PicturePtr pDst,
|
|
INT16 xSrc,
|
|
INT16 ySrc,
|
|
INT16 xMask,
|
|
INT16 yMask,
|
|
INT16 xDst,
|
|
INT16 yDst,
|
|
CARD16 width,
|
|
CARD16 height);
|
|
|
|
void
|
|
fbCompositeSolidMask_nx8x0565 (CARD8 op,
|
|
PicturePtr pSrc,
|
|
PicturePtr pMask,
|
|
PicturePtr pDst,
|
|
INT16 xSrc,
|
|
INT16 ySrc,
|
|
INT16 xMask,
|
|
INT16 yMask,
|
|
INT16 xDst,
|
|
INT16 yDst,
|
|
CARD16 width,
|
|
CARD16 height);
|
|
|
|
void
|
|
fbCompositeSolidMask_nx8888x0565C (CARD8 op,
|
|
PicturePtr pSrc,
|
|
PicturePtr pMask,
|
|
PicturePtr pDst,
|
|
INT16 xSrc,
|
|
INT16 ySrc,
|
|
INT16 xMask,
|
|
INT16 yMask,
|
|
INT16 xDst,
|
|
INT16 yDst,
|
|
CARD16 width,
|
|
CARD16 height);
|
|
|
|
void
|
|
fbCompositeSrc_8888x8888 (CARD8 op,
|
|
PicturePtr pSrc,
|
|
PicturePtr pMask,
|
|
PicturePtr pDst,
|
|
INT16 xSrc,
|
|
INT16 ySrc,
|
|
INT16 xMask,
|
|
INT16 yMask,
|
|
INT16 xDst,
|
|
INT16 yDst,
|
|
CARD16 width,
|
|
CARD16 height);
|
|
|
|
void
|
|
fbCompositeSrc_8888x0888 (CARD8 op,
|
|
PicturePtr pSrc,
|
|
PicturePtr pMask,
|
|
PicturePtr pDst,
|
|
INT16 xSrc,
|
|
INT16 ySrc,
|
|
INT16 xMask,
|
|
INT16 yMask,
|
|
INT16 xDst,
|
|
INT16 yDst,
|
|
CARD16 width,
|
|
CARD16 height);
|
|
|
|
void
|
|
fbCompositeSrc_8888x0565 (CARD8 op,
|
|
PicturePtr pSrc,
|
|
PicturePtr pMask,
|
|
PicturePtr pDst,
|
|
INT16 xSrc,
|
|
INT16 ySrc,
|
|
INT16 xMask,
|
|
INT16 yMask,
|
|
INT16 xDst,
|
|
INT16 yDst,
|
|
CARD16 width,
|
|
CARD16 height);
|
|
|
|
void
|
|
fbCompositeSrc_0565x0565 (CARD8 op,
|
|
PicturePtr pSrc,
|
|
PicturePtr pMask,
|
|
PicturePtr pDst,
|
|
INT16 xSrc,
|
|
INT16 ySrc,
|
|
INT16 xMask,
|
|
INT16 yMask,
|
|
INT16 xDst,
|
|
INT16 yDst,
|
|
CARD16 width,
|
|
CARD16 height);
|
|
|
|
void
|
|
fbCompositeSrcAdd_8000x8000 (CARD8 op,
|
|
PicturePtr pSrc,
|
|
PicturePtr pMask,
|
|
PicturePtr pDst,
|
|
INT16 xSrc,
|
|
INT16 ySrc,
|
|
INT16 xMask,
|
|
INT16 yMask,
|
|
INT16 xDst,
|
|
INT16 yDst,
|
|
CARD16 width,
|
|
CARD16 height);
|
|
|
|
void
|
|
fbCompositeSrcAdd_8888x8888 (CARD8 op,
|
|
PicturePtr pSrc,
|
|
PicturePtr pMask,
|
|
PicturePtr pDst,
|
|
INT16 xSrc,
|
|
INT16 ySrc,
|
|
INT16 xMask,
|
|
INT16 yMask,
|
|
INT16 xDst,
|
|
INT16 yDst,
|
|
CARD16 width,
|
|
CARD16 height);
|
|
|
|
void
|
|
fbCompositeSrcAdd_1000x1000 (CARD8 op,
|
|
PicturePtr pSrc,
|
|
PicturePtr pMask,
|
|
PicturePtr pDst,
|
|
INT16 xSrc,
|
|
INT16 ySrc,
|
|
INT16 xMask,
|
|
INT16 yMask,
|
|
INT16 xDst,
|
|
INT16 yDst,
|
|
CARD16 width,
|
|
CARD16 height);
|
|
|
|
void
|
|
fbCompositeSolidMask_nx1xn (CARD8 op,
|
|
PicturePtr pSrc,
|
|
PicturePtr pMask,
|
|
PicturePtr pDst,
|
|
INT16 xSrc,
|
|
INT16 ySrc,
|
|
INT16 xMask,
|
|
INT16 yMask,
|
|
INT16 xDst,
|
|
INT16 yDst,
|
|
CARD16 width,
|
|
CARD16 height);
|
|
|
|
void
|
|
fbComposite (CARD8 op,
|
|
PicturePtr pSrc,
|
|
PicturePtr pMask,
|
|
PicturePtr pDst,
|
|
INT16 xSrc,
|
|
INT16 ySrc,
|
|
INT16 xMask,
|
|
INT16 yMask,
|
|
INT16 xDst,
|
|
INT16 yDst,
|
|
CARD16 width,
|
|
CARD16 height);
|
|
|
|
/* fbtrap.c */
|
|
|
|
void
|
|
fbAddTraps (PicturePtr pPicture,
|
|
INT16 xOff,
|
|
INT16 yOff,
|
|
int ntrap,
|
|
xTrap *traps);
|
|
|
|
void
|
|
fbRasterizeTrapezoid (PicturePtr alpha,
|
|
xTrapezoid *trap,
|
|
int x_off,
|
|
int y_off);
|
|
|
|
void
|
|
fbAddTriangles (PicturePtr pPicture,
|
|
INT16 xOff,
|
|
INT16 yOff,
|
|
int ntri,
|
|
xTriangle *tris);
|
|
|
|
#endif /* _FBPICT_H_ */
|