--- OLD/xc/programs/Xserver/cfb/cfbmskbits.c Thu Jan 1 00:00:00 1970 +++ NEW/xc/programs/Xserver/cfb/cfbmskbits.c Thu Jan 1 00:00:00 1970 @@ -77,6 +77,121 @@ than having to do the multiple reads and masks that we'd have to do if we thought it was partial. */ + +#if PSZ == 2 +#if PGSZ == 32 +PixelGroup cfbstarttab[] = + { + cfbBits(0x00000000), + cfbBits(0x3FFFFFFF), + cfbBits(0x0FFFFFFF), + cfbBits(0x03FFFFFF), + cfbBits(0x00FFFFFF), + cfbBits(0x003FFFFF), + cfbBits(0x000FFFFF), + cfbBits(0x0003FFFF), + cfbBits(0x0000FFFF), + cfbBits(0x00003FFF), + cfbBits(0x00000FFF), + cfbBits(0x000003FF), + cfbBits(0x000000FF), + cfbBits(0x0000003F), + cfbBits(0x0000000F), + cfbBits(0x00000003), + }; +PixelGroup cfbendtab[] = + { + cfbBits(0x00000000), + cfbBits(0xC0000000), + cfbBits(0xF0000000), + cfbBits(0xFC000000), + cfbBits(0xFF000000), + cfbBits(0xFFC00000), + cfbBits(0xFFF00000), + cfbBits(0xFFFC0000), + cfbBits(0xFFFF0000), + cfbBits(0xFFFFC000), + cfbBits(0xFFFFF000), + cfbBits(0xFFFFFC00), + cfbBits(0xFFFFFF00), + cfbBits(0xFFFFFFC0), + cfbBits(0xFFFFFFF0), + cfbBits(0xFFFFFFFC), + }; +#else /* PGSZ == 64 */ +PixelGroup cfbstarttab[] = + { + cfbBits(0x0000000000000000), + cfbBits(0x3FFFFFFFFFFFFFFF), + cfbBits(0x0FFFFFFFFFFFFFFF), + cfbBits(0x03FFFFFFFFFFFFFF), + cfbBits(0x00FFFFFFFFFFFFFF), + cfbBits(0x003FFFFFFFFFFFFF), + cfbBits(0x000FFFFFFFFFFFFF), + cfbBits(0x0003FFFFFFFFFFFF), + cfbBits(0x0000FFFFFFFFFFFF), + cfbBits(0x00003FFFFFFFFFFF), + cfbBits(0x00000FFFFFFFFFFF), + cfbBits(0x000003FFFFFFFFFF), + cfbBits(0x000000FFFFFFFFFF), + cfbBits(0x0000003FFFFFFFFF), + cfbBits(0x0000000FFFFFFFFF), + cfbBits(0x00000003FFFFFFFF), + cfbBits(0x00000000FFFFFFFF), + cfbBits(0x000000003FFFFFFF), + cfbBits(0x000000000FFFFFFF), + cfbBits(0x0000000003FFFFFF), + cfbBits(0x0000000000FFFFFF), + cfbBits(0x00000000003FFFFF), + cfbBits(0x00000000000FFFFF), + cfbBits(0x000000000003FFFF), + cfbBits(0x000000000000FFFF), + cfbBits(0x0000000000003FFF), + cfbBits(0x0000000000000FFF), + cfbBits(0x00000000000003FF), + cfbBits(0x00000000000000FF), + cfbBits(0x000000000000003F), + cfbBits(0x000000000000000F), + cfbBits(0x0000000000000003), + }; +PixelGroup cfbendtab[] = + { + cfbBits(0x0000000000000000), + cfbBits(0xC000000000000000), + cfbBits(0xF000000000000000), + cfbBits(0xFC00000000000000), + cfbBits(0xFF00000000000000), + cfbBits(0xFFC0000000000000), + cfbBits(0xFFF0000000000000), + cfbBits(0xFFFC000000000000), + cfbBits(0xFFFF000000000000), + cfbBits(0xFFFFC00000000000), + cfbBits(0xFFFFF00000000000), + cfbBits(0xFFFFFC0000000000), + cfbBits(0xFFFFFF0000000000), + cfbBits(0xFFFFFFC000000000), + cfbBits(0xFFFFFFF000000000), + cfbBits(0xFFFFFFFC00000000), + cfbBits(0xFFFFFFFF00000000), + cfbBits(0xFFFFFFFFC0000000), + cfbBits(0xFFFFFFFFF0000000), + cfbBits(0xFFFFFFFFFC000000), + cfbBits(0xFFFFFFFFFF000000), + cfbBits(0xFFFFFFFFFFC00000), + cfbBits(0xFFFFFFFFFFF00000), + cfbBits(0xFFFFFFFFFFFC0000), + cfbBits(0xFFFFFFFFFFFF0000), + cfbBits(0xFFFFFFFFFFFFC000), + cfbBits(0xFFFFFFFFFFFFF000), + cfbBits(0xFFFFFFFFFFFFFC00), + cfbBits(0xFFFFFFFFFFFFFF00), + cfbBits(0xFFFFFFFFFFFFFFC0), + cfbBits(0xFFFFFFFFFFFFFFF0), + cfbBits(0xFFFFFFFFFFFFFFFC), + }; +#endif /* PGSZ */ +#endif /* PSZ == 2 */ + #if PSZ == 4 #if PGSZ == 32 PixelGroup cfbstarttab[] = @@ -244,6 +359,123 @@ this means the code DOES NOT WORK for segments of length 0 (which is only a problem in the horizontal line code.) */ + +#if PSZ == 2 +#if PGSZ == 32 +PixelGroup cfbstartpartial[] = + { + cfbBits(0xFFFFFFFF), + cfbBits(0x3FFFFFFF), + cfbBits(0x0FFFFFFF), + cfbBits(0x03FFFFFF), + cfbBits(0x00FFFFFF), + cfbBits(0x003FFFFF), + cfbBits(0x000FFFFF), + cfbBits(0x0003FFFF), + cfbBits(0x0000FFFF), + cfbBits(0x00003FFF), + cfbBits(0x00000FFF), + cfbBits(0x000003FF), + cfbBits(0x000000FF), + cfbBits(0x0000003F), + cfbBits(0x0000000F), + cfbBits(0x00000003), + }; + +PixelGroup cfbendpartial[] = + { + cfbBits(0xFFFFFFFF), + cfbBits(0xC0000000), + cfbBits(0xF0000000), + cfbBits(0xFC000000), + cfbBits(0xFF000000), + cfbBits(0xFFC00000), + cfbBits(0xFFF00000), + cfbBits(0xFFFC0000), + cfbBits(0xFFFF0000), + cfbBits(0xFFFFC000), + cfbBits(0xFFFFF000), + cfbBits(0xFFFFFC00), + cfbBits(0xFFFFFF00), + cfbBits(0xFFFFFFC0), + cfbBits(0xFFFFFFF0), + cfbBits(0xFFFFFFFC), + }; +#else /* PGSZ == 64 */ +PixelGroup cfbstartpartial[] = + { + cfbBits(0xFFFFFFFFFFFFFFFF), + cfbBits(0x3FFFFFFFFFFFFFFF), + cfbBits(0x0FFFFFFFFFFFFFFF), + cfbBits(0x03FFFFFFFFFFFFFF), + cfbBits(0x00FFFFFFFFFFFFFF), + cfbBits(0x003FFFFFFFFFFFFF), + cfbBits(0x000FFFFFFFFFFFFF), + cfbBits(0x0003FFFFFFFFFFFF), + cfbBits(0x0000FFFFFFFFFFFF), + cfbBits(0x00003FFFFFFFFFFF), + cfbBits(0x00000FFFFFFFFFFF), + cfbBits(0x000003FFFFFFFFFF), + cfbBits(0x000000FFFFFFFFFF), + cfbBits(0x0000003FFFFFFFFF), + cfbBits(0x0000000FFFFFFFFF), + cfbBits(0x00000003FFFFFFFF), + cfbBits(0x00000000FFFFFFFF), + cfbBits(0x000000003FFFFFFF), + cfbBits(0x000000000FFFFFFF), + cfbBits(0x0000000003FFFFFF), + cfbBits(0x0000000000FFFFFF), + cfbBits(0x00000000003FFFFF), + cfbBits(0x00000000000FFFFF), + cfbBits(0x000000000003FFFF), + cfbBits(0x000000000000FFFF), + cfbBits(0x0000000000003FFF), + cfbBits(0x0000000000000FFF), + cfbBits(0x00000000000003FF), + cfbBits(0x00000000000000FF), + cfbBits(0x000000000000003F), + cfbBits(0x000000000000000F), + cfbBits(0x0000000000000003), + }; + +PixelGroup cfbendpartial[] = + { + cfbBits(0xFFFFFFFFFFFFFFFF), + cfbBits(0xC000000000000000), + cfbBits(0xF000000000000000), + cfbBits(0xFC00000000000000), + cfbBits(0xFF00000000000000), + cfbBits(0xFFC0000000000000), + cfbBits(0xFFF0000000000000), + cfbBits(0xFFFC000000000000), + cfbBits(0xFFFF000000000000), + cfbBits(0xFFFFC00000000000), + cfbBits(0xFFFFF00000000000), + cfbBits(0xFFFFFC0000000000), + cfbBits(0xFFFFFF0000000000), + cfbBits(0xFFFFFFC000000000), + cfbBits(0xFFFFFFF000000000), + cfbBits(0xFFFFFFFC00000000), + cfbBits(0xFFFFFFFF00000000), + cfbBits(0xFFFFFFFFC0000000), + cfbBits(0xFFFFFFFFF0000000), + cfbBits(0xFFFFFFFFFC000000), + cfbBits(0xFFFFFFFFFF000000), + cfbBits(0xFFFFFFFFFFC00000), + cfbBits(0xFFFFFFFFFFF00000), + cfbBits(0xFFFFFFFFFFFC0000), + cfbBits(0xFFFFFFFFFFFF0000), + cfbBits(0xFFFFFFFFFFFFC000), + cfbBits(0xFFFFFFFFFFFFF000), + cfbBits(0xFFFFFFFFFFFFFC00), + cfbBits(0xFFFFFFFFFFFFFF00), + cfbBits(0xFFFFFFFFFFFFFFC0), + cfbBits(0xFFFFFFFFFFFFFFF0), + cfbBits(0xFFFFFFFFFFFFFFFC), + }; +#endif /* PGSZ */ +#endif /* PSZ == 2 */ + #if PSZ == 4 #if PGSZ == 32 PixelGroup cfbstartpartial[] = @@ -421,6 +653,120 @@ is a screen posiotion.) */ +#if PSZ == 2 +#if PGSZ == 32 +PixelGroup cfbmask[] = + { + cfbBits(0xC0000000), + cfbBits(0x30000000), + cfbBits(0x0C000000), + cfbBits(0x03000000), + cfbBits(0x00C00000), + cfbBits(0x00300000), + cfbBits(0x000C0000), + cfbBits(0x00030000), + cfbBits(0x0000C000), + cfbBits(0x00003000), + cfbBits(0x00000C00), + cfbBits(0x00000300), + cfbBits(0x000000C0), + cfbBits(0x00000030), + cfbBits(0x0000000C), + cfbBits(0x00000003), + }; +PixelGroup cfbrmask[] = + { + cfbBits(0x3FFFFFFF), + cfbBits(0xCFFFFFFF), + cfbBits(0xF3FFFFFF), + cfbBits(0xFCFFFFFF), + cfbBits(0xFF3FFFFF), + cfbBits(0xFFCFFFFF), + cfbBits(0xFFF3FFFF), + cfbBits(0xFFFCFFFF), + cfbBits(0xFFFF3FFF), + cfbBits(0xFFFFCFFF), + cfbBits(0xFFFFF3FF), + cfbBits(0xFFFFFCFF), + cfbBits(0xFFFFFF3F), + cfbBits(0xFFFFFFCF), + cfbBits(0xFFFFFFF3), + cfbBits(0xFFFFFFFC), + }; +#else /* PGSZ == 64 */ +PixelGroup cfbmask[] = + { + cfbBits(0xC000000000000000), + cfbBits(0x3000000000000000), + cfbBits(0x0C00000000000000), + cfbBits(0x0300000000000000), + cfbBits(0x00C0000000000000), + cfbBits(0x0030000000000000), + cfbBits(0x000C000000000000), + cfbBits(0x0003000000000000), + cfbBits(0x0000C00000000000), + cfbBits(0x0000300000000000), + cfbBits(0x00000C0000000000), + cfbBits(0x0000030000000000), + cfbBits(0x000000C000000000), + cfbBits(0x0000003000000000), + cfbBits(0x0000000C00000000), + cfbBits(0x0000000300000000), + cfbBits(0x00000000C0000000), + cfbBits(0x0000000030000000), + cfbBits(0x000000000C000000), + cfbBits(0x0000000003000000), + cfbBits(0x0000000000C00000), + cfbBits(0x0000000000300000), + cfbBits(0x00000000000C0000), + cfbBits(0x0000000000030000), + cfbBits(0x000000000000C000), + cfbBits(0x0000000000003000), + cfbBits(0x0000000000000C00), + cfbBits(0x0000000000000300), + cfbBits(0x00000000000000C0), + cfbBits(0x0000000000000030), + cfbBits(0x000000000000000C), + cfbBits(0x0000000000000003), + }; +PixelGroup cfbrmask[] = + { + cfbBits(0x3FFFFFFFFFFFFFFF), + cfbBits(0xCFFFFFFFFFFFFFFF), + cfbBits(0xF3FFFFFFFFFFFFFF), + cfbBits(0xFCFFFFFFFFFFFFFF), + cfbBits(0xFF3FFFFFFFFFFFFF), + cfbBits(0xFFCFFFFFFFFFFFFF), + cfbBits(0xFFF3FFFFFFFFFFFF), + cfbBits(0xFFFCFFFFFFFFFFFF), + cfbBits(0xFFFF3FFFFFFFFFFF), + cfbBits(0xFFFFCFFFFFFFFFFF), + cfbBits(0xFFFFF3FFFFFFFFFF), + cfbBits(0xFFFFFCFFFFFFFFFF), + cfbBits(0xFFFFFF3FFFFFFFFF), + cfbBits(0xFFFFFFCFFFFFFFFF), + cfbBits(0xFFFFFFF3FFFFFFFF), + cfbBits(0xFFFFFFFCFFFFFFFF), + cfbBits(0xFFFFFFFF3FFFFFFF), + cfbBits(0xFFFFFFFFCFFFFFFF), + cfbBits(0xFFFFFFFFF3FFFFFF), + cfbBits(0xFFFFFFFFFCFFFFFF), + cfbBits(0xFFFFFFFFFF3FFFFF), + cfbBits(0xFFFFFFFFFFCFFFFF), + cfbBits(0xFFFFFFFFFFF3FFFF), + cfbBits(0xFFFFFFFFFFFCFFFF), + cfbBits(0xFFFFFFFFFFFF3FFF), + cfbBits(0xFFFFFFFFFFFFCFFF), + cfbBits(0xFFFFFFFFFFFFF3FF), + cfbBits(0xFFFFFFFFFFFFFCFF), + cfbBits(0xFFFFFFFFFFFFFF3F), + cfbBits(0xFFFFFFFFFFFFFFCF), + cfbBits(0xFFFFFFFFFFFFFFF3), + cfbBits(0xFFFFFFFFFFFFFFFC), + }; +#endif /* PGSZ */ +#endif /* PSZ == 2 */ + #if PSZ == 4 #if PGSZ == 32 PixelGroup cfbmask[] = @@ -588,6 +934,121 @@ * low order quartet that contain the number of bits specified in the * index. This table is used by getstipplepixels. */ + +#if PSZ == 2 +PixelGroup QuartetBitsTable[] = { +#if PGSZ == 32 +#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) */ +#else /* PGSZ == 64 */ +#if (BITMAP_BIT_ORDER == MSBFirst) + 0x00000000, /* 0 - 00000000000000000000000000000000 */ + 0x80000000, /* 1 - 10000000000000000000000000000000 */ + 0xC0000000, /* 2 - 11000000000000000000000000000000 */ + 0xE0000000, /* 3 - 11100000000000000000000000000000 */ + 0xF0000000, /* 4 - 11110000000000000000000000000000 */ + 0xF8000000, /* 5 - 11111000000000000000000000000000 */ + 0xFC000000, /* 6 - 11111100000000000000000000000000 */ + 0xFE000000, /* 7 - 11111110000000000000000000000000 */ + 0xFF000000, /* 8 - 11111111000000000000000000000000 */ + 0xFF800000, /* 9 - 11111111100000000000000000000000 */ + 0xFFC00000, /* 10 - 11111111110000000000000000000000 */ + 0xFFE00000, /* 11 - 11111111111000000000000000000000 */ + 0xFFF00000, /* 12 - 11111111111100000000000000000000 */ + 0xFFF80000, /* 13 - 11111111111110000000000000000000 */ + 0xFFFC0000, /* 14 - 11111111111111000000000000000000 */ + 0xFFFE0000, /* 15 - 11111111111111100000000000000000 */ + 0xFFFF0000, /* 16 - 11111111111111110000000000000000 */ + 0xFFFF8000, /* 17 - 11111111111111111000000000000000 */ + 0xFFFFC000, /* 18 - 11111111111111111100000000000000 */ + 0xFFFFE000, /* 19 - 11111111111111111110000000000000 */ + 0xFFFFF000, /* 20 - 11111111111111111111000000000000 */ + 0xFFFFF800, /* 21 - 11111111111111111111100000000000 */ + 0xFFFFFC00, /* 22 - 11111111111111111111110000000000 */ + 0xFFFFFE00, /* 23 - 11111111111111111111111000000000 */ + 0xFFFFFF00, /* 24 - 11111111111111111111111100000000 */ + 0xFFFFFF80, /* 25 - 11111111111111111111111110000000 */ + 0xFFFFFFC0, /* 26 - 11111111111111111111111111000000 */ + 0xFFFFFFE0, /* 27 - 11111111111111111111111111100000 */ + 0xFFFFFFF0, /* 28 - 11111111111111111111111111110000 */ + 0xFFFFFFF8, /* 29 - 11111111111111111111111111111000 */ + 0xFFFFFFFC, /* 30 - 11111111111111111111111111111100 */ + 0xFFFFFFFE, /* 31 - 11111111111111111111111111111110 */ + 0xFFFFFFFF, /* 32 - 11111111111111111111111111111111 */ +#else /* (BITMAP_BIT_ORDER == LSBFirst */ + 0x00000000, /* 0 - 00000000000000000000000000000000 */ + 0x00000001, /* 1 - 00000000000000000000000000000001 */ + 0x00000003, /* 2 - 00000000000000000000000000000011 */ + 0x00000007, /* 3 - 00000000000000000000000000000111 */ + 0x0000000F, /* 4 - 00000000000000000000000000001111 */ + 0x0000001F, /* 5 - 00000000000000000000000000011111 */ + 0x0000003F, /* 6 - 00000000000000000000000000111111 */ + 0x0000007F, /* 7 - 00000000000000000000000001111111 */ + 0x000000FF, /* 8 - 00000000000000000000000011111111 */ + 0x000001FF, /* 9 - 00000000000000000000000111111111 */ + 0x000003FF, /* 10 - 00000000000000000000001111111111 */ + 0x000007FF, /* 11 - 00000000000000000000011111111111 */ + 0x00000FFF, /* 12 - 00000000000000000000111111111111 */ + 0x00001FFF, /* 13 - 00000000000000000001111111111111 */ + 0x00003FFF, /* 14 - 00000000000000000011111111111111 */ + 0x00007FFF, /* 15 - 00000000000000000111111111111111 */ + 0x0000FFFF, /* 16 - 00000000000000001111111111111111 */ + 0x0001FFFF, /* 17 - 00000000000000011111111111111111 */ + 0x0003FFFF, /* 18 - 00000000000000111111111111111111 */ + 0x0007FFFF, /* 19 - 00000000000001111111111111111111 */ + 0x000FFFFF, /* 20 - 00000000000011111111111111111111 */ + 0x001FFFFF, /* 21 - 00000000000111111111111111111111 */ + 0x003FFFFF, /* 22 - 00000000001111111111111111111111 */ + 0x007FFFFF, /* 23 - 00000000011111111111111111111111 */ + 0x00FFFFFF, /* 24 - 00000000111111111111111111111111 */ + 0x01FFFFFF, /* 25 - 00000001111111111111111111111111 */ + 0x03FFFFFF, /* 26 - 00000011111111111111111111111111 */ + 0x07FFFFFF, /* 27 - 00000111111111111111111111111111 */ + 0x0FFFFFFF, /* 28 - 00001111111111111111111111111111 */ + 0x1FFFFFFF, /* 29 - 00011111111111111111111111111111 */ + 0x3FFFFFFF, /* 30 - 00111111111111111111111111111111 */ + 0x7FFFFFFF, /* 31 - 01111111111111111111111111111111 */ + 0xFFFFFFFF, /* 32 - 11111111111111111111111111111111 */ +#endif /* (BITMAP_BIT_ORDER == MSBFirst) */ +#endif /* PGSZ */ +}; +#endif /* PSZ == 2 */ + #if PSZ == 4 PixelGroup QuartetBitsTable[] = { #if PGSZ == 32 @@ -755,6 +1216,46 @@ * corresponding to a quartet of bits. Note: the bit/byte order dependency * is handled by QuartetBitsTable above. */ + +#if PSZ == 2 +/* getstipplepixels for PSZ==2 breaks things in two (PGSZ=32) or four + (PGSZ=64) because otherwise this table would be 64K or 4G entries. + The name is deliberately different to help avoid confusion. */ +PixelGroup QuartetPixelMask8Table[] = { + 0x0000, 0x0003, 0x000c, 0x000f, 0x0030, 0x0033, 0x003c, 0x003f, + 0x00c0, 0x00c3, 0x00cc, 0x00cf, 0x00f0, 0x00f3, 0x00fc, 0x00ff, + 0x0300, 0x0303, 0x030c, 0x030f, 0x0330, 0x0333, 0x033c, 0x033f, + 0x03c0, 0x03c3, 0x03cc, 0x03cf, 0x03f0, 0x03f3, 0x03fc, 0x03ff, + 0x0c00, 0x0c03, 0x0c0c, 0x0c0f, 0x0c30, 0x0c33, 0x0c3c, 0x0c3f, + 0x0cc0, 0x0cc3, 0x0ccc, 0x0ccf, 0x0cf0, 0x0cf3, 0x0cfc, 0x0cff, + 0x0f00, 0x0f03, 0x0f0c, 0x0f0f, 0x0f30, 0x0f33, 0x0f3c, 0x0f3f, + 0x0fc0, 0x0fc3, 0x0fcc, 0x0fcf, 0x0ff0, 0x0ff3, 0x0ffc, 0x0fff, + 0x3000, 0x3003, 0x300c, 0x300f, 0x3030, 0x3033, 0x303c, 0x303f, + 0x30c0, 0x30c3, 0x30cc, 0x30cf, 0x30f0, 0x30f3, 0x30fc, 0x30ff, + 0x3300, 0x3303, 0x330c, 0x330f, 0x3330, 0x3333, 0x333c, 0x333f, + 0x33c0, 0x33c3, 0x33cc, 0x33cf, 0x33f0, 0x33f3, 0x33fc, 0x33ff, + 0x3c00, 0x3c03, 0x3c0c, 0x3c0f, 0x3c30, 0x3c33, 0x3c3c, 0x3c3f, + 0x3cc0, 0x3cc3, 0x3ccc, 0x3ccf, 0x3cf0, 0x3cf3, 0x3cfc, 0x3cff, + 0x3f00, 0x3f03, 0x3f0c, 0x3f0f, 0x3f30, 0x3f33, 0x3f3c, 0x3f3f, + 0x3fc0, 0x3fc3, 0x3fcc, 0x3fcf, 0x3ff0, 0x3ff3, 0x3ffc, 0x3fff, + 0xc000, 0xc003, 0xc00c, 0xc00f, 0xc030, 0xc033, 0xc03c, 0xc03f, + 0xc0c0, 0xc0c3, 0xc0cc, 0xc0cf, 0xc0f0, 0xc0f3, 0xc0fc, 0xc0ff, + 0xc300, 0xc303, 0xc30c, 0xc30f, 0xc330, 0xc333, 0xc33c, 0xc33f, + 0xc3c0, 0xc3c3, 0xc3cc, 0xc3cf, 0xc3f0, 0xc3f3, 0xc3fc, 0xc3ff, + 0xcc00, 0xcc03, 0xcc0c, 0xcc0f, 0xcc30, 0xcc33, 0xcc3c, 0xcc3f, + 0xccc0, 0xccc3, 0xcccc, 0xcccf, 0xccf0, 0xccf3, 0xccfc, 0xccff, + 0xcf00, 0xcf03, 0xcf0c, 0xcf0f, 0xcf30, 0xcf33, 0xcf3c, 0xcf3f, + 0xcfc0, 0xcfc3, 0xcfcc, 0xcfcf, 0xcff0, 0xcff3, 0xcffc, 0xcfff, + 0xf000, 0xf003, 0xf00c, 0xf00f, 0xf030, 0xf033, 0xf03c, 0xf03f, + 0xf0c0, 0xf0c3, 0xf0cc, 0xf0cf, 0xf0f0, 0xf0f3, 0xf0fc, 0xf0ff, + 0xf300, 0xf303, 0xf30c, 0xf30f, 0xf330, 0xf333, 0xf33c, 0xf33f, + 0xf3c0, 0xf3c3, 0xf3cc, 0xf3cf, 0xf3f0, 0xf3f3, 0xf3fc, 0xf3ff, + 0xfc00, 0xfc03, 0xfc0c, 0xfc0f, 0xfc30, 0xfc33, 0xfc3c, 0xfc3f, + 0xfcc0, 0xfcc3, 0xfccc, 0xfccf, 0xfcf0, 0xfcf3, 0xfcfc, 0xfcff, + 0xff00, 0xff03, 0xff0c, 0xff0f, 0xff30, 0xff33, 0xff3c, 0xff3f, + 0xffc0, 0xffc3, 0xffcc, 0xffcf, 0xfff0, 0xfff3, 0xfffc, 0xffff }; +#endif /* PSZ == 2 */ + #if PSZ == 4 #if PGSZ == 32 PixelGroup QuartetPixelMaskTable[] = {