Hello, yesterday I officially released Louvre v1.0.0, a C++ library designed for building Wayland compositors with a primary focus on ease of development. It provides a default method for handling protocols, input events, and rendering, which you can selectively and progressively override as required, allowing you to see a functional compositor from day 1.

It supports multi-GPU setups, multi-session (TTY switching), and offers various rendering options, including a scene and view system that automatically repaints only the damaged (changing) regions during a frame. Because it uses multiple threads, it can maintain a high FPS rate with v-sync enabled when rendering complex scenarios. In contrast, single-threaded compositors often experience a rapid drop in FPS, for example, from 60 to 30 fps, due to “dead times” while waiting for a screen vblank, leading to the skipping of frames.

The library is freely available, open source, thoroughly documented, includes examples, and features a detailed tutorial.

You can find it here: https://github.com/CuarzoSoftware/Louvre

I hope it proves useful for you. If you decide to use it and encounter any doubts or wish to contribute to its development, please don’t hesitate to reach out.

Greetings!

  • russjr08@outpost.zeuslink.net
    link
    fedilink
    English
    arrow-up
    4
    ·
    1 year ago

    Wow, that looks stunning! I am no where near skilled enough to be able to even begin wrapping my head around making a compositor, even with a library - but I do know that like the other commenter mentioned we certainly need more libraries aside from the two that we currently have (but I understand why that’s a very tall order) so major props to you!

    • ehopperdietzel@lemmy.world
      cake
      OP
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      Thanks, maybe you could follow the tutorial if you are interested. And I wouldn’t mind answering doubts; that actually would help me improve the docs ;)