Package-level declarations

Types

Link copied to clipboard
enum Arch : Enum<Arch>
Link copied to clipboard
class ClipComponent(val component: Component) : ClipRectangle
Link copied to clipboard
interface ClipRectangle

Rectangle used for clipping.

Link copied to clipboard
class DefaultConsoleLogger(val isTraceEnabled: Boolean = false, val isDebugEnabled: Boolean = false, val isInfoEnabled: Boolean = true, val isWarnEnabled: Boolean = true, val isErrorEnabled: Boolean = true, logTimestamp: Boolean = false) : SkikoLoggerInterface
Link copied to clipboard
@RequiresOptIn(level = RequiresOptIn.Level.WARNING, message = "This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.")
annotation class DelicateSkikoApi

Marks declarations that are delicate — they have limited use-case and shall be used with care in general code. Any use of a delicate declaration has to be carefully reviewed to make sure it is properly used and does not create problems like concurrency issues, memory and resource leaks. Carefully read documentation of any declaration marked as DelicateSkikoApi.

Link copied to clipboard
@RequiresOptIn(level = RequiresOptIn.Level.WARNING, message = "This functionality will only work correctly on the JetBrains Runtime.")
annotation class DependsOnJBR

Mark a feature that depends on running on the JetBrains Runtime.

Link copied to clipboard
@RequiresOptIn(level = RequiresOptIn.Level.WARNING, message = "This is an experimental API and can be changed in the near future. The behaviour isn't properly testedand can have bugs.")
annotation class ExperimentalSkikoApi

Marks declarations that are experimental and don't have stable API yet.

Link copied to clipboard
class FPSCounter(periodSeconds: Double = 2.0, showLongFrames: Boolean = false, getLongFrameMillis: () -> Double = { 1.5 * 1000 / 60 }, logOnTick: Boolean = false)
Link copied to clipboard
Link copied to clipboard
class FrameDispatcher(scope: CoroutineScope, onFrame: suspend CoroutineScope.() -> Unit)

Dispatch frame after call of scheduleFrame.

Link copied to clipboard
class FrameLimiter(coroutineScope: CoroutineScope, frameMillis: () -> Long, impreciseDelay: suspend (Long) -> Unit = ::delay, currentTime: () -> ERROR CLASS: Symbol not found for Duration = { System.nanoTime().nanoseconds })

Limit the duration of the frames (to avoid high CPU usage) to frameMillis. The actual delay depends on the precision of the system timer (Windows has ~15ms precision by default, Linux/macOs ~2ms). FrameLimiter will try to delay frames as close as possible to frameMillis, but not greater

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
object Library
Link copied to clipboard
Link copied to clipboard
class LibraryLoadException(message: String, cause: Throwable? = null) : RuntimeException
Link copied to clipboard
enum OS : Enum<OS>
Link copied to clipboard
data class OSVersion(val major: Int, val minor: Int = 0, val patch: Int = 0) : Comparable<OSVersion>
Link copied to clipboard
actual open class SkiaLayer

Generic layer for Skiko rendering.

actual open class SkiaLayer : JComponent, Accessible

Generic layer for Skiko rendering.

expect open class SkiaLayer

Generic layer for Skiko rendering.

actual open class SkiaLayer

Generic layer for Skiko rendering.

actual open class SkiaLayer

SkiaLayer implementation for macOS. Supports only GraphicsApi.METAL

actual open class SkiaLayer

Generic layer for Skiko rendering.

actual open class SkiaLayer

Provides a way to render the content and to receive the input events. Rendering and events processing should be implemented in renderDelegate.

Link copied to clipboard

Analytics that helps to know more about SkiaLayer behaviour. Implementation usually uses third-party solution to send info to some centralized analytics gatherer.

Link copied to clipboard
class SkiaLayerProperties(val isVsyncEnabled: Boolean = SkikoProperties.vsyncEnabled, val isVsyncFramelimitFallbackEnabled: Boolean = SkikoProperties.vsyncFramelimitFallbackEnabled, val frameBuffering: FrameBuffering = SkikoProperties.frameBuffering, val renderApi: GraphicsApi = SkikoProperties.renderApi, val adapterPriority: GpuPriority = SkikoProperties.gpuPriority, val gpuResourceCacheLimit: Long = SkikoProperties.gpuResourceCacheLimit)

SkiaLayerProperties is a class that represents the rendering configuration for a SkiaLayer.

Link copied to clipboard
open class SkiaLayerRenderDelegate(val layer: SkiaLayer, val renderDelegate: SkikoRenderDelegate) : SkikoRenderDelegate
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Global Skiko properties, which are read from system JDK properties or environment variables.

Link copied to clipboard
fun interface SkikoRenderDelegate
Link copied to clipboard
Link copied to clipboard
class SkikoUIView : UIView
Link copied to clipboard
Link copied to clipboard
annotation class WebImport(val name: String)

Properties

Link copied to clipboard
Link copied to clipboard
expect val hostArch: Arch
actual val hostArch: Arch
actual val hostArch: Arch
actual val hostArch: Arch
Link copied to clipboard
expect val hostId: String
actual val hostId: String
actual val hostId: String
actual val hostId: String
Link copied to clipboard
expect val hostOs: OS
actual val hostOs: OS
actual val hostOs: OS
actual val hostOs: OS
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val MainUIDispatcher: CoroutineDispatcher

Dispatcher for UI thread, which is used in the current implementation of native UI integration. Currently, it uses Swing event dispatching thread.

Functions

Link copied to clipboard
fun available(vararg pairs: Pair<OS, OSVersion>): Boolean
Link copied to clipboard
expect fun currentNanoTime(): Long
actual fun currentNanoTime(): Long
actual fun currentNanoTime(): Long
actual fun currentNanoTime(): Long
Link copied to clipboard
fun SkiaLayer.disableTitleBar(customHeaderHeight: Float)

Disable showing the window title bar.

Link copied to clipboard
external fun initializeCAccessible(accessible: Accessible)

Calls sun.lwawt.macosx.CAccessible.getCAccessible(Accessible) on the given accessible object; does nothing if running on a non-Mac platform or in a JVM where there is no CAccessible class.

Link copied to clipboard
expect suspend fun loadBytesFromPath(path: String): ByteArray
actual suspend fun loadBytesFromPath(path: String): ByteArray
actual suspend fun loadBytesFromPath(path: String): ByteArray
actual suspend fun loadBytesFromPath(path: String): ByteArray
Link copied to clipboard
Link copied to clipboard

Request to show emoji and symbols popup.

Link copied to clipboard

Registers an externally-created WebGLTexture in Emscripten's GL texture table.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Returns the color that should be set as the Window.background for transparent windows.

Link copied to clipboard

Removes a texture table entry previously created with pushTexture.