OLD | NEW |
1 #ifndef __DEFINED__SkPdfBasics | 1 #ifndef __DEFINED__SkPdfBasics |
2 #define __DEFINED__SkPdfBasics | 2 #define __DEFINED__SkPdfBasics |
3 | 3 |
4 #include "SkCanvas.h" | 4 #include "SkCanvas.h" |
5 #include "SkPaint.h" | 5 #include "SkPaint.h" |
6 #include "SkPdfConfig.h" | 6 #include "SkPdfConfig.h" |
7 | 7 |
8 #include <iostream> | 8 #include <iostream> |
9 #include <cstdio> | 9 #include <cstdio> |
10 #include <map> | 10 #include <map> |
11 #include <stack> | 11 #include <stack> |
12 | 12 |
13 class SkPdfFont; | 13 class SkPdfFont; |
14 class SkPdfDoc; | 14 class SkPdfDoc; |
15 class SkPdfObject; | 15 class SkPdfObject; |
16 class SkPdfResourceDictionary; | 16 class SkPdfResourceDictionary; |
17 | 17 |
18 class SkPodofoParsedPDF; | 18 class SkNativeParsedPDF; |
19 | 19 |
20 // TODO(edisonn): better class design. | 20 // TODO(edisonn): better class design. |
21 struct SkPdfColorOperator { | 21 struct SkPdfColorOperator { |
22 std::string fColorSpace; // TODO(edisonn): use SkString | 22 // does not own the char* |
| 23 const char* fColorSpace; // TODO(edisonn): use SkString, or even char* |
23 SkColor fColor; | 24 SkColor fColor; |
24 double fOpacity; // ca or CA | 25 double fOpacity; // ca or CA |
25 // TODO(edisonn): add here other color space options. | 26 // TODO(edisonn): add here other color space options. |
26 | 27 |
27 void setRGBColor(SkColor color) { | 28 void setRGBColor(SkColor color) { |
28 // TODO(edisonn): ASSERT DeviceRGB is the color space. | 29 // TODO(edisonn): ASSERT DeviceRGB is the color space. |
29 fColor = color; | 30 fColor = color; |
30 } | 31 } |
31 // TODO(edisonn): double check the default values for all fields. | 32 // TODO(edisonn): double check the default values for all fields. |
32 SkPdfColorOperator() : fColor(SK_ColorBLACK), fOpacity(1) {} | 33 SkPdfColorOperator() : fColorSpace(NULL), fColor(SK_ColorBLACK), fOpacity(1)
{} |
33 | 34 |
34 void applyGraphicsState(SkPaint* paint) { | 35 void applyGraphicsState(SkPaint* paint) { |
35 paint->setColor(SkColorSetA(fColor, fOpacity * 255)); | 36 paint->setColor(SkColorSetA(fColor, fOpacity * 255)); |
36 } | 37 } |
37 }; | 38 }; |
38 | 39 |
39 // TODO(edisonn): better class design. | 40 // TODO(edisonn): better class design. |
40 struct SkPdfGraphicsState { | 41 struct SkPdfGraphicsState { |
41 SkMatrix fMatrix; | 42 SkMatrix fMatrix; |
42 SkMatrix fMatrixTm; | 43 SkMatrix fMatrixTm; |
(...skipping 13 matching lines...) Expand all Loading... |
56 SkPath fClipPath; | 57 SkPath fClipPath; |
57 | 58 |
58 SkPdfColorOperator fStroking; | 59 SkPdfColorOperator fStroking; |
59 SkPdfColorOperator fNonStroking; | 60 SkPdfColorOperator fNonStroking; |
60 | 61 |
61 double fLineWidth; | 62 double fLineWidth; |
62 double fTextLeading; | 63 double fTextLeading; |
63 double fWordSpace; | 64 double fWordSpace; |
64 double fCharSpace; | 65 double fCharSpace; |
65 | 66 |
66 const SkPdfResourceDictionary* fResources; | 67 SkPdfResourceDictionary* fResources; |
67 | 68 |
68 SkBitmap fSMask; | 69 SkBitmap fSMask; |
69 | 70 |
70 SkPdfGraphicsState() { | 71 SkPdfGraphicsState() { |
71 fCurPosX = 0.0; | 72 fCurPosX = 0.0; |
72 fCurPosY = 0.0; | 73 fCurPosY = 0.0; |
73 fCurFontSize = 0.0; | 74 fCurFontSize = 0.0; |
74 fTextBlock = false; | 75 fTextBlock = false; |
75 fMatrix = SkMatrix::I(); | 76 fMatrix = SkMatrix::I(); |
76 fMatrixTm = SkMatrix::I(); | 77 fMatrixTm = SkMatrix::I(); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 std::map<std::string, std::string> fKeyValuePairs; | 109 std::map<std::string, std::string> fKeyValuePairs; |
109 std::string fImageData; | 110 std::string fImageData; |
110 }; | 111 }; |
111 | 112 |
112 // TODO(edisonn): better class design. | 113 // TODO(edisonn): better class design. |
113 // TODO(edisonn): rename to SkPdfContext | 114 // TODO(edisonn): rename to SkPdfContext |
114 struct PdfContext { | 115 struct PdfContext { |
115 std::stack<SkPdfObject*> fObjectStack; | 116 std::stack<SkPdfObject*> fObjectStack; |
116 std::stack<SkPdfGraphicsState> fStateStack; | 117 std::stack<SkPdfGraphicsState> fStateStack; |
117 SkPdfGraphicsState fGraphicsState; | 118 SkPdfGraphicsState fGraphicsState; |
118 const SkPodofoParsedPDF* fPdfDoc; | 119 SkNativeParsedPDF* fPdfDoc; |
119 SkMatrix fOriginalMatrix; | 120 SkMatrix fOriginalMatrix; |
120 | 121 |
121 SkPdfInlineImage fInlineImage; | 122 SkPdfInlineImage fInlineImage; |
122 | 123 |
123 PdfContext(const SkPodofoParsedPDF* doc) : fPdfDoc(doc) {} | 124 PdfContext(SkNativeParsedPDF* doc) : fPdfDoc(doc) {} |
124 | 125 |
125 }; | 126 }; |
126 | 127 |
127 // TODO(edisonn): temporary code, to report how much of the PDF we actually thin
k we rendered. | 128 // TODO(edisonn): temporary code, to report how much of the PDF we actually thin
k we rendered. |
128 // TODO(edisonn): rename to SkPdfResult | 129 // TODO(edisonn): rename to SkPdfResult |
129 enum PdfResult { | 130 enum PdfResult { |
130 kOK_PdfResult, | 131 kOK_PdfResult, |
131 kPartial_PdfResult, | 132 kPartial_PdfResult, |
132 kNYI_PdfResult, | 133 kNYI_PdfResult, |
133 kIgnoreError_PdfResult, | 134 kIgnoreError_PdfResult, |
134 kError_PdfResult, | 135 kError_PdfResult, |
135 kUnsupported_PdfResult, | 136 kUnsupported_PdfResult, |
136 | 137 |
137 kCount_PdfResult | 138 kCount_PdfResult |
138 }; | 139 }; |
139 | 140 |
140 #endif // __DEFINED__SkPdfBasics | 141 #endif // __DEFINED__SkPdfBasics |
OLD | NEW |