Author: tkreuzer
Date: Wed Aug  3 19:50:56 2011
New Revision: 53054

URL: http://svn.reactos.org/svn/reactos?rev=53054&view=rev
Log:
[GDI FONT DRIVER]
forgot these files

Modified:
    branches/GSoC_2011/GdiFontDriver/subsystems/win32/win32k/include/font.h
    branches/GSoC_2011/GdiFontDriver/subsystems/win32/win32k/include/text.h
    branches/GSoC_2011/GdiFontDriver/subsystems/win32/win32k/include/win32.h
    branches/GSoC_2011/GdiFontDriver/subsystems/win32/win32k/include/win32kp.h

Modified: 
branches/GSoC_2011/GdiFontDriver/subsystems/win32/win32k/include/font.h
URL: 
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/GdiFontDriver/subsystems/win32/win32k/include/font.h?rev=53054&r1=53053&r2=53054&view=diff
==============================================================================
--- branches/GSoC_2011/GdiFontDriver/subsystems/win32/win32k/include/font.h 
[iso-8859-1] (original)
+++ branches/GSoC_2011/GdiFontDriver/subsystems/win32/win32k/include/font.h 
[iso-8859-1] Wed Aug  3 19:50:56 2011
@@ -1,3 +1,4 @@
+#pragma once
 
 #define LFONT_GetObject FontGetObject
 
@@ -74,9 +75,11 @@
 typedef struct _PFF
 {
     ULONG sizeofThis;
-    LIST_ENTRY leLink;
+    struct _PFF *pPFFNext;
+    struct _PFF *pPFFPrev;
     PWSTR pwszPathname;
     ULONG cwc;
+    ULONG iFileNameHash;
     ULONG cFiles;
     FLONG flState;
     ULONG cLoaded;
@@ -96,6 +99,56 @@
     PFONTFILEVIEW apffv[FD_MAX_FILES];
     PFE apfe[1];
 } PFF, *PPFF;
+
+typedef struct _HASHBUCKET
+{
+    struct _HASHBUCKET *pbktCollision;
+   // PFELINK *ppfelEnumHead;
+   // PFELINK *ppfelEnumTail;
+    ULONG cTrueType;
+    FLONG fl;
+    struct _HASHBUCKET * pbktPrev;
+    struct _HASHBUCKET * pbktNext;
+    ULONG ulTime;
+    union
+    {
+        WCHAR wcCapName[1];
+        UNIVERSAL_FONT_ID ufi;
+    } u;
+} HASHBUCKET, *PHASHBUCKET;
+
+typedef enum _FONT_HASH_TYPE
+{
+    FHT_FAMILY = 1,
+    FHT_FACE,
+    FHT_UFI,
+} FONT_HASH_TYPE;
+
+typedef struct
+{
+    DWORD id;
+    FONT_HASH_TYPE fht;
+    ULONG cBuckets;
+    ULONG cUsed;
+    ULONG cCollisions;
+    HASHBUCKET * pbktFirst;
+    HASHBUCKET * pbktLast;
+    HASHBUCKET * apbkt[];
+} FONTHASH, *PFONTHASH;
+
+#define MAX_FONT_LIST 100
+typedef struct _PFT
+{
+    PFONTHASH  pfhFamily;
+    PFONTHASH  pfhFace;
+    PFONTHASH  pfhUFI;
+    ULONG      cBuckets;
+    ULONG      cFiles;
+    PPFF       apPFF[MAX_FONT_LIST];
+
+    /* ROS specific */
+    HSEMAPHORE hsem;
+} PFT, *PPFT;
 
 typedef struct
 {
@@ -222,6 +275,56 @@
     ENUMLOGFONTEXDVW elfexw;
 } LFONT, *PLFONT;
 
+enum _ESTROBJ_FLAGS
+{
+    TO_MEM_ALLOCATED  = 0x0001,
+    TO_ALL_PTRS_VALID = 0x0002,
+    TO_VALID          = 0x0004,
+    TO_ESC_NOT_ORIENT = 0x0008,
+    TO_PWSZ_ALLOCATED = 0x0010,
+    TSIM_UNDERLINE1   = 0x0020,
+    TSIM_UNDERLINE2   = 0x0040,
+    TSIM_STRIKEOUT    = 0x0080,
+    TO_HIGHRESTEXT    = 0x0100,
+    TO_BITMAPS        = 0x0200,
+    TO_PARTITION_INIT = 0x0400,
+    TO_ALLOC_FACENAME = 0x0800,
+    TO_SYS_PARTITION  = 0x1000,
+};
+
+typedef struct _ESTROBJ
+{
+    STROBJ    stro; // Text string object header.
+    ULONG     cgposCopied;
+    ULONG     cgposPositionsEnumerated;
+    PRFONT    prfnt;
+    FLONG     flTO;
+    PGLYPHPOS pgpos;
+    POINTFIX  ptfxRef;
+    POINTFIX  ptfxUpdate;
+    POINTFIX  ptfxEscapement;
+    RECTFX    rcfx;
+    FIX       fxExtent;
+    FIX       fxExtra;
+    FIX       fxBreakExtra;
+    DWORD     dwCodePage;
+    ULONG     cExtraRects;
+    RECTL     arclExtra[3];
+    RECTL     rclBackGroundSave;
+    PWCHAR    pwcPartition;
+    PLONG     plPartition;
+    PLONG     plNext;
+    PGLYPHPOS pgpNext;
+    PLONG     plCurrentFont;
+    POINTL    ptlBaseLineAdjust;
+    INT       cTTSysGlyphs;
+    INT       cSysGlyphs;
+    INT       cDefGlyphs;
+    INT       cNumFaceNameGlyphs;
+    PVOID     pacFaceNameGlyphs;
+    ULONG     acFaceNameGlyphs[8];
+} ESTROBJ, *PESTROBJ;
+
 FORCEINLINE
 PLFONT
 LFONT_ShareLockFont(HFONT hfont)
@@ -236,6 +339,17 @@
     GDIOBJ_vDereferenceObject(&plfnt->baseobj);
 }
 
+BOOL
+NTAPI
+PFT_bInit(
+    PFT *ppft);
+
+VOID
+NTAPI
+ESTROBJ_vInit(
+    IN ESTROBJ *pestro,
+    IN PWSTR pwsz,
+    IN ULONG cwc);
 
 HFONT
 NTAPI
@@ -253,17 +367,34 @@
 PPFF
 NTAPI
 EngLoadFontFileFD(
-    ULONG cFiles,
-    PFONTFILEVIEW *ppffv,
+    IN WCHAR *pwszFiles,
+    IN ULONG cwc,
+    IN ULONG cFiles,
     DESIGNVECTOR *pdv,
     ULONG ulCheckSum);
 
 INT
 NTAPI
-GreAddFontResourceInternal(
-    IN PWCHAR apwszFiles[],
+GreAddFontResourceW(
+    IN WCHAR *pwszFiles,
+    IN ULONG cwc,
     IN ULONG cFiles,
     IN FLONG fl,
     IN DWORD dwPidTid,
     IN OPTIONAL DESIGNVECTOR *pdv);
 
+BOOL
+NTAPI
+GreExtTextOutW(
+    IN HDC hDC,
+    IN INT XStart,
+    IN INT YStart,
+    IN UINT fuOptions,
+    IN OPTIONAL PRECTL lprc,
+    IN LPWSTR String,
+    IN INT Count,
+    IN OPTIONAL LPINT Dx,
+    IN DWORD dwCodePage);
+
+
+#define DbgDefaultChannel 0x0

Modified: 
branches/GSoC_2011/GdiFontDriver/subsystems/win32/win32k/include/text.h
URL: 
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/GdiFontDriver/subsystems/win32/win32k/include/text.h?rev=53054&r1=53053&r2=53054&view=diff
==============================================================================
--- branches/GSoC_2011/GdiFontDriver/subsystems/win32/win32k/include/text.h 
[iso-8859-1] (original)
+++ branches/GSoC_2011/GdiFontDriver/subsystems/win32/win32k/include/text.h 
[iso-8859-1] Wed Aug  3 19:50:56 2011
@@ -1,116 +1,26 @@
 #pragma once
 
 #include <include/engobjects.h>
-
-#define TAG_FINF        'FNIF'
-//
-// EXSTROBJ flags.
-//
-#define TO_MEM_ALLOCATED    0x0001
-#define TO_ALL_PTRS_VALID   0x0002
-#define TO_VALID            0x0004
-#define TO_ESC_NOT_ORIENT   0x0008
-#define TO_PWSZ_ALLOCATED   0x0010
-#define TSIM_UNDERLINE1     0x0020
-#define TSIM_UNDERLINE2     0x0040
-#define TSIM_STRIKEOUT      0x0080
-#define TO_HIGHRESTEXT      0x0100
-#define TO_BITMAPS          0x0200
-#define TO_PARTITION_INIT   0x0400
-#define TO_ALLOC_FACENAME   0x0800
-#define TO_SYS_PARTITION    0x1000
-//
-// Extended STROBJ
-//
-typedef struct _STRGDI
-{
-  STROBJ    StrObj; // Text string object header.
-  FLONG     flTO;
-  INT       cgposCopied;
-  INT       cgposPositionsEnumerated;
-  PVOID     prfo;  // PRFONT -> PFONTGDI
-  PGLYPHPOS pgpos;
-  POINTFIX  ptfxRef;
-  POINTFIX  ptfxUpdate;
-  POINTFIX  ptfxEscapement;
-  RECTFX    rcfx;
-  FIX       fxExtent;
-  FIX       fxExtra;
-  FIX       fxBreakExtra;
-  DWORD     dwCodePage;
-  INT       cExtraRects;
-  RECTL     arclExtra[3];
-  RECTL     rclBackGroundSave;
-  PWCHAR    pwcPartition;
-  PLONG     plPartition;
-  PLONG     plNext;
-  PGLYPHPOS pgpNext;
-  PLONG     plCurrentFont;
-  POINTL    ptlBaseLineAdjust;
-  INT       cTTSysGlyphs;
-  INT       cSysGlyphs;
-  INT       cDefGlyphs;
-  INT       cNumFaceNameGlyphs;
-  PVOID     pacFaceNameGlyphs;
-  ULONG     acFaceNameGlyphs[8];
-} STRGDI, *PSTRGDI;
-
-#define TEXTOBJECT_INIT 0x00010000
 
 /* GDI logical font object */
 typedef struct _LFONT TEXTOBJ, *PTEXTOBJ;
 
 /*  Internal interface  */
 
-#define  TEXTOBJ_AllocText()       ((PTEXTOBJ) 
GDIOBJ_AllocObj(GDIObjType_LFONT_TYPE))
-#define  TEXTOBJ_AllocTextWithHandle() ((PTEXTOBJ) 
GDIOBJ_AllocObjWithHandle(GDI_OBJECT_TYPE_FONT, sizeof(TEXTOBJ)))
-#define  TEXTOBJ_FreeText(pBMObj)  GDIOBJ_FreeObj((POBJ) pBMObj, 
GDILoObjType_LO_FONT_TYPE)
-#define  TEXTOBJ_FreeTextByHandle(hBMObj)  GDIOBJ_FreeObj((HGDIOBJ) hBMObj, 
GDI_OBJECT_TYPE_FONT)
-#define  TEXTOBJ_LockText(hBMObj) ((PTEXTOBJ) GDIOBJ_LockObject((HGDIOBJ) 
hBMObj, GDIObjType_LFONT_TYPE))
 #define  TEXTOBJ_UnlockText(pBMObj) GDIOBJ_vUnlockObject ((POBJ)pBMObj)
-
-PTEXTOBJ FASTCALL RealizeFontInit(HFONT);
-NTSTATUS FASTCALL TextIntRealizeFont(HFONT,PTEXTOBJ);
 NTSTATUS FASTCALL TextIntCreateFontIndirect(CONST LPLOGFONTW lf, HFONT 
*NewFont);
 BOOL FASTCALL InitFontSupport(VOID);
-BOOL FASTCALL IntIsFontRenderingEnabled(VOID);
-BOOL FASTCALL IntIsFontRenderingEnabled(VOID);
-VOID FASTCALL IntEnableFontRendering(BOOL Enable);
 INT FASTCALL FontGetObject(PTEXTOBJ TextObj, INT Count, PVOID Buffer);
-VOID FASTCALL IntLoadSystemFonts(VOID);
-INT FASTCALL IntGdiAddFontResource(PUNICODE_STRING FileName, DWORD 
Characteristics);
-ULONG FASTCALL 
ftGdiGetGlyphOutline(PDC,WCHAR,UINT,LPGLYPHMETRICS,ULONG,PVOID,LPMAT2,BOOL);
-INT FASTCALL IntGetOutlineTextMetrics(PFONTGDI,UINT,OUTLINETEXTMETRICW *);
-BOOL FASTCALL ftGdiGetRasterizerCaps(LPRASTERIZER_STATUS);
-BOOL FASTCALL 
TextIntGetTextExtentPoint(PDC,PTEXTOBJ,LPCWSTR,INT,ULONG,LPINT,LPINT,LPSIZE,FLONG);
-BOOL FASTCALL ftGdiGetTextMetricsW(HDC,PTMW_INTERNAL);
-DWORD FASTCALL IntGetFontLanguageInfo(PDC);
-INT FASTCALL ftGdiGetTextCharsetInfo(PDC,PFONTSIGNATURE,DWORD);
-DWORD FASTCALL ftGetFontUnicodeRanges(PFONTGDI, PGLYPHSET);
-DWORD FASTCALL ftGdiGetFontData(PFONTGDI,DWORD,DWORD,PVOID,DWORD);
-BOOL FASTCALL IntGdiGetFontResourceInfo(PUNICODE_STRING,PVOID,DWORD*,DWORD);
-BOOL FASTCALL ftGdiRealizationInfo(PFONTGDI,PREALIZATION_INFO);
-DWORD FASTCALL ftGdiGetKerningPairs(PFONTGDI,DWORD,LPKERNINGPAIR);
-BOOL NTAPI GreExtTextOutW(IN HDC,IN INT,IN INT,IN UINT,IN OPTIONAL RECTL*,
-    IN LPWSTR, IN INT, IN OPTIONAL LPINT, IN DWORD);
-DWORD FASTCALL IntGetCharDimensions(HDC, PTEXTMETRICW, PDWORD);
-BOOL FASTCALL GreGetTextExtentW(HDC,LPWSTR,INT,LPSIZE,UINT);
-BOOL FASTCALL 
GreGetTextExtentExW(HDC,LPWSTR,ULONG,ULONG,PULONG,PULONG,LPSIZE,FLONG);
 
-#define IntLockProcessPrivateFonts(W32Process) \
-  
ExEnterCriticalRegionAndAcquireFastMutexUnsafe(&W32Process->PrivateFontListLock)
-
-#define IntUnLockProcessPrivateFonts(W32Process) \
-  
ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(&W32Process->PrivateFontListLock)
-
-#define IntLockGlobalFonts \
-  ExEnterCriticalRegionAndAcquireFastMutexUnsafe(&FontListLock)
-
-#define IntUnLockGlobalFonts \
-  ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(&FontListLock)
-
-#define IntLockFreeType \
-  ExEnterCriticalRegionAndAcquireFastMutexUnsafe(&FreeTypeLock)
-
-#define IntUnLockFreeType \
-  ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(&FreeTypeLock)
+BOOL
+NTAPI
+GreExtTextOutW(
+    IN HDC,
+    IN INT,
+    IN INT,
+    IN UINT,
+    IN OPTIONAL RECTL*,
+    IN LPWSTR,
+    IN INT,
+    IN OPTIONAL LPINT,
+    IN DWORD);

Modified: 
branches/GSoC_2011/GdiFontDriver/subsystems/win32/win32k/include/win32.h
URL: 
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/GdiFontDriver/subsystems/win32/win32k/include/win32.h?rev=53054&r1=53053&r2=53054&view=diff
==============================================================================
--- branches/GSoC_2011/GdiFontDriver/subsystems/win32/win32k/include/win32.h 
[iso-8859-1] (original)
+++ branches/GSoC_2011/GdiFontDriver/subsystems/win32/win32k/include/win32.h 
[iso-8859-1] Wed Aug  3 19:50:56 2011
@@ -192,7 +192,7 @@
   struct _GDI_POOL *pPoolDcAttr;
   struct _GDI_POOL *pPoolBrushAttr;
   struct _GDI_POOL *pPoolRgnAttr;
-
+  struct _PFT *ppftPrivate;
 #ifdef DBG
   BYTE DbgChannelLevel[DbgChCount];
 #endif

Modified: 
branches/GSoC_2011/GdiFontDriver/subsystems/win32/win32k/include/win32kp.h
URL: 
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/GdiFontDriver/subsystems/win32/win32k/include/win32kp.h?rev=53054&r1=53053&r2=53054&view=diff
==============================================================================
--- branches/GSoC_2011/GdiFontDriver/subsystems/win32/win32k/include/win32kp.h 
[iso-8859-1] (original)
+++ branches/GSoC_2011/GdiFontDriver/subsystems/win32/win32k/include/win32kp.h 
[iso-8859-1] Wed Aug  3 19:50:56 2011
@@ -95,3 +95,4 @@
 #include <include/mapping.h>
 #include <dib/dib.h>
 #include <include/gdidebug.h>
+//#include <include/font.h>


Reply via email to