-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
- Requirements
- Capable of running with both X11 and Wayland
- We may implement both of them
- Or investigate possibility of running in compatibility mode
- Should be integrated with Skiko the same way as MacOS target does
- Should support OpenGL backend, Vulkan is still too raw in Skia
- At the beginning, should have a separate sample application. Later we will abstract some parts
- Native part shouldn't depend on Skia, it should be pluggable from Kotlin
- Capable of running with both X11 and Wayland
- Design notes
- Keep an API surface small, but enough to implement functionality of Fleet Window manager and Compose
- e.g. window creation might require number of calls to platform methods, it's better to group them in one
create_window
function
- e.g. window creation might require number of calls to platform methods, it's better to group them in one
- Keep API close to platform APIs
- e.g. it's fine to have different attributes in events of similar type in different platforms
- Code reuse between platforms is non-goal
- Toolkit API in Kotlin should expose close to platform API, on top of that we will build a layer to abstract platform differences when possible. For now it's not clear where this abstraction layer will leave. It might be Fleet/Dock Window Manager, it might be part of Compose For Desktop, or it might be a part of desktop-toolkit library.
- Keep an API surface small, but enough to implement functionality of Fleet Window manager and Compose
- Milestones [Kotlin APIs implemented]
-
- Setup infrastructure; Gradle tasks to build native, generate java boilerplate, setup demo app
-
- Application initialisation; Run event loop; Create a window
-
- Mouse events; OpenGL context, Skia integrated with Window context
-
- Basic keyboard
- ...
-
- Proposed workflow
- Working with code review in branch
- Daily meetings with fixed time span to discuss current progress
manu-unter and YangDai2003
Metadata
Metadata
Assignees
Labels
No labels