ShapingEngine

public class ShapingEngine

The ShapingEngine class represents text shaping engine.

  • Creates a shaping engine.

    Declaration

    Swift

    public init()
  • Returns the default writing direction of a script.

    Declaration

    Swift

    public static func defaultDirectionForScript(_ scriptTag: SFNTTag) -> WritingDirection

    Parameters

    scriptTag

    The tag of the script whose default direction is returned.

    Return Value

    The default writing direction of the script identified by scriptTag.

  • The typeface which this shaping engine will use for shaping text.

    Declaration

    Swift

    public var typeface: Typeface!
  • The type size which this shaping engine will use for shaping text.

    Declaration

    Swift

    public var typeSize: CGFloat
  • The script tag which this shaping engine will use for shaping text. Its default value is DFLT.

    Declaration

    Swift

    public var scriptTag: SFNTTag
  • The language tag which this shaping engine will use for shaping text. Its default value is dflt.

    Declaration

    Swift

    public var languageTag: SFNTTag
  • The user-specified open type feature settings.

    If the value of a feature is set to zero, it would be disabled provided that it is not a required feature of the chosen script. If the value of a feature is greater than zero, it would be enabled. In case of an alternate feature, this value would be used to pick the alternate glyph at this position.

    Declaration

    Swift

    public var openTypeFeatures: [SFNTTag : Int]
  • The direction in which this shaping engine will place the resultant glyphs. Its default value is .leftToRight.

    The value of writing direction must reflect the rendering direction of source script so that cursive and mark glyphs are placed at appropriate locations. It should not be confused with the direction of a bidirectional run as that may not reflect the script direction if overridden explicitly.

    Declaration

    Swift

    public var writingDirection: WritingDirection
  • The order in which this shaping engine will process the text. Its default value is .forward.

    This method provides a convenient way to shape a bidirectional run whose direction is opposite to that of script. For example, if the direction of a run, ‘car’ is explicitly set as right-to-left, backward order will automatically read it as ‘rac’ without reordering the original text.

    Declaration

    Swift

    public var shapingOrder: ShapingOrder
  • Shapes the specified UTF-16 range of text into glyphs.

    The output glyphs in the ShapingResult object flow visually in writing direction. For left-to-right direction, the position of pen is incremented with glyph’s advance after rendering it. Similarly, for right-to-left direction, the position of pen is decremented with glyph’s advance after rendering it.

    Declaration

    Swift

    public func shape(string: String, codeUnitRange: Range<Int>) -> ShapingResult

    Parameters

    string

    The text to shape into glyphs.

    codeUnitRange

    The UTF-16 range of text to be shaped.

    Return Value

    A new ShapingResult object.

  • Shapes the specified range of text into glyphs.

    The output glyphs in the ShapingResult object flow visually in writing direction. For left-to-right direction, the position of pen is incremented with glyph’s advance after rendering it. Similarly, for right-to-left direction, the position of pen is decremented with glyph’s advance after rendering it.

    Declaration

    Swift

    public func shape(string: String, characterRange: Range<String.Index>) -> ShapingResult

    Parameters

    string

    The text to shape into glyphs.

    characterRange

    The character range of text to be shaped.

    Return Value

    A new ShapingResult object.