cfb8bit.h

来自「unix vnc 协议源码. VNC是一款远程控制工具软件.」· C头文件 代码 · 共 1,578 行 · 第 1/4 页

H
1,578
字号
	case 4: \	    SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel3] = (pixel); \			    ((CARD8 *) (dst))[SinglePixel8] = (pixel);) \	    break; \	case 5: \	    SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel0] = (pixel); \			    ((CARD8 *) (dst))[SinglePixel2] = (pixel); \			    ((CARD16 *) (dst))[DoublePixel3] = (pixel); \			    ((CARD8 *) (dst))[SinglePixel8] = (pixel);) \	    break; \	case 6: \	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel3] = (pixel); \			    ((CARD32 *) (dst))[QuadPixel2] = (pixel); \			    ((CARD8 *) (dst))[SinglePixel8] = (pixel);) \	    break; \	case 7: \	    SwitchBitsLoop (((CARD32 *) (dst))[QuadPixel0] = (pixel); \			    ((CARD32 *) (dst))[QuadPixel1] = (pixel); \			    ((CARD8 *) (dst))[SinglePixel8] = (pixel);) \	    break; \	case 8: \	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel9] = (pixel); \			    ((CARD16 *) (dst))[DoublePixel5] = (pixel);) \	    break; \	case 9: \	    SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel0] = (pixel); \			    ((CARD8 *) (dst))[SinglePixel2] = (pixel); \			    ((CARD8 *) (dst))[SinglePixel9] = (pixel); \			    ((CARD16 *) (dst))[DoublePixel5] = (pixel);) \	    break; \	case 10: \	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel3] = (pixel); \			    ((CARD16 *) (dst))[DoublePixel2] = (pixel); \			    ((CARD8 *) (dst))[SinglePixel9] = (pixel); \			    ((CARD16 *) (dst))[DoublePixel5] = (pixel);) \	    break; \	case 11: \	    SwitchBitsLoop (((CARD32 *) (dst))[QuadPixel0] = (pixel); \			    ((CARD16 *) (dst))[DoublePixel3] = (pixel);) \			    ((CARD8 *) (dst))[SinglePixel9] = (pixel); \			    ((CARD16 *) (dst))[DoublePixel5] = (pixel);) \	    break; \	case 12: \	    SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel3] = (pixel); \			    ((CARD32 *) (dst))[QuadPixel2] = (pixel);) \	    break; \	case 13: \	    SwitchBitsLoop (((CARD16 *) (dst))[SinglePixel0] = (pixel); \			    ((CARD8 *) (dst))[SinglePixel2] = (pixel); \			    ((CARD16 *) (dst))[DoublePixel3] = (pixel); \			    ((CARD32 *) (dst))[QuadPixel2] = (pixel);) \	    break; \	case 14: \	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel3] = (pixel); \			    ((CARD32 *) (dst))[QuadPixel1] = (pixel); \			    ((CARD32 *) (dst))[QuadPixel2] = (pixel);) \	    break; \	case 15: \	    SwitchBitsLoop (((CARD32 *) (dst))[QuadPixel0] = (pixel); \			    ((CARD32 *) (dst))[QuadPixel1] = (pixel); \			    ((CARD32 *) (dst))[QuadPixel2] = (pixel);) \	    break; \	} \}#else /* PGSZ == 64 */#define SwitchBitGroup(dst,pixel,bits) { \	cfb cannot hack 64-bit SwitchBitGroup psz=PSZ#endif /* PGSZ */#endif /* PSZ == 24 */#if PSZ == 32#if PGSZ == 32#define WriteBitGroup(dst,pixel,bits) \	switch (bits) {			\	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;			\	}#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 (((CARD32 *) (dst))[SinglePixel0] = (pixel);) \	    break; \	case 2: \	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel1] = (pixel);) \	    break; \	case 3: \	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel0] = (pixel); \			    ((CARD32 *) (dst))[SinglePixel1] = (pixel);) \	    break; \	case 4: \	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel2] = (pixel);) \	    break; \	case 5: \	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel0] = (pixel); \			    ((CARD32 *) (dst))[SinglePixel2] = (pixel);) \	    break; \	case 6: \	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel1] = (pixel); \			    ((CARD32 *) (dst))[SinglePixel2] = (pixel);) \	    break; \	case 7: \	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel0] = (pixel); \			    ((CARD32 *) (dst))[SinglePixel1] = (pixel); \			    ((CARD32 *) (dst))[SinglePixel2] = (pixel);) \	    break; \	case 8: \	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel3] = (pixel);) \	    break; \	case 9: \	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel0] = (pixel); \			    ((CARD32 *) (dst))[SinglePixel3] = (pixel);) \	    break; \	case 10: \	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel1] = (pixel); \			    ((CARD32 *) (dst))[SinglePixel3] = (pixel);) \	    break; \	case 11: \	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel0] = (pixel); \			    ((CARD32 *) (dst))[SinglePixel1] = (pixel); \			    ((CARD32 *) (dst))[SinglePixel3] = (pixel);) \	    break; \	case 12: \	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel2] = (pixel); \			    ((CARD32 *) (dst))[SinglePixel3] = (pixel);) \	    break; \	case 13: \	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel0] = (pixel); \			    ((CARD32 *) (dst))[SinglePixel2] = (pixel); \			    ((CARD32 *) (dst))[SinglePixel3] = (pixel);) \	    break; \	case 14: \	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel1] = (pixel); \			    ((CARD32 *) (dst))[SinglePixel2] = (pixel); \			    ((CARD32 *) (dst))[SinglePixel3] = (pixel);) \	    break; \	case 15: \	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel0] = (pixel); \			    ((CARD32 *) (dst))[SinglePixel1] = (pixel); \			    ((CARD32 *) (dst))[SinglePixel2] = (pixel); \			    ((CARD32 *) (dst))[SinglePixel3] = (pixel);) \	    break; \	} \}#else /* PGSZ == 64 */#define SwitchBitGroup(dst,pixel,bits) { \	cfb cannot hack 64-bit SwitchBitGroup psz=PSZ#endif /* PGSZ */#endif /* PSZ == 32 */#endif /* AVOID_MEMORY_READ */extern PixelGroup cfb8BitLenMasks[PGSZ];extern int cfb8SetStipple (#if NeedFunctionPrototypes    int	/*alu*/,    unsigned long /*fg*/,    unsigned long /*planemask*/#endif);extern int cfb8SetOpaqueStipple (#if NeedFunctionPrototypes    int /*alu*/,    unsigned long /*fg*/,    unsigned long /*bg*/,    unsigned long /*planemask*/#endif);extern int cfb8ComputeClipMasks32 (#if NeedFunctionPrototypes    BoxPtr	/*pBox*/,    int		/*numRects*/,    int		/*x*/,    int		/*y*/,    int		/*w*/,    int		/*h*/,    CARD32 * /*clips*/#endif);

⌨️ 快捷键说明

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