| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 | 8 |
| 9 #ifndef SkPDFUtils_DEFINED | 9 #ifndef SkPDFUtils_DEFINED |
| 10 #define SkPDFUtils_DEFINED | 10 #define SkPDFUtils_DEFINED |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 50 SkPDFUtils::EmitPath(path, paintStyle, true, content); | 50 SkPDFUtils::EmitPath(path, paintStyle, true, content); |
| 51 } | 51 } |
| 52 void ClosePath(SkWStream* content); | 52 void ClosePath(SkWStream* content); |
| 53 void PaintPath(SkPaint::Style style, SkPath::FillType fill, | 53 void PaintPath(SkPaint::Style style, SkPath::FillType fill, |
| 54 SkWStream* content); | 54 SkWStream* content); |
| 55 void StrokePath(SkWStream* content); | 55 void StrokePath(SkWStream* content); |
| 56 void DrawFormXObject(int objectIndex, SkWStream* content); | 56 void DrawFormXObject(int objectIndex, SkWStream* content); |
| 57 void ApplyGraphicState(int objectIndex, SkWStream* content); | 57 void ApplyGraphicState(int objectIndex, SkWStream* content); |
| 58 void ApplyPattern(int objectIndex, SkWStream* content); | 58 void ApplyPattern(int objectIndex, SkWStream* content); |
| 59 | 59 |
| 60 // Converts (value / 255.0) with three significant digits of accuracy. |
| 61 // Writes value as string into result. Returns strlen() of result. |
| 62 size_t ColorToDecimal(uint8_t value, char result[5]); |
| 63 inline void AppendColorComponent(uint8_t value, SkWStream* wStream) { |
| 64 char buffer[5]; |
| 65 size_t len = SkPDFUtils::ColorToDecimal(value, buffer); |
| 66 wStream->write(buffer, len); |
| 67 } |
| 68 |
| 60 // 3 = '-', '.', and '\0' characters. | 69 // 3 = '-', '.', and '\0' characters. |
| 61 // 9 = number of significant digits | 70 // 9 = number of significant digits |
| 62 // abs(FLT_MIN_10_EXP) = number of zeros in FLT_MIN | 71 // abs(FLT_MIN_10_EXP) = number of zeros in FLT_MIN |
| 63 const size_t kMaximumFloatDecimalLength = 3 + 9 - FLT_MIN_10_EXP; | 72 const size_t kMaximumFloatDecimalLength = 3 + 9 - FLT_MIN_10_EXP; |
| 64 // FloatToDecimal is exposed for unit tests. | 73 // FloatToDecimal is exposed for unit tests. |
| 65 size_t FloatToDecimal(float value, | 74 size_t FloatToDecimal(float value, |
| 66 char output[kMaximumFloatDecimalLength]); | 75 char output[kMaximumFloatDecimalLength]); |
| 67 void AppendScalar(SkScalar value, SkWStream* stream); | 76 void AppendScalar(SkScalar value, SkWStream* stream); |
| 68 void WriteString(SkWStream* wStream, const char* input, size_t len); | 77 void WriteString(SkWStream* wStream, const char* input, size_t len); |
| 69 | 78 |
| 70 inline void WriteUInt16BE(SkDynamicMemoryWStream* wStream, uint16_t value) { | 79 inline void WriteUInt16BE(SkDynamicMemoryWStream* wStream, uint16_t value) { |
| 71 static const char gHex[] = "0123456789ABCDEF"; | 80 static const char gHex[] = "0123456789ABCDEF"; |
| 72 char result[4]; | 81 char result[4]; |
| 73 result[0] = gHex[ value >> 12 ]; | 82 result[0] = gHex[ value >> 12 ]; |
| 74 result[1] = gHex[0xF & (value >> 8 )]; | 83 result[1] = gHex[0xF & (value >> 8 )]; |
| 75 result[2] = gHex[0xF & (value >> 4 )]; | 84 result[2] = gHex[0xF & (value >> 4 )]; |
| 76 result[3] = gHex[0xF & (value )]; | 85 result[3] = gHex[0xF & (value )]; |
| 77 wStream->write(result, 4); | 86 wStream->write(result, 4); |
| 78 } | 87 } |
| 79 | 88 |
| 80 } // namespace SkPDFUtils | 89 } // namespace SkPDFUtils |
| 81 | 90 |
| 82 #endif | 91 #endif |
| OLD | NEW |