[WIN32K]
[reactos.git] / subsystems / win32 / win32k / eng / xlate.c
index 90ed314..a1ec189 100644 (file)
@@ -65,10 +65,10 @@ EXLATEOBJ_iXlateRGBtoBGR(PEXLATEOBJ pxlo, ULONG iColor)
     ULONG iNewColor;
 
     /* Copy green */
-    iNewColor = iColor & 0x00ff00;
+    iNewColor = iColor & 0xff00ff00;
 
     /* Mask red and blue */
-    iColor &= 0xff00ff;
+    iColor &= 0x00ff00ff;
 
     /* Shift and copy red and blue */
     iNewColor |= iColor >> 16;
@@ -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;
 }