source: trunk/poppler/mypoppler/splash/SplashState.h @ 250

Last change on this file since 250 was 250, checked in by Eugene Romanenko, 13 years ago

PDF plugin: poppler library updated to version 0.8.3

File size: 2.6 KB
Line 
1//========================================================================
2//
3// SplashState.h
4//
5//========================================================================
6
7#ifndef SPLASHSTATE_H
8#define SPLASHSTATE_H
9
10#ifdef USE_GCC_PRAGMAS
11#pragma interface
12#endif
13
14#include "SplashTypes.h"
15
16class SplashPattern;
17class SplashScreen;
18class SplashClip;
19class SplashBitmap;
20
21//------------------------------------------------------------------------
22// line cap values
23//------------------------------------------------------------------------
24
25#define splashLineCapButt       0
26#define splashLineCapRound      1
27#define splashLineCapProjecting 2
28
29//------------------------------------------------------------------------
30// line join values
31//------------------------------------------------------------------------
32
33#define splashLineJoinMiter     0
34#define splashLineJoinRound     1
35#define splashLineJoinBevel     2
36
37//------------------------------------------------------------------------
38// SplashState
39//------------------------------------------------------------------------
40
41class SplashState {
42public:
43
44  // Create a new state object, initialized with default settings.
45  SplashState(int width, int height, GBool vectorAntialias,
46              SplashScreenParams *screenParams);
47  SplashState(int width, int height, GBool vectorAntialias,
48              SplashScreen *screenA);
49
50  // Copy a state object.
51  SplashState *copy() { return new SplashState(this); }
52
53  ~SplashState();
54
55  // Set the stroke pattern.  This does not copy <strokePatternA>.
56  void setStrokePattern(SplashPattern *strokePatternA);
57
58  // Set the fill pattern.  This does not copy <fillPatternA>.
59  void setFillPattern(SplashPattern *fillPatternA);
60
61  // Set the screen.  This does not copy <screenA>.
62  void setScreen(SplashScreen *screenA);
63
64  // Set the line dash pattern.  This copies the <lineDashA> array.
65  void setLineDash(SplashCoord *lineDashA, int lineDashLengthA,
66                   SplashCoord lineDashPhaseA);
67
68  // Set the soft mask bitmap.
69  void setSoftMask(SplashBitmap *softMaskA);
70
71private:
72
73  SplashState(SplashState *state);
74
75  SplashCoord matrix[6];
76  SplashPattern *strokePattern;
77  SplashPattern *fillPattern;
78  SplashScreen *screen;
79  SplashBlendFunc blendFunc;
80  SplashCoord strokeAlpha;
81  SplashCoord fillAlpha;
82  SplashCoord lineWidth;
83  int lineCap;
84  int lineJoin;
85  SplashCoord miterLimit;
86  SplashCoord flatness;
87  SplashCoord *lineDash;
88  int lineDashLength;
89  SplashCoord lineDashPhase;
90  GBool strokeAdjust;
91  SplashClip *clip;
92  SplashBitmap *softMask;
93  GBool deleteSoftMask;
94  GBool inNonIsolatedGroup;
95
96  SplashState *next;            // used by Splash class
97
98  friend class Splash;
99};
100
101#endif
Note: See TracBrowser for help on using the repository browser.