Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/dvi/dvilib/dl-vffont.hh
diff options
context:
space:
mode:
Diffstat (limited to 'dvi/dvilib/dl-vffont.hh')
-rwxr-xr-xdvi/dvilib/dl-vffont.hh55
1 files changed, 55 insertions, 0 deletions
diff --git a/dvi/dvilib/dl-vffont.hh b/dvi/dvilib/dl-vffont.hh
new file mode 100755
index 0000000..185e4a9
--- /dev/null
+++ b/dvi/dvilib/dl-vffont.hh
@@ -0,0 +1,55 @@
+#ifndef DL_VFFONT_HH__
+#define DL_VFFONT_HH__
+
+#include "dl-dvi-file.hh"
+#include "dl-dvi-fontdefinition.hh"
+#include "dl-font.hh"
+
+namespace DviLib {
+
+ class VfChar : public AbstractCharacter {
+ public:
+ int tfm_width;
+ DviProgram *program;
+ int character_code;
+
+ virtual void paint (DviRuntime& runtime)
+ {
+ runtime.push();
+ program->execute (runtime); // FIXME push, pop, etc.
+ runtime.pop();
+ }
+ virtual int get_tfm_width () { return tfm_width; }
+ };
+
+ class VfFontPreamble : public RefCounted {
+ public:
+ string comment;
+ uint checksum;
+ uint design_size;
+ vector <DviFontdefinition *> fontdefinitions;
+ };
+
+ class VfFont : public AbstractFont {
+ VfFontPreamble *preamble;
+ map <int, VfChar *> chars;
+ int at_size;
+ public:
+ VfFont (AbstractLoader& l, int at_size);
+ virtual VfChar *get_char (int ccode)
+ {
+ return chars[ccode];
+ };
+ int get_design_size ()
+ {
+ return preamble->design_size;
+ }
+ virtual int get_at_size ()
+ {
+ /* FIXME (what is the correct thing to do here?) */
+ return at_size;
+ }
+ virtual ~VfFont () {}
+ };
+}
+#endif /* DL_VFFONT_HH__ */