230

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!

you are viewing a single comment's thread
view the rest of the comments
[-] insomniac_lemon@kbin.social 1 points 1 year ago* (last edited 1 year ago)

I was thinking similar, though I'm also still on X with nVidia and XFCE and am in a weird way* with programming.

I have my own custom XFWM theme that is really minimal (12px title with 8px tall buttons with some being wider to compensate, somewhat outdated example) and I'd like to expand upon it (floating titles, inset window buttons, dynamic button width, media integration) but I've looked at examples and don't understand enough to even get just a rectangle for a titlebar (though X I assume for something basic, X would probably still be the easiest).

*= the only language that I'm interested in (due to it being easy in a style I like while still having performance/capability/flexibility etc) is not popular, and worse is I have lost a bit of hope/confidence in its future (as well as its bus factor reducing further because the person who made the package manager+installer and a book walked away) so I still haven't really done much with it.

[-] LeFantome@programming.dev 1 points 1 year ago
[-] insomniac_lemon@kbin.social 2 points 1 year ago* (last edited 1 year ago)

Nim-lang. some code that I actually wrote using Raylib bindings (Naylib) (+what it's loading)

I've asked about this on the Fediverse once already and didn't get any responses.

Also note that bindings for Godot 4.X (or some other not-superheavy Linux-compatible engine that has an editor especially) are a big part of what I want, so some specifics that may work on paper otherwise might not fit the bill either. Also because polygonal art (meme made with 3.X, 4.0 eye animation, not-yet-in-4.X test of someone elses' PR)

this post was submitted on 14 Nov 2023
230 points (99.1% liked)

Linux

48186 readers
1507 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS