X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=subsystems%2Fwin32%2Fwin32k%2Feng%2Fxlate.c;h=a1ec18913a1fa934a05a3a548a4922439d29dfb1;hp=0dc9ac0ae249b0ab4080f34693233d9cf7cd4839;hb=e84aac6fb8e54423d617f3720d10365b319866ba;hpb=b06db1f05ed6a06cf407a19cd20ab2bac4d23ee6 diff --git a/subsystems/win32/win32k/eng/xlate.c b/subsystems/win32/win32k/eng/xlate.c index 0dc9ac0ae24..a1ec18913a1 100644 --- a/subsystems/win32/win32k/eng/xlate.c +++ b/subsystems/win32/win32k/eng/xlate.c @@ -83,24 +83,45 @@ EXLATEOBJ_iXlateRGBto555(PEXLATEOBJ pxlo, ULONG iColor) { ULONG iNewColor; + /* Copy blue */ + iColor >>= 3; + iNewColor = iColor & 0x1F; + + /* Copy green */ + iColor >>= 3; + iNewColor |= iColor & 0x3E0; + + /* Copy red */ + iColor >>= 3; + iNewColor |= iColor & 0x7C00; + + return iNewColor; +} + +ULONG +FASTCALL +EXLATEOBJ_iXlateBGRto555(PEXLATEOBJ pxlo, ULONG iColor) +{ + ULONG iNewColor; + /* Copy red */ iColor <<= 7; iNewColor = iColor & 0x7C00; /* Copy green */ iColor >>= 13; - iNewColor |= iColor & 0x3E0; + iNewColor |= (iColor & 0x3E0); - /* Copy green */ + /* Copy blue */ iColor >>= 13; - iNewColor |= iColor & 0x1F; + iNewColor |= (iColor & 0x1F); return iNewColor; } ULONG FASTCALL -EXLATEOBJ_iXlateBGRto555(PEXLATEOBJ pxlo, ULONG iColor) +EXLATEOBJ_iXlateRGBto565(PEXLATEOBJ pxlo, ULONG iColor) { ULONG iNewColor; @@ -109,19 +130,19 @@ EXLATEOBJ_iXlateBGRto555(PEXLATEOBJ pxlo, ULONG iColor) iNewColor = iColor & 0x1f; /* Copy green */ - iColor >>= 3; - iNewColor |= (iColor & 0x3E0); + iColor >>= 2; + iNewColor |= (iColor & 0x7E0); /* Copy red */ iColor >>= 3; - iNewColor |= (iColor & 0x7C00); + iNewColor |= (iColor & 0xF800); return iNewColor; } ULONG FASTCALL -EXLATEOBJ_iXlateRGBto565(PEXLATEOBJ pxlo, ULONG iColor) +EXLATEOBJ_iXlateBGRto565(PEXLATEOBJ pxlo, ULONG iColor) { ULONG iNewColor; @@ -140,27 +161,6 @@ EXLATEOBJ_iXlateRGBto565(PEXLATEOBJ pxlo, ULONG iColor) return iNewColor; } -ULONG -FASTCALL -EXLATEOBJ_iXlateBGRto565(PEXLATEOBJ pxlo, ULONG iColor) -{ - ULONG iNewColor; - - /* Copy blue */ - iColor >>= 3; - iNewColor = iColor & 0x1f; - - /* Copy green */ - iColor >>= 2; - iNewColor |= (iColor & 0x7E0); - - /* Copy red */ - iColor >>= 3; - iNewColor |= (iColor & 0xF800); - - return iNewColor; -} - ULONG FASTCALL EXLATEOBJ_iXlateRGBtoPal(PEXLATEOBJ pexlo, ULONG iColor) @@ -175,7 +175,7 @@ EXLATEOBJ_iXlate555toRGB(PEXLATEOBJ pxlo, ULONG iColor) ULONG iNewColor; /* Copy blue */ - iNewColor = gajXlate5to8[iColor & 0x1F] << 16; + iNewColor = gajXlate5to8[iColor & 0x1F]; /* Copy green */ iColor >>= 5; @@ -183,7 +183,7 @@ EXLATEOBJ_iXlate555toRGB(PEXLATEOBJ pxlo, ULONG iColor) /* Copy red */ iColor >>= 5; - iNewColor |= gajXlate5to8[iColor & 0x1F]; + iNewColor |= gajXlate5to8[iColor & 0x1F] << 16; return iNewColor; } @@ -195,7 +195,7 @@ EXLATEOBJ_iXlate555toBGR(PEXLATEOBJ pxlo, ULONG iColor) ULONG iNewColor; /* Copy blue */ - iNewColor = gajXlate5to8[iColor & 0x1F]; + iNewColor = gajXlate5to8[iColor & 0x1F] << 16; /* Copy green */ iColor >>= 5; @@ -203,7 +203,7 @@ EXLATEOBJ_iXlate555toBGR(PEXLATEOBJ pxlo, ULONG iColor) /* Copy red */ iColor >>= 5; - iNewColor |= gajXlate5to8[iColor & 0x1F] << 16; + iNewColor |= gajXlate5to8[iColor & 0x1F]; return iNewColor; } @@ -260,7 +260,7 @@ EXLATEOBJ_iXlate565toRGB(PEXLATEOBJ pexlo, ULONG iColor) ULONG iNewColor; /* Copy blue */ - iNewColor = gajXlate5to8[iColor & 0x1F] << 16; + iNewColor = gajXlate5to8[iColor & 0x1F]; /* Copy green */ iColor >>= 5; @@ -268,7 +268,7 @@ EXLATEOBJ_iXlate565toRGB(PEXLATEOBJ pexlo, ULONG iColor) /* Copy red */ iColor >>= 6; - iNewColor |= gajXlate5to8[iColor & 0x1F]; + iNewColor |= gajXlate5to8[iColor & 0x1F] << 16; return iNewColor; } @@ -280,15 +280,15 @@ EXLATEOBJ_iXlate565toBGR(PEXLATEOBJ pexlo, ULONG iColor) ULONG iNewColor; /* Copy blue */ - iNewColor = gajXlate5to8[iColor & 0x1F]; + iNewColor = gajXlate5to8[iColor & 0x1F] << 16; /* Copy green */ iColor >>= 5; iNewColor |= gajXlate6to8[iColor & 0x3F] << 8; - /* Copy blue */ + /* Copy red */ iColor >>= 6; - iNewColor |= gajXlate5to8[iColor & 0x1F] << 16; + iNewColor |= gajXlate5to8[iColor & 0x1F]; return iNewColor; }