📄 cfbmskbits.c
字号:
PixelGroup cfbstartpartial[] = { cfbBits(0xFFFFFFFF), };PixelGroup cfbendpartial[] = { cfbBits(0xFFFFFFFF), };#else /* PGSZ == 64 */PixelGroup cfbstartpartial[] = { cfbBits(0xFFFFFFFFFFFFFFFF), cfbBits(0x00000000FFFFFFFF), };PixelGroup cfbendpartial[] = { cfbBits(0xFFFFFFFFFFFFFFFF), cfbBits(0xFFFFFFFF00000000), };#endif /* PGSZ */#endif /* PSZ == 32 *//* used for masking bits in bresenham lines mask[n] is used to mask out all but bit n in a longword (n is ascreen position). rmask[n] is used to mask out the single bit at position n (nis a screen posiotion.)*/#if PSZ == 4#if PGSZ == 32PixelGroup cfbmask[] = { cfbBits(0xF0000000), cfbBits(0x0F000000), cfbBits(0x00F00000), cfbBits(0x000F0000), cfbBits(0x0000F000), cfbBits(0x00000F00), cfbBits(0x000000F0), cfbBits(0x0000000F) }; PixelGroup cfbrmask[] = { cfbBits(0x0FFFFFFF), cfbBits(0xF0FFFFFF), cfbBits(0xFF0FFFFF), cfbBits(0xFFF0FFFF), cfbBits(0xFFFF0FFF), cfbBits(0xFFFFF0FF), cfbBits(0xFFFFFF0F), cfbBits(0xFFFFFFF0) };#else /* PGSZ == 64 */PixelGroup cfbmask[] = { cfbBits(0xF000000000000000), cfbBits(0x0F00000000000000), cfbBits(0x00F0000000000000), cfbBits(0x000F000000000000), cfbBits(0x0000F00000000000), cfbBits(0x00000F0000000000), cfbBits(0x000000F000000000), cfbBits(0x0000000F00000000), cfbBits(0x00000000F0000000), cfbBits(0x000000000F000000), cfbBits(0x0000000000F00000), cfbBits(0x00000000000F0000), cfbBits(0x000000000000F000), cfbBits(0x0000000000000F00), cfbBits(0x00000000000000F0), cfbBits(0x000000000000000F), }; PixelGroup cfbrmask[] = { cfbBits(0x0FFFFFFFFFFFFFFF), cfbBits(0xF0FFFFFFFFFFFFFF), cfbBits(0xFF0FFFFFFFFFFFFF), cfbBits(0xFFF0FFFFFFFFFFFF), cfbBits(0xFFFF0FFFFFFFFFFF), cfbBits(0xFFFFF0FFFFFFFFFF), cfbBits(0xFFFFFF0FFFFFFFFF), cfbBits(0xFFFFFFF0FFFFFFFF), cfbBits(0xFFFFFFFF0FFFFFFF), cfbBits(0xFFFFFFFFF0FFFFFF), cfbBits(0xFFFFFFFFFF0FFFFF), cfbBits(0xFFFFFFFFFFF0FFFF), cfbBits(0xFFFFFFFFFFFF0FFF), cfbBits(0xFFFFFFFFFFFFF0FF), cfbBits(0xFFFFFFFFFFFFFF0F), cfbBits(0xFFFFFFFFFFFFFFF0), };#endif /* PGSZ */#endif /* PSZ == 4 */#if PSZ == 8#if PGSZ == 32PixelGroup cfbmask[] = { cfbBits(0xFF000000), cfbBits(0x00FF0000), cfbBits(0x0000FF00), cfbBits(0x000000FF) }; PixelGroup cfbrmask[] = { cfbBits(0x00FFFFFF), cfbBits(0xFF00FFFF), cfbBits(0xFFFF00FF), cfbBits(0xFFFFFF00) };#else /* PGSZ == 64 */PixelGroup cfbmask[] = { cfbBits(0xFF00000000000000), cfbBits(0x00FF000000000000), cfbBits(0x0000FF0000000000), cfbBits(0x000000FF00000000), cfbBits(0x00000000FF000000), cfbBits(0x0000000000FF0000), cfbBits(0x000000000000FF00), cfbBits(0x00000000000000FF), }; PixelGroup cfbrmask[] = { cfbBits(0x00FFFFFFFFFFFFFF), cfbBits(0xFF00FFFFFFFFFFFF), cfbBits(0xFFFF00FFFFFFFFFF), cfbBits(0xFFFFFF00FFFFFFFF), cfbBits(0xFFFFFFFF00FFFFFF), cfbBits(0xFFFFFFFFFF00FFFF), cfbBits(0xFFFFFFFFFFFF00FF), cfbBits(0xFFFFFFFFFFFFFF00), };#endif /* PGSZ */#endif /* PSZ == 8 */#if PSZ == 16#if PGSZ == 32PixelGroup cfbmask[] = { cfbBits(0xFFFF0000), cfbBits(0x0000FFFF), }; PixelGroup cfbrmask[] = { cfbBits(0x0000FFFF), cfbBits(0xFFFF0000), };#else /* PGSZ == 64 */PixelGroup cfbmask[] = { cfbBits(0xFFFF000000000000), cfbBits(0x0000FFFF00000000), cfbBits(0x00000000FFFF0000), cfbBits(0x000000000000FFFF), }; PixelGroup cfbrmask[] = { cfbBits(0x0000FFFFFFFFFFFF), cfbBits(0xFFFF0000FFFFFFFF), cfbBits(0xFFFFFFFF0000FFFF), cfbBits(0xFFFFFFFFFFFF0000), };#endif /* PGSZ */#endif /* PSZ == 16 */#if PSZ == 24#if PGSZ == 32PixelGroup cfbmask[] = { cfbBits(0xFFFFFF00), cfbBits(0x00000000), cfbBits(0x000000FF), cfbBits(0xFFFF0000), cfbBits(0x0000FFFF), cfbBits(0xFF000000), cfbBits(0x00FFFFFF), cfbBits(0x00000000), }; PixelGroup cfbrmask[] = { cfbBits(0x000000FF), cfbBits(0xFFFFFFFF), cfbBits(0xFFFFFF00), cfbBits(0x0000FFFF), cfbBits(0xFFFF0000), cfbBits(0x00FFFFFF), cfbBits(0xFF000000), cfbBits(0xFFFFFFFF), };#else /* PGSZ == 64 */PixelGroup cfbmask[] = { cfbBits(0xFFFFFF0000000000), cfbBits(0x000000FFFFFF0000), cfbBits(0x000000000000FFFF), }; PixelGroup cfbmask2[] = { cfbBits(0x0000000000000000), cfbBits(0x0000000000000000), cfbBits(0xFF00000000000000), }; PixelGroup cfbrmask[] = { cfbBits(0x000000FFFFFFFFFF), cfbBits(0xFFFFFF000000FFFF), cfbBits(0xFFFFFFFFFFFF0000), };PixelGroup cfbrmask2[] = { cfbBits(0x0000000000000000), cfbBits(0x0000000000000000), cfbBits(0x00FFFFFFFFFFFFFF), };#endif /* PGSZ */#endif /* PSZ == 24 */#if PSZ == 32#if PGSZ == 32PixelGroup cfbmask[] = { cfbBits(0xFFFFFFFF), }; PixelGroup cfbrmask[] = { cfbBits(0xFFFFFFFF), };#else /* PGSZ == 64 */PixelGroup cfbmask[] = { cfbBits(0xFFFFFFFF00000000), cfbBits(0x00000000FFFFFFFF), }; PixelGroup cfbrmask[] = { cfbBits(0x00000000FFFFFFFF), cfbBits(0xFFFFFFFF00000000), };#endif /* PGSZ */#endif /* PSZ == 32 *//* * QuartetBitsTable contains PPW+1 masks whose binary values are masks in the * low order quartet that contain the number of bits specified in the * index. This table is used by getstipplepixels. */#if PSZ == 4PixelGroup QuartetBitsTable[] = {#if PGSZ == 32#if (BITMAP_BIT_ORDER == MSBFirst) 0x00000000, /* 0 - 00000000 */ 0x00000080, /* 1 - 10000000 */ 0x000000C0, /* 2 - 11000000 */ 0x000000E0, /* 3 - 11100000 */ 0x000000F0, /* 4 - 11110000 */ 0x000000F8, /* 5 - 11111000 */ 0x000000FC, /* 6 - 11111100 */ 0x000000FE, /* 7 - 11111110 */ 0x000000FF /* 8 - 11111111 */#else /* (BITMAP_BIT_ORDER == LSBFirst */ 0x00000000, /* 0 - 00000000 */ 0x00000001, /* 1 - 00000001 */ 0x00000003, /* 2 - 00000011 */ 0x00000007, /* 3 - 00000111 */ 0x0000000F, /* 4 - 00001111 */ 0x0000001F, /* 5 - 00011111 */ 0x0000003F, /* 6 - 00111111 */ 0x0000007F, /* 7 - 01111111 */ 0x000000FF /* 8 - 11111111 */#endif /* (BITMAP_BIT_ORDER == MSBFirst) */#else /* PGSZ == 64 */#if (BITMAP_BIT_ORDER == MSBFirst) 0x00000000, /* 0 - 0000000000000000 */ 0x00008000, /* 1 - 1000000000000000 */ 0x0000C000, /* 2 - 1100000000000000 */ 0x0000E000, /* 3 - 1110000000000000 */ 0x0000F000, /* 4 - 1111000000000000 */ 0x0000F800, /* 5 - 1111100000000000 */ 0x0000FC00, /* 6 - 1111110000000000 */ 0x0000FE00, /* 7 - 1111111000000000 */ 0x0000FF00, /* 8 - 1111111100000000 */ 0x0000FF80, /* 9 - 1111111110000000 */ 0x0000FFC0, /* 10- 1111111111000000 */ 0x0000FFE0, /* 11- 1111111111100000 */ 0x0000FFF0, /* 12- 1111111111110000 */ 0x0000FFF8, /* 13- 1111111111111000 */ 0x0000FFFC, /* 14- 1111111111111100 */ 0x0000FFFE, /* 15- 1111111111111110 */ 0x0000FFFF, /* 16- 1111111111111111 */#else /* (BITMAP_BIT_ORDER == LSBFirst */ 0x00000000, /* 0 - 0000000000000000 */ 0x00000001, /* 1 - 0000000000000001 */ 0x00000003, /* 2 - 0000000000000011 */ 0x00000007, /* 3 - 0000000000000111 */ 0x0000000F, /* 4 - 0000000000001111 */ 0x0000001F, /* 5 - 0000000000011111 */ 0x0000003F, /* 6 - 0000000000111111 */ 0x0000007F, /* 7 - 0000000001111111 */ 0x000000FF, /* 8 - 0000000011111111 */ 0x000001FF, /* 9 - 0000000111111111 */ 0x000003FF, /* 10- 0000001111111111 */ 0x000007FF, /* 11- 0000011111111111 */ 0x00000FFF, /* 12- 0000111111111111 */ 0x00001FFF, /* 13- 0001111111111111 */ 0x00003FFF, /* 14- 0011111111111111 */ 0x00007FFF, /* 15- 0111111111111111 */ 0x0000FFFF, /* 16- 1111111111111111 */#endif /* (BITMAP_BIT_ORDER == MSBFirst) */#endif /* PGSZ */};#endif /* PSZ == 4 */#if PSZ == 8PixelGroup QuartetBitsTable[] = {#if PGSZ == 32#if (BITMAP_BIT_ORDER == MSBFirst) 0x00000000, /* 0 - 0000 */ 0x00000008, /* 1 - 1000 */ 0x0000000C, /* 2 - 1100 */ 0x0000000E, /* 3 - 1110 */ 0x0000000F /* 4 - 1111 */#else /* (BITMAP_BIT_ORDER == LSBFirst */ 0x00000000, /* 0 - 0000 */ 0x00000001, /* 1 - 0001 */ 0x00000003, /* 2 - 0011 */ 0x00000007, /* 3 - 0111 */ 0x0000000F /* 4 - 1111 */#endif /* (BITMAP_BIT_ORDER == MSBFirst) */#else /* PGSZ == 64 */#if (BITMAP_BIT_ORDER == MSBFirst) 0x00000000, /* 0 - 00000000 */ 0x00000080, /* 1 - 10000000 */ 0x000000C0, /* 2 - 11000000 */ 0x000000E0, /* 3 - 11100000 */ 0x000000F0, /* 4 - 11110000 */ 0x000000F8, /* 5 - 11111000 */ 0x000000FC, /* 6 - 11111100 */ 0x000000FE, /* 7 - 11111110 */ 0x000000FF /* 8 - 11111111 */#else /* (BITMAP_BIT_ORDER == LSBFirst */ 0x00000000, /* 0 - 00000000 */ 0x00000001, /* 1 - 00000001 */ 0x00000003, /* 2 - 00000011 */ 0x00000007, /* 3 - 00000111 */ 0x0000000F, /* 4 - 10000111 */ 0x0000001F, /* 5 - 00011111 */ 0x0000003F, /* 6 - 00111111 */ 0x0000007F, /* 7 - 01111111 */ 0x000000FF /* 8 - 11111111 */#endif /* (BITMAP_BIT_ORDER == MSBFirst) */#endif /* PGSZ */};#endif /* PSZ == 8 */#if PSZ == 16PixelGroup QuartetBitsTable[] = {#if PGSZ == 32#if (BITMAP_BIT_ORDER == MSBFirst) 0x00000000, /* 0 - 00 */ 0x00000002, /* 1 - 10 */ 0x00000003, /* 2 - 11 */#else /* (BITMAP_BIT_ORDER == LSBFirst */ 0x00000000, /* 0 - 00 */ 0x00000001, /* 1 - 01 */ 0x00000003, /* 2 - 11 */#endif /* (BITMAP_BIT_ORDER == MSBFirst) */#else /* PGSZ == 64 */#if (BITMAP_BIT_ORDER == MSBFirst) 0x00000000, /* 0 - 0000 */ 0x00000008, /* 1 - 1000 */ 0x0000000C, /* 2 - 1100 */ 0x0000000E, /* 3 - 1110 */ 0x0000000F, /* 4 - 1111 */#else /* (BITMAP_BIT_ORDER == LSBFirst */ 0x00000000, /* 0 - 0000 */ 0x00000001, /* 1 - 0001 */ 0x00000003, /* 2 - 0011 */ 0x00000007, /* 3 - 0111 */ 0x0000000F, /* 4 - 1111 */#endif /* (BITMAP_BIT_ORDER == MSBFirst) */#endif /* PGSZ */};#endif /* PSZ == 16 */#if PSZ == 24PixelGroup QuartetBitsTable[] = {#if PGSZ == 32#if (BITMAP_BIT_ORDER == MSBFirst) 0x00000000, /* 0 - 0 */ 0x00000001, /* 1 - 1 */#else /* (BITMAP_BIT_ORDER == LSBFirst */ 0x00000000, /* 0 - 0 */ 0x00000001, /* 1 - 1 */#endif /* (BITMAP_BIT_ORDER == MSBFirst) */#else /* PGSZ == 64 */#if (BITMAP_BIT_ORDER == MSBFirst) 0x00000000, /* 0 - 00 */ 0x00000002, /* 1 - 10 */ 0x00000003, /* 2 - 11*/#else /* (BITMAP_BIT_ORDER == LSBFirst */ 0x00000000, /* 0 - 00 */ 0x00000001, /* 1 - 01 */ 0x00000003, /* 2 - 11 */#endif /* (BITMAP_BIT_ORDER == MSBFirst) */#endif /* PGSZ */};#endif /* PSZ == 24 */#if PSZ == 32PixelGroup QuartetBitsTable[] = {#if PGSZ == 32#if (BITMAP_BIT_ORDER == MSBFirst) 0x00000000, /* 0 - 0 */ 0x00000001, /* 1 - 1 */#else /* (BITMAP_BIT_ORDER == LSBFirst */ 0x00000000, /* 0 - 0 */ 0x00000001, /* 1 - 1 */#endif /* (BITMAP_BIT_ORDER == MSBFirst) */#else /* PGSZ == 64 */#if (BITMAP_BIT_ORDER == MSBFirst) 0x00000000, /* 0 - 00 */ 0x00000002, /* 1 - 10 */ 0x00000003, /* 2 - 11*/#else /* (BITMAP_BIT_ORDER == LSBFirst */ 0x00000000, /* 0 - 00 */ 0x00000001, /* 1 - 01 */ 0x00000003, /* 2 - 11 */#endif /* (BITMAP_BIT_ORDER == MSBFirst) */#endif /* PGSZ */};#endif /* PSZ == 32 *//* * QuartetPixelMaskTable is used by getstipplepixels to get a pixel mask * corresponding to a quartet of bits. Note: the bit/byte order dependency * is handled by QuartetBitsTable above. */#if PSZ == 4#if PGSZ == 32PixelGroup QuartetPixelMaskTable[] = { 0x00000000, 0x0000000F, 0x000000F0, 0x000000FF, 0x00000F00, 0x00000F0F, 0x00000FF0, 0x00000FFF, 0x0000F000, 0x0000F00F, 0x0000F0F0, 0x0000F0FF, 0x0000FF00, 0x0000FF0F, 0x0000FFF0, 0x0000FFFF, 0x000F0000, 0x000F000F, 0x000F00F0, 0x000F00FF, 0x000F0F00, 0x000F0F0F, 0x000F0FF0,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -