Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/dvi/dvilib/dl-dvi-file.hh
diff options
context:
space:
mode:
authorSoeren Sandmann <sandmann@redhat.com>2004-12-22 16:04:45 (GMT)
committer Søren Sandmann Pedersen <ssp@src.gnome.org>2004-12-22 16:04:45 (GMT)
commit08d37ab642e8cb80774a87270fd6a3f9fab783fb (patch)
tree1c05b53c93197c3ae3cf6350aea587f0b30a28b6 /dvi/dvilib/dl-dvi-file.hh
parent08dc4040951ec1e3945e07107d008a4ce7c928c9 (diff)
Auto*ify dvi and dvi/dvilib
Tue Dec 21 21:45:43 2004 Soeren Sandmann <sandmann@redhat.com> * Makefile.am: * dvi/dvilib/Makefile.am: * dvi/Makefile.am: * configure.ac: Auto*ify dvi and dvi/dvilib * dvi/Makefile: Remove from CVS * dvi/dvilib/dl-pkfont.cc (unpack_bitmap): Fix uchar/uint confusion. * dvi/dvilib/dl-fontdefinition.{cc,hh}: New DviFontMap class * dvi/dvilib/dl-vffont.{cc,hh}: Many bugfixes to VF code.
Diffstat (limited to 'dvi/dvilib/dl-dvi-file.hh')
-rwxr-xr-xdvi/dvilib/dl-dvi-file.hh43
1 files changed, 26 insertions, 17 deletions
diff --git a/dvi/dvilib/dl-dvi-file.hh b/dvi/dvilib/dl-dvi-file.hh
index d6c0201..bcc90aa 100755
--- a/dvi/dvilib/dl-dvi-file.hh
+++ b/dvi/dvilib/dl-dvi-file.hh
@@ -8,44 +8,50 @@
#include "dl-dvi-fontdefinition.hh"
#include "dl-loader.hh"
-namespace DviLib {
+namespace DviLib
+{
const uint N_PAGE_COUNTERS = 10; // \count0 ... \count9
- class DviPageHeader : public RefCounted {
+ class DviPageHeader : public RefCounted
+ {
public:
int count[N_PAGE_COUNTERS];
uint address; // address of this page, not the preceding
};
- class DviPage : public AbstractDviProgram {
+ class DviPage : public AbstractDviProgram
+ {
DviProgram& program;
+ DviFontMap *fontmap;
int count[N_PAGE_COUNTERS]; // \count0 ... \count9
public:
- DviPage (DviProgram& p, int c[N_PAGE_COUNTERS]) :
+ DviPage (DviProgram& p, int c[N_PAGE_COUNTERS], DviFontMap *fontmap) :
program (p)
{
- for (uint i=0; i<N_PAGE_COUNTERS; ++i)
+ this->fontmap = fontmap;
+ this->fontmap->ref();
+ for (uint i = 0; i < N_PAGE_COUNTERS; ++i)
count[i] = c[i];
}
- DviPage (DviPageHeader& h, DviProgram& p) :
- program (p)
- {
- for (uint i=0; i<N_PAGE_COUNTERS; ++i)
- count[i] = h.count[i];
- }
virtual void execute (DviRuntime& runtime)
{
+ runtime.push();
+ runtime.fontmap (fontmap);
+ cout << "page " << (int)fontmap << endl;
program.execute (runtime);
+ runtime.pop();
}
int get_page_count (int i) { return count[i]; }
};
- enum DviType {
+ enum DviType
+ {
NORMAL_DVI = 2, // FIXME: this should be 2
TEX_XET_DVI = 2 // FIXME: is this correct?
};
- class DviFilePreamble : public RefCounted {
+ class DviFilePreamble : public RefCounted
+ {
public:
// preamble
DviType type;
@@ -55,7 +61,8 @@ namespace DviLib {
string comment;
};
- class DviFilePostamble : public RefCounted {
+ class DviFilePostamble : public RefCounted
+ {
public:
// postamble
DviType type;
@@ -67,10 +74,12 @@ namespace DviLib {
uint max_height;
uint max_width;
uint stack_height;
- map <uint, DviFontdefinition *> fontdefinitions;
+
+ DviFontMap *fontmap;
};
- class DviFile : public RefCounted {
+ class DviFile : public RefCounted
+ {
AbstractLoader &loader;
DviFilePreamble *preamble;
@@ -87,7 +96,7 @@ namespace DviLib {
uint get_n_pages () { return n_pages; }
DviFontdefinition *get_fontdefinition (uint n)
{
- return postamble->fontdefinitions[n];
+ return postamble->fontmap->get_fontdefinition (n);
}
uint get_numerator () { return postamble->numerator; }
uint get_denominator () { return postamble->denominator; }