⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fbpict.h

📁 按照官方的说法:Cairo is a vector graphics library with cross-device output support. 翻译过来
💻 H
📖 第 1 页 / 共 2 页
字号:
        x &= 0xff00ff;                                              \        x <<= 8;                                                    \        x += t;                                                     \    } while (0)/*  x_c = (x_c * a + y_c * b) / 255*/#define FbByteAddMul(x, a, y, b) do {                                   \        CARD32 t;                                                       \        CARD32 r = (x >> 24) * a + (y >> 24) * b + 0x80;                \        r += (r >> 8);                                                  \        r >>= 8;                                                        \                                                                        \        t = (x & 0xff00) * a + (y & 0xff00) * b + 0x8000;               \        t += (t >> 8);                                                  \        t >>= 16;                                                       \                                                                        \        t |= r << 16;                                                   \        t |= 0x1000100 - ((t >> 8) & 0xff00ff);                         \        t &= 0xff00ff;                                                  \        t <<= 8;                                                        \                                                                        \        r = ((x >> 16) & 0xff) * a + ((y >> 16) & 0xff) * b + 0x80;     \        r += (r >> 8);                                                  \        r >>= 8;                                                        \                                                                        \        x = (x & 0xff) * a + (y & 0xff) * b + 0x80;                     \        x += (x >> 8);                                                  \        x >>= 8;                                                        \        x |= r << 16;                                                   \        x |= 0x1000100 - ((x >> 8) & 0xff00ff);                         \        x &= 0xff00ff;                                                  \        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 += 0x800080;                                          \        r = (r + ((r >> 8) & 0xff00ff)) >> 8;                   \        r &= 0xff00ff;                                          \                                                                \        x >>= 8;                                                \        t = (x & 0xff) * ((a >> 8) & 0xff);                     \        t |= (x & 0xff0000) * (a >> 24);                        \        t += 0x800080;                                          \        t = t + ((t >> 8) & 0xff00ff);                          \        x = r | (t & 0xff00ff00);                               \                                                                \    } while (0)/*  x_c = (x_c * a) / 255 + y*/#define FbByteMulAddC(x, a, y) do {                                \        CARD32 t;                                                  \        CARD32 r = (x & 0xff) * (a & 0xff);                        \        r |= (x & 0xff0000) * ((a >> 16) & 0xff);                  \        r += 0x800080;                                             \        r = (r + ((r >> 8) & 0xff00ff)) >> 8;                      \        r &= 0xff00ff;                                             \        r += y & 0xff00ff;                                         \        r |= 0x1000100 - ((r >> 8) & 0xff00ff);                    \        r &= 0xff00ff;                                             \                                                                   \        x >>= 8;                                                   \        t = (x & 0xff) * ((a >> 8) & 0xff);                        \        t |= (x & 0xff0000) * (a >> 24);                              \        t += 0x800080;                                                \        t = (t + ((t >> 8) & 0xff00ff)) >> 8;                         \        t &= 0xff00ff;                                                \        t += (y >> 8) & 0xff00ff;                                     \        t |= 0x1000100 - ((t >> 8) & 0xff00ff);                       \        t &= 0xff00ff;                                                \        x = r | (t << 8);                                             \    } while (0)/*  x_c = (x_c * a_c + y_c * b) / 255*/#define FbByteAddMulC(x, a, y, b) do {                                  \        CARD32 t;                                                       \        CARD32 r = (x >> 24) * (a >> 24) + (y >> 24) * b + 0x80;        \        r += (r >> 8);                                                  \        r >>= 8;                                                        \                                                                        \        t = (x & 0xff00) * ((a >> 8) & 0xff) + (y & 0xff00) * b + 0x8000; \        t += (t >> 8);                                                  \        t >>= 16;                                                       \                                                                        \        t |= r << 16;                                                   \        t |= 0x1000100 - ((t >> 8) & 0xff00ff);                         \        t &= 0xff00ff;                                                  \        t <<= 8;                                                        \                                                                        \        r = ((x >> 16) & 0xff) * ((a >> 16) & 0xff) + ((y >> 16) & 0xff) * b + 0x80; \        r += (r >> 8);                                                  \        r >>= 8;                                                        \                                                                        \        x = (x & 0xff) * (a & 0xff) + (y & 0xff) * b + 0x80;            \        x += (x >> 8);                                                  \        x >>= 8;                                                        \        x |= r << 16;                                                   \        x |= 0x1000100 - ((x >> 8) & 0xff00ff);                         \        x &= 0xff00ff;                                                  \        x |= t;                                                         \} while (0)/*  x_c = min(x_c + y_c, 255)*/#define FbByteAdd(x, y) do {                                            \        CARD32 t;                                                       \        CARD32 r = (x & 0xff00ff) + (y & 0xff00ff);                     \        r |= 0x1000100 - ((r >> 8) & 0xff00ff);                         \        r &= 0xff00ff;                                                  \                                                                        \        t = ((x >> 8) & 0xff00ff) + ((y >> 8) & 0xff00ff);              \        t |= 0x1000100 - ((t >> 8) & 0xff00ff);                         \        r |= (t & 0xff00ff) << 8;                                       \        x = r;                                                          \    } while (0)#define div_255(x) (((x) + 0x80 + (((x) + 0x80) >> 8)) >> 8)#if defined(__i386__) && defined(__GNUC__)#define FASTCALL __attribute__((regparm(3)))#else#define FASTCALL#endif#if defined(__GNUC__)#define INLINE __inline__#else#define INLINE#endiftypedef 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;typedef FASTCALL void (*CombineMaskU) (CARD32 *src, const CARD32 *mask, int width);typedef FASTCALL void (*CombineFuncU) (CARD32 *dest, const CARD32 *src, int width);typedef FASTCALL void (*CombineFuncC) (CARD32 *dest, CARD32 *src, CARD32 *mask, int width);typedef struct _FbComposeFunctions {    CombineFuncU *combineU;    CombineFuncC *combineC;    CombineMaskU combineMaskU;} FbComposeFunctions;#endif /* _FBPICT_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -