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/SFont.h') diff --git a/pdf/xpdf/SFont.h b/pdf/xpdf/SFont.h new file mode 100644 index 0000000..4758664 --- /dev/null +++ b/pdf/xpdf/SFont.h @@ -0,0 +1,127 @@ +//======================================================================== +// +// SFont.h +// +// Base class for font rasterizers. +// +//======================================================================== + +#ifndef SFONT_H +#define SFONT_H + +#ifdef __GNUC__ +#pragma interface +#endif + +#include +#include +#include "gtypes.h" + +//------------------------------------------------------------------------ + +class SFontEngine { +public: + + SFontEngine(Display *display, Visual *visual, int depth, + Colormap colormap); + virtual ~SFontEngine(); + + // Use a TrueColor visual. Pixel values are computed as: + // + // (r << rShift) + (g << gShift) + (b << bShift) + // + // where r, g, and b are scaled to the ranges [0,rMax], [0,gMax], + // and [0,bMax], respectively. + virtual void useTrueColor(int rMax, int rShift, int gMax, int gShift, + int bMax, int bShift); + + // Use an RGB color cube. is an array containing + // ** pixel values in red,green,blue order, e.g., + // for =2, there will be 8 entries: + // + // |--- colors[i] ---| + // i red green blue + // - ----- ----- ----- + // 0 0000 0000 0000 + // 1 0000 0000 ffff + // 2 0000 ffff 0000 + // 3 0000 ffff ffff + // 4 ffff 0000 0000 + // 5 ffff 0000 ffff + // 6 ffff ffff 0000 + // 7 ffff ffff ffff + // + // The array is not copied and must remain valid for the + // lifetime of this SFont object. + virtual void useColorCube(Gulong *colors, int nRGB); + +protected: + + // Find the closest match to (,,). + Gulong findColor(int r, int g, int b); + + //----- X parameters + Display *display; + Visual *visual; + int depth; + Colormap colormap; + + GBool trueColor; // true for TrueColor, false for RGB cube + + //----- TrueColor parameters + int rMax, gMax, bMax; + int rShift, gShift, bShift; + + //----- RGB color cube parameters + Gulong *colors; + int nRGB; +}; + +//------------------------------------------------------------------------ + +class SFontFile { +public: + + // A typical subclass will provide a constructor along the lines of: + // + // SomeFontFile(SomeFontEngine *engine, char *fontFileName); + SFontFile(); + + virtual ~SFontFile(); + +private: +}; + +//------------------------------------------------------------------------ + +class SFont { +public: + + // A typical subclass will provide a constructor along the lines of: + // + // SomeFont(SomeFontFile *fontFile, double *m); + // + // where is a transform matrix consisting of four elements, + // using the PostScript ordering conventions (without any + // translation): + // + // [x' y'] = [x y] * [m0 m1] + // [m2 m3] + // + // This is the level at which fonts are cached, and so the font + // cannot be transformed after it is created. + SFont(); + + virtual ~SFont(); + + // Draw a character at , in color (,,). The RGB + // values should each be in the range [0,65535]. Draws into , + // clipped to the rectangle (0,0)-(-1,-1). Returns true if + // the character was drawn successfully. + virtual GBool drawChar(Drawable d, int w, int h, GC gc, + int x, int y, int r, int g, int b, Gushort c) = 0; + +protected: +}; + +#endif -- cgit v0.9.1