Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 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

...