diff --git a/reactos/subsystems/win32/win32k/eng/mouse.c b/reactos/subsystems/win32/win32k/eng/mouse.c index 399a47cd627..24d866ba434 100644 --- a/reactos/subsystems/win32/win32k/eng/mouse.c +++ b/reactos/subsystems/win32/win32k/eng/mouse.c @@ -1,4 +1,4 @@ -/* +/* * PROJECT: ReactOS win32 subsystem * PURPOSE: Mouse pointer functions * FILE: subsystems/win32k/eng/mouse.c @@ -420,7 +420,7 @@ EngSetPointerShape( BWColors, 0, 0, 0); DestPalette = ppdev->DevInfo.hpalDefault; - pgp->XlateObject = IntEngCreateXlate(0, PAL_INDEXED, + pgp->XlateObject = IntEngCreateXlate(0, 0, DestPalette, BWPalette); EngDeletePalette(BWPalette); } diff --git a/reactos/subsystems/win32/win32k/eng/xlate.c b/reactos/subsystems/win32/win32k/eng/xlate.c index 7dd66d74ed8..c5db258d1c8 100644 --- a/reactos/subsystems/win32/win32k/eng/xlate.c +++ b/reactos/subsystems/win32/win32k/eng/xlate.c @@ -32,6 +32,11 @@ #define NDEBUG #include +VOID +InitXlateImpl(VOID) +{ +} + static __inline ULONG ShiftAndMask(XLATEGDI *XlateGDI, ULONG Color) { @@ -671,6 +676,17 @@ XLATEOBJ_cGetPalette(XLATEOBJ *XlateObj, ULONG PalOutType, ULONG cPal, return 0; } +/* + * @unimplemented + */ +HANDLE APIENTRY +XLATEOBJ_hGetColorTransform( + IN XLATEOBJ *XlateObj) +{ + UNIMPLEMENTED; + return NULL; +} + // HACK! XLATEOBJ* IntCreateBrushXlate(PDC pdc, BRUSH *pbrush) diff --git a/reactos/subsystems/win32/win32k/include/inteng.h b/reactos/subsystems/win32/win32k/include/inteng.h index f31f94e9f45..ac9d1da5b1f 100644 --- a/reactos/subsystems/win32/win32k/include/inteng.h +++ b/reactos/subsystems/win32/win32k/include/inteng.h @@ -90,6 +90,8 @@ IntEngGradientFill(SURFOBJ *psoDest, POINTL *pptlDitherOrg, ULONG ulMode); +VOID InitXlateImpl(VOID); + XLATEOBJ* FASTCALL IntEngCreateXlate(USHORT DestPalType, USHORT SourcePalType, diff --git a/reactos/subsystems/win32/win32k/main/dllmain.c b/reactos/subsystems/win32/win32k/main/dllmain.c index 7062a102bf5..53b133e28d1 100644 --- a/reactos/subsystems/win32/win32k/main/dllmain.c +++ b/reactos/subsystems/win32/win32k/main/dllmain.c @@ -528,6 +528,8 @@ DriverEntry ( return STATUS_UNSUCCESSFUL; } + InitXlateImpl(); + /* Create stock objects, ie. precreated objects commonly used by win32 applications */ CreateStockObjects(); diff --git a/reactos/subsystems/win32/win32k/objects/dibobj.c b/reactos/subsystems/win32/win32k/objects/dibobj.c index a5a92c27a6a..9bc9ea20cb2 100644 --- a/reactos/subsystems/win32/win32k/objects/dibobj.c +++ b/reactos/subsystems/win32/win32k/objects/dibobj.c @@ -314,7 +314,7 @@ IntSetDIBits( } // Determine XLATEOBJ for color translation - XlateObj = IntEngCreateXlate(DDB_Palette_Type, DIB_Palette_Type, DDB_Palette, DIB_Palette); + XlateObj = IntEngCreateXlate(0, 0, DDB_Palette, DIB_Palette); if (NULL == XlateObj) { PALETTE_FreePaletteByHandle(DIB_Palette); diff --git a/reactos/subsystems/win32/win32k/objects/fillshap.c b/reactos/subsystems/win32/win32k/objects/fillshap.c index a77eba5ac60..19174495690 100644 --- a/reactos/subsystems/win32/win32k/objects/fillshap.c +++ b/reactos/subsystems/win32/win32k/objects/fillshap.c @@ -923,7 +923,7 @@ IntGdiGradientFill( PalDestGDI = PALETTE_LockPalette(hDestPalette); if (PalDestGDI) { - Mode = PalDestGDI->Mode; + Mode = 0; PALETTE_UnlockPalette(PalDestGDI); } else diff --git a/reactos/subsystems/win32/win32k/stubs/stubs.c b/reactos/subsystems/win32/win32k/stubs/stubs.c index 367b6310a23..42f09f6d0b7 100644 --- a/reactos/subsystems/win32/win32k/stubs/stubs.c +++ b/reactos/subsystems/win32/win32k/stubs/stubs.c @@ -988,18 +988,6 @@ HT_Get8BPPMaskPalette( return 0; } -/* - * @unimplemented - */ -HANDLE APIENTRY -XLATEOBJ_hGetColorTransform( - IN XLATEOBJ *XlateObj) -{ - UNIMPLEMENTED; - return NULL; -} - - /* * @unimplemented */ @@ -2747,7 +2735,7 @@ EngFntCacheAlloc(IN ULONG FastCheckSum, UNIMPLEMENTED; return NULL; } - + VOID APIENTRY EngFntCacheFault(IN ULONG ulFastCheckSum, @@ -2755,7 +2743,7 @@ EngFntCacheFault(IN ULONG ulFastCheckSum, { UNIMPLEMENTED; } - + PVOID APIENTRY EngFntCacheLookUp(IN ULONG FastCheckSum, @@ -2772,7 +2760,7 @@ FLOATOBJ_AddFloatObj(PFLOATOBJ pFloatObj1, { UNIMPLEMENTED; } - + VOID APIENTRY FLOATOBJ_DivFloatObj(PFLOATOBJ pFloatObj1, @@ -2780,7 +2768,7 @@ FLOATOBJ_DivFloatObj(PFLOATOBJ pFloatObj1, { UNIMPLEMENTED; } - + VOID APIENTRY FLOATOBJ_MulFloatObj(PFLOATOBJ pFloatObj1, @@ -2788,7 +2776,7 @@ FLOATOBJ_MulFloatObj(PFLOATOBJ pFloatObj1, { UNIMPLEMENTED; } - + VOID APIENTRY FLOATOBJ_SubFloatObj(PFLOATOBJ pFloatObj1, @@ -2796,7 +2784,7 @@ FLOATOBJ_SubFloatObj(PFLOATOBJ pFloatObj1, { UNIMPLEMENTED; } - + PVOID APIENTRY EngAllocSectionMem(IN PVOID SectionObject, @@ -2807,7 +2795,7 @@ EngAllocSectionMem(IN PVOID SectionObject, UNIMPLEMENTED; return NULL; } - + NTSTATUS APIENTRY EngFileIoControl(IN PFILE_OBJECT FileObject, @@ -2821,7 +2809,7 @@ EngFileIoControl(IN PFILE_OBJECT FileObject, UNIMPLEMENTED; return STATUS_NOT_IMPLEMENTED; } - + VOID APIENTRY EngFileWrite(IN PFILE_OBJECT FileObject, @@ -2831,7 +2819,7 @@ EngFileWrite(IN PFILE_OBJECT FileObject, { UNIMPLEMENTED; } - + BOOLEAN APIENTRY EngFreeSectionMem(IN PVOID SectionObject OPTIONAL, @@ -2856,7 +2844,7 @@ EngGetTickCount(VOID) return (Int64ShrlMod32(UInt32x32To64(Multiplier, TickCount.LowPart), 24) + (Multiplier * (TickCount.HighPart << 8))); } - + BOOLEAN APIENTRY EngMapSection(IN PVOID Section, @@ -2867,7 +2855,7 @@ EngMapSection(IN PVOID Section, UNIMPLEMENTED; return FALSE; } - + BOOLEAN APIENTRY EngNineGrid(IN SURFOBJ* pDestSurfaceObj,