3 * Copyright (C) 1998, 1999, 2000, 2001 ReactOS Team
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 * COPYRIGHT: See COPYING in the top level directory
22 * PROJECT: ReactOS kernel
23 * PURPOSE: GDI Internal Objects
24 * FILE: subsystem/win32/win32k/eng/objects.h
25 * PROGRAMER: Jason Filby
29 #ifndef __ENG_OBJECTS_H
30 #define __ENG_OBJECTS_H
33 #include <freetype/freetype.h>
35 /* Structure of internal gdi objects that win32k manages for ddi engine:
36 |---------------------------------|
38 | accessed from engine |
39 |---------------------------------|
42 |_________________________________|
44 ---------------------------------------------------------------------------*/
46 typedef struct _CLIPGDI
{
54 /*ei What is this for? */
55 typedef struct _DRVFUNCTIONSGDI
{
57 DRVFN Functions
[INDEX_LAST
];
60 typedef struct _FLOATGDI
{
65 #define FDM_TYPE_TEXT_METRIC 0x80000000
67 typedef struct _FONTGDI
{
81 TEXTMETRICW TextMetric
;
87 typedef struct _PATHGDI
{
91 typedef struct _WNDGDI
{
95 CLIPOBJ
*ClientClipObj
;
96 WNDOBJCHANGEPROC ChangeProc
;
101 typedef struct _XFORMGDI
{
103 /* XFORMOBJ has no public members */
106 typedef struct _XLATEGDI
{
110 BOOL UseShiftAndMask
;
113 // struct { /* For Shift Translations */
121 // struct { /* For Color -> Mono Translations */
122 ULONG BackgroundColor
;
127 /* as the *OBJ structures are located at the beginning of the *GDI structures
128 we can simply typecast the pointer */
129 #define ObjToGDI(ClipObj, Type) (Type##GDI *)(ClipObj)
130 #define GDIToObj(ClipGDI, Type) (Type##OBJ *)(ClipGDI)
133 #endif //__ENG_OBJECTS_H