Add new items to gdi handle table. Added cfont and user space share gdi handle table.

svn path=/trunk/; revision=31228
This commit is contained in:
James Tabor 2007-12-15 07:03:51 +00:00
parent 2bac48a11b
commit d7abb13de2
3 changed files with 44 additions and 4 deletions

View file

@ -21,6 +21,7 @@
/* GDI handle table can hold 0x10000 handles */
#define GDI_HANDLE_COUNT 0x10000
#define GDI_GLOBAL_PROCESS (0x0)
#define GDI_CFONT_MAX 16
/* Handle Masks and shifts */
#define GDI_HANDLE_INDEX_MASK (GDI_HANDLE_COUNT - 1)
@ -213,6 +214,19 @@ typedef struct _GDI_TABLE_ENTRY
PVOID UserData; /* Points to the user mode structure, usually NULL though */
} GDI_TABLE_ENTRY, *PGDI_TABLE_ENTRY;
//
// User space only structure!
//
typedef struct __GDI_SHARED_HANDLE_TABLE // Must match win32k/include/gdiobj.h
{
GDI_TABLE_ENTRY Entries[GDI_HANDLE_COUNT]; // Handle table.
DEVCAPS DevCaps; // Shared device capabilities.
FLONG flDeviceUniq; // Device settings uniqueness.
PVOID pvLangPack; // Lanuage Pack.
CFONT cfPublic[GDI_CFONT_MAX]; // Public Fonts.
DWORD dwCsbSupported1; // OEM code-page bitfield.
} GDI_SHARED_HANDLE_TABLE, *PGDI_SHARED_HANDLE_TABLE;
typedef struct _RGNATTR
{
ULONG AttrFlags;

View file

@ -128,8 +128,11 @@ 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 _REALIZATION_INFO REALIZATION_INFO, *PREALIZATION_INFO;
typedef struct _REALIZATION_INFO // Based on LOCALESIGNATURE
{
DWORD dwCsbDefault[2];
DWORD dwCsbSupported0;
} REALIZATION_INFO, *PREALIZATION_INFO;
typedef struct _WIDTHDATA
{
@ -241,6 +244,26 @@ typedef union
ULONG l;
} gxf_long;
typedef struct _CFONT
{
struct _CFONT *pcfNext;
HFONT hf;
ULONG cRef; // Count of all pointers to this CFONT.
FLONG fl;
LONG lHeight; // Precomputed logical height.
HDC hdc; // HDC of realization. 0 for display.
EFLOAT_S efM11; // efM11 of WtoD of DC of realization
EFLOAT_S efM22; // efM22 of WtoD of DC of realization
EFLOAT_S efDtoWBaseline; // Precomputed back transform. (FXtoL)
EFLOAT_S efDtoWAscent; // Precomputed back transform. (FXtoL)
WIDTHDATA wd;
FLONG flInfo;
USHORT sWidth[256]; // Widths in pels.
ULONG ulAveWidth; // bogus average used by USER
TMW_INTERNAL tmw; // cached metrics
LOCALESIGNATURE lsLocSig; // font signature information
} CFONT, *PCFONT;
//
// GDI Batch structures.
//

View file

@ -17,7 +17,10 @@ typedef struct _GDI_HANDLE_TABLE
//////////////////////////////////////////////////////////////////////////////
GDI_TABLE_ENTRY Entries[GDI_HANDLE_COUNT];
DEVCAPS DevCaps; // Device Capabilities
// Font data
FLONG flDeviceUniq; // Device settings uniqueness.
PVOID pvLangPack; // Lanuage Pack.
CFONT cfPublic[GDI_CFONT_MAX]; // Public Fonts.
DWORD dwCsbSupported1; // OEM code-page bitfield.
//////////////////////////////////////////////////////////////////////////////
PPAGED_LOOKASIDE_LIST LookasideLists;