mirror of
https://github.com/reactos/reactos.git
synced 2025-07-31 21:11:54 +00:00
- 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.
svn path=/trunk/; revision=24561
This commit is contained in:
parent
31280506e9
commit
9b785911ed
2 changed files with 131 additions and 30 deletions
|
@ -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 @@ typedef struct _GDI_TABLE_ENTRY
|
|||
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
|
||||
|
|
|
@ -43,27 +43,38 @@ typedef enum _POLYFUNCTYPE
|
|||
|
||||
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 UNIVERSAL_FONT_ID *PUNIVERSAL_FONT_ID;
|
|||
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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue