From f1bc5e8b78376e3b6509c8626623d3aae871daec Mon Sep 17 00:00:00 2001 From: Ben Wagner Date: Fri, 7 Apr 2017 16:07:46 -0400 Subject: Set the kMultiMaster_FontFlag in DirectWrite. DirectWrite can now produce system font typefaces which are variations, so mark these as multiple masters so printing knows what to do. BUG=chromium:697916 Change-Id: Idf09ebba3c7002a09ff2e4a2dbae13dbce4e79d4 Reviewed-on: https://skia-review.googlesource.com/12101 Commit-Queue: Ben Wagner Reviewed-by: Hal Canary --- src/sfnt/SkOTTable_fvar.h | 56 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/sfnt/SkOTTable_fvar.h (limited to 'src/sfnt') diff --git a/src/sfnt/SkOTTable_fvar.h b/src/sfnt/SkOTTable_fvar.h new file mode 100644 index 0000000000..5d6ffbe4cc --- /dev/null +++ b/src/sfnt/SkOTTable_fvar.h @@ -0,0 +1,56 @@ +/* + * Copyright 2017 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef SkOTTable_fvar_DEFINED +#define SkOTTable_fvar_DEFINED + +#include "SkEndian.h" +#include "SkOTTableTypes.h" + +#pragma pack(push, 1) + +struct SkOTTableFontVariations { + static const SK_OT_CHAR TAG0 = 'f'; + static const SK_OT_CHAR TAG1 = 'v'; + static const SK_OT_CHAR TAG2 = 'a'; + static const SK_OT_CHAR TAG3 = 'r'; + static const SK_OT_ULONG TAG = SkOTTableTAG::value; + + SK_OT_USHORT majorVersion; + SK_OT_USHORT minorVersion; + SK_OT_USHORT offsetToAxesArray; + SK_OT_USHORT reserved; + SK_OT_USHORT axisCount; + SK_OT_USHORT axisSize; // Must be 0x0014 in v1.0 + SK_OT_USHORT instanceCount; + SK_OT_USHORT instanceSize; // Must be axisCount * sizeof(Fixed) + (4 | 6) + + struct VariationAxisRecord { + SK_OT_ULONG axisTag; + SK_OT_Fixed minValue; + SK_OT_Fixed defaultValue; + SK_OT_Fixed maxValue; + SK_OT_USHORT flags; // Must be 0 + SK_OT_USHORT axisNameID; + }; // axes[axisCount]; + + template struct InstanceRecord { + SK_OT_USHORT subfamilyNameID; + SK_OT_USHORT flags; // Must be 0 + SK_OT_Fixed coordinates[AxisCount]; + SK_OT_USHORT postScriptNameID; + }; // instances[instanceCount]; +}; + +#pragma pack(pop) + + +#include +static_assert(offsetof(SkOTTableFontVariations, instanceSize) == 14, "SkOTTableFontVariations_instanceSize_not_at_14"); +static_assert(sizeof(SkOTTableFontVariations) == 16, "sizeof_SkOTTableFontVariations_not_16"); + +#endif -- cgit v1.2.3