Enum Class GlyphFlags

java.lang.Object
java.lang.Enum<GlyphFlags>
org.freedesktop.harfbuzz.GlyphFlags
All Implemented Interfaces:
Serializable, Comparable<GlyphFlags>, Constable, Enumeration

@Generated("org.javagi.JavaGI") public enum GlyphFlags extends Enum<GlyphFlags> implements Enumeration
Flags for hb_glyph_info_t.
Since:
1.5.0
  • Nested Class Summary

    Nested classes/interfaces inherited from class Enum

    Enum.EnumDesc<E>
  • Enum Constant Summary

    Enum Constants
    Enum Constant
    Description
    All the currently defined flags.
    In scripts that use elongation (Arabic, Mongolian, Syriac, etc.), this flag signifies that it is safe to insert a U+0640 TATWEEL character before this cluster for elongation.
    Indicates that if input text is broken at the beginning of the cluster this glyph is part of, then both sides need to be re-shaped, as the result might be different.
    Indicates that if input text is changed on one side of the beginning of the cluster this glyph is part of, then the shaping results for the other side might change.
  • Method Summary

    Modifier and Type
    Method
    Description
    static @Nullable Type
    Get the GType of the GlyphFlags class.
    int
    Get the numeric value of this enum
    static Set<GlyphFlags>
    of(int flags)
    Create a new EnumSet<GlyphFlags> for the provided bitfield
    static Set<GlyphFlags>
    of(MemorySegment address)
    Create a new EnumSet<GlyphFlags> for the bitfield in the provided memory address.
    static GlyphFlags
    Returns the enum constant of this class with the specified name.
    static GlyphFlags[]
    Returns an array containing the constants of this enum class, in the order they are declared.

    Methods inherited from class Object

    getClass, notify, notifyAll, wait, wait, wait
  • Enum Constant Details

    • UNSAFE_TO_BREAK

      public static final GlyphFlags UNSAFE_TO_BREAK
      Indicates that if input text is broken at the beginning of the cluster this glyph is part of, then both sides need to be re-shaped, as the result might be different. On the flip side, it means that when this flag is not present, then it is safe to break the glyph-run at the beginning of this cluster, and the two sides will represent the exact same result one would get if breaking input text at the beginning of this cluster and shaping the two sides separately. This can be used to optimize paragraph layout, by avoiding re-shaping of each line after line-breaking.
    • UNSAFE_TO_CONCAT

      public static final GlyphFlags UNSAFE_TO_CONCAT
      Indicates that if input text is changed on one side of the beginning of the cluster this glyph is part of, then the shaping results for the other side might change. Note that the absence of this flag will NOT by itself mean that it IS safe to concat text. Only two pieces of text both of which clear of this flag can be concatenated safely. This can be used to optimize paragraph layout, by avoiding re-shaping of each line after line-breaking, by limiting the reshaping to a small piece around the breaking position only, even if the breaking position carries the HB_GLYPH_FLAG_UNSAFE_TO_BREAK or when hyphenation or other text transformation happens at line-break position, in the following way: 1. Iterate back from the line-break position until the first cluster start position that is NOT unsafe-to-concat, 2. shape the segment from there till the end of line, 3. check whether the resulting glyph-run also is clear of the unsafe-to-concat at its start-of-text position; if it is, just splice it into place and the line is shaped; If not, move on to a position further back that is clear of unsafe-to-concat and retry from there, and repeat. At the start of next line a similar algorithm can be implemented. That is: 1. Iterate forward from the line-break position until the first cluster start position that is NOT unsafe-to-concat, 2. shape the segment from beginning of the line to that position, 3. check whether the resulting glyph-run also is clear of the unsafe-to-concat at its end-of-text position; if it is, just splice it into place and the beginning is shaped; If not, move on to a position further forward that is clear of unsafe-to-concat and retry up to there, and repeat. A slight complication will arise in the implementation of the algorithm above, because while our buffer API has a way to return flags for position corresponding to start-of-text, there is currently no position corresponding to end-of-text. This limitation can be alleviated by shaping more text than needed and looking for unsafe-to-concat flag within text clusters. The HB_GLYPH_FLAG_UNSAFE_TO_BREAK flag will always imply this flag. To use this flag, you must enable the buffer flag HBBUFFERFLAGPRODUCEUNSAFETOCONCAT during shaping, otherwise the buffer flag will not be reliably produced. Since: 4.0.0
    • SAFE_TO_INSERT_TATWEEL

      public static final GlyphFlags SAFE_TO_INSERT_TATWEEL
      In scripts that use elongation (Arabic, Mongolian, Syriac, etc.), this flag signifies that it is safe to insert a U+0640 TATWEEL character before this cluster for elongation. This flag does not determine the script-specific elongation places, but only when it is safe to do the elongation without interrupting text shaping. Since: 5.1.0
    • DEFINED

      public static final GlyphFlags DEFINED
      All the currently defined flags.
  • Method Details

    • values

      public static GlyphFlags[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static GlyphFlags valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • getValue

      public int getValue()
      Get the numeric value of this enum
      Specified by:
      getValue in interface Enumeration
      Returns:
      the enum value
    • of

      public static Set<GlyphFlags> of(int flags)
      Create a new EnumSet<GlyphFlags> for the provided bitfield
      Parameters:
      flags - the GlyphFlags bitfield
      Returns:
      the EnumSet for the provided bitfield
    • of

      public static Set<GlyphFlags> of(MemorySegment address)
      Create a new EnumSet<GlyphFlags> for the bitfield in the provided memory address.
      Parameters:
      address - the memory address holding a bitfield value
      Returns:
      the EnumSet for the bitfield in the provided memory address
    • getType

      public static @Nullable Type getType()
      Get the GType of the GlyphFlags class.
      Returns:
      the GType