[CMAKE]
[reactos.git] / 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 #include <include/palette.h>
11
12 struct _EXLATEOBJ;
13
14 typedef ULONG (FASTCALL *PFN_XLATE)(struct _EXLATEOBJ *pexlo, ULONG iColor);
15
16 typedef struct _EXLATEOBJ
17 {
18 XLATEOBJ xlo;
19
20 PFN_XLATE pfnXlate;
21
22 PPALETTE ppalSrc;
23 PPALETTE ppalDst;
24 PPALETTE ppalDstDc;
25
26 HANDLE hColorTransform;
27
28 union
29 {
30 ULONG aulXlate[6];
31 struct
32 {
33 ULONG ulRedMask;
34 ULONG ulGreenMask;
35 ULONG ulBlueMask;
36 ULONG ulRedShift;
37 ULONG ulGreenShift;
38 ULONG ulBlueShift;
39 };
40 };
41 } EXLATEOBJ, *PEXLATEOBJ;
42
43 void
44 DbgCmpXlate(XLATEOBJ *pxlo1, XLATEOBJ *pxlo2);
45
46 VOID NTAPI EXLATEOBJ_vInitialize(PEXLATEOBJ pexlo, PALETTE *ppalSrc, PALETTE *ppalDst, ULONG, ULONG, ULONG);
47 VOID NTAPI EXLATEOBJ_vInitXlateFromDCs(PEXLATEOBJ pexlo, PDC pdcSrc, PDC pdcDst);
48 VOID NTAPI EXLATEOBJ_vInitSrcMonoXlate(PEXLATEOBJ pexlo, PPALETTE ppalDst, ULONG Color0, ULONG Color1);
49 VOID NTAPI EXLATEOBJ_vCleanup(PEXLATEOBJ pexlo);
50 INIT_FUNCTION
51 NTSTATUS
52 NTAPI
53 InitXlateImpl(VOID);
54
55 //#define XLATEOBJ_iXlate(pxo, Color) ((EXLATEOBJ*)pxo)->pfnXlate(pxo, Color)