📄 cfb8bit.h
字号:
((CARD16 *) (dst))[SinglePixel6] = (pixel); \ break; \ case 7: \ ((CARD32 *) (dst))[DoublePixel2] = (pixel); \ ((CARD16 *) (dst))[SinglePixel6] = (pixel); \ break; \ case 8: \ ((CARD16 *) (dst))[SinglePixel7] = (pixel); \ break; \ case 9: \ ((CARD16 *) (dst))[SinglePixel4] = (pixel); \ ((CARD16 *) (dst))[SinglePixel7] = (pixel); \ break; \ case 10: \ ((CARD16 *) (dst))[SinglePixel5] = (pixel); \ ((CARD16 *) (dst))[SinglePixel7] = (pixel); \ break; \ case 11: \ ((CARD32 *) (dst))[DoublePixel2] = (pixel); \ ((CARD16 *) (dst))[SinglePixel7] = (pixel); \ break; \ case 12: \ ((CARD32 *) (dst))[DoublePixel3] = (pixel); \ break; \ case 13: \ ((CARD16 *) (dst))[SinglePixel4] = (pixel); \ ((CARD32 *) (dst))[DoublePixel3] = (pixel); \ break; \ case 14: \ ((CARD16 *) (dst))[SinglePixel5] = (pixel); \ ((CARD32 *) (dst))[DoublePixel3] = (pixel); \ break; \ case 15: \ ((CARD32 *) (dst))[DoublePixel2] = (pixel); \ ((CARD32 *) (dst))[DoublePixel3] = (pixel); \ break; \ } \ }#endif /* PGSZ */#if PGSZ == 32#define SwitchBitGroup(dst,pixel,bits) { \ switch (bits) { \ case 0: \ break; \ case 1: \ SwitchBitsLoop (((CARD16 *) (dst))[SinglePixel0] = (pixel);) \ break; \ case 2: \ SwitchBitsLoop (((CARD16 *) (dst))[SinglePixel1] = (pixel);) \ break; \ case 3: \ SwitchBitsLoop (((CARD32 *) (dst))[DoublePixel0] = (pixel);) \ break; \ case 4: \ SwitchBitsLoop (((CARD16 *) (dst))[SinglePixel2] = (pixel);) \ break; \ case 5: \ SwitchBitsLoop (((CARD16 *) (dst))[SinglePixel0] = (pixel); \ ((CARD16 *) (dst))[SinglePixel2] = (pixel);) \ break; \ case 6: \ SwitchBitsLoop (((CARD16 *) (dst))[SinglePixel1] = (pixel); \ ((CARD16 *) (dst))[SinglePixel2] = (pixel);) \ break; \ case 7: \ SwitchBitsLoop (((CARD32 *) (dst))[DoublePixel0] = (pixel); \ ((CARD16 *) (dst))[SinglePixel2] = (pixel);) \ break; \ case 8: \ SwitchBitsLoop (((CARD16 *) (dst))[SinglePixel3] = (pixel);) \ break; \ case 9: \ SwitchBitsLoop (((CARD16 *) (dst))[SinglePixel0] = (pixel); \ ((CARD16 *) (dst))[SinglePixel3] = (pixel);) \ break; \ case 10: \ SwitchBitsLoop (((CARD16 *) (dst))[SinglePixel1] = (pixel); \ ((CARD16 *) (dst))[SinglePixel3] = (pixel);) \ break; \ case 11: \ SwitchBitsLoop (((CARD32 *) (dst))[DoublePixel0] = (pixel); \ ((CARD16 *) (dst))[SinglePixel3] = (pixel);) \ break; \ case 12: \ SwitchBitsLoop (((CARD32 *) (dst))[DoublePixel1] = (pixel);) \ break; \ case 13: \ SwitchBitsLoop (((CARD16 *) (dst))[SinglePixel0] = (pixel); \ ((CARD32 *) (dst))[DoublePixel1] = (pixel);) \ break; \ case 14: \ SwitchBitsLoop (((CARD16 *) (dst))[SinglePixel1] = (pixel); \ ((CARD32 *) (dst))[DoublePixel1] = (pixel);) \ break; \ case 15: \ SwitchBitsLoop (((CARD32 *) (dst))[DoublePixel0] = (pixel); \ ((CARD32 *) (dst))[DoublePixel1] = (pixel);) \ break; \ } \}#else /* PGSZ == 64 */#define SwitchBitGroup(dst,pixel,bits) { \ cfb cannot hack 64-bit SwitchBitGroup psz=PSZ#endif /* PGSZ */#endif /* PSZ == 16 */#if PSZ == 24/* 32 000011112222*//* 24 000111222333*//* 16 001122334455*//* 8 0123456789AB*/#if PGSZ == 32#define WriteBitGroup(dst,pixel,bits) \ { \ register CARD32 reg_pixel = (pixel); \ switch (bits) { \ case 0: \ break; \ case 1: \ ((CARD16 *) (dst))[DoublePixel0] = reg_pixel; \ ((CARD8 *) (dst))[SinglePixel2] = ((reg_pixel>>16)&0xFF); \ break; \ case 2: \ ((CARD8 *) (dst))[SinglePixel3] = reg_pixel&0xFF; \ ((CARD16 *) (dst))[DoublePixel2] = (reg_pixel>>8)&0xFFFF; \ break; \ case 3: \ ((CARD8 *) (dst))[SinglePixel3] = reg_pixel & 0xFF; \ ((CARD16 *) (dst))[DoublePixel0] = reg_pixel; \ ((CARD16 *) (dst))[DoublePixel2] = (reg_pixel>>8)&0xFFFF; \ ((CARD8 *) (dst))[SinglePixel2] = (reg_pixel>>16&0xFF); \ break; \ case 4: \ ((CARD16 *) (dst))[DoublePixel3] = reg_pixel; \ ((CARD8 *) (dst))[SinglePixel8] = (reg_pixel>>16)&0xFF; \ break; \ case 5: \ ((CARD16 *) (dst))[DoublePixel0] = \ ((CARD16 *) (dst))[DoublePixel3] = reg_pixel; \ reg_pixel >>= 16; \ ((CARD8 *) (dst))[SinglePixel2] = \ ((CARD8 *) (dst))[SinglePixel8] = reg_pixel&0xFF; \ break; \ case 6: \ ((CARD8 *) (dst))[SinglePixel3] = reg_pixel; \ ((CARD16 *) (dst))[DoublePixel3] = reg_pixel; \ reg_pixel >>= 8; \ ((CARD16 *) (dst))[DoublePixel2] = reg_pixel; \ reg_pixel >>= 8; \ ((CARD8 *) (dst))[SinglePixel8] = reg_pixel&0xFF; \ break; \ case 7: \ ((CARD16 *) (dst))[DoublePixel0] = \ ((CARD16 *) (dst))[DoublePixel3] = reg_pixel; \ ((CARD8 *) (dst))[SinglePixel3] = reg_pixel&0xFF; \ reg_pixel >>= 8; \ ((CARD16 *) (dst))[DoublePixel2] = reg_pixel; \ reg_pixel >>= 8; \ ((CARD8 *) (dst))[SinglePixel2] = \ ((CARD8 *) (dst))[SinglePixel8] = reg_pixel&0xFF; \ break; \ case 8: \ ((CARD8 *) (dst))[SinglePixel9] = reg_pixel&0xFF; \ ((CARD16 *) (dst))[DoublePixel5] = (reg_pixel>>8); \ break; \ case 9: \ ((CARD16 *) (dst))[DoublePixel0] = reg_pixel; \ ((CARD8 *) (dst))[SinglePixel9] = reg_pixel&0xFF; \ reg_pixel >>= 8; \ ((CARD16 *) (dst))[DoublePixel5] = reg_pixel; \ reg_pixel >>= 8; \ ((CARD8 *) (dst))[SinglePixel2] = reg_pixel&0xFF; \ break; \ case 10: \ ((CARD8 *) (dst))[SinglePixel3] = \ ((CARD8 *) (dst))[SinglePixel9] = reg_pixel&0xFF; \ reg_pixel >>= 8; \ ((CARD16 *) (dst))[DoublePixel2] = \ ((CARD16 *) (dst))[DoublePixel5] = reg_pixel; \ break; \ case 11: \ ((CARD8 *) (dst))[SinglePixel3] = \ ((CARD8 *) (dst))[SinglePixel9] = reg_pixel; \ ((CARD16 *) (dst))[DoublePixel0] = reg_pixel; \ reg_pixel >>= 8; \ ((CARD16 *) (dst))[DoublePixel2] = \ ((CARD16 *) (dst))[DoublePixel5] = reg_pixel; \ reg_pixel >>= 8; \ ((CARD8 *) (dst))[SinglePixel2] = reg_pixel; \ break; \ case 12: \ ((CARD16 *) (dst))[DoublePixel3] = reg_pixel; \ ((CARD8 *) (dst))[SinglePixel9] = reg_pixel; \ reg_pixel >>= 8; \ ((CARD16 *) (dst))[DoublePixel5] = reg_pixel; \ reg_pixel >>= 8; \ ((CARD8 *) (dst))[SinglePixel8] = reg_pixel; \ break; \ case 13: \ ((CARD16 *) (dst))[DoublePixel0] = \ ((CARD16 *) (dst))[DoublePixel3] = reg_pixel; \ ((CARD8 *) (dst))[SinglePixel9] = reg_pixel; \ reg_pixel >>= 8; \ ((CARD16 *) (dst))[DoublePixel5] = reg_pixel; \ reg_pixel >>= 8; \ ((CARD8 *) (dst))[SinglePixel2] = \ ((CARD8 *) (dst))[SinglePixel8] = reg_pixel; \ break; \ case 14: \ ((CARD8 *) (dst))[SinglePixel3] = \ ((CARD8 *) (dst))[SinglePixel9] = reg_pixel; \ ((CARD16 *) (dst))[DoublePixel3] = reg_pixel; \ reg_pixel >>= 8; \ ((CARD16 *) (dst))[DoublePixel2] = \ ((CARD16 *) (dst))[DoublePixel5] = reg_pixel; \ reg_pixel >>= 8; \ ((CARD8 *) (dst))[SinglePixel8] = reg_pixel; \ break; \ case 15: \ ((CARD16 *) (dst))[DoublePixel0] = \ ((CARD16 *) (dst))[DoublePixel3] = reg_pixel; \ ((CARD8 *) (dst))[SinglePixel3] = \ ((CARD8 *) (dst))[SinglePixel9] = reg_pixel; \ reg_pixel >>= 8; \ ((CARD16 *) (dst))[DoublePixel2] = \ ((CARD16 *) (dst))[DoublePixel5] = reg_pixel; \ reg_pixel >>= 8; \ ((CARD8 *) (dst))[SinglePixel8] = \ ((CARD8 *) (dst))[SinglePixel2] = reg_pixel; \ break; \ } \ }#else /* PGSZ == 64 */#define WriteBitGroup(dst,pixel,bits) \ if ( bits == 0xff ) { \ ((PixelGroup *) (dst))[DoublePixel0] = (pixel); \ ((PixelGroup *) (dst))[DoublePixel1] = (pixel); \ ((PixelGroup *) (dst))[DoublePixel2] = (pixel); \ ((PixelGroup *) (dst))[DoublePixel3] = (pixel); \ } \ else { \ switch (bits & 0x0f) { \ case 0: \ break; \ case 1: \ ((CARD32 *) (dst))[SinglePixel0] = (pixel); \ break; \ case 2: \ ((CARD32 *) (dst))[SinglePixel1] = (pixel); \ break; \ case 3: \ ((CARD32 *) (dst))[SinglePixel0] = (pixel); \ ((CARD32 *) (dst))[SinglePixel1] = (pixel); \ break; \ case 4: \ ((CARD32 *) (dst))[SinglePixel2] = (pixel); \ break; \ case 5: \ ((CARD32 *) (dst))[SinglePixel0] = (pixel); \ ((CARD32 *) (dst))[SinglePixel2] = (pixel); \ break; \ case 6: \ ((CARD32 *) (dst))[SinglePixel1] = (pixel); \ ((CARD32 *) (dst))[SinglePixel2] = (pixel); \ break; \ case 7: \ ((CARD32 *) (dst))[SinglePixel0] = (pixel); \ ((CARD32 *) (dst))[SinglePixel1] = (pixel); \ ((CARD32 *) (dst))[SinglePixel2] = (pixel); \ break; \ case 8: \ ((CARD32 *) (dst))[SinglePixel3] = (pixel); \ break; \ case 9: \ ((CARD32 *) (dst))[SinglePixel0] = (pixel); \ ((CARD32 *) (dst))[SinglePixel3] = (pixel); \ break; \ case 10: \ ((CARD32 *) (dst))[SinglePixel1] = (pixel); \ ((CARD32 *) (dst))[SinglePixel3] = (pixel); \ break; \ case 11: \ ((CARD32 *) (dst))[SinglePixel0] = (pixel); \ ((CARD32 *) (dst))[SinglePixel1] = (pixel); \ ((CARD32 *) (dst))[SinglePixel3] = (pixel); \ break; \ case 12: \ ((CARD32 *) (dst))[SinglePixel2] = (pixel); \ ((CARD32 *) (dst))[SinglePixel3] = (pixel); \ break; \ case 13: \ ((CARD32 *) (dst))[SinglePixel0] = (pixel); \ ((CARD32 *) (dst))[SinglePixel2] = (pixel); \ ((CARD32 *) (dst))[SinglePixel3] = (pixel); \ break; \ case 14: \ ((CARD32 *) (dst))[SinglePixel1] = (pixel); \ ((CARD32 *) (dst))[SinglePixel2] = (pixel); \ ((CARD32 *) (dst))[SinglePixel3] = (pixel); \ break; \ case 15: \ ((CARD32 *) (dst))[SinglePixel0] = (pixel); \ ((CARD32 *) (dst))[SinglePixel1] = (pixel); \ ((CARD32 *) (dst))[SinglePixel2] = (pixel); \ ((CARD32 *) (dst))[SinglePixel3] = (pixel); \ break; \ } \ switch ((bits & 0xf0) >> 4) { \ case 0: \ break; \ case 1: \ ((CARD32 *) (dst))[SinglePixel4] = (pixel); \ break; \ case 2: \ ((CARD32 *) (dst))[SinglePixel5] = (pixel); \ break; \ case 3: \ ((CARD32 *) (dst))[SinglePixel4] = (pixel); \ ((CARD32 *) (dst))[SinglePixel5] = (pixel); \ break; \ case 4: \ ((CARD32 *) (dst))[SinglePixel6] = (pixel); \ break; \ case 5: \ ((CARD32 *) (dst))[SinglePixel4] = (pixel); \ ((CARD32 *) (dst))[SinglePixel6] = (pixel); \ break; \ case 6: \ ((CARD32 *) (dst))[SinglePixel5] = (pixel); \ ((CARD32 *) (dst))[SinglePixel6] = (pixel); \ break; \ case 7: \ ((CARD32 *) (dst))[SinglePixel4] = (pixel); \ ((CARD32 *) (dst))[SinglePixel5] = (pixel); \ ((CARD32 *) (dst))[SinglePixel6] = (pixel); \ break; \ case 8: \ ((CARD32 *) (dst))[SinglePixel7] = (pixel); \ break; \ case 9: \ ((CARD32 *) (dst))[SinglePixel4] = (pixel); \ ((CARD32 *) (dst))[SinglePixel7] = (pixel); \ break; \ case 10: \ ((CARD32 *) (dst))[SinglePixel5] = (pixel); \ ((CARD32 *) (dst))[SinglePixel7] = (pixel); \ break; \ case 11: \ ((CARD32 *) (dst))[SinglePixel4] = (pixel); \ ((CARD32 *) (dst))[SinglePixel5] = (pixel); \ ((CARD32 *) (dst))[SinglePixel7] = (pixel); \ break; \ case 12: \ ((CARD32 *) (dst))[SinglePixel6] = (pixel); \ ((CARD32 *) (dst))[SinglePixel7] = (pixel); \ break; \ case 13: \ ((CARD32 *) (dst))[SinglePixel4] = (pixel); \ ((CARD32 *) (dst))[SinglePixel6] = (pixel); \ ((CARD32 *) (dst))[SinglePixel7] = (pixel); \ break; \ case 14: \ ((CARD32 *) (dst))[SinglePixel5] = (pixel); \ ((CARD32 *) (dst))[SinglePixel6] = (pixel); \ ((CARD32 *) (dst))[SinglePixel7] = (pixel); \ break; \ case 15: \ ((CARD32 *) (dst))[SinglePixel4] = (pixel); \ ((CARD32 *) (dst))[SinglePixel5] = (pixel); \ ((CARD32 *) (dst))[SinglePixel6] = (pixel); \ ((CARD32 *) (dst))[SinglePixel7] = (pixel); \ break; \ } \ }#endif /* PGSZ */#if PGSZ == 32#define SwitchBitGroup(dst,pixel,bits) { \ switch (bits) { \ case 0: \ break; \ case 1: \ SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel0] = (pixel); \ ((CARD8 *) (dst))[SinglePixel2] = (pixel);) \ break; \ case 2: \ SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel3] = (pixel); \ ((CARD16 *) (dst))[DoublePixel2] = (pixel);) \ break; \ case 3: \ SwitchBitsLoop (((CARD32 *) (dst))[QuadPixel0] = (pixel); \ ((CARD16 *) (dst))[DoublePixel2] = (pixel);) \ break; \
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -