Architecture
Kanvas connects an ordinary Kotlin desktop application to a native rendering runtime.
Kotlin / Compose application
|
v
Kanvas Gradle plugin
|
+--> runtime provisioning
+--> diagnostics
+--> Java/Skiko interception
+--> capture / takeover
|
v
renderer model
|
v
native C/JNI
|
Metal / Vulkan / OpenGL / D3D9
Gradle plugin
The Gradle plugin is the normal user entry point. It owns setup checks, runtime provisioning, application task integration, packaging, and configuration.
JVM instrumentation
The integration agent attaches to supported Compose Desktop / Skiko rendering paths.
Modern Skiko support includes capturing the final picture-replay boundary so the final recorded Compose frame can be presented through Kanvas.
Renderer layer
Kotlin-side renderer/display-list code describes higher-level drawing operations without tying application code directly to Metal, Vulkan, OpenGL, or Direct3D.
Native runtime
The native C/JNI runtime owns platform-specific presentation, graphics APIs, native window attachment, and related lower-level behavior.
Zero-edit adapter
The source repository also contains a compatibility adapter for testing Kanvas against another Gradle repository without permanently editing that target project. The Gradle plugin remains the normal integration path.