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 class SkPdfSoftMaskDictionary; | 17 class SkPdfSoftMaskDictionary; |
18 | 18 |
19 class SkNativeParsedPDF; | 19 class SkNativeParsedPDF; |
20 class SkPdfAllocator; | 20 class SkPdfAllocator; |
21 | 21 |
22 // TODO(edisonn): better class design. | 22 // TODO(edisonn): better class design. |
23 struct SkPdfColorOperator { | 23 class SkPdfColorOperator { |
24 | 24 |
25 /* | 25 /* |
26 color space name or array The current color space in which color value
s are to be interpreted | 26 color space name or array The current color space in which color value
s are to be interpreted |
27 (see Section 4.5, “Color Spaces”). There are
two separate color space | 27 (see Section 4.5, “Color Spaces”). There are
two separate color space |
28 parameters: one for stroking and one for all
other painting opera- | 28 parameters: one for stroking and one for all
other painting opera- |
29 tions. Initial value: DeviceGray. | 29 tions. Initial value: DeviceGray. |
30 */ | 30 */ |
31 | 31 |
32 // TODO(edisonn): implement the array part too | 32 // TODO(edisonn): implement the array part too |
33 // does not own the char* | 33 // does not own the char* |
| 34 // TODO(edisonn): remove this public, let fields be private |
| 35 // TODO(edisonn): make color space an enum! |
| 36 public: |
34 NotOwnedString fColorSpace; | 37 NotOwnedString fColorSpace; |
35 | 38 SkPdfObject* fPattern; |
36 | 39 |
37 /* | 40 /* |
38 color (various) The current color to be used during painting
operations (see Section | 41 color (various) The current color to be used during painting
operations (see Section |
39 4.5, “Color Spaces”). The type and interpret
ation of this parameter | 42 4.5, “Color Spaces”). The type and interpret
ation of this parameter |
40 depend on the current color space; for most
color spaces, a color | 43 depend on the current color space; for most
color spaces, a color |
41 value consists of one to four numbers. There
are two separate color | 44 value consists of one to four numbers. There
are two separate color |
42 parameters: one for stroking and one for all
other painting opera- | 45 parameters: one for stroking and one for all
other painting opera- |
43 tions. Initial value: black. | 46 tions. Initial value: black. |
44 */ | 47 */ |
45 | 48 |
46 SkColor fColor; | 49 SkColor fColor; |
47 double fOpacity; // ca or CA | 50 double fOpacity; // ca or CA |
| 51 |
48 // TODO(edisonn): add here other color space options. | 52 // TODO(edisonn): add here other color space options. |
49 | 53 |
| 54 public: |
50 void setRGBColor(SkColor color) { | 55 void setRGBColor(SkColor color) { |
51 // TODO(edisonn): ASSERT DeviceRGB is the color space. | 56 // TODO(edisonn): ASSERT DeviceRGB is the color space. |
| 57 fPattern = NULL; |
52 fColor = color; | 58 fColor = color; |
53 } | 59 } |
54 // TODO(edisonn): double check the default values for all fields. | 60 // TODO(edisonn): double check the default values for all fields. |
55 SkPdfColorOperator() : fColor(SK_ColorBLACK), fOpacity(1) { | 61 SkPdfColorOperator() : fPattern(NULL), fColor(SK_ColorBLACK), fOpacity(1) { |
56 NotOwnedString::init(&fColorSpace); | 62 NotOwnedString::init(&fColorSpace, "DeviceRGB"); |
| 63 } |
| 64 |
| 65 void setColorSpace(NotOwnedString* colorSpace) { |
| 66 fColorSpace = *colorSpace; |
| 67 fPattern = NULL; |
| 68 } |
| 69 |
| 70 void setPatternColorSpace(SkPdfObject* pattern) { |
| 71 fColorSpace.fBuffer = (const unsigned char*)"Pattern"; |
| 72 fColorSpace.fBytes = 7; // strlen("Pattern") |
| 73 fPattern = pattern; |
57 } | 74 } |
58 | 75 |
59 void applyGraphicsState(SkPaint* paint) { | 76 void applyGraphicsState(SkPaint* paint) { |
60 paint->setColor(SkColorSetA(fColor, (U8CPU)(fOpacity * 255))); | 77 paint->setColor(SkColorSetA(fColor, (U8CPU)(fOpacity * 255))); |
61 } | 78 } |
62 }; | 79 }; |
63 | 80 |
64 // TODO(edisonn): better class design. | 81 // TODO(edisonn): better class design. |
65 struct SkPdfGraphicsState { | 82 struct SkPdfGraphicsState { |
66 // TODO(edisonn): deprecate and remove these! | 83 // TODO(edisonn): deprecate and remove these! |
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
370 kPartial_PdfResult, | 387 kPartial_PdfResult, |
371 kNYI_PdfResult, | 388 kNYI_PdfResult, |
372 kIgnoreError_PdfResult, | 389 kIgnoreError_PdfResult, |
373 kError_PdfResult, | 390 kError_PdfResult, |
374 kUnsupported_PdfResult, | 391 kUnsupported_PdfResult, |
375 | 392 |
376 kCount_PdfResult | 393 kCount_PdfResult |
377 }; | 394 }; |
378 | 395 |
379 #endif // __DEFINED__SkPdfBasics | 396 #endif // __DEFINED__SkPdfBasics |
OLD | NEW |