- move NtGdiGetAspectRatioFilterEx from text.c to dc.c
[reactos.git] / reactos / subsystems / win32 / win32k / include / text.h
1 #ifndef _WIN32K_TEXT_H
2 #define _WIN32K_TEXT_H
3
4 #define TAG_FINF TAG('F', 'I', 'N', 'F')
5
6 /* GDI logical font object */
7 typedef struct
8 {
9 ENUMLOGFONTEXDVW logfont; //LOGFONTW logfont;
10 FONTOBJ *Font;
11 BOOLEAN Initialized; /* Don't reinitialize for each DC */
12 } TEXTOBJ, *PTEXTOBJ;
13
14 /* Internal interface */
15
16 #define TEXTOBJ_AllocText() \
17 ((HFONT) GDIOBJ_AllocObj (GdiHandleTable, GDI_OBJECT_TYPE_FONT))
18 #define TEXTOBJ_FreeText(hBMObj) GDIOBJ_FreeObj(GdiHandleTable, (HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_FONT)
19 #define TEXTOBJ_LockText(hBMObj) ((PTEXTOBJ) GDIOBJ_LockObj (GdiHandleTable, (HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_FONT))
20 #define TEXTOBJ_UnlockText(pBMObj) GDIOBJ_UnlockObjByPtr (GdiHandleTable, pBMObj)
21
22 NTSTATUS FASTCALL TextIntRealizeFont(HFONT FontHandle);
23 NTSTATUS FASTCALL TextIntCreateFontIndirect(CONST LPLOGFONTW lf, HFONT *NewFont);
24 BOOL FASTCALL InitFontSupport(VOID);
25 BOOL FASTCALL IntIsFontRenderingEnabled(VOID);
26 BOOL FASTCALL IntIsFontRenderingEnabled(VOID);
27 VOID FASTCALL IntEnableFontRendering(BOOL Enable);
28 INT FASTCALL FontGetObject(PTEXTOBJ TextObj, INT Count, PVOID Buffer);
29 VOID FASTCALL IntLoadSystemFonts(VOID);
30 INT FASTCALL IntGdiAddFontResource(PUNICODE_STRING FileName, DWORD Characteristics);
31
32 #define IntLockProcessPrivateFonts(W32Process) \
33 ExEnterCriticalRegionAndAcquireFastMutexUnsafe(&W32Process->PrivateFontListLock)
34
35 #define IntUnLockProcessPrivateFonts(W32Process) \
36 ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(&W32Process->PrivateFontListLock)
37
38 #define IntLockGlobalFonts \
39 ExEnterCriticalRegionAndAcquireFastMutexUnsafe(&FontListLock)
40
41 #define IntUnLockGlobalFonts \
42 ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(&FontListLock)
43
44 #define IntLockFreeType \
45 ExEnterCriticalRegionAndAcquireFastMutexUnsafe(&FreeTypeLock)
46
47 #define IntUnLockFreeType \
48 ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(&FreeTypeLock)
49
50 #endif /* _WIN32K_TEXT_H */