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 along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20 * COPYRIGHT: See COPYING in the top level directory
21 * PROJECT: ReactOS kernel
22 * PURPOSE: GDI Internal Objects
23 * FILE: win32ss/gdi/eng/engobjects.h
24 * PROGRAMER: Jason Filby
31 /* Structure of internal gdi objects that win32k manages for ddi engine:
32 |---------------------------------|
34 | accessed from engine |
35 |---------------------------------|
38 |_________________________________|
40 ---------------------------------------------------------------------------*/
42 typedef struct _RWNDOBJ
{
48 /* EXtended CLip and Window Region Objects */
50 typedef struct _XCLIPOBJ
: _CLIPOBJ
, _RWNDOBJ
53 typedef struct _XCLIPOBJ
58 struct _REGION
*pClipRgn
; /* prgnRao_ or (prgnVis_ if (prgnRao_ == z)) */
61 //PVOID pscanClipRgn; /* Ptr to regions rect buffer based on iDirection. */
75 DWORD RectCount
; /* count/mode based on # of rect in regions scan. */
76 PVOID pDDA
; /* Pointer to a large drawing structure. */
77 } XCLIPOBJ
, *PXCLIPOBJ
;
80 EngCreateClip allocates XCLIPOBJ and REGION, pco->co.pClipRgn = &pco->ro.
87 extern XCLIPOBJ gxcoTrivial
;
90 typedef struct _EWNDOBJ
: _XCLIPOBJ
93 typedef struct _EWNDOBJ
97 /* Extended WNDOBJ part */
99 WNDOBJCHANGEPROC ChangeProc
;
102 } EWNDOBJ
, *PEWNDOBJ
;
105 /*ei What is this for? */
106 typedef struct _DRVFUNCTIONSGDI
{
108 DRVFN Functions
[INDEX_LAST
];
111 typedef struct _FLOATGDI
{
115 typedef struct _SHARED_MEM
{
120 } SHARED_MEM
, *PSHARED_MEM
;
122 typedef struct _SHARED_FACE_CACHE
{
123 UINT OutlineRequiredSize
;
124 UNICODE_STRING FontFamily
;
125 UNICODE_STRING FullName
;
126 } SHARED_FACE_CACHE
, *PSHARED_FACE_CACHE
;
128 typedef struct _SHARED_FACE
{
132 SHARED_FACE_CACHE EnglishUS
;
133 SHARED_FACE_CACHE UserLanguage
;
134 } SHARED_FACE
, *PSHARED_FACE
;
136 typedef struct _FONTGDI
{
142 PSHARED_FACE SharedFace
;
149 BYTE RequestUnderline
;
150 BYTE RequestStrikeOut
;
156 } FONTGDI
, *PFONTGDI
;
158 typedef struct _PATHGDI
{
162 typedef struct _XFORMGDI
{
164 /* XFORMOBJ has no public members */
167 /* As the *OBJ structures are located at the beginning of the *GDI structures
168 we can simply typecast the pointer */
169 #define ObjToGDI(ClipObj, Type) (Type##GDI *)(ClipObj)
170 #define GDIToObj(ClipGDI, Type) (Type##OBJ *)(ClipGDI)