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 SkNativeParsedPDF; | 18 class SkNativeParsedPDF; |
| 19 class SkPdfAllocator; |
19 | 20 |
20 // TODO(edisonn): better class design. | 21 // TODO(edisonn): better class design. |
21 struct SkPdfColorOperator { | 22 struct SkPdfColorOperator { |
22 // does not own the char* | 23 // does not own the char* |
23 const char* fColorSpace; // TODO(edisonn): use SkString, or even char* | 24 NotOwnedString fColorSpace; |
24 SkColor fColor; | 25 SkColor fColor; |
25 double fOpacity; // ca or CA | 26 double fOpacity; // ca or CA |
26 // TODO(edisonn): add here other color space options. | 27 // TODO(edisonn): add here other color space options. |
27 | 28 |
28 void setRGBColor(SkColor color) { | 29 void setRGBColor(SkColor color) { |
29 // TODO(edisonn): ASSERT DeviceRGB is the color space. | 30 // TODO(edisonn): ASSERT DeviceRGB is the color space. |
30 fColor = color; | 31 fColor = color; |
31 } | 32 } |
32 // TODO(edisonn): double check the default values for all fields. | 33 // TODO(edisonn): double check the default values for all fields. |
33 SkPdfColorOperator() : fColorSpace(NULL), fColor(SK_ColorBLACK), fOpacity(1)
{} | 34 SkPdfColorOperator() : fColor(SK_ColorBLACK), fOpacity(1) { |
| 35 NotOwnedString::init(&fColorSpace); |
| 36 } |
34 | 37 |
35 void applyGraphicsState(SkPaint* paint) { | 38 void applyGraphicsState(SkPaint* paint) { |
36 paint->setColor(SkColorSetA(fColor, fOpacity * 255)); | 39 paint->setColor(SkColorSetA(fColor, fOpacity * 255)); |
37 } | 40 } |
38 }; | 41 }; |
39 | 42 |
40 // TODO(edisonn): better class design. | 43 // TODO(edisonn): better class design. |
41 struct SkPdfGraphicsState { | 44 struct SkPdfGraphicsState { |
42 SkMatrix fMatrix; | 45 SkMatrix fMatrix; |
43 SkMatrix fMatrixTm; | 46 SkMatrix fMatrixTm; |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 std::string fImageData; | 113 std::string fImageData; |
111 }; | 114 }; |
112 | 115 |
113 // TODO(edisonn): better class design. | 116 // TODO(edisonn): better class design. |
114 // TODO(edisonn): rename to SkPdfContext | 117 // TODO(edisonn): rename to SkPdfContext |
115 struct PdfContext { | 118 struct PdfContext { |
116 std::stack<SkPdfObject*> fObjectStack; | 119 std::stack<SkPdfObject*> fObjectStack; |
117 std::stack<SkPdfGraphicsState> fStateStack; | 120 std::stack<SkPdfGraphicsState> fStateStack; |
118 SkPdfGraphicsState fGraphicsState; | 121 SkPdfGraphicsState fGraphicsState; |
119 SkNativeParsedPDF* fPdfDoc; | 122 SkNativeParsedPDF* fPdfDoc; |
| 123 // TODO(edisonn): the allocator, could be freed after the page is done drawi
ng. |
| 124 SkPdfAllocator* fTmpPageAllocator; |
120 SkMatrix fOriginalMatrix; | 125 SkMatrix fOriginalMatrix; |
121 | 126 |
122 SkPdfInlineImage fInlineImage; | 127 SkPdfInlineImage fInlineImage; |
123 | 128 |
124 PdfContext(SkNativeParsedPDF* doc) : fPdfDoc(doc) {} | 129 PdfContext(SkNativeParsedPDF* doc); |
125 | 130 ~PdfContext(); |
126 }; | 131 }; |
127 | 132 |
128 // TODO(edisonn): temporary code, to report how much of the PDF we actually thin
k we rendered. | 133 // TODO(edisonn): temporary code, to report how much of the PDF we actually thin
k we rendered. |
129 // TODO(edisonn): rename to SkPdfResult | 134 // TODO(edisonn): rename to SkPdfResult |
130 enum PdfResult { | 135 enum PdfResult { |
131 kOK_PdfResult, | 136 kOK_PdfResult, |
132 kPartial_PdfResult, | 137 kPartial_PdfResult, |
133 kNYI_PdfResult, | 138 kNYI_PdfResult, |
134 kIgnoreError_PdfResult, | 139 kIgnoreError_PdfResult, |
135 kError_PdfResult, | 140 kError_PdfResult, |
136 kUnsupported_PdfResult, | 141 kUnsupported_PdfResult, |
137 | 142 |
138 kCount_PdfResult | 143 kCount_PdfResult |
139 }; | 144 }; |
140 | 145 |
141 #endif // __DEFINED__SkPdfBasics | 146 #endif // __DEFINED__SkPdfBasics |
OLD | NEW |