[Win32k]
[reactos.git] / reactos / subsystems / win32 / win32k / include / xlateobj.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * PURPOSE: XLATEOBJ structures and functions
5 * FILE: subsystem/win32/win32k/eng/objects.h
6 * PROGRAMER: Timo Kreuzer
7 *
8 */
9
10 struct _EXLATEOBJ;
11
12 typedef ULONG (FASTCALL *PFN_XLATE)(struct _EXLATEOBJ *pexlo, ULONG iColor);
13
14 typedef struct _EXLATEOBJ
15 {
16 XLATEOBJ xlo;
17
18 PFN_XLATE pfnXlate;
19
20 PPALETTE ppalSrc;
21 PPALETTE ppalDst;
22 PPALETTE ppalDstDc;
23
24 HANDLE hColorTransform;
25
26 union
27 {
28 ULONG aulXlate[6];
29 struct
30 {
31 ULONG ulRedMask;
32 ULONG ulGreenMask;
33 ULONG ulBlueMask;
34 ULONG ulRedShift;
35 ULONG ulGreenShift;
36 ULONG ulBlueShift;
37 };
38 };
39 } EXLATEOBJ, *PEXLATEOBJ;
40
41 void
42 DbgCmpXlate(XLATEOBJ *pxlo1, XLATEOBJ *pxlo2);
43
44 VOID NTAPI EXLATEOBJ_vInitialize(PEXLATEOBJ pexlo, PALETTE *ppalSrc, PALETTE *ppalDst, ULONG, ULONG, ULONG);
45 VOID NTAPI EXLATEOBJ_vInitXlateFromDCs(PEXLATEOBJ pexlo, PDC pdcSrc, PDC pdcDst);
46 VOID NTAPI EXLATEOBJ_vInitSrcMonoXlate(PEXLATEOBJ pexlo, PPALETTE ppalDst, ULONG Color0, ULONG Color1);
47 VOID NTAPI EXLATEOBJ_vCleanup(PEXLATEOBJ pexlo);