| 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 #include <ctype.h> | 8 #include <ctype.h> |
| 9 | 9 |
| 10 #include "SkData.h" | 10 #include "SkData.h" |
| (...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 260 } | 260 } |
| 261 } | 261 } |
| 262 if (!highNibble) { | 262 if (!highNibble) { |
| 263 resultData[outputOffset++] = dataByte; | 263 resultData[outputOffset++] = dataByte; |
| 264 } | 264 } |
| 265 SkASSERT(outputOffset == *dataLen); | 265 SkASSERT(outputOffset == *dataLen); |
| 266 | 266 |
| 267 uint8_t* const resultTrailer = &(buffer[SkToInt(*headerLen + outputOffse
t)]); | 267 uint8_t* const resultTrailer = &(buffer[SkToInt(*headerLen + outputOffse
t)]); |
| 268 memcpy(resultTrailer, src + *headerLen + hexDataLen, *trailerLen); | 268 memcpy(resultTrailer, src + *headerLen + hexDataLen, *trailerLen); |
| 269 | 269 |
| 270 return SkData::NewFromMalloc(buffer.detach(), length); | 270 return SkData::NewFromMalloc(buffer.release(), length); |
| 271 } | 271 } |
| 272 return nullptr; | 272 return nullptr; |
| 273 } | 273 } |
| 274 | 274 |
| 275 // scale from em-units to base-1000, returning as a SkScalar | 275 // scale from em-units to base-1000, returning as a SkScalar |
| 276 SkScalar scaleFromFontUnits(int16_t val, uint16_t emSize) { | 276 SkScalar scaleFromFontUnits(int16_t val, uint16_t emSize) { |
| 277 SkScalar scaled = SkIntToScalar(val); | 277 SkScalar scaled = SkIntToScalar(val); |
| 278 if (emSize == 1000) { | 278 if (emSize == 1000) { |
| 279 return scaled; | 279 return scaled; |
| 280 } else { | 280 } else { |
| (...skipping 789 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1070 break; | 1070 break; |
| 1071 } | 1071 } |
| 1072 } | 1072 } |
| 1073 #endif | 1073 #endif |
| 1074 sk_sp<SkPDFSharedStream> fontStream; | 1074 sk_sp<SkPDFSharedStream> fontStream; |
| 1075 SkAutoTDelete<SkStreamAsset> fontData( | 1075 SkAutoTDelete<SkStreamAsset> fontData( |
| 1076 this->typeface()->openStream(nullptr)); | 1076 this->typeface()->openStream(nullptr)); |
| 1077 SkASSERT(fontData); | 1077 SkASSERT(fontData); |
| 1078 fontSize = fontData->getLength(); | 1078 fontSize = fontData->getLength(); |
| 1079 SkASSERT(fontSize > 0); | 1079 SkASSERT(fontSize > 0); |
| 1080 fontStream.reset(new SkPDFSharedStream(fontData.detach())); | 1080 fontStream.reset(new SkPDFSharedStream(fontData.release())); |
| 1081 fontStream->dict()->insertInt("Length1", fontSize); | 1081 fontStream->dict()->insertInt("Length1", fontSize); |
| 1082 descriptor->insertObjRef("FontFile2", std::move(fontStream)); | 1082 descriptor->insertObjRef("FontFile2", std::move(fontStream)); |
| 1083 break; | 1083 break; |
| 1084 } | 1084 } |
| 1085 case SkAdvancedTypefaceMetrics::kCFF_Font: | 1085 case SkAdvancedTypefaceMetrics::kCFF_Font: |
| 1086 case SkAdvancedTypefaceMetrics::kType1CID_Font: { | 1086 case SkAdvancedTypefaceMetrics::kType1CID_Font: { |
| 1087 sk_sp<SkPDFSharedStream> fontStream( | 1087 sk_sp<SkPDFSharedStream> fontStream( |
| 1088 new SkPDFSharedStream(this->typeface()->openStream(nullptr))
); | 1088 new SkPDFSharedStream(this->typeface()->openStream(nullptr))
); |
| 1089 | 1089 |
| 1090 if (getType() == SkAdvancedTypefaceMetrics::kCFF_Font) { | 1090 if (getType() == SkAdvancedTypefaceMetrics::kCFF_Font) { |
| (...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1427 sk_sp<const SkAdvancedTypefaceMetrics> fontMetrics( | 1427 sk_sp<const SkAdvancedTypefaceMetrics> fontMetrics( |
| 1428 face->getAdvancedTypefaceMetrics( | 1428 face->getAdvancedTypefaceMetrics( |
| 1429 SkTypeface::kNo_PerGlyphInfo, nullptr, 0)); | 1429 SkTypeface::kNo_PerGlyphInfo, nullptr, 0)); |
| 1430 if (fontMetrics) { | 1430 if (fontMetrics) { |
| 1431 canEmbed = !SkToBool( | 1431 canEmbed = !SkToBool( |
| 1432 fontMetrics->fFlags & | 1432 fontMetrics->fFlags & |
| 1433 SkAdvancedTypefaceMetrics::kNotEmbeddable_FontFlag); | 1433 SkAdvancedTypefaceMetrics::kNotEmbeddable_FontFlag); |
| 1434 } | 1434 } |
| 1435 return *canon->fCanEmbedTypeface.set(id, canEmbed); | 1435 return *canon->fCanEmbedTypeface.set(id, canEmbed); |
| 1436 } | 1436 } |
| OLD | NEW |