diff options
author | Hal Canary <halcanary@google.com> | 2017-11-09 11:09:34 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-11-09 20:54:37 +0000 |
commit | 4a851ca334caac5e60606dbeb9ef6de77b34e24d (patch) | |
tree | 3422da4bc9a6ad97064503811ba65162309f5746 /src/sfnt/SkOTUtils.cpp | |
parent | f0da70699891bd3c6948d821fa43e0f48983e39e (diff) |
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 <bungeman@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
Diffstat (limited to 'src/sfnt/SkOTUtils.cpp')
-rw-r--r-- | src/sfnt/SkOTUtils.cpp | 24 |
1 files changed, 20 insertions, 4 deletions
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; + } + } +} |