| Index: include/core/SkAdvancedTypefaceMetrics.h
|
| diff --git a/include/core/SkAdvancedTypefaceMetrics.h b/include/core/SkAdvancedTypefaceMetrics.h
|
| deleted file mode 100644
|
| index 06757c0c17288bb459d6f65a443ca8e44c64ba07..0000000000000000000000000000000000000000
|
| --- a/include/core/SkAdvancedTypefaceMetrics.h
|
| +++ /dev/null
|
| @@ -1,162 +0,0 @@
|
| -
|
| -/*
|
| - * Copyright 2011 Google Inc.
|
| - *
|
| - * Use of this source code is governed by a BSD-style license that can be
|
| - * found in the LICENSE file.
|
| - */
|
| -
|
| -
|
| -#ifndef SkAdvancedTypefaceMetrics_DEFINED
|
| -#define SkAdvancedTypefaceMetrics_DEFINED
|
| -
|
| -#include "SkRect.h"
|
| -#include "SkRefCnt.h"
|
| -#include "SkString.h"
|
| -#include "SkTDArray.h"
|
| -#include "SkTemplates.h"
|
| -
|
| -/** \class SkAdvancedTypefaceMetrics
|
| -
|
| - The SkAdvancedTypefaceMetrics class is used by the PDF backend to correctly
|
| - embed typefaces. This class is created and filled in with information by
|
| - SkTypeface::getAdvancedTypefaceMetrics.
|
| -*/
|
| -
|
| -class SkAdvancedTypefaceMetrics : public SkRefCnt {
|
| -public:
|
| - SK_DECLARE_INST_COUNT(SkAdvancedTypefaceMetrics)
|
| -
|
| - SkString fFontName;
|
| -
|
| - enum FontType {
|
| - kType1_Font,
|
| - kType1CID_Font,
|
| - kCFF_Font,
|
| - kTrueType_Font,
|
| - kOther_Font,
|
| - };
|
| - // The type of the underlying font program. This field determines which
|
| - // of the following fields are valid. If it is kOther_Font the per glyph
|
| - // information will never be populated.
|
| - FontType fType;
|
| -
|
| - enum FontFlags {
|
| - kEmpty_FontFlag = 0x0, //!<No flags set
|
| - kMultiMaster_FontFlag = 0x1, //!<May be true for Type1 or CFF fonts.
|
| - kNotEmbeddable_FontFlag = 0x2, //!<May not be embedded.
|
| - kNotSubsettable_FontFlag = 0x4, //!<May not be subset.
|
| - };
|
| - // Global font flags.
|
| - FontFlags fFlags;
|
| -
|
| - uint16_t fLastGlyphID; // The last valid glyph ID in the font.
|
| - uint16_t fEmSize; // The size of the em box (defines font units).
|
| -
|
| - // These enum values match the values used in the PDF file format.
|
| - enum StyleFlags {
|
| - kFixedPitch_Style = 0x00001,
|
| - kSerif_Style = 0x00002,
|
| - kScript_Style = 0x00008,
|
| - kItalic_Style = 0x00040,
|
| - kAllCaps_Style = 0x10000,
|
| - kSmallCaps_Style = 0x20000,
|
| - kForceBold_Style = 0x40000
|
| - };
|
| - uint16_t fStyle; // Font style characteristics.
|
| - int16_t fItalicAngle; // Counterclockwise degrees from vertical of the
|
| - // dominant vertical stroke for an Italic face.
|
| - // The following fields are all in font units.
|
| - int16_t fAscent; // Max height above baseline, not including accents.
|
| - int16_t fDescent; // Max depth below baseline (negative).
|
| - int16_t fStemV; // Thickness of dominant vertical stem.
|
| - int16_t fCapHeight; // Height (from baseline) of top of flat capitals.
|
| -
|
| - SkIRect fBBox; // The bounding box of all glyphs (in font units).
|
| -
|
| - // The type of advance data wanted.
|
| - enum PerGlyphInfo {
|
| - kNo_PerGlyphInfo = 0x0, // Don't populate any per glyph info.
|
| - kHAdvance_PerGlyphInfo = 0x1, // Populate horizontal advance data.
|
| - kVAdvance_PerGlyphInfo = 0x2, // Populate vertical advance data.
|
| - kGlyphNames_PerGlyphInfo = 0x4, // Populate glyph names (Type 1 only).
|
| - kToUnicode_PerGlyphInfo = 0x8 // Populate ToUnicode table, ignored
|
| - // for Type 1 fonts
|
| - };
|
| -
|
| - template <typename Data>
|
| - struct AdvanceMetric {
|
| - enum MetricType {
|
| - kDefault, // Default advance: fAdvance.count = 1
|
| - kRange, // Advances for a range: fAdvance.count = fEndID-fStartID
|
| - kRun // fStartID-fEndID have same advance: fAdvance.count = 1
|
| - };
|
| - MetricType fType;
|
| - uint16_t fStartId;
|
| - uint16_t fEndId;
|
| - SkTDArray<Data> fAdvance;
|
| - SkAutoTDelete<AdvanceMetric<Data> > fNext;
|
| - };
|
| -
|
| - struct VerticalMetric {
|
| - int16_t fVerticalAdvance;
|
| - int16_t fOriginXDisp; // Horiz. displacement of the secondary origin.
|
| - int16_t fOriginYDisp; // Vert. displacement of the secondary origin.
|
| - };
|
| - typedef AdvanceMetric<int16_t> WidthRange;
|
| - typedef AdvanceMetric<VerticalMetric> VerticalAdvanceRange;
|
| -
|
| - // This is indexed by glyph id.
|
| - SkAutoTDelete<WidthRange> fGlyphWidths;
|
| - // Only used for Vertical CID fonts.
|
| - SkAutoTDelete<VerticalAdvanceRange> fVerticalMetrics;
|
| -
|
| - // The names of each glyph, only populated for postscript fonts.
|
| - SkAutoTDelete<SkAutoTArray<SkString> > fGlyphNames;
|
| -
|
| - // The mapping from glyph to Unicode, only populated if
|
| - // kToUnicode_PerGlyphInfo is passed to GetAdvancedTypefaceMetrics.
|
| - SkTDArray<SkUnichar> fGlyphToUnicode;
|
| -
|
| -private:
|
| - typedef SkRefCnt INHERITED;
|
| -};
|
| -
|
| -namespace skia_advanced_typeface_metrics_utils {
|
| -
|
| -template <typename Data>
|
| -void resetRange(SkAdvancedTypefaceMetrics::AdvanceMetric<Data>* range,
|
| - int startId);
|
| -
|
| -template <typename Data>
|
| -SkAdvancedTypefaceMetrics::AdvanceMetric<Data>* appendRange(
|
| - SkAutoTDelete<SkAdvancedTypefaceMetrics::AdvanceMetric<Data> >* nextSlot,
|
| - int startId);
|
| -
|
| -template <typename Data>
|
| -void finishRange(
|
| - SkAdvancedTypefaceMetrics::AdvanceMetric<Data>* range,
|
| - int endId,
|
| - typename SkAdvancedTypefaceMetrics::AdvanceMetric<Data>::MetricType
|
| - type);
|
| -
|
| -/** Retrieve advance data for glyphs. Used by the PDF backend. It calls
|
| - underlying platform dependent API getAdvance to acquire the data.
|
| - @param num_glyphs Total number of glyphs in the given font.
|
| - @param glyphIDs For per-glyph info, specify subset of the font by
|
| - giving glyph ids. Each integer represents a glyph
|
| - id. Passing NULL means all glyphs in the font.
|
| - @param glyphIDsCount Number of elements in subsetGlyphIds. Ignored if
|
| - glyphIDs is NULL.
|
| -*/
|
| -template <typename Data, typename FontHandle>
|
| -SkAdvancedTypefaceMetrics::AdvanceMetric<Data>* getAdvanceData(
|
| - FontHandle fontHandle,
|
| - int num_glyphs,
|
| - const uint32_t* glyphIDs,
|
| - uint32_t glyphIDsCount,
|
| - bool (*getAdvance)(FontHandle fontHandle, int gId, Data* data));
|
| -
|
| -} // namespace skia_advanced_typeface_metrics_utils
|
| -
|
| -#endif
|
|
|