| Index: src/sfnt/SkOTTable_EBDT.h
|
| ===================================================================
|
| --- src/sfnt/SkOTTable_EBDT.h (revision 0)
|
| +++ src/sfnt/SkOTTable_EBDT.h (working copy)
|
| @@ -0,0 +1,109 @@
|
| +/*
|
| + * Copyright 2014 Google Inc.
|
| + *
|
| + * Use of this source code is governed by a BSD-style license that can be
|
| + * found in the LICENSE file.
|
| + */
|
| +
|
| +#ifndef SkOTTable_EBDT_DEFINED
|
| +#define SkOTTable_EBDT_DEFINED
|
| +
|
| +#include "SkEndian.h"
|
| +#include "SkOTTableTypes.h"
|
| +#include "SkOTTable_head.h"
|
| +#include "SkOTTable_loca.h"
|
| +#include "SkTypedEnum.h"
|
| +
|
| +#pragma pack(push, 1)
|
| +
|
| +struct SkOTTableEmbeddedBitmapData {
|
| + static const SK_OT_CHAR TAG0 = 'E';
|
| + static const SK_OT_CHAR TAG1 = 'B';
|
| + static const SK_OT_CHAR TAG2 = 'D';
|
| + static const SK_OT_CHAR TAG3 = 'T';
|
| + static const SK_OT_ULONG TAG = SkOTTableTAG<SkOTTableEmbeddedBitmapData>::value;
|
| +
|
| + SK_OT_Fixed version;
|
| + static const SK_OT_Fixed version_initial = SkTEndian_SwapBE32(0x00020000);
|
| +
|
| + struct BigGlyphMetrics {
|
| + SK_OT_BYTE height;
|
| + SK_OT_BYTE width;
|
| + SK_OT_CHAR horiBearingX;
|
| + SK_OT_CHAR horiBearingY;
|
| + SK_OT_BYTE horiAdvance;
|
| + SK_OT_CHAR vertBearingX;
|
| + SK_OT_CHAR vertBearingY;
|
| + SK_OT_BYTE vertAdvance;
|
| + };
|
| +
|
| + struct SmallGlyphMetrics {
|
| + SK_OT_BYTE height;
|
| + SK_OT_BYTE width;
|
| + SK_OT_CHAR bearingX;
|
| + SK_OT_CHAR bearingY;
|
| + SK_OT_BYTE advance;
|
| + };
|
| +
|
| + // Small metrics, byte-aligned data.
|
| + struct Format1 {
|
| + SmallGlyphMetrics smallGlyphMetrics;
|
| + //SK_OT_BYTE[] byteAlignedBitmap;
|
| + };
|
| +
|
| + // Small metrics, bit-aligned data.
|
| + struct Format2 {
|
| + SmallGlyphMetrics smallGlyphMetrics;
|
| + //SK_OT_BYTE[] bitAlignedBitmap;
|
| + };
|
| +
|
| + // Format 3 is not used.
|
| +
|
| + // EBLC metrics (IndexSubTable::header::indexFormat 2 or 5), compressed data.
|
| + // Only used on Mac.
|
| + struct Format4 {
|
| + SK_OT_ULONG whiteTreeOffset;
|
| + SK_OT_ULONG blackTreeOffset;
|
| + SK_OT_ULONG glyphDataOffset;
|
| + };
|
| +
|
| + // EBLC metrics (IndexSubTable::header::indexFormat 2 or 5), bit-aligned data.
|
| + struct Format5 {
|
| + //SK_OT_BYTE[] bitAlignedBitmap;
|
| + };
|
| +
|
| + // Big metrics, byte-aligned data.
|
| + struct Format6 {
|
| + BigGlyphMetrics bigGlyphMetrics;
|
| + //SK_OT_BYTE[] byteAlignedBitmap;
|
| + };
|
| +
|
| + // Big metrics, bit-aligned data.
|
| + struct Format7 {
|
| + BigGlyphMetrics bigGlyphMetrics;
|
| + //SK_OT_BYTE[] bitAlignedBitmap;
|
| + };
|
| +
|
| + struct EBDTComponent {
|
| + SK_OT_USHORT glyphCode; // Component glyph code
|
| + SK_OT_CHAR xOffset; // Position of component left
|
| + SK_OT_CHAR yOffset; // Position of component top
|
| + };
|
| +
|
| + struct Format8 {
|
| + SmallGlyphMetrics smallMetrics; // Metrics information for the glyph
|
| + SK_OT_BYTE pad; // Pad to short boundary
|
| + SK_OT_USHORT numComponents; // Number of components
|
| + //EBDTComponent componentArray[numComponents]; // Glyph code, offset array
|
| + };
|
| +
|
| + struct Format9 {
|
| + BigGlyphMetrics bigMetrics; // Metrics information for the glyph
|
| + SK_OT_USHORT numComponents; // Number of components
|
| + //EBDTComponent componentArray[numComponents]; // Glyph code, offset array
|
| + };
|
| +};
|
| +
|
| +#pragma pack(pop)
|
| +
|
| +#endif
|
|
|