Author: ion
Date: Wed Oct 18 10:00:31 2006
New Revision: 24561
URL:
http://svn.reactos.org/svn/reactos?rev=24561&view=rev
Log:
- Some stuff I promised James. This is DC_ATTR from Win2K, IIRC (you called it
GDI_USER_DATA). It changed a bit in XP, but now you have a working model. Also added some
more flags/enums that I knew about and some font structures.
Modified:
trunk/reactos/include/reactos/win32k/ntgdihdl.h
trunk/reactos/include/reactos/win32k/ntgdityp.h
Modified: trunk/reactos/include/reactos/win32k/ntgdihdl.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/win32k/ntg…
==============================================================================
--- trunk/reactos/include/reactos/win32k/ntgdihdl.h (original)
+++ trunk/reactos/include/reactos/win32k/ntgdihdl.h Wed Oct 18 10:00:31 2006
@@ -74,6 +74,25 @@
#define GDI_HANDLE_SET_STOCKOBJ(h) \
((h) = (HANDLE)(((ULONG_PTR)(h)) | GDI_HANDLE_STOCK_MASK))
+/* DC_ATTR Dirty Flags */
+#define DIRTY_FILL 0x00000001
+#define DIRTY_LINE 0x00000002
+#define DIRTY_TEXT 0x00000004
+#define DIRTY_BACKGROUND 0x00000008
+#define DIRTY_CHARSET 0x00000010
+#define SLOW_WIDTHS 0x00000020
+#define DC_CACHED_TM_VALID 0x00000040
+#define DISPLAY_DC 0x00000080
+#define DIRTY_PTLCURRENT 0x00000100
+#define DIRTY_PTFXCURRENT 0x00000200
+#define DIRTY_STYLESTATE 0x00000400
+#define DC_PLAYMETAFILE 0x00000800
+#define DC_BRUSH_DIRTY 0x00001000
+#define DC_PEN_DIRTY 0x00002000
+#define DC_DIBSECTION 0x00004000
+#define DC_LAST_CLIPRGN_VALID 0x00008000
+#define DC_PRIMARY_DISPLAY 0x00010000
+
/* TYPES *********************************************************************/
typedef struct _GDI_TABLE_ENTRY
@@ -84,28 +103,62 @@
PVOID UserData; /* Points to the user mode structure, usually NULL though */
} GDI_TABLE_ENTRY, *PGDI_TABLE_ENTRY;
+typedef struct _RGNATTR
+{
+ ULONG AttrFlags;
+ ULONG Flags;
+ RECTL Rect;
+} RGNATTR,*PRGNATTR;
-typedef struct _GDI_USER_DATA
+typedef struct _DC_ATTR
{
- COLORREF PenColor;
- COLORREF BrushColor;
- INT ROPmode;
- INT PolyFillMode;
- INT StretchBltMode;
- INT BackgroundMode;
- COLORREF BackgroundColor;
- COLORREF TextColor;
- DWORD CodePage;
- HCOLORSPACE ColorSpace;
- INT TextAlign; /* Text alignment from SetTextAlign() */
- INT CharExtra; /* Spacing from SetTextCharacterExtra() */
- INT BreakExtral; /* SetTextJustification */
- INT BreakCount; /* " */
- INT GraphicsMode; /* Graphics mode */
- INT MapMode;
- HFONT hFont;
- DWORD Layout;
-} GDI_USER_DATA, *PGDI_USER_DATA;
-
+ PVOID pvLDC;
+ ULONG ulDirty_;
+ HANDLE hbrush;
+ HANDLE hpen;
+ COLORREF crBackgroundClr;
+ ULONG ulBackgroundClr;
+ COLORREF crForegroundClr;
+ ULONG ulForegroundClr;
+ DWORD iCS_CP;
+ INT iGraphicsMode;
+ BYTE jROP2;
+ BYTE jBkMode;
+ BYTE jFillMode;
+ BYTE jStretchBltMode;
+ POINTL ptlCurrent;
+ POINTL ptfxCurrent;
+ LONG lBkMode;
+ LONG lFillMode;
+ LONG lStretchBltMode;
+ FLONG flFontMapper;
+ LONG lIcmMode;
+ HANDLE hcmXform;
+ HCOLORSPACE hColorSpace;
+ INT IcmBrushColor;
+ INT IcmPenColor;
+ FLONG flTextAlign;
+ LONG lTextAlign;
+ LONG lTextExtra;
+ LONG lRelAbs;
+ LONG lBreakExtra;
+ LONG cBreak;
+ HANDLE hlfntNew;
+ MATRIX_S mxWorldToDevice;
+ MATRIX_S mxDevicetoWorld;
+ MATRIX_S mxWorldToPage;
+ INT iMapMode;
+ DWORD dwLayout;
+ LONG lWindowOrgx;
+ POINTL ptlWindowOrg;
+ SIZEL szlWindowExt;
+ POINTL ptlViewportOrg;
+ SIZEL szlViewportExt;
+ FLONG flXform;
+ SIZEL szlVirtualDevicePixel;
+ SIZEL szlVirtualDeviceMm;
+ POINTL ptlBrushOrigin;
+ RGNATTR VisRectRegion;
+} DC_ATTR, *PDC_ATTR;
#endif
Modified: trunk/reactos/include/reactos/win32k/ntgdityp.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/win32k/ntg…
==============================================================================
--- trunk/reactos/include/reactos/win32k/ntgdityp.h (original)
+++ trunk/reactos/include/reactos/win32k/ntgdityp.h Wed Oct 18 10:00:31 2006
@@ -43,27 +43,38 @@
typedef enum _GETDCDWORD
{
- GdiGetRelAbs = 1,
+ GdiGetJournal,
+ GdiGetRelAbs,
GdiGetBreakExtra,
GdiGerCharBreak,
GdiGetArcDirection,
GdiGetEMFRestorDc,
GdiGetFontLanguageInfo,
GdiGetIsMemDc,
+ GdiGetMapMode,
+ GdiGetTextCharExtra,
} GETDCDWORD, *PGETDCDWORD;
typedef enum _GETSETDCDWORD
{
- GdiGetSetRelAbs = 4,
- GdiGetSetMapperFlagsInternal = 7,
- GdiGetSetMapMode = 8,
- GdiGetSetArcDirection = 9,
+ GdtGetSetCopyCount = 2,
+ GdiGetSetTextAlign,
+ GdiGetSetRelAbs,
+ GdiGetSetTextCharExtra,
+ GdiGetSetSelectFont,
+ GdiGetSetMapperFlagsInternal,
+ GdiGetSetMapMode,
+ GdiGetSetArcDirection,
} GETSETDCDWORD, *PGETSETDCDWORD;
typedef enum _GETDCPOINT
{
GdiGetViewPortExt = 1,
- GdiGetDCOrg = 7,
+ GdiGetWindowExt,
+ GdiGetViewPortOrg,
+ GdiGetWindowOrg,
+ GdiGetAspectRatioFilter,
+ GdiGetDCOrg = 6,
} GETDCPOINT, *PGETDCPOINT;
typedef enum _TRANSFORMTYPE
@@ -86,13 +97,50 @@
typedef DWORD CHWIDTHINFO;
typedef CHWIDTHINFO *PCHWIDTHINFO;
typedef D3DNTHAL_CONTEXTCREATEDATA D3DNTHAL_CONTEXTCREATEI;
+typedef LONG FIX;
/* FIXME: Unknown; easy to guess, usually based on public types and converted */
typedef struct _WIDTHDATA WIDTHDATA, *PWIDTHDATA;
-typedef struct _TMDIFF TMDIFF, *PTMDIFF;
-typedef struct _TMW_INTERNAL TMW_INTERNAL, *PTMW_INTERNAL;
-typedef struct _ENUMFONTDATAW ENUMFONTDATAW, *PENUMFONTDATAW;
typedef struct _DEVCAPS DEVCAPS, *PDEVCAPS;
typedef struct _REALIZATION_INFO REALIZATION_INFO, *PREALIZATION_INFO;
+/* Font Structures */
+typedef struct _TMDIFF
+{
+ ULONG cjotma;
+ CHAR chFirst;
+ CHAR chLast;
+ CHAR ChDefault;
+ CHAR ChBreak;
+} TMDIFF, *PTMDIFF;
+
+typedef struct _TMW_INTERNAL
+{
+ TEXTMETRICW TextMetric;
+ TMDIFF Diff;
+} TMW_INTERNAL, *PTMW_INTERNAL;
+
+typedef struct _ENUMFONTDATAW ENUMFONTDATAW, *PENUMFONTDATAW;
+
+/* Number Representation */
+typedef struct _EFLOAT_S
+{
+ LONG lMant;
+ LONG lExp;
+} EFLOAT_S;
+
+/* XFORM Structures */
+typedef struct _MATRIX_S
+{
+ EFLOAT_S efM11;
+ EFLOAT_S efM12;
+ EFLOAT_S efM21;
+ EFLOAT_S efM22;
+ EFLOAT_S efDx;
+ EFLOAT_S efDy;
+ FIX fxDx;
+ FIX fxDy;
+ FLONG flAccel;
+} MATRIX_S;
+
#endif