...
Event handling
Dispatch native events on EDT, to avoid potential race conditions when the state is updated both from EDT and toolkit thread. See the full proposal here
Graphics devices support
Onscreen/offscreen Wayland surface management
Adopt OGL pipeline for rendering on Wayland surfaces
Implement a new rendering pipeline based on Vulkan (for better performance)
java.awt.Robot
Sending input events
Reading screen data (at least current java application windows)
Client-side decorations for windows
Swing internal frames rendering code can be reused
- Hardware acceleration using Vulkan.
The prototype implementation of the pure Wayland toolkit (JDK-8281970) based on OpneJDK 21 source base can be found in the Wakefield repository (jdk21.0.1-wayland branch). It has two rendering pipelines:
- Pure software loops (enabled by default)
- Hardware-accelerated rendering using Vulkan
- Accelerated blitting of the resulting frame (enabled by providing -Dsun.java2d.vulkan=True|true)
- Complete hardware acceleration including the rendering of all graphics primitives (enabled by providing -Dsun.java2d.vulkan=True|true -Dsun.java2d.vulkan.accelsd=true)
Complete hardware acceleration is not fully supported so far.
java -Dawt.toolkit.name=WLToolkit -Dsun.java2d.vulkan=True J2Ddemo.jar
...
libxtst-dev libxt-dev libxrandr-dev libcups2-dev libfontconfig1-dev libasound2-dev libwayland-dev \
libxtst-dev libxt-dev libxrandr-dev libcups2-dev libfontconfig1-dev libasound2-dev libwayland-dev \
libxkbcommon libxkbcommon-x11-0 vulkan-sdk vulkan-utility-libraries-dev
...