All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.humbleui.skija.shaper.FontMgrRunIterator Maven / Gradle / Ivy

There is a newer version: 0.116.2
Show newest version
package io.github.humbleui.skija.shaper;

import java.lang.ref.*;
import org.jetbrains.annotations.*;
import io.github.humbleui.skija.*;
import io.github.humbleui.skija.impl.*;

public class FontMgrRunIterator extends ManagedRunIterator {
    static { Library.staticLoad(); }

    public FontMgrRunIterator(ManagedString text, boolean manageText, Font font, @NotNull ShapingOptions opts) {
        super(_nMake(Native.getPtr(text), Native.getPtr(font), opts), text, manageText);
        Stats.onNativeCall();
        Reference.reachabilityFence(text);
        Reference.reachabilityFence(font);
        Reference.reachabilityFence(opts);
    }

    public FontMgrRunIterator(String text, Font font, @NotNull ShapingOptions opts) {
        this(new ManagedString(text), true, font, opts);
    }

    public FontMgrRunIterator(String text, Font font) {
        this(new ManagedString(text), true, font, ShapingOptions.DEFAULT);
    }

    @Override
    public FontRun next() {
        try {
            _nConsume(_ptr);
            return new FontRun(_getEndOfCurrentRun(), new Font(_nGetCurrentFont(_ptr)));
        } finally {
            Reference.reachabilityFence(this);
        }
    }

    @ApiStatus.Internal public static native long _nMake(long textPtr, long fontPtr, ShapingOptions opts);
    @ApiStatus.Internal public static native long _nGetCurrentFont(long ptr);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy