⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cfbsolid.c

📁 远程桌面连接工具
💻 C
📖 第 1 页 / 共 3 页
字号:
#if RROP == GXset		    *pdst = DoMaskRRop((*pdst), piQxelAnd[0], piQxelXor[0], 0xFF000000);		    pdst++;		    *pdst = DoRRop((*pdst), piQxelAnd[1], piQxelXor[1]);		    pdst++;		    *pdst = DoRRop((*pdst), piQxelAnd[2], piQxelXor[2]);		    pdst--;#endif		    pdst--;		break;	    case 2:#if RROP == GXcopy		    *pdst++ = ((*pdst) & 0xFFFF) | (piQxelXor[1] & 0xFFFF0000);		    *pdst-- = piQxelXor[2];#endif#if RROP == GXxor		    *pdst++ ^= (piQxelXor[1] & 0xFFFF0000);		    *pdst-- ^= piQxelXor[2];#endif#if RROP == GXand		    *pdst++ &= (piQxelAnd[1] | 0xFFFF);		    *pdst-- &= piQxelAnd[2];#endif#if RROP == GXor		    *pdst++ |= (piQxelOr[1] & 0xFFFF0000);		    *pdst-- |= piQxelOr[2];#endif#if RROP == GXset		    *pdst = DoMaskRRop((*pdst), piQxelAnd[1], piQxelXor[1], 0xFFFF0000);		    pdst++;		    *pdst = DoRRop((*pdst), piQxelAnd[2], piQxelXor[2]);		    pdst--;#endif		break;	    case 3:#if RROP == GXcopy		    *pdst = ((*pdst) & 0xFF) | (piQxelXor[2] & 0xFFFFFF00);#endif#if RROP == GXxor		    *pdst ^= (piQxelXor[2] & 0xFFFFFF00);#endif#if RROP == GXand		    *pdst &= (piQxelAnd[2] | 0xFF);#endif#if RROP == GXor		    *pdst |= (piQxelOr[2] & 0xFFFFFF00);#endif#if RROP == GXset		    *pdst = DoMaskRRop((*pdst), piQxelAnd[2], piQxelXor[2], 0xFFFFFF00);#endif		break;	    }	    break;	case 3:	    switch(leftIndex){	    case 0:#if RROP == GXcopy		    *pdst++ = piQxelXor[0];		    *pdst++ = piQxelXor[1];		    *pdst-- = ((*pdst) & 0xFFFFFF00) | (piQxelXor[2] & 0xFF);#endif#if RROP == GXxor		    *pdst++ ^= piQxelXor[0];		    *pdst++ ^= piQxelXor[1];		    *pdst-- ^= (piQxelXor[2] & 0xFF);#endif#if RROP == GXand		    *pdst++ &= piQxelAnd[0];		    *pdst++ &= piQxelAnd[1];		    *pdst-- &= (piQxelAnd[2] | 0xFFFFFF00);#endif#if RROP == GXor		    *pdst++ |= piQxelOr[0];		    *pdst++ |= piQxelOr[1];		    *pdst-- |= (piQxelOr[2] & 0xFF);#endif#if RROP == GXset		    *pdst = DoRRop((*pdst), piQxelAnd[0], piQxelXor[0]);		    pdst++;		    *pdst = DoRRop((*pdst), piQxelAnd[1], piQxelXor[1]);		    pdst++;		    *pdst = DoMaskRRop((*pdst), piQxelAnd[2], piQxelXor[2], 0xFF);		    pdst--;#endif		    pdst--;		break;	    case 1:#if RROP == GXcopy		    *pdst++ = ((*pdst) & 0xFFFFFF) | (piQxelXor[0] & 0xFF000000);		    *pdst++ = piQxelXor[1];		    *pdst-- = ((*pdst) & 0xFFFFFF00) | (piQxelXor[2] & 0xFF);#endif#if RROP == GXxor		    *pdst++ ^= (piQxelXor[0] & 0xFF000000);		    *pdst++ ^= piQxelXor[1];		    *pdst-- ^= (piQxelXor[2] & 0xFF);#endif#if RROP == GXand		    *pdst++ &= (piQxelAnd[0] | 0x00FFFFFF);		    *pdst++ &= piQxelAnd[1];		    *pdst-- &= (piQxelAnd[2] | 0xFFFFFF00);#endif#if RROP == GXor		    *pdst++ |= (piQxelOr[0] & 0xFF000000);		    *pdst++ |= piQxelOr[1];		    *pdst-- |= (piQxelOr[2] & 0xFF);#endif#if RROP == GXset		    *pdst = DoMaskRRop((*pdst), piQxelAnd[0], piQxelXor[0], 0xFF000000);		    pdst++;		    *pdst = DoRRop((*pdst), piQxelAnd[1], piQxelXor[1]);		    pdst++;		    *pdst = DoMaskRRop((*pdst), piQxelAnd[2], piQxelXor[2], 0xFF);		    pdst--;#endif		    pdst--;		break;	    case 2:/*		pdst++;*/#if RROP == GXcopy		    *pdst++ = ((*pdst) & 0xFFFF) | (piQxelXor[1] & 0xFFFF0000);		    *pdst-- = ((*pdst) & 0xFFFFFF00) | (piQxelXor[2] & 0xFF);#endif#if RROP == GXxor		    *pdst++ ^= (piQxelXor[1] & 0xFFFF0000);		    *pdst-- ^= (piQxelXor[2] & 0xFF);#endif#if RROP == GXand		    *pdst++ &= (piQxelAnd[1] | 0xFFFF);		    *pdst-- &= (piQxelAnd[2] | 0xFFFFFF00);#endif#if RROP == GXor		    *pdst++ |= (piQxelOr[1] & 0xFFFF0000);		    *pdst-- |= (piQxelOr[2] & 0xFF);#endif#if RROP == GXset		    *pdst = DoMaskRRop((*pdst), piQxelAnd[1], piQxelXor[1], 0xFFFF0000);		    pdst++;		    *pdst = DoMaskRRop((*pdst), piQxelAnd[2], piQxelXor[2], 0xFF);		    pdst--;#endif		break;	    }	    break;	case 2: /* leftIndex + w = 2*/	    if(leftIndex){#if RROP == GXcopy		    *pdst++ = ((*pdst) & 0xFFFFFF) | (piQxelXor[0] & 0xFF000000);		    *pdst-- = ((*pdst) & 0xFFFF0000) | (piQxelXor[1] & 0xFFFF);#endif#if RROP == GXxor		    *pdst++ ^= (piQxelXor[0] & 0xFF000000);		    *pdst-- ^= (piQxelXor[1] & 0xFFFF);#endif#if RROP == GXand		    *pdst++ &= (piQxelAnd[0] | 0xFFFFFF);		    *pdst-- &= (piQxelAnd[1] | 0xFFFF0000);#endif#if RROP == GXor		    *pdst++ |= (piQxelOr[0] & 0xFF000000);		    *pdst-- |= (piQxelOr[1] & 0xFFFF);#endif#if RROP == GXset		    *pdst = DoMaskRRop((*pdst), piQxelAnd[0], piQxelXor[0], 0xFF000000);		    pdst++;		    *pdst = DoMaskRRop((*pdst), piQxelAnd[1], piQxelXor[1], 0xFFFF);		    pdst--;#endif	    }	    else{ /*case 2 leftIndex === 0 */#if RROP == GXcopy		    *pdst++ = piQxelXor[0];		    *pdst-- = ((*pdst) & 0xFFFF0000) | (piQxelXor[1] & 0xFFFF);#endif#if RROP == GXxor		    *pdst++ ^= piQxelXor[0];		    *pdst-- ^= (piQxelXor[1] & 0xFFFF);#endif#if RROP == GXand		    *pdst++ &= piQxelAnd[0];		    *pdst-- &= (piQxelAnd[1] | 0xFFFF0000);#endif#if RROP == GXor		    *pdst++ |= piQxelOr[0];		    *pdst-- |= (piQxelOr[1] & 0xFFFF);#endif#if RROP == GXset		    *pdst = DoRRop((*pdst), piQxelAnd[0], piQxelXor[0]);		    pdst++;		    *pdst = DoMaskRRop((*pdst), piQxelAnd[1], piQxelXor[1], 0xFFFF);		    pdst--;#endif	    }	    break;	case 1: /*only if leftIndex = 0 and w = 1*/#if RROP == GXcopy		*pdst = ((*pdst) & 0xFF000000) | (piQxelXor[0] & 0xFFFFFF);#endif#if RROP == GXxor		*pdst ^= (piQxelXor[0] & 0xFFFFFF);#endif#if RROP == GXand		*pdst &= (piQxelAnd[0] | 0xFF000000);#endif#if RROP == GXor		*pdst |= (piQxelOr[0] & 0xFFFFFF);#endif#if RROP == GXset		*pdst = DoMaskRRop((*pdst), piQxelAnd[0], piQxelXor[0], 0xFFFFFF);#endif	    break;	case 0: /*never*/	    break;	default:	{	    switch(leftIndex){		    case 0:			break;		    case 1:#if RROP == GXcopy			*pdst++ = ((*pdst) & 0xFFFFFF) | (piQxelXor[0] & 0xFF000000);			*pdst++ = piQxelXor[1];			*pdst++ = piQxelXor[2];#endif#if RROP == GXxor			*pdst++ ^= (piQxelXor[0] & 0xFF000000);			*pdst++ ^= piQxelXor[1];			*pdst++ ^= piQxelXor[2];#endif#if RROP == GXand			*pdst++ &= (piQxelAnd[0] | 0xFFFFFF);			*pdst++ &= piQxelAnd[1];			*pdst++ &= piQxelAnd[2];#endif#if RROP == GXor			*pdst++ |= (piQxelOr[0] & 0xFF000000);			*pdst++ |= piQxelOr[1];			*pdst++ |= piQxelOr[2];#endif#if RROP == GXset			*pdst = DoMaskRRop((*pdst), piQxelAnd[0], piQxelXor[0], 0xFF000000);			pdst++;			*pdst = DoRRop((*pdst), piQxelAnd[1], piQxelXor[1]);			pdst++;			*pdst = DoRRop((*pdst), piQxelAnd[2], piQxelXor[2]);			pdst++;#endif		    break;		    case 2:#if RROP == GXcopy			*pdst++ = (((*pdst) & 0xFFFF) | (piQxelXor[1] & 0xFFFF0000));			*pdst++ = piQxelXor[2];#endif#if RROP == GXxor			*pdst++ ^=(piQxelXor[1] & 0xFFFF0000);			*pdst++ ^= piQxelXor[2];#endif#if RROP == GXand			*pdst++ &= (piQxelAnd[1] | 0xFFFF);			*pdst++ &= piQxelAnd[2];#endif#if RROP == GXor			*pdst++ |= (piQxelOr[1] & 0xFFFF0000);			*pdst++ |= piQxelOr[2];#endif#if RROP == GXset			*pdst = DoMaskRRop((*pdst), piQxelAnd[1], piQxelXor[1], 0xFFFF0000);			pdst++;			*pdst = DoRRop((*pdst), piQxelAnd[2], piQxelXor[2]);			pdst++;#endif			break;		    case 3:#if RROP == GXcopy			*pdst++ = ((*pdst) & 0xFF) | (piQxelXor[2] & 0xFFFFFF00);#endif#if RROP == GXxor			*pdst++ ^= (piQxelXor[2] & 0xFFFFFF00);#endif#if RROP == GXand			*pdst++ &= (piQxelAnd[2] | 0xFF);#endif#if RROP == GXor			*pdst++ |= (piQxelOr[2] & 0xFFFFFF00);#endif#if RROP == GXset			*pdst = DoMaskRRop((*pdst), piQxelAnd[2], piQxelXor[2], 0xFFFFFF00);			pdst++;#endif			break;		    }		    while(nlmiddle--){#if RROP == GXcopy			*pdst++ = piQxelXor[0];			*pdst++ = piQxelXor[1];			*pdst++ = piQxelXor[2];#endif#if RROP == GXxor			*pdst++ ^= piQxelXor[0];			*pdst++ ^= piQxelXor[1];			*pdst++ ^= piQxelXor[2];#endif#if RROP == GXand			*pdst++ &= piQxelAnd[0];			*pdst++ &= piQxelAnd[1];			*pdst++ &= piQxelAnd[2];#endif#if RROP == GXor			*pdst++ |= piQxelOr[0];			*pdst++ |= piQxelOr[1];			*pdst++ |= piQxelOr[2];#endif#if RROP == GXset			*pdst = DoRRop((*pdst), piQxelAnd[0], piQxelXor[0]);			pdst++;			*pdst = DoRRop((*pdst), piQxelAnd[1], piQxelXor[1]);			pdst++;			*pdst = DoRRop((*pdst), piQxelAnd[2], piQxelXor[2]);			pdst++;#endif		}		switch(rightIndex){		case 0:		  break;		case 1:#if RROP == GXcopy		  *pdst++ = ((*pdst) & 0xFF000000) | (piQxelXor[0] & 0xFFFFFF);#endif#if RROP == GXxor		  *pdst++ ^= (piQxelXor[0] & 0xFFFFFF);#endif#if RROP == GXand		  *pdst++ &= (piQxelAnd[0] | 0xFF);#endif#if RROP == GXor		  *pdst++ |= (piQxelOr[0] & 0xFFFFFF);#endif#if RROP == GXset		  *pdst = DoMaskRRop((*pdst), piQxelAnd[0], piQxelXor[0], 0xFFFFFF);#endif		  break;		case 2:#if RROP == GXcopy		  *pdst++ = piQxelXor[0];		  *pdst++ = ((*pdst) & 0xFFFF0000) | (piQxelXor[1] & 0xFFFF);#endif#if RROP == GXxor		  *pdst++ ^= piQxelXor[0];		  *pdst++ ^= (piQxelXor[1] & 0xFFFF);#endif#if RROP == GXand		  *pdst++ &= piQxelAnd[0];		  *pdst++ &= (piQxelAnd[1] | 0xFFFF0000);#endif#if RROP == GXor		  *pdst++ |= piQxelOr[0];		  *pdst++ |= (piQxelOr[1] & 0xFFFF);#endif#if RROP == GXset		  *pdst = DoRRop((*pdst), piQxelAnd[0], piQxelXor[0]);		  *pdst++;		  *pdst = DoMaskRRop((*pdst), piQxelAnd[1], piQxelXor[1], 0xFFFF);		  *pdst++;#endif		  break;		case 3:#if RROP == GXcopy		  *pdst++ = piQxelXor[0];		  *pdst++ = piQxelXor[1];		  *pdst++ = ((*pdst) & 0xFFFFFF00) | (piQxelXor[2] & 0xFF);#endif#if RROP == GXxor		  *pdst++ ^= piQxelXor[0];		  *pdst++ ^= piQxelXor[1];		  *pdst++ ^= (piQxelXor[2] & 0xFF);#endif#if RROP == GXand		  *pdst++ &= piQxelAnd[0];		  *pdst++ &= piQxelAnd[1];		  *pdst++ &= (piQxelAnd[2] | 0xFFFFFF00);#endif#if RROP == GXor		  *pdst++ |= piQxelOr[0];		  *pdst++ |= piQxelOr[1];		  *pdst++ |= (piQxelOr[2] & 0xFF);#endif#if RROP == GXset		  *pdst = DoRRop((*pdst), piQxelAnd[0], piQxelXor[0]);		  pdst++;		  *pdst = DoRRop((*pdst), piQxelAnd[1], piQxelXor[1]);		  pdst++;		  *pdst = DoMaskRRop((*pdst), piQxelAnd[2], piQxelXor[2], 0xFF);		  pdst++;#endif		  break;		}	}}#else#if PSZ == 8	if (w <= PGSZB)	{	    register char   *addrb;	    addrb = ((char *) pdst) + x;	    while (w--)	    {		RROP_SOLID (addrb);		addrb++;	    }	}#else	if ((x & PIM) + w <= PPW)	{	    pdst += x >> PWSH;	    maskpartialbits (x, w, startmask);	    RROP_SOLID_MASK (pdst, startmask);	}#endif	else	{	    pdst += x >> PWSH;	    maskbits (x, w, startmask, endmask, nlmiddle);	    if (startmask)	    {		RROP_SOLID_MASK (pdst, startmask);		++pdst;	    }	    	    RROP_SPAN(pdst,nlmiddle)	    if (endmask)	    {		RROP_SOLID_MASK (pdst, endmask);	    }	}#endif    }    DEALLOCATE_LOCAL(pptFree);    DEALLOCATE_LOCAL(pwidthFree);}

⌨️ 快捷键说明

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