#include #include #include // sin & cos // // Where is IStream included from? // #define IStream int #include "gdiplus.h" using namespace Gdiplus; #define DG_NOGDI 4 #define MAX_GLYPH_COUNT 100 //copy from winddi.h typedef ULONG HGLYPH; typedef LONG FIX; // point in the 32.32 bit precission typedef struct _POINTQF // ptq { LARGE_INTEGER x; LARGE_INTEGER y; } POINTQF, *PPOINTQF; typedef struct _GLYPHBITS { POINTL ptlOrigin; SIZEL sizlBitmap; BYTE aj[1]; } GLYPHBITS; typedef union _GLYPHDEF { GLYPHBITS *pgb; // PATHOBJ *ppo; PVOID *ppo; } GLYPHDEF; typedef struct _GLYPHDATA { GLYPHDEF gdf; HGLYPH hg; FIX fxD; FIX fxA; FIX fxAB; FIX fxInkTop; FIX fxInkBottom; RECTL rclInk; POINTQF ptqD; } GLYPHDATA; typedef GpStatus (*FN_GDIPDRAWGLYPHS)(GpGraphics*, UINT16*, INT, GpFont*, GpBrush*, INT*, INT*, INT); typedef GpStatus (*FN_GDIPPATHADDGLYPHS)(GpPath*, UINT16*, INT, GpFont*, REAL*, REAL*, INT); typedef GpStatus (*FN_GDIPSETTEXTRENDERINGHINT)(GpGraphics *graphics, TextRenderingHint mode); enum AddFontFlag { AddFontFlagPublic = 0, AddFontFlagNotEnumerate = 1 }; // globals extern HINSTANCE ghInst; extern HWND ghWndMain; extern HWND ghWndList; extern HBRUSH ghbrWhite; extern HINSTANCE ghGdiplus; extern Font *gFont; extern FN_GDIPDRAWGLYPHS gfnGdipDrawGlyphs; extern FN_GDIPPATHADDGLYPHS gfnGdipPathAddGlyphs; extern FN_GDIPSETTEXTRENDERINGHINT gfnGdipSetTextRenderingHint; void Dbgprintf(PCH msg, ...); void CreateNewFont(char*, FLOAT, FontStyle, Unit); void TestDrawGlyphs(HWND hwnd, UINT16 *glyphIndices, INT count, INT *px, INT *py, INT flags); void TestPathGlyphs(HWND hwnd, UINT16 *glyphIndices, INT count, REAL *px, REAL *py, INT flags); void TestAddFontFile(CHAR* fileName, INT flag, BOOL loasAsImage); void TestRemoveFontFile(char* fileName); void TestTextAntiAliasOn(); void TestTextAntiAliasOff();