• Home
    • View
    • Login
    This page
    • Normal
    • Export PDF
    • Export Word
    • Attachments
    • Page Information

    Loading...
  1. Dashboard
  2. Wakefield
  3. OpenJDK Project Wakefield - Wayland desktop support for JDK on Linux
  4. Work breakdown

Work breakdown

  • Created by Maxim Kartashev, last modified by Mario Torre on Sep 22, 2023

The following is a rough breakdown of work needed to create a functional native Wayland toolkit.


Graphics
1

✅

Basic drawing support using shared memory
2✅CPU rendering
3✅Unaccelerated VolatileImage support
4❌Accelerated rendering support (VolatileImage)
5✅GraphicsEnvironment/GraphicsDevice/etc, including multiple screen support
6✅HiDPI
7❌Top-level window transparency
8❌Image formats (native 64bits?), HDR / color profiles?
9❌Color blending with transparency supportalpha, pre-multiplied?
10❌AlphaComposite support on client side ?main Porter-Duff rules like CLR, SRC_OVER or more?

Input

11✅MouseOnly 3-button mice with vertical scrolling is supported
12✅Keyboard
13❌Touch (hi-resolution scrolling, gestures)
14❌Input methods

GUI

15✅Frame decorationsBasic title bar decorations, "native" look-and-feel is a separate task
16✅Interactive resize/drag/minimize/maximize
17✅Modal and non-modal dialogs
18❌Correct Z-order for complex window hierarchies with modal dialogs
19✅Fullscreen supportBut can't specify the device yet
20✅Tooltips, menus, comboboxes, etc
21❌

GTK support (making GTKLookAndFeel work)


22⏳Splash screen support
23❌toFront/toBack supporttoFront can be implemented through an activation token (as if the window just appeared); toBack can be implemented through a synthesized gesture on the title bar (also needs mouse serial). See GTK implementation.
24❌AWT components (java.awt.Button, java.awt.Checkbox, etc)AWT components were implemented in the Caciocavallo project using Swing itself. It is a good idea to take inspiration from there for the Wayland implementation: https://hg.openjdk.org/caciocavallo/ng/
25❌AWT File dialogs/Print dialogs

Robot support

26✅For testing
27❌Full support in a production environmentProbably not feasible in full

Misc

28⏳Clipboard support
29❌Drag-n-drop support
30❌Taskbar/tray support

Legend:

  • ✅ - feature is functional at the basic level (for example, mouse support means 3-button mice, nothing fancy)
  • ❌ - task not started yet
  • ⏳ - task is being worked on
Overview
Content Tools
ThemeBuilder
  • No labels

Terms of Use
• License: GPLv2
• Privacy • Trademarks • Contact Us

Powered by a free Atlassian Confluence Open Source Project License granted to https://www.atlassian.com/software/views/opensource-community-additional-license-offer. Evaluate Confluence today.

  • Kolekti ThemeBuilder Powered by Atlassian Confluence 8.5.21
  • Kolekti ThemeBuilder printed.by.atlassian.confluence
  • Report a bug
  • Atlassian News
Atlassian
Kolekti ThemeBuilder EngineAtlassian Confluence
{"serverDuration": 213, "requestCorrelationId": "621a5347c68247b5"}