Kotlin API bindings

Bindings to various Platform APIs.

JavaScript type information was mostly taken from MDN with occasional checks into the specifications from W3C. Mistakes from MDN are likely to show here (if any).

Artifacts

Compiled maven artifacts can be found on Bintray.

All platform artifacts follow a naming scheme:

Platform Suffix
Common -metadata
JVM -jvm
JVM (LWJGL 3) -jvm-lwjgl3
Android -android
JS -js
Native Linux x64 -nativelinuxx64
Native Linux Arm32Hfp -nativelinuxarm32hfp
Native Linux Mips32 -nativelinuxmips32
Native Linux Mipsel32 -nativelinuxmipsel32
Native Android Arm32 -nativeandroidnativearm32
Native Android Arm64 -nativeandroidnativearm64
Native Wasm32 -nativewasm32

Modules

Binding Utils

Basic data types used by bindings.

AL

Provides access to OpenAL.

For web applications, consider using webaudio.

Gamepad

Provides access to the Gamepad API.

Also includes some very basic utilities for compatibility with webkit-prefixed implementations.

For non-web applications, consider using glfw.

GL

Provides access to OpenGL.

Mostly only the functionality found in the gles module is available.

GLES

Provides access to OpenGL ES and WebGL (WebGL API).

Only a common subset of OpenGL ES and WebGL 2 is available.

For better driver compatibility (especially on macOS), consider using gl as well, when appropriate.

GLFW

Provides access to GLFW.

For web applications, consider using gles (which has some context utilities) and gamepad.

STB TrueType Font

Provides access to STB TrueType Font.

For web and Android applications, platform specific apis are usually sufficient.

TinyFd

Provides access to Tiny File Dialogs.

For web and Android applications, platform specific apis have to be used.

WebAudio

Provides access to the Web Audio API.

Incomplete as of yet, but most of the Web IDL of the specification is available.

For non-web applications, consider using al.

Platform Availability

Table showing what platforms each module is available for, in case of more generic or specific alternatives being available arrows are used.

More platforms and better coverage of existing ones should be possible in the future, apart from nonsensical combinations.

Platform binding-utils al gamepad gl gles glfw
Common
JVM
JVM (LWJGL 3)
Android
JS
Native Linux x64
Native Linux Arm32Hfp
Native Linux Mips32
Native Linux Mipsel32
Native Android Arm32
Native Android Arm64
Native Wasm32
Platform stb-truetype-font tinyfd webaudio
Common
JVM
JVM (LWJGL 3)
Android
JS
Native Linux x64
Native Linux Arm32Hfp
Native Linux Mips32
Native Linux Mipsel32
Native Android Arm32
Native Android Arm64
Native Wasm32