shared/java/shaper/ShapingOptions.java (27 lines of code) (raw):

package org.jetbrains.skija.shaper; import lombok.*; import lombok.Data; import org.jetbrains.annotations.*; import org.jetbrains.skija.*; @Data @With public class ShapingOptions { public static final ShapingOptions DEFAULT = new ShapingOptions(null, null, true, true, true); @ApiStatus.Internal @Nullable public final FontMgr _fontMgr; @ApiStatus.Internal @Nullable public final FontFeature[] _features; @ApiStatus.Internal public final boolean _leftToRight; /** * If enabled, fallback font runs will not be broken by whitespace from original font */ @ApiStatus.Internal public final boolean _approximateSpaces; /** * If enabled, fallback font runs will not be broken by punctuation from original font */ @ApiStatus.Internal public final boolean _approximatePunctuation; @NotNull public ShapingOptions withFeatures(@Nullable FontFeature[] features) { return new ShapingOptions(_fontMgr, features, _leftToRight, _approximateSpaces, _approximatePunctuation); } @NotNull public ShapingOptions withFeatures(@Nullable String featuresString) { return featuresString == null ? withFeatures((FontFeature[]) null) : withFeatures(FontFeature.parse(featuresString)); } }