shared/java/paragraph/FontCollection.java (127 lines of code) (raw):
package org.jetbrains.skija.paragraph;
import java.lang.ref.*;
import org.jetbrains.annotations.*;
import org.jetbrains.skija.*;
import org.jetbrains.skija.impl.*;
public class FontCollection extends RefCnt {
static { Library.staticLoad(); }
public FontCollection() {
this(_nMake());
Stats.onNativeCall();
}
public long getFontManagersCount() {
try {
Stats.onNativeCall();
return _nGetFontManagersCount(_ptr);
} finally {
Reference.reachabilityFence(this);
}
}
public FontCollection setAssetFontManager(FontMgr fontMgr) {
try {
Stats.onNativeCall();
_nSetAssetFontManager(_ptr, Native.getPtr(fontMgr));
return this;
} finally {
Reference.reachabilityFence(fontMgr);
}
}
public FontCollection setDynamicFontManager(FontMgr fontMgr) {
try {
Stats.onNativeCall();
_nSetDynamicFontManager(_ptr, Native.getPtr(fontMgr));
return this;
} finally {
Reference.reachabilityFence(fontMgr);
}
}
public FontCollection setTestFontManager(FontMgr fontMgr) {
try {
Stats.onNativeCall();
_nSetTestFontManager(_ptr, Native.getPtr(fontMgr));
return this;
} finally {
Reference.reachabilityFence(fontMgr);
}
}
public FontCollection setDefaultFontManager(FontMgr fontMgr) {
return setDefaultFontManager(fontMgr, null);
}
public FontCollection setDefaultFontManager(FontMgr fontMgr, String defaultFamilyName) {
try {
Stats.onNativeCall();
_nSetDefaultFontManager(_ptr, Native.getPtr(fontMgr), defaultFamilyName);
return this;
} finally {
Reference.reachabilityFence(fontMgr);
}
}
public FontMgr getFallbackManager() {
try {
Stats.onNativeCall();
long ptr = _nGetFallbackManager(_ptr);
return ptr == 0 ? null : new FontMgr(ptr);
} finally {
Reference.reachabilityFence(this);
}
}
public Typeface[] findTypefaces(String[] familyNames, FontStyle style) {
try {
Stats.onNativeCall();
long[] ptrs = _nFindTypefaces(_ptr, familyNames, style._value);
Typeface[] res = new Typeface[ptrs.length];
for (int i = 0; i < ptrs.length; ++i)
res[i] = new Typeface(ptrs[i]);
return res;
} finally {
Reference.reachabilityFence(this);
}
}
public Typeface defaultFallback(int unicode, FontStyle style, String locale) {
try {
Stats.onNativeCall();
long ptr = _nDefaultFallbackChar(_ptr, unicode, style._value, locale);
return ptr == 0 ? null : new Typeface(ptr);
} finally {
Reference.reachabilityFence(this);
}
}
public Typeface defaultFallback() {
try {
Stats.onNativeCall();
long ptr = _nDefaultFallback(_ptr);
return ptr == 0 ? null : new Typeface(ptr);
} finally {
Reference.reachabilityFence(this);
}
}
public FontCollection setEnableFallback(boolean value) {
Stats.onNativeCall();
_nSetEnableFallback(_ptr, value);
return this;
}
public ParagraphCache getParagraphCache() {
try {
Stats.onNativeCall();
return new ParagraphCache(this, _nGetParagraphCache(_ptr));
} finally {
Reference.reachabilityFence(this);
}
}
@ApiStatus.Internal
public FontCollection(long ptr) {
super(ptr);
}
public static native long _nMake();
public static native long _nGetFontManagersCount(long ptr);
public static native long _nSetAssetFontManager(long ptr, long fontManagerPtr);
public static native long _nSetDynamicFontManager(long ptr, long fontManagerPtr);
public static native long _nSetTestFontManager(long ptr, long fontManagerPtr);
public static native long _nSetDefaultFontManager(long ptr, long fontManagerPtr, String defaultFamilyName);
public static native long _nGetFallbackManager(long ptr);
public static native long[] _nFindTypefaces(long ptr, String[] familyNames, int fontStyle);
public static native long _nDefaultFallbackChar(long ptr, int unicode, int fontStyle, String locale);
public static native long _nDefaultFallback(long ptr);
public static native long _nSetEnableFallback(long ptr, boolean value);
public static native long _nGetParagraphCache(long ptr);
}