Author: greatlrd Date: Wed May 24 01:18:08 2006 New Revision: 21995
URL: http://svn.reactos.ru/svn/reactos?rev=21995&view=rev Log: Fixing strechblt dib16 and dib32 can be compile with -O2 (gcc) reporeted by jimtalor, it did not work on real hardware with -O2 when it was run with winqauke with some setting see bug 1520
Modified: trunk/reactos/subsystems/win32/win32k/dib/dib16bpp.c trunk/reactos/subsystems/win32/win32k/dib/dib32bpp.c
Modified: trunk/reactos/subsystems/win32/win32k/dib/dib16bpp.c URL: http://svn.reactos.ru/svn/reactos/trunk/reactos/subsystems/win32/win32k/dib/... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/dib/dib16bpp.c (original) +++ trunk/reactos/subsystems/win32/win32k/dib/dib16bpp.c Wed May 24 01:18:08 2006 @@ -687,8 +687,9 @@ sx = ((DesX * SrcSizeX) / DesSizeX) + SourceRect->left; color = DIB_4BPP_GetPixel(SourceSurf, sx, sy); + color = XLATEOBJ_iXlate(ColorTranslation, color);
- *DestBits = XLATEOBJ_iXlate(ColorTranslation, color); + *DestBits = color; DestBits = (PULONG)((ULONG_PTR)DestBits + 2); } DestBits = (PULONG)((ULONG_PTR)DestBits + DifflDelta); @@ -713,8 +714,8 @@ sx = ((DesX * SrcSizeX) / DesSizeX) + SourceRect->left; color = DIB_8BPP_GetPixel(SourceSurf, sx, sy); - - *DestBits = XLATEOBJ_iXlate(ColorTranslation, color); + color = XLATEOBJ_iXlate(ColorTranslation, color); + *DestBits = color; DestBits = (PULONG)((ULONG_PTR)DestBits + 2); } DestBits = (PULONG)((ULONG_PTR)DestBits + DifflDelta); @@ -740,8 +741,9 @@ sx = ((DesX * SrcSizeX) / DesSizeX) + SourceRect->left; color = DIB_24BPP_GetPixel(SourceSurf, sx, sy); + color = XLATEOBJ_iXlate(ColorTranslation, color);
- *DestBits = XLATEOBJ_iXlate(ColorTranslation, color); + *DestBits = color; DestBits = (PULONG)((ULONG_PTR)DestBits + 2); } DestBits = (PULONG)((ULONG_PTR)DestBits + DifflDelta); @@ -766,8 +768,9 @@ sx = ((DesX * SrcSizeX) / DesSizeX) + SourceRect->left; color = DIB_32BPP_GetPixel(SourceSurf, sx, sy); + color = XLATEOBJ_iXlate(ColorTranslation, color);
- *DestBits = XLATEOBJ_iXlate(ColorTranslation, color); + *DestBits = color; DestBits = (PULONG)((ULONG_PTR)DestBits + 2); } DestBits = (PULONG)((ULONG_PTR)DestBits + DifflDelta);
Modified: trunk/reactos/subsystems/win32/win32k/dib/dib32bpp.c URL: http://svn.reactos.ru/svn/reactos/trunk/reactos/subsystems/win32/win32k/dib/... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/dib/dib32bpp.c (original) +++ trunk/reactos/subsystems/win32/win32k/dib/dib32bpp.c Wed May 24 01:18:08 2006 @@ -609,7 +609,8 @@ { sx = ((DesX * SrcSizeX) / DesSizeX) + SourceRect->left; color = DIB_4BPP_GetPixel(SourceSurf, sx, sy); - *DestBits = XLATEOBJ_iXlate(ColorTranslation, color); + color = XLATEOBJ_iXlate(ColorTranslation, color); + *DestBits = color; }
DestBits = (PULONG)((ULONG_PTR)DestBits + DifflDelta); @@ -633,7 +634,8 @@ { sx = ((DesX * SrcSizeX) / DesSizeX) + SourceRect->left; color = DIB_8BPP_GetPixel(SourceSurf, sx, sy); - *DestBits = XLATEOBJ_iXlate(ColorTranslation, color); + color = XLATEOBJ_iXlate(ColorTranslation, color); + *DestBits = color; } DestBits = (PULONG)((ULONG_PTR)DestBits + DifflDelta); } @@ -656,7 +658,8 @@ { sx = ((DesX * SrcSizeX) / DesSizeX) + SourceRect->left; color = DIB_16BPP_GetPixel(SourceSurf, sx, sy); - *DestBits = XLATEOBJ_iXlate(ColorTranslation, color); + color = XLATEOBJ_iXlate(ColorTranslation, color); + *DestBits = color; } DestBits = (PULONG)((ULONG_PTR)DestBits + DifflDelta); } @@ -679,7 +682,8 @@ { sx = ((DesX * SrcSizeX) / DesSizeX) + SourceRect->left; color = DIB_24BPP_GetPixel(SourceSurf, sx, sy); - *DestBits = XLATEOBJ_iXlate(ColorTranslation, color); + color = XLATEOBJ_iXlate(ColorTranslation, color); + *DestBits = color; } DestBits = (PULONG)((ULONG_PTR)DestBits + DifflDelta); }