Skip to content

Maul Window 0.9.0

Choose a tag to compare

@siracozmen01 siracozmen01 released this 08 Oct 03:34
· 74 commits to main since this release

Monitors' HDR facts and variable refresh on every backend, Android's
display as a monitor, pens on Wayland and X11, Linux gamepads'
batteries and X11's refresh rate: the gaps the requirements audit after
0.8.1 found. mwinHdrFacts gains a field, so the ABI changes.

Added

  • Linux gamepads report their battery where the kernel tells it: the
    power supply a wireless pad's driver (hid-playstation, hid-nintendo,
    xpadneo and others) registers beside the input device, read when the
    pad connects and every five seconds after, a change told as
    mwin_eventGamepadChanged.
  • mwinHdrFacts.headroom, the peak luminance over SDR white the output
    can show now (1 where it shows nothing brighter than SDR white, 0
    where unknown), for platforms that tell headroom and no nits
    (mwin-0036).
  • X11 monitors report their HDR luminances from the EDID RandR shows
    (HDR output never on) and variable refresh from the vrr_capable
    output property; a change of either is a monitor change. The EDID
    parser checks every checksum and block length and is fuzzed.
  • Win32 monitors report whether HDR output is on and the SDR white level
    (DisplayConfig; wide color forced on an SDR display is not HDR), the
    luminances from the EDID in the monitor's registry key, and the
    headroom from both. The backend links setupapi.
  • Wayland monitors report their HDR facts where the compositor offers
    the color manager (wp_color_manager_v1, vendored from
    wayland-protocols 1.45): HDR output on with a PQ, HLG or extended
    linear transfer function, the target content light levels, SDR
    white's luminance and the headroom, there from the first frame and a
    change of the output's image description told as a monitor change.
  • macOS and iOS (16 and later) monitors report their extended dynamic
    range: the headroom the screen shows once content asks for EDR, and
    whether EDR is on now; Apple gives no nits.
  • Android lists its activity's display as the one monitor, the window's:
    its name, size, physical size, scale and refresh rate, and its HDR
    facts (the desired luminances; HDR on and the headroom from the
    HDR/SDR ratio on Android 14 and later) and adaptive refresh on Android
    16 as variable refresh, read when an activity starts or its
    configuration changes and every two seconds after.
  • On the web the screen's monitor reports whether it shows HDR
    (dynamic-range: high), with no luminance, and tells a change.
  • Wayland posts pen records from tablets (zwp_tablet_manager_v2,
    mwin-0037): position, pressure, tilt, contact, the barrel button and
    the eraser, with the window's cursor shown for the tool, and no mouse
    record, as compositors emulate the pointer only for a client without
    the tablet seat.
  • X11 posts pen records from tablets' XInput2 devices (mwin-0037): a
    slave pointer of X input type STYLUS or ERASER, or of type TABLET or
    none with an eraser in its name or a pressure valuator, gives
    pressure and tilt from its labelled valuators, contact from its tip
    and the barrel from button 2, and no mouse record.
  • X11 monitors report their refresh rate, from the timings of their
    output's CRTC mode (0 where the mode has none, as Xvfb's).

Changed

  • On Wayland and the web a monitor is told changed only when one of
    its facts changed, as on the other backends.