Skip to content

Releases: Smithay/smithay

v0.4.0 Gathering raw ores

23 Jan 18:08
2ae322b
Compare
Choose a tag to compare

So... It's been 3.5 years since the last release, but by no means has the project lost its steam, it's quite the opposite, it's more lively than ever. The reason for the release gap is simply the fact that we all got used to using cargo git dependencies, for the constant stream of latest and greatest features.

Wayland-rs 0.30

The big highlight of 0.4 is the development of wayland-rs 0.30 by @elinorbgr followed by the porting of Smithay to it by @PolyMeilex @i509VCB and @Drakulix which changed the design direction of the project significantly and opened a lot of new possibilities when it comes to Smithay's API design.

Desktop & Rendering Abstractions

Introduced by @Drakulix desktop abstractions solve a lot of the busy work needed for a typical desktop shell, they introduce 2D Spaces that elements like TopLevels and Layers can be mapped onto for easier tracking of popups, z-order and most importantly, full damage tracking via RenderElements.
As a cherry on top, you can combine this with the new DrmCompositor abstraction by @cmeissl to achieve proper DRM Planes support and fully leverage your hardware's capabilities.

New Protocols

Backend changes

And many more changes that would take to long to list: v0.3.0...v0.4.0

Version 0.3: Raising the heat

25 Jul 10:02
v0.3.0
46209cf
Compare
Choose a tag to compare

Large parts of Smithay were changed with numerous API changes. It is thus recommended to approach version 0.3 as if it was a new crate altogether compared to 0.2.

The most notable changes are:

  • Deep refactor of the graphics backends around a workflows centered on allocating graphics buffers, and a Gles2-based renderer abstraction is provided.
  • Support for DRM atomic modesetting as well as client-provided DMABUF
  • Most backends are now calloop event sources generating events. The recommended organization for your smithay-based compositor is thus to centralize most of your logic on a global state struct, and delegate event handling to it via the shared data mechanism of calloop. Most of the callbacks you provide to Smithay are given mutable access to this shared data.
  • The wayland::compositor handling logic now automatically handles state tracking and delayed commit for wayland surfaces.

Many thanks to the new contributors to Smithay, who contributed the following:

  • Support for libseat as a session backend, by @PolyMeilex
  • Support for graphics tablets via the tablet protocol extension, by @PolyMeilex
  • Support for running Smithay on aarch64 architectures, by @cmeissl
  • A rework of the xdg-shell handlers to better fit the protocol logic and correctly track configure events, by @cmeissl
  • Basic Xwayland support, by @psychon

First release: Building the hearth

01 Oct 21:15
v0.1.0
dca932b
Compare
Choose a tag to compare
Pre-release

This is the first release of smithay, the rusty wayland compositor smithy.

This release brings the very bases necessary to start building a wayland compositor, namely:

  • some logic to handle the most fundamental parts of the wayland protocol
  • a backend system, allowing you to start you compositor either as a window client using winit (useful for testing) or directly in a TTY (though this last one is still experimental)

Changelog for version 0.1.0 (2017-10-01)

Protocol handling

  • Low-level handling routines for several wayland globals:
    • wayland::shm handles wl_shm
    • wayland::compositor handles wl_compositor and wl_subcompositor
    • wayland::shell handles wl_shell and wdg_shell
    • wayland::seat handles wl_seat
    • wayland::output handles wl_output

Backend

  • Winit backend (EGL context & input)
  • DRM backend
  • libinput backend
  • glium integration