]>
Commit | Line | Data |
---|---|---|
9c72faab | 1 | //======================================================================== |
2 | // | |
3 | // OutputDev.h | |
4 | // | |
5 | // Copyright 1996 Derek B. Noonburg | |
6 | // | |
7 | //======================================================================== | |
8 | ||
9 | #ifndef OUTPUTDEV_H | |
10 | #define OUTPUTDEV_H | |
11 | ||
12 | #ifdef __GNUC__ | |
13 | #pragma interface | |
14 | #endif | |
15 | ||
16 | #include "gtypes.h" | |
17 | ||
18 | class GString; | |
19 | class GfxState; | |
20 | class GfxColorSpace; | |
21 | class GfxImageColorMap; | |
22 | class Stream; | |
52118ca3 | 23 | class Link; |
24 | class Catalog; | |
9c72faab | 25 | |
26 | //------------------------------------------------------------------------ | |
27 | // OutputDev | |
28 | //------------------------------------------------------------------------ | |
29 | ||
30 | class OutputDev { | |
31 | public: | |
32 | ||
33 | // Constructor. | |
34 | OutputDev() {} | |
35 | ||
36 | // Destructor. | |
37 | virtual ~OutputDev() {} | |
38 | ||
39 | //----- get info about output device | |
40 | ||
41 | // Does this device use upside-down coordinates? | |
42 | // (Upside-down means (0,0) is the top left corner of the page.) | |
43 | virtual GBool upsideDown() = 0; | |
44 | ||
45 | // Does this device use drawChar() or drawString()? | |
46 | virtual GBool useDrawChar() = 0; | |
47 | ||
48 | //----- initialization and control | |
49 | ||
50 | // Set default transform matrix. | |
753453e4 | 51 | virtual void setDefaultCTM(double *ctm); |
9c72faab | 52 | |
53 | // Start a page. | |
753453e4 | 54 | virtual void startPage(int pageNum, GfxState *state) {} |
9c72faab | 55 | |
56 | // End a page. | |
57 | virtual void endPage() {} | |
58 | ||
59 | // Dump page contents to display. | |
60 | virtual void dump() {} | |
61 | ||
62 | //----- coordinate conversion | |
63 | ||
64 | // Convert between device and user coordinates. | |
65 | virtual void cvtDevToUser(int dx, int dy, double *ux, double *uy); | |
66 | virtual void cvtUserToDev(double ux, double uy, int *dx, int *dy); | |
67 | ||
68 | //----- link borders | |
753453e4 | 69 | virtual void drawLink(Link *link, Catalog *catalog) {} |
9c72faab | 70 | |
71 | //----- save/restore graphics state | |
753453e4 | 72 | virtual void saveState(GfxState *state) {} |
73 | virtual void restoreState(GfxState *state) {} | |
9c72faab | 74 | |
75 | //----- update graphics state | |
76 | virtual void updateAll(GfxState *state); | |
753453e4 | 77 | virtual void updateCTM(GfxState *state, double m11, double m12, |
78 | double m21, double m22, double m31, double m32) {} | |
79 | virtual void updateLineDash(GfxState *state) {} | |
80 | virtual void updateFlatness(GfxState *state) {} | |
81 | virtual void updateLineJoin(GfxState *state) {} | |
82 | virtual void updateLineCap(GfxState *state) {} | |
83 | virtual void updateMiterLimit(GfxState *state) {} | |
84 | virtual void updateLineWidth(GfxState *state) {} | |
85 | virtual void updateFillColor(GfxState *state) {} | |
86 | virtual void updateStrokeColor(GfxState *state) {} | |
87 | virtual void updateFillOpacity(GfxState *state) {} | |
88 | virtual void updateStrokeOpacity(GfxState *state) {} | |
89 | ||
90 | //----- update text state | |
91 | virtual void updateFont(GfxState *state) {} | |
92 | virtual void updateTextMat(GfxState *state) {} | |
93 | virtual void updateCharSpace(GfxState *state) {} | |
94 | virtual void updateRender(GfxState *state) {} | |
95 | virtual void updateRise(GfxState *state) {} | |
96 | virtual void updateWordSpace(GfxState *state) {} | |
97 | virtual void updateHorizScaling(GfxState *state) {} | |
98 | virtual void updateTextPos(GfxState *state) {} | |
99 | virtual void updateTextShift(GfxState *state, double shift) {} | |
9c72faab | 100 | |
101 | //----- path painting | |
753453e4 | 102 | virtual void stroke(GfxState *state) {} |
103 | virtual void fill(GfxState *state) {} | |
104 | virtual void eoFill(GfxState *state) {} | |
9c72faab | 105 | |
106 | //----- path clipping | |
753453e4 | 107 | virtual void clip(GfxState *state) {} |
108 | virtual void eoClip(GfxState *state) {} | |
9c72faab | 109 | |
110 | //----- text drawing | |
753453e4 | 111 | virtual void beginString(GfxState *state, GString *s) {} |
112 | virtual void endString(GfxState *state) {} | |
113 | virtual void drawChar(GfxState *state, double x, double y, | |
114 | double dx, double dy, Guchar c) {} | |
115 | virtual void drawChar16(GfxState *state, double x, double y, | |
116 | double dx, double dy, int c) {} | |
117 | virtual void drawString(GfxState *state, GString *s) {} | |
118 | virtual void drawString16(GfxState *state, GString *s) {} | |
9c72faab | 119 | |
120 | //----- image drawing | |
b5cb0608 | 121 | virtual void drawImageMask(GfxState *state, Object *ref, Stream *str, |
9c72faab | 122 | int width, int height, GBool invert, |
123 | GBool inlineImg); | |
b5cb0608 | 124 | virtual void drawImage(GfxState *state, Object *ref, Stream *str, |
125 | int width, int height, GfxImageColorMap *colorMap, | |
753453e4 | 126 | int *maskColors, GBool inlineImg); |
9c72faab | 127 | |
52118ca3 | 128 | #if OPI_SUPPORT |
129 | //----- OPI functions | |
130 | virtual void opiBegin(GfxState *state, Dict *opiDict); | |
131 | virtual void opiEnd(GfxState *state, Dict *opiDict); | |
132 | #endif | |
133 | ||
9c72faab | 134 | private: |
135 | ||
753453e4 | 136 | double defCTM[6]; // default coordinate transform matrix |
137 | double defICTM[6]; // inverse of default CTM | |
9c72faab | 138 | }; |
139 | ||
140 | #endif |