package com.sun.javafx.font.coretext;
import java.nio.ByteOrder;
import java.security.AccessController;
import java.security.PrivilegedAction;
import com.sun.glass.utils.NativeLibLoader;
import com.sun.javafx.geom.Path2D;
class OS {
static {
AccessController.doPrivileged((PrivilegedAction<Void>) () -> {
NativeLibLoader.loadLibrary("javafx_font");
return null;
});
}
static final int kCFURLPOSIXPathStyle = 0;
static final int kCTFontOrientationDefault = 0;
static final int kCTFontManagerScopeProcess = 1;
static final int kCGBitmapByteOrder32Big = 4 << 12;
static final int kCGBitmapByteOrder32Little = 2 << 12;
static final int kCGBitmapByteOrder32Host = ByteOrder.nativeOrder() == ByteOrder.LITTLE_ENDIAN ? kCGBitmapByteOrder32Little : kCGBitmapByteOrder32Big;
static final int kCGImageAlphaPremultipliedFirst = 2;
static final int kCGImageAlphaNone = 0;
static final int kCTWritingDirectionRightToLeft = 1;
static final long CFStringCreate(String string) {
char[] buffer = string.toCharArray();
long alloc = kCFAllocatorDefault();
return CFStringCreateWithCharacters(alloc, buffer, buffer.length);
}
static final native byte[] CGBitmapContextGetData(long c, int width, int height, int bpp);
static final native void CGRectApplyAffineTransform(CGRect rect, CGAffineTransform t);
static final native Path2D CGPathApply(long path);
static final native CGRect CGPathGetPathBoundingBox(long path);
static final native long CFStringCreateWithCharacters(long alloc, char[] chars, long start, long numChars);
static final native String CTFontCopyAttributeDisplayName(long font);
static final native void CTFontDrawGlyphs(long font, short glyphs, double x, double y, long context);
static final native double CTFontGetAdvancesForGlyphs(long font, int orientation, short glyphs, CGSize advances);
static final native boolean CTFontGetBoundingRectForGlyphUsingTables(long font, short glyphs, short format, int[] retArr);
static final native int CTRunGetGlyphs(long run, int slotMask, int start, int[] buffer);
static final native int CTRunGetStringIndices(long run, int start, int[] buffer);
static final native int CTRunGetPositions(long run, int start, float[] buffer);
static final native long kCFAllocatorDefault();
static final native long kCFTypeDictionaryKeyCallBacks();
static final native long kCFTypeDictionaryValueCallBacks();
static final native long kCTFontAttributeName();
static final native long kCTParagraphStyleAttributeName();
static final native long CFArrayGetCount(long theArray);
static final native long CFArrayGetValueAtIndex(long theArray, long idx);
static final native long CFAttributedStringCreate(long alloc, long str, long attributes);
static final native void CFDictionaryAddValue(long theDict, long key, long value);
static final native long CFDictionaryCreateMutable(long allocator, long capacity, long keyCallBacks, long valueCallBacks);
static final native long CFDictionaryGetValue(long theDict, long key);
static final native void CFRelease(long cf);
static final native long CFStringCreateWithCharacters(long alloc, char[] chars, long numChars);
static final native long CFURLCreateWithFileSystemPath(long allocator, long filePath, long pathStyle, boolean isDirectory);
static final native long CGBitmapContextCreate(long data, long width, long height, long bitsPerComponent, long bytesPerRow, long colorspace, int bitmapInfo);
static final native void CGContextFillRect(long context, CGRect rect);
static final native void CGContextRelease(long context);
static final native void CGContextSetAllowsFontSmoothing(long context, boolean allowsFontSmoothing);
static final native void CGContextSetAllowsAntialiasing(long context, boolean allowsAntialiasing);
static final native void CGContextSetAllowsFontSubpixelPositioning(long context, boolean allowsFontSubpixelPositioning);
static final native void CGContextSetAllowsFontSubpixelQuantization(long context, boolean allowsFontSubpixelQuantization);
static final native void CGContextSetRGBFillColor(long context, double red, double green, double blue, double alpha);
static final native void CGContextTranslateCTM(long context, double tx, double ty);
static final native long CGColorSpaceCreateDeviceGray();
static final native long CGColorSpaceCreateDeviceRGB();
static final native void CGColorSpaceRelease(long space);
static final native long CGDataProviderCreateWithURL(long cfURL);
static final native long CGFontCreateWithDataProvider(long dataProvider);
static final native void CGPathRelease(long path);
static final native long CTFontCreatePathForGlyph(long font, short glyph, CGAffineTransform matrix);
static final native long CTFontCreateWithGraphicsFont(long cgFont, double size, CGAffineTransform matrix, long attributes);
static final native long CTFontCreateWithName(long name, double size, CGAffineTransform matrix);
static final native boolean CTFontManagerRegisterFontsForURL(long fontURL, int scope, long error);
static final native long CTLineCreateWithAttributedString(long string);
static final native long CTLineGetGlyphRuns(long line);
static final native long CTLineGetGlyphCount(long line);
static final native double CTLineGetTypographicBounds(long line);
static final native long CTRunGetGlyphCount(long run);
static final native long CTRunGetAttributes(long run);
static final native long CTParagraphStyleCreate(int dir);
}