From 4a851ca334caac5e60606dbeb9ef6de77b34e24d Mon Sep 17 00:00:00 2001 From: Hal Canary Date: Thu, 9 Nov 2017 11:09:34 -0500 Subject: SkTypeface_win_dw, SkTypeface_Mac: set NotEmbeddable_FontFlag BUG=skia:7275 BUG=skia:7276 Change-Id: I5376c39ddc3e9fcb1c8cb76001f3969b84bb2c96 Reviewed-on: https://skia-review.googlesource.com/69360 Reviewed-by: Ben Wagner Commit-Queue: Hal Canary --- src/sfnt/SkOTUtils.cpp | 24 ++++++++++++++++++++---- src/sfnt/SkOTUtils.h | 5 +++++ 2 files changed, 25 insertions(+), 4 deletions(-) (limited to 'src/sfnt') diff --git a/src/sfnt/SkOTUtils.cpp b/src/sfnt/SkOTUtils.cpp index 4d8c023ea4..3a16dde8b0 100644 --- a/src/sfnt/SkOTUtils.cpp +++ b/src/sfnt/SkOTUtils.cpp @@ -5,14 +5,16 @@ * found in the LICENSE file. */ +#include "SkOTUtils.h" + +#include "SkAdvancedTypefaceMetrics.h" #include "SkData.h" #include "SkEndian.h" -#include "SkSFNTHeader.h" -#include "SkStream.h" +#include "SkOTTableTypes.h" #include "SkOTTable_head.h" #include "SkOTTable_name.h" -#include "SkOTTableTypes.h" -#include "SkOTUtils.h" +#include "SkSFNTHeader.h" +#include "SkStream.h" extern const uint8_t SK_OT_GlyphData_NoOutline[] = { 0x0,0x0, //SkOTTableGlyphData::numberOfContours @@ -201,3 +203,17 @@ SkOTUtils::LocalizedStrings_NameTable::familyNameTypes[3] = { SkOTTableName::Record::NameID::Predefined::PreferredFamily, SkOTTableName::Record::NameID::Predefined::WWSFamilyName, }; + +void SkOTUtils::SetAdvanvedTypefaceFlags(SkOTTableOS2_V4::Type fsType, + SkAdvancedTypefaceMetrics* info) { + SkASSERT(info); + // The logic should be identical to SkTypeface_FreeType::onGetAdvancedMetrics(). + if (fsType.raw.value != 0) { + if (SkToBool(fsType.field.Restricted) || SkToBool(fsType.field.Bitmap)) { + info->fFlags |= SkAdvancedTypefaceMetrics::kNotEmbeddable_FontFlag; + } + if (SkToBool(fsType.field.NoSubsetting)) { + info->fFlags |= SkAdvancedTypefaceMetrics::kNotSubsettable_FontFlag; + } + } +} diff --git a/src/sfnt/SkOTUtils.h b/src/sfnt/SkOTUtils.h index 4708a7bb78..26e6e61c21 100644 --- a/src/sfnt/SkOTUtils.h +++ b/src/sfnt/SkOTUtils.h @@ -9,11 +9,13 @@ #define SkOTUtils_DEFINED #include "SkOTTableTypes.h" +#include "SkOTTable_OS_2_V4.h" #include "SkOTTable_name.h" #include "SkTypeface.h" class SkData; class SkStream; +struct SkAdvancedTypefaceMetrics; struct SkOTUtils { /** @@ -86,6 +88,9 @@ struct SkOTUtils { SkString fLanguage; bool fHasNext; }; + + static void SetAdvanvedTypefaceFlags(SkOTTableOS2_V4::Type fsType, + SkAdvancedTypefaceMetrics* info); }; #endif -- cgit v1.2.3