ttfont.h
来自「source code: Covert TXT to PDF」· C头文件 代码 · 共 130 行
H
130 行
//========================================================================//// TTFont.h//// An X wrapper for the FreeType TrueType font rasterizer.//// Copyright 2001-2002 Glyph & Cog, LLC////========================================================================#ifndef TTFONT_H#define TTFONT_H#include <aconf.h>#if !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H)#ifdef USE_GCC_PRAGMAS#pragma interface#endif#if HAVE_FREETYPE_FREETYPE_H#include <freetype/freetype.h>#include <freetype/ftxpost.h>#else#include <freetype.h>#include <ftxpost.h>#endif#include "gtypes.h"#include "SFont.h"//------------------------------------------------------------------------class TTFontEngine: public SFontEngine {public: TTFontEngine(Display *displayA, Visual *visualA, int depthA, Colormap colormapA, GBool aaA); GBool isOk() { return ok; } virtual ~TTFontEngine();private: TT_Engine engine; GBool aa; Gulong palette[5]; GBool ok; friend class TTFontFile; friend class TTFont;};//------------------------------------------------------------------------enum TTFontIndexMode { ttFontModeUnicode, ttFontModeCharCode, ttFontModeCharCodeOffset, ttFontModeCodeMap, ttFontModeCIDToGIDMap};class TTFontFile: public SFontFile {public: // 8-bit font, TrueType or Type 1/1C TTFontFile(TTFontEngine *engineA, char *fontFileName, char **fontEnc, GBool pdfFontHasEncoding); // CID font, TrueType TTFontFile(TTFontEngine *engineA, char *fontFileName, Gushort *cidToGIDA, int cidToGIDLenA); GBool isOk() { return ok; } virtual ~TTFontFile();private: TTFontEngine *engine; TT_Face face; TT_CharMap charMap; TTFontIndexMode mode; int charMapOffset; Guchar *codeMap; Gushort *cidToGID; int cidToGIDLen; GBool ok; friend class TTFont;};//------------------------------------------------------------------------struct TTFontCacheTag { Gushort code; Gushort mru; // valid bit (0x8000) and MRU index};class TTFont: public SFont {public: TTFont(TTFontFile *fontFileA, double *m); GBool isOk() { return ok; } virtual ~TTFont(); virtual GBool drawChar(Drawable d, int w, int h, GC gc, int x, int y, int r, int g, int b, CharCode c, Unicode u);private: GBool getGlyphPixmap(CharCode c, Unicode u); TTFontFile *fontFile; TT_Instance instance; TT_Glyph glyph; TT_Raster_Map ras; XImage *image; TT_Matrix matrix; TT_F26Dot6 xOffset, yOffset; Guchar *cache; // glyph pixmap cache TTFontCacheTag *cacheTags; // cache tags, i.e., char codes int cacheSets; // number of sets in cache int cacheAssoc; // cache associativity (glyphs per set) GBool ok;};#endif // !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H)#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?