cfb8bit.h

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

H
1,578
字号
	        ((CARD32 *) (dst))[QuadPixel0] = (pixel);	\	        break;						\	}							\	switch ((bits & 0xf0) >> 4) {				\	    case 0:						\	        break;						\	    case 1:						\	        ((CARD8 *) (dst))[SinglePixel4] = (pixel);	\	        break;						\	    case 2:						\	        ((CARD8 *) (dst))[SinglePixel5] = (pixel);	\	        break;						\	    case 3:						\	        ((CARD16 *) (dst))[DoublePixel2] = (pixel);	\	        break;						\	    case 4:						\	        ((CARD8 *) (dst))[SinglePixel6] = (pixel);	\	        break;						\	    case 5:						\	        ((CARD8 *) (dst))[SinglePixel4] = (pixel);	\	        ((CARD8 *) (dst))[SinglePixel6] = (pixel);	\	        break;						\	    case 6:						\	        ((CARD8 *) (dst))[SinglePixel5] = (pixel);	\	        ((CARD8 *) (dst))[SinglePixel6] = (pixel);	\	        break;						\	    case 7:						\	        ((CARD16 *) (dst))[DoublePixel2] = (pixel);	\	        ((CARD8 *) (dst))[SinglePixel6] = (pixel);	\	        break;						\	    case 8:						\	        ((CARD8 *) (dst))[SinglePixel7] = (pixel);	\	        break;						\	    case 9:						\	        ((CARD8 *) (dst))[SinglePixel4] = (pixel);	\	        ((CARD8 *) (dst))[SinglePixel7] = (pixel);	\	        break;						\	    case 10:						\	        ((CARD8 *) (dst))[SinglePixel5] = (pixel);	\	        ((CARD8 *) (dst))[SinglePixel7] = (pixel);	\	        break;						\	    case 11:						\	        ((CARD16 *) (dst))[DoublePixel2] = (pixel);	\	        ((CARD8 *) (dst))[SinglePixel7] = (pixel);	\	        break;						\	    case 12:						\	        ((CARD16 *) (dst))[DoublePixel3] = (pixel);	\	        break;						\	    case 13:						\	        ((CARD8 *) (dst))[SinglePixel4] = (pixel);	\	        ((CARD16 *) (dst))[DoublePixel3] = (pixel);	\	        break;						\	    case 14:						\	        ((CARD8 *) (dst))[SinglePixel5] = (pixel);	\	        ((CARD16 *) (dst))[DoublePixel3] = (pixel);	\	        break;						\	    case 15:						\	        ((CARD32 *) (dst))[QuadPixel1] = (pixel);	\	        break;						\	}							\    }#endif /* PGSZ == 64 */#if PGSZ == 32#define SwitchBitGroup(dst,pixel,bits) { \	switch (bits) { \	case 0: \       	    break; \	case 1: \	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel0] = (pixel);) \	    break; \	case 2: \	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel1] = (pixel);) \	    break; \	case 3: \	    SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel0] = (pixel);) \	    break; \	case 4: \	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel2] = (pixel);) \	    break; \	case 5: \	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel0] = (pixel); \		     ((CARD8 *) (dst))[SinglePixel2] = (pixel);) \	    break; \	case 6: \	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel1] = (pixel); \		     ((CARD8 *) (dst))[SinglePixel2] = (pixel);) \	    break; \	case 7: \	    SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel0] = (pixel); \		     ((CARD8 *) (dst))[SinglePixel2] = (pixel);) \	    break; \	case 8: \	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel3] = (pixel);) \	    break; \	case 9: \	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel0] = (pixel); \		     ((CARD8 *) (dst))[SinglePixel3] = (pixel);) \	    break; \	case 10: \	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel1] = (pixel); \		     ((CARD8 *) (dst))[SinglePixel3] = (pixel);) \	    break; \	case 11: \	    SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel0] = (pixel); \		     ((CARD8 *) (dst))[SinglePixel3] = (pixel);) \	    break; \	case 12: \	    SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel1] = (pixel);) \	    break; \	case 13: \	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel0] = (pixel); \		     ((CARD16 *) (dst))[DoublePixel1] = (pixel);) \	    break; \	case 14: \	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel1] = (pixel); \		     ((CARD16 *) (dst))[DoublePixel1] = (pixel);) \	    break; \	case 15: \	    SwitchBitsLoop (((CARD32 *) (dst))[0] = (pixel);) \	    break; \	} \}#else /* PGSZ == 64 */#define SwitchBitGroup(dst,pixel,bits) { 				   \    if ( bits == 0xff )							   \	SwitchBitsLoop (((PixelGroup *) (dst))[OctaPixel0] = (pixel);)	   \    else {								   \	switch (bits & 0x0f) {	 					   \	    case 0: 							   \       	        break; 							   \	    case 1: 							   \	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel0] = (pixel);) \	        break; 							   \	    case 2: 							   \	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel1] = (pixel);) \	        break; 							   \	    case 3: 							   \	        SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel0] = (pixel);)\	        break; 							   \	    case 4: 							   \	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel2] = (pixel);) \	        break; 							   \	    case 5: 							   \	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel0] = (pixel);  \		         	((CARD8 *) (dst))[SinglePixel2] = (pixel);) \	        break; 							   \	    case 6: 							   \	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel1] = (pixel);  \		         	((CARD8 *) (dst))[SinglePixel2] = (pixel);) \	        break; 							   \	    case 7: 							   \	        SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel0] = (pixel); \		         	((CARD8 *) (dst))[SinglePixel2] = (pixel);) \	        break; 							   \	    case 8: 							   \	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel3] = (pixel);) \	        break; 							   \	    case 9: 							   \	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel0] = (pixel);  \		         	((CARD8 *) (dst))[SinglePixel3] = (pixel);) \	        break; 							   \	    case 10: 							   \	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel1] = (pixel);  \		         	((CARD8 *) (dst))[SinglePixel3] = (pixel);) \	        break; 							   \	    case 11: 							   \	        SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel0] = (pixel); \		         	((CARD8 *) (dst))[SinglePixel3] = (pixel);) \	        break; 							   \	    case 12: 							   \	        SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel1] = (pixel);)\	        break; 							   \	    case 13: 							   \	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel0] = (pixel);  \		         	((CARD16 *) (dst))[DoublePixel1] = (pixel);)\	        break; 							   \	    case 14: 							   \	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel1] = (pixel);  \		         	((CARD16 *) (dst))[DoublePixel1] = (pixel);)\	        break; 							   \	    case 15: 							   \	        SwitchBitsLoop (((CARD32 *) (dst))[QuadPixel0] = (pixel);)    \	        break; 							   \	}								   \	switch ((bits & 0xf0) >> 4) {					   \	    case 0: 							   \       	        break; 							   \	    case 1: 							   \	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel4] = (pixel);) \	        break; 							   \	    case 2: 							   \	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel5] = (pixel);) \	        break; 							   \	    case 3: 							   \	        SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel2] = (pixel);)\	        break; 							   \	    case 4: 							   \	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel6] = (pixel);) \	        break; 							   \	    case 5: 							   \	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel4] = (pixel);  \		         	((CARD8 *) (dst))[SinglePixel6] = (pixel);) \	        break; 							   \	    case 6: 							   \	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel5] = (pixel);  \		         	((CARD8 *) (dst))[SinglePixel6] = (pixel);) \	        break; 							   \	    case 7: 							   \	        SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel2] = (pixel); \		         	((CARD8 *) (dst))[SinglePixel6] = (pixel);) \	        break; 							   \	    case 8: 							   \	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel7] = (pixel);) \	        break; 							   \	    case 9: 							   \	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel4] = (pixel);  \		         	((CARD8 *) (dst))[SinglePixel7] = (pixel);) \	        break; 							   \	    case 10: 							   \	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel5] = (pixel);  \		         	((CARD8 *) (dst))[SinglePixel7] = (pixel);) \	        break; 							   \	    case 11: 							   \	        SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel2] = (pixel); \		         	((CARD8 *) (dst))[SinglePixel7] = (pixel);) \	        break; 							   \	    case 12: 							   \	        SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel3] = (pixel);)\	        break; 							   \	    case 13: 							   \	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel4] = (pixel);  \		         	((CARD16 *) (dst))[DoublePixel3] = (pixel);)\	        break; 							   \	    case 14: 							   \	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel5] = (pixel);  \		         	((CARD16 *) (dst))[DoublePixel3] = (pixel);)\	        break; 							   \	    case 15: 							   \	        SwitchBitsLoop (((CARD32 *) (dst))[QuadPixel1] = (pixel);) \	        break; 							   \	} 								   \    }									   \}#endif /* PGSZ == 64 */#endif /* PSZ == 8 */#if PSZ == 16#if PGSZ == 32#define WriteBitGroup(dst,pixel,bits) \	switch (bits) {			\	case 0:				\	    break;			\	case 1:				\	    ((CARD16 *) (dst))[SinglePixel0] = (pixel);	\	    break;			\	case 2:				\	    ((CARD16 *) (dst))[SinglePixel1] = (pixel);	\	    break;			\	case 3:				\	    ((CARD32 *) (dst))[DoublePixel0] = (pixel);	\	    break;			\	case 4:				\	    ((CARD16 *) (dst))[SinglePixel2] = (pixel);	\	    break;			\	case 5:				\	    ((CARD16 *) (dst))[SinglePixel0] = (pixel);	\	    ((CARD16 *) (dst))[SinglePixel2] = (pixel);	\	    break;			\	case 6:				\	    ((CARD16 *) (dst))[SinglePixel1] = (pixel);	\	    ((CARD16 *) (dst))[SinglePixel2] = (pixel);	\	    break;			\	case 7:				\	    ((CARD32 *) (dst))[DoublePixel0] = (pixel);	\	    ((CARD16 *) (dst))[SinglePixel2] = (pixel);	\	    break;			\	case 8:				\	    ((CARD16 *) (dst))[SinglePixel3] = (pixel);	\	    break;			\	case 9:				\	    ((CARD16 *) (dst))[SinglePixel0] = (pixel);	\	    ((CARD16 *) (dst))[SinglePixel3] = (pixel);	\	    break;			\	case 10:			\	    ((CARD16 *) (dst))[SinglePixel1] = (pixel);	\	    ((CARD16 *) (dst))[SinglePixel3] = (pixel);	\	    break;			\	case 11:			\	    ((CARD32 *) (dst))[DoublePixel0] = (pixel);	\	    ((CARD16 *) (dst))[SinglePixel3] = (pixel);	\	    break;			\	case 12:			\	    ((CARD32 *) (dst))[DoublePixel1] = (pixel);	\	    break;			\	case 13:			\	    ((CARD16 *) (dst))[SinglePixel0] = (pixel);	\	    ((CARD32 *) (dst))[DoublePixel1] = (pixel);	\	    break;			\	case 14:			\	    ((CARD16 *) (dst))[SinglePixel1] = (pixel);	\	    ((CARD32 *) (dst))[DoublePixel1] = (pixel);	\	    break;			\	case 15:			\	    ((CARD32 *) (dst))[DoublePixel0] = (pixel);	\	    ((CARD32 *) (dst))[DoublePixel1] = (pixel);	\	    break;			\	}#else /* PGSZ == 64 */#define WriteBitGroup(dst,pixel,bits) \    if ( bits == 0xff )	{						\	((PixelGroup *) (dst))[QuadPixel0] = (pixel);			\	((PixelGroup *) (dst))[QuadPixel1] = (pixel);			\    }									\    else {								\	switch (bits & 0x0f) {	 					\	case 0:				\	    break;			\	case 1:				\	    ((CARD16 *) (dst))[SinglePixel0] = (pixel);	\	    break;			\	case 2:				\	    ((CARD16 *) (dst))[SinglePixel1] = (pixel);	\	    break;			\	case 3:				\	    ((CARD32 *) (dst))[DoublePixel0] = (pixel);	\	    break;			\	case 4:				\	    ((CARD16 *) (dst))[SinglePixel2] = (pixel);	\	    break;			\	case 5:				\	    ((CARD16 *) (dst))[SinglePixel0] = (pixel);	\	    ((CARD16 *) (dst))[SinglePixel2] = (pixel);	\	    break;			\	case 6:				\	    ((CARD16 *) (dst))[SinglePixel1] = (pixel);	\	    ((CARD16 *) (dst))[SinglePixel2] = (pixel);	\	    break;			\	case 7:				\	    ((CARD32 *) (dst))[DoublePixel0] = (pixel);	\	    ((CARD16 *) (dst))[SinglePixel2] = (pixel);	\	    break;			\	case 8:				\	    ((CARD16 *) (dst))[SinglePixel3] = (pixel);	\	    break;			\	case 9:				\	    ((CARD16 *) (dst))[SinglePixel0] = (pixel);	\	    ((CARD16 *) (dst))[SinglePixel3] = (pixel);	\	    break;			\	case 10:			\	    ((CARD16 *) (dst))[SinglePixel1] = (pixel);	\	    ((CARD16 *) (dst))[SinglePixel3] = (pixel);	\	    break;			\	case 11:			\	    ((CARD32 *) (dst))[DoublePixel0] = (pixel);	\	    ((CARD16 *) (dst))[SinglePixel3] = (pixel);	\	    break;			\	case 12:			\	    ((CARD32 *) (dst))[DoublePixel1] = (pixel);	\	    break;			\	case 13:			\	    ((CARD16 *) (dst))[SinglePixel0] = (pixel);	\	    ((CARD32 *) (dst))[DoublePixel1] = (pixel);	\	    break;			\	case 14:			\	    ((CARD16 *) (dst))[SinglePixel1] = (pixel);	\	    ((CARD32 *) (dst))[DoublePixel1] = (pixel);	\	    break;			\	case 15:			\	    ((CARD32 *) (dst))[DoublePixel0] = (pixel);	\	    ((CARD32 *) (dst))[DoublePixel1] = (pixel);	\	    break;			\	}				\	switch ((bits & 0xf0) >> 4) {			\	case 0:				\	    break;			\	case 1:				\	    ((CARD16 *) (dst))[SinglePixel4] = (pixel);	\	    break;			\	case 2:				\	    ((CARD16 *) (dst))[SinglePixel5] = (pixel);	\	    break;			\	case 3:				\	    ((CARD32 *) (dst))[DoublePixel2] = (pixel);	\	    break;			\	case 4:				\	    ((CARD16 *) (dst))[SinglePixel6] = (pixel);	\	    break;			\	case 5:				\	    ((CARD16 *) (dst))[SinglePixel4] = (pixel);	\	    ((CARD16 *) (dst))[SinglePixel6] = (pixel);	\	    break;			\	case 6:				\	    ((CARD16 *) (dst))[SinglePixel5] = (pixel);	\

⌨️ 快捷键说明

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