MaskBlt implementation.

Dan Kegel dank at kegel.com
Wed Apr 9 00:22:36 CDT 2003


> BYTE SwapROP3_SrcDst(BYTE bRop3)
> {
>     /* swap 1,2 bit and 5,6 bit */
>     BYTE bit1 = (bRop3 & 0x04) ? 0x02 : 0;
>     BYTE bit2 = (bRop3 & 0x02) ? 0x04 : 0;
>     BYTE bit5 = (bRop3 & 0x40) ? 0x20 : 0;
>     BYTE bit6 = (bRop3 & 0x20) ? 0x40 : 0;
>     return (bRop3 & 0x99) | bit1 | bit2 | bit5 | bit6;
> }

How 'bout

BYTE SwapROP3_SrcDst(BYTE bRop3)
{
     /* swap 1,2 bit and 5,6 bit */
     BYTE bits44 = (bRop3 & 0x44) >> 1;
     BYTE bits22 = (bRop3 & 0x22) << 1;
     return (bRop3 & 0x99) | bits22 | bits44;
}

-- 
Dan Kegel
http://www.kegel.com
http://counter.li.org/cgi-bin/runscript/display-person.cgi?user=78045




More information about the wine-devel mailing list