ReactOS 0.4.15-dev-7924-g5949c20
engobjects.h
Go to the documentation of this file.
1/*
2 * ReactOS kernel
3 * Copyright (C) 1998, 1999, 2000, 2001 ReactOS Team
4 *
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.
9 *
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.
14 *
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.
18 */
19 /*
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
25 * REVISION HISTORY:
26 * 21/8/1999: Created
27 */
28
29#pragma once
30
31/* Structure of internal gdi objects that win32k manages for ddi engine:
32 |---------------------------------|
33 | Public part |
34 | accessed from engine |
35 |---------------------------------|
36 | Private part |
37 | managed by gdi |
38 |_________________________________|
39
40---------------------------------------------------------------------------*/
41
42typedef struct _RWNDOBJ {
47
48/*
49 * XCLIPOBJ structure --- EXtended CLip and Window Region Objects.
50 * See also: https://reactos.org/wiki/Techwiki:Win32k/XCLIPOBJ
51 */
52#ifdef __cplusplus
53typedef struct _XCLIPOBJ : _CLIPOBJ, _RWNDOBJ
54{
55#else
56typedef struct _XCLIPOBJ
57{
60#endif
61 struct _REGION *pClipRgn; /* prgnRao_ or (prgnVis_ if (prgnRao_ == z)) */
62 //
64 //PVOID pscanClipRgn; /* Ptr to regions rect buffer based on iDirection. */
77 //
78 DWORD RectCount; /* count/mode based on # of rect in regions scan. */
79 PVOID pDDA; /* Pointer to a large drawing structure. */
81
82/*
83 EngCreateClip allocates XCLIPOBJ and REGION, pco->co.pClipRgn = &pco->ro.
84 {
85 XCLIPOBJ co;
86 REGION ro;
87 }
88 */
89
91
92#ifdef __cplusplus
93typedef struct _EWNDOBJ : _XCLIPOBJ
94{
95#else
96typedef struct _EWNDOBJ
97{
99#endif
100 /* Extended WNDOBJ part */
102 WNDOBJCHANGEPROC ChangeProc;
106
107
108/*ei What is this for? */
109typedef struct _DRVFUNCTIONSGDI {
110 HDEV hdev;
111 DRVFN Functions[INDEX_LAST];
113
114typedef struct _FLOATGDI {
117
118typedef struct _SHARED_MEM {
124
125typedef struct _SHARED_FACE_CACHE {
130
131typedef struct _SHARED_FACE {
138
139typedef struct _FONTGDI {
143
146
150
159
160 /* Precomputed font metrics (supplements FreeType metrics) */
169
170/* The initialized 'Magic' value in FONTGDI */
171#define FONTGDI_MAGIC 0x20110311
172
173typedef struct _PATHGDI {
176
177typedef struct _XFORMGDI {
179 /* XFORMOBJ has no public members */
181
182/* As the *OBJ structures are located at the beginning of the *GDI structures
183 we can simply typecast the pointer */
184#define ObjToGDI(ClipObj, Type) (Type##GDI *)(ClipObj)
185#define GDIToObj(ClipGDI, Type) (Type##OBJ *)(ClipGDI)
struct _SHARED_FACE_CACHE SHARED_FACE_CACHE
struct _DRVFUNCTIONSGDI DRVFUNCTIONSGDI
struct _SHARED_MEM * PSHARED_MEM
struct _FONTGDI * PFONTGDI
struct _SHARED_FACE SHARED_FACE
struct _PATHGDI PATHGDI
struct _SHARED_MEM SHARED_MEM
struct _SHARED_FACE * PSHARED_FACE
struct _XCLIPOBJ XCLIPOBJ
struct _EWNDOBJ EWNDOBJ
struct _XCLIPOBJ * PXCLIPOBJ
struct _XFORMGDI XFORMGDI
struct _SHARED_FACE_CACHE * PSHARED_FACE_CACHE
struct _EWNDOBJ * PEWNDOBJ
struct _RWNDOBJ RWNDOBJ
struct _FONTGDI FONTGDI
struct _FLOATGDI FLOATGDI
XCLIPOBJ gxcoTrivial
Definition: bitblt.c:20
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
unsigned int UINT
Definition: ndis.h:50
unsigned long FLONG
Definition: ntbasedef.h:366
long LONG
Definition: pedump.c:60
Definition: winddi.h:529
WNDOBJCHANGEPROC ChangeProc
Definition: engobjects.h:102
int PixelFormat
Definition: engobjects.h:104
HWND Hwnd
Definition: engobjects.h:101
FLONG Flags
Definition: engobjects.h:103
ULONG Dummy
Definition: engobjects.h:115
LONG tmInternalLeading
Definition: engobjects.h:164
LPWSTR Filename
Definition: engobjects.h:151
BYTE RequestItalic
Definition: engobjects.h:154
LONG RequestWeight
Definition: engobjects.h:155
LONG lMaxNegA
Definition: engobjects.h:147
LONG lMaxNegC
Definition: engobjects.h:148
LONG lfWidth
Definition: engobjects.h:167
LONG tmAscent
Definition: engobjects.h:162
LONG lMinWidthD
Definition: engobjects.h:149
BYTE RequestStrikeOut
Definition: engobjects.h:153
FLONG flType
Definition: engobjects.h:142
LONG tmDescent
Definition: engobjects.h:163
BYTE OriginalItalic
Definition: engobjects.h:156
DHPDEV dhpdev
Definition: engobjects.h:144
BYTE CharSet
Definition: engobjects.h:158
ULONG iUnique
Definition: engobjects.h:141
FONTOBJ FontObj
Definition: engobjects.h:140
PSHARED_FACE SharedFace
Definition: engobjects.h:145
LONG tmHeight
Definition: engobjects.h:161
LONG lfHeight
Definition: engobjects.h:166
LONG OriginalWeight
Definition: engobjects.h:157
BYTE RequestUnderline
Definition: engobjects.h:152
LONG Magic
Definition: engobjects.h:165
PATHOBJ PathObj
Definition: engobjects.h:174
Definition: region.h:8
PVOID pvConsumer
Definition: engobjects.h:43
SURFOBJ * psoOwner
Definition: engobjects.h:45
RECTL rclClient
Definition: engobjects.h:44
UNICODE_STRING FontFamily
Definition: engobjects.h:127
UNICODE_STRING FullName
Definition: engobjects.h:128
FT_Face Face
Definition: engobjects.h:132
PSHARED_MEM Memory
Definition: engobjects.h:134
SHARED_FACE_CACHE UserLanguage
Definition: engobjects.h:136
SHARED_FACE_CACHE EnglishUS
Definition: engobjects.h:135
ULONG BufferSize
Definition: engobjects.h:120
PVOID Buffer
Definition: engobjects.h:119
LONG RefCount
Definition: engobjects.h:122
BOOL IsMapping
Definition: engobjects.h:121
DWORD reserved2
Definition: engobjects.h:75
struct _REGION * pClipRgn
Definition: engobjects.h:61
DWORD cScan
Definition: engobjects.h:66
ULONG iDirection
Definition: engobjects.h:71
LONG lscnSize
Definition: engobjects.h:69
DWORD reserved1
Definition: engobjects.h:73
ULONG EnumMax
Definition: engobjects.h:70
PVOID pDDA
Definition: engobjects.h:79
LONG lUpDown
Definition: engobjects.h:74
ULONG iType
Definition: engobjects.h:72
RECTL * Rects
Definition: engobjects.h:65
BOOL bAll
Definition: engobjects.h:76
DWORD reserved
Definition: engobjects.h:67
DWORD RectCount
Definition: engobjects.h:78
RECTL rclClipRgn
Definition: engobjects.h:63
ULONG EnumPos
Definition: engobjects.h:68
ULONG Dummy
Definition: engobjects.h:178
uint32_t ULONG
Definition: typedefs.h:59
typedef DHPDEV(APIENTRY FN_DrvEnablePDEV)(_In_ DEVMODEW *pdm
#define INDEX_LAST
Definition: winddi.h:521
WCHAR * LPWSTR
Definition: xmlstorage.h:184
unsigned char BYTE
Definition: xxhash.c:193