diff -r 000000000000 -r 6474c204b198 gfx/skia/trunk/src/sfnt/SkOTTable_OS_2_V0.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gfx/skia/trunk/src/sfnt/SkOTTable_OS_2_V0.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,149 @@ +/* + * Copyright 2012 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef SkOTTable_OS_2_V0_DEFINED +#define SkOTTable_OS_2_V0_DEFINED + +#include "SkEndian.h" +#include "SkIBMFamilyClass.h" +#include "SkOTTableTypes.h" +#include "SkPanose.h" +#include "SkTypedEnum.h" + +#pragma pack(push, 1) + +struct SkOTTableOS2_V0 { + SK_OT_USHORT version; + //SkOTTableOS2_VA::VERSION and SkOTTableOS2_V0::VERSION are both 0. + //The only way to differentiate these two versions is by the size of the table. + static const SK_OT_USHORT VERSION = SkTEndian_SwapBE16(0); + + SK_OT_SHORT xAvgCharWidth; + struct WeightClass { + SK_TYPED_ENUM(Value, SK_OT_USHORT, + ((Thin, SkTEndian_SwapBE16(100))) + ((ExtraLight, SkTEndian_SwapBE16(200))) + ((Light, SkTEndian_SwapBE16(300))) + ((Normal, SkTEndian_SwapBE16(400))) + ((Medium, SkTEndian_SwapBE16(500))) + ((SemiBold, SkTEndian_SwapBE16(600))) + ((Bold, SkTEndian_SwapBE16(700))) + ((ExtraBold, SkTEndian_SwapBE16(800))) + ((Black, SkTEndian_SwapBE16(900))) + SK_SEQ_END, + SK_SEQ_END) + SK_OT_USHORT value; + } usWeightClass; + struct WidthClass { + SK_TYPED_ENUM(Value, SK_OT_USHORT, + ((UltraCondensed, SkTEndian_SwapBE16(1))) + ((ExtraCondensed, SkTEndian_SwapBE16(2))) + ((Condensed, SkTEndian_SwapBE16(3))) + ((SemiCondensed, SkTEndian_SwapBE16(4))) + ((Medium, SkTEndian_SwapBE16(5))) + ((SemiExpanded, SkTEndian_SwapBE16(6))) + ((Expanded, SkTEndian_SwapBE16(7))) + ((ExtraExpanded, SkTEndian_SwapBE16(8))) + ((UltraExpanded, SkTEndian_SwapBE16(9))) + SK_SEQ_END, + (value)SK_SEQ_END) + } usWidthClass; + union Type { + struct Field { + //8-15 + SK_OT_BYTE_BITFIELD( + Reserved08, + Reserved09, + Reserved10, + Reserved11, + Reserved12, + Reserved13, + Reserved14, + Reserved15) + //0-7 + SK_OT_BYTE_BITFIELD( + Reserved00, + Restricted, + PreviewPrint, + Editable, + Reserved04, + Reserved05, + Reserved06, + Reserved07) + } field; + struct Raw { + static const SK_OT_USHORT Installable = 0; + static const SK_OT_USHORT RestrictedMask = SkOTSetUSHORTBit<1>::value; + static const SK_OT_USHORT PreviewPrintMask = SkOTSetUSHORTBit<2>::value; + static const SK_OT_USHORT EditableMask = SkOTSetUSHORTBit<3>::value; + SK_OT_USHORT value; + } raw; + } fsType; + SK_OT_SHORT ySubscriptXSize; + SK_OT_SHORT ySubscriptYSize; + SK_OT_SHORT ySubscriptXOffset; + SK_OT_SHORT ySubscriptYOffset; + SK_OT_SHORT ySuperscriptXSize; + SK_OT_SHORT ySuperscriptYSize; + SK_OT_SHORT ySuperscriptXOffset; + SK_OT_SHORT ySuperscriptYOffset; + SK_OT_SHORT yStrikeoutSize; + SK_OT_SHORT yStrikeoutPosition; + SkIBMFamilyClass sFamilyClass; + SkPanose panose; + SK_OT_ULONG ulCharRange[4]; + SK_OT_CHAR achVendID[4]; + union Selection { + struct Field { + //8-15 + SK_OT_BYTE_BITFIELD( + Reserved08, + Reserved09, + Reserved10, + Reserved11, + Reserved12, + Reserved13, + Reserved14, + Reserved15) + //0-7 + SK_OT_BYTE_BITFIELD( + Italic, + Underscore, + Negative, + Outlined, + Strikeout, + Bold, + Regular, + Reserved07) + } field; + struct Raw { + static const SK_OT_USHORT ItalicMask = SkOTSetUSHORTBit<0>::value; + static const SK_OT_USHORT UnderscoreMask = SkOTSetUSHORTBit<1>::value; + static const SK_OT_USHORT NegativeMask = SkOTSetUSHORTBit<2>::value; + static const SK_OT_USHORT OutlinedMask = SkOTSetUSHORTBit<3>::value; + static const SK_OT_USHORT StrikeoutMask = SkOTSetUSHORTBit<4>::value; + static const SK_OT_USHORT BoldMask = SkOTSetUSHORTBit<5>::value; + static const SK_OT_USHORT RegularMask = SkOTSetUSHORTBit<6>::value; + SK_OT_USHORT value; + } raw; + } fsSelection; + SK_OT_USHORT usFirstCharIndex; + SK_OT_USHORT usLastCharIndex; + //version0 + SK_OT_SHORT sTypoAscender; + SK_OT_SHORT sTypoDescender; + SK_OT_SHORT sTypoLineGap; + SK_OT_USHORT usWinAscent; + SK_OT_USHORT usWinDescent; +}; + +#pragma pack(pop) + + +SK_COMPILE_ASSERT(sizeof(SkOTTableOS2_V0) == 78, sizeof_SkOTTableOS2_V0_not_78); + +#endif