From 7aac8dc8533347e21311b15186e0af82f1b22fd6 Mon Sep 17 00:00:00 2001 From: Martin Kretzschmar Date: Wed, 18 Sep 2002 20:32:18 +0000 Subject: Synched with Xpdf 0.92 this adds "decryption" support testing this code after six weeks immediately gives me segfaults (image drawing) :-O must have fixed that later without knowing :-O --- (limited to 'pdf/xpdf/T1Font.h') diff --git a/pdf/xpdf/T1Font.h b/pdf/xpdf/T1Font.h new file mode 100644 index 0000000..6c1e8f8 --- /dev/null +++ b/pdf/xpdf/T1Font.h @@ -0,0 +1,101 @@ +//======================================================================== +// +// T1Font.h +// +// An X wrapper for the t1lib Type 1 font rasterizer. +// +//======================================================================== + +#ifndef T1FONT_H +#define T1FONT_H + +#if HAVE_T1LIB_H + +#ifdef __GNUC__ +#pragma interface +#endif + +#include +#include +#include "SFont.h" + +class FontEncoding; + +//------------------------------------------------------------------------ + +class T1FontEngine: public SFontEngine { +public: + + T1FontEngine(Display *display, Visual *visual, int depth, + Colormap colormap, GBool aa, GBool aaHigh); + GBool isOk() { return ok; } + virtual ~T1FontEngine(); + +private: + + GBool aa; // use anti-aliasing? + GBool aaHigh; // use high-res anti-aliasing? + GBool ok; + + friend class T1FontFile; + friend class T1Font; +}; + +//------------------------------------------------------------------------ + +class T1FontFile: public SFontFile { +public: + + T1FontFile(T1FontEngine *engine, char *fontFileName, + FontEncoding *fontEnc); + GBool isOk() { return ok; } + virtual ~T1FontFile(); + +private: + + T1FontEngine *engine; + int id; // t1lib font ID + char **enc; + char *encStr; + GBool ok; + + friend class T1Font; +}; + +//------------------------------------------------------------------------ + +struct T1FontCacheTag { + Gushort code; + Gushort mru; // valid bit (0x8000) and MRU index + int x, y, w, h; // offset and size of glyph +}; + +class T1Font: public SFont { +public: + + T1Font(T1FontFile *fontFile, double *m); + GBool isOk() { return ok; } + virtual ~T1Font(); + virtual GBool drawChar(Drawable d, int w, int h, GC gc, + int x, int y, int r, int g, int b, Gushort c); + +private: + + Guchar *getGlyphPixmap(Gushort c, int *x, int *y, int *w, int *h); + + T1FontFile *fontFile; + int id; + float size; + XImage *image; + int glyphW, glyphH; // size of glyph pixmaps + int glyphSize; // size of glyph pixmaps, in bytes + Guchar *cache; // glyph pixmap cache + T1FontCacheTag *cacheTags; // cache tags, i.e., char codes + int cacheSets; // number of sets in cache + int cacheAssoc; // cache associativity (glyphs per set) + GBool ok; +}; + +#endif // HAVE_T1LIB_H + +#endif -- cgit v0.9.1