-
-
Notifications
You must be signed in to change notification settings - Fork 15
/
CHANGES
621 lines (372 loc) · 26.8 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
Louvre (2.12.0-1)
# New Protocols
* Wlr Output Management: Allows apps to configure and arrange displays. Check the documentation for details.
# Dependencies
* Updated SRM dependency to >= 0.10.0.
-- Eduardo Hopperdietzel <[email protected]> Mon, 11 Nov 2024 10:29:59 -0300
Louvre (2.11.0-1)
# New Protocols
* DRM Lease: For allowing apps to take control of displays. Check the documentation for details. Thanks @Fox2Code for spotting silly mistakes!
# Packaging
* Added a new Arch AUR (devel branch) to the downloads page. Thanks @kingdomkind!
# louvre-views
* Fixed layer-shell z-index ordering issue. Thanks @renhiyama for reporting it!
# API
* Added LGPU class for accessing a driver/GPU node information.
-- Eduardo Hopperdietzel <[email protected]> Thu, 07 Nov 2024 00:09:11 -0300
Louvre (2.10.1-1)
# Packaging
* Added official Fedora COPR link to the downloads page.
# Bug Fixes
* Wayland Backend: Prevent compositor from exiting when a `wl_output` global is removed.
* Wayland Backend: Fixed cursor scaling issue that made it look oversized on low DPI displays.
-- Eduardo Hopperdietzel <[email protected]> Wed, 31 Oct 2024 23:10:40 -0300
Louvre (2.10.0-1)
# API Additions
* Added LTexture::setFence() and LRenderBuffer::setFence() to prevent partial updates when used as source textures.
* Added LTexture::setDataFromGL() to enable wrapping of already created OpenGL textures.
# Performance
* Replaced glFinish() calls with fences, ensuring synchronization without requiring CPU-side waiting.
# Bug Fixes
* Fixed issue of black textures appearing on proprietary NVIDIA drivers (and potentially others). Thanks @renhiyama and @kingdomkind for all your help!
* Fixed synchronization issues between threads that were causing partial texture updates.
* Replaced calls to wl_client_destroy with wl_resource_post_error when an unknown buffer type is committed, which was causing a segmentation fault. Thanks @Ramblurr for reporting it!
* Fixed segfault occurring when an idle inhibitor resource was destroyed.
* Wayland Backend: Resolved issue where modifier keys were not released when the window lost focus. Thanks @renhiyama for reporting it!
# Tests
* Added test to validate support for common texture formats and the synchronization of updates across threads.
# Dependencies
* Updated SRM dependency to version >= v0.8.0.
Special thanks to @renhiyama, @kingdomkind, and @Fox2Code for your invaluable support!
-- Eduardo Hopperdietzel <[email protected]> Wed, 30 Oct 2024 22:10:55 -0300
Louvre (2.9.0-1)
# API Additions
* Added LScene::enableAutoRepaint() option to temporarily prevent child views from triggering output repaints when modified.
# Examples
* louvre-views: Added Meta + Ctrl + Scroll gesture for zooming in and out. Thanks to @mishoo for the idea.
* louvre-views: Enabled tap-to-click by default. Thanks to @renhiyama for the suggestion.
# Bug Fixes
* Corrected the calculation of LRenderBuffer::size() when the scale factor changes.
# Dependencies
* Removed GBM dependency.
* Specified the minimum required versions for all dependencies.
-- Eduardo Hopperdietzel <[email protected]> Sat, 07 Sep 2024 18:39:10 -0400
Louvre (2.8.0-1)
# New Protocols
* Image Capture Source.
# API Changes
* LActivationToken: The destructor has been made private, and move/copy constructors have been deleted to prevent API misuse.
# Building
* Removed an unnecessary flag in meson.build that was generating excessive warnings when using clang.
-- Eduardo Hopperdietzel <[email protected]> Sat, 23 Aug 2024 22:15:24 -0400
Louvre (2.7.0-1)
# New Protocols
* XDG Activation: See LActivationTokenManager and LActivationToken for details.
-- Eduardo Hopperdietzel <[email protected]> Thu, 22 Aug 2024 20:00:51 -0400
Louvre (2.6.0-1)
# New Protocols
* Foreign Toplevel List: See LToplevelRole::foreignHandleFilter() for details.
# Dependencies
* Updated EGL dependency to version 1.5 or higher.
* Updated SRM dependency to version 0.7.1 or higher.
# Bug Fixes
* louvre-views: Fixed a cursor flickering issue introduced in the previous release.
-- Eduardo Hopperdietzel <[email protected]> Fri, 16 Aug 2024 19:46:37 -0400
Louvre (2.5.0-1)
# New Protocols
* Idle Notify (see `LIdleListener` for details).
* Idle Inhibit (see `LSeat::idleInhibitorSurfaces()` for details).
# Packaging
* Added Fedora package in the downloads section. Credits to @Conan-Kudo.
# Examples
* New louvre-views Shortcuts: Credits to @mishoo:
* `Super + L/R Click`: Starts interactive move/resize for top-level windows.
* `Super + Shift + PageUp`: Toggle maximize.
* `Super + Shift + PageDown`: Minimize.
# Bug Fixes
* Prevent `weston-terminal` from launching when switching to TTY 1. Credits to @mishoo.
* Allow VT switching using the right CTRL key. Credits to @mishoo.
-- Eduardo Hopperdietzel <[email protected]> Tue, 06 Aug 2024 13:59:30 -0400
Louvre (2.4.1-1)
# Bug Fixes & Security
* DRM Backend: Added missing SRM version checks to prevent symbol resolution issues with older versions, thanks to @Silitonix.
* Added missing pointer focus checks in the default pointer button event implementation to securely handle cases where users unset it from indirectly triggered events.
* louvre-views: Fixed bug causing occasional unminimizing of toplevel windows when switching to the main workspace of an output.
* louvre-views: Fix bug causing compositor to get stuck in an infinite loop when associating Wayland clients with application PIDs, thanks to @panaflexx.
* louvre-views: Toplevel windows with subsurfaces are now hidden, and their captures are displayed immediately during fullscreen animations. This change prevents visual glitches caused by clients updating subsurface sizes before acknowledging the toplevel configuration.
-- Eduardo Hopperdietzel <[email protected]> Fri, 01 Aug 2024 22:30:46 -0400
Louvre (2.4.0-1)
# API Additions
* Added LOutput::setCustomScanoutBuffer() for direct scanout of fullscreen textures, reducing GPU consumption and latency.
# Examples
* louvre-views & louvre-weston-clone now use direct scanout for session lock and fullscreen surfaces when possible.
* louvre-views: Reduced unnecessary SSD title updates during window resizing to prevent slowdowns.
* louvre-views: Minimized repainting of offscreen scene views during fullscreen/unfullscreen animations.
* louvre-views: Introduced louvre.desktop file for launching louvre-views as a Wayland session.
# Bug Fixes
* Corrected title bar positioning for fullscreen windows when the X offset of the parent output exceeds 0.
* Addressed issues with cursor size perception in Wayland backend when emulating hardware composition.
# Internal Changes
* Added scanout tranche to Linux-DMA-Buff.
-- Eduardo Hopperdietzel <[email protected]> Tue, 23 Jul 2024 11:44:04 -0400
Louvre (2.3.2-1)
# Examples
* Replaced default wallpaper with a bluish-colored one.
* louvre-views: Scale-down wallpaper on startup to match the largest available output preferred mode size.
# Internal Changes
* Replaced unnecessary execlp() call with system() in LLauncher.
-- Eduardo Hopperdietzel <[email protected]> Wed, 10 Jul 2024 18:16:12 -0400
Louvre (2.3.1-1)
# Bug Fixes
* Fixed issue preventing apps from launching when LLauncher daemon fails to redirect stdin to /dev/null.
* Removed unnecessary override of SRM environment variables that may cause some hardware to function suboptimally.
# Dependencies
* Updated SRM dependency to v0.6.1.
-- Eduardo Hopperdietzel <[email protected]> Sun, 07 Jul 2024 14:28:24 -0400
Louvre (2.3.0-1)
# New Protocols
* Content Type Hint (see LOutput::setContentType() and LSurface::contentType()).
# Bug Fixes
* Fixed bug preventing fallback keyboard map from loading when faulty XKB_DEFAULT_* environment variables are set.
* Fixed bug in louvre-views where fullscreen toplevel subsurfaces incorrectly appeared on top of the topbar.
* Fixed bug in louvre-views causing fullscreen toplevels to move behind the black background when a child popup is mapped.
# Backends
* Moved responsibility for restoring gamma and cursor planes during TTY switching to SRM.
* Wayland Backend: Added multiple cursor buffers to handle compositors that do not release buffers immediately.
# Documentation
* Added link to the old tutorial.
# Examples
* Reused the TextRenderer component in louvre-views and louvre-weston-clone.
-- Eduardo Hopperdietzel <[email protected]> Sat, 29 Jun 2024 18:14:25 -0400
Louvre (2.2.0-1)
# New Protocols
* Single Pixel Buffer.
# Environment Variables
* Removed the hardcoded call to LKeyboard::setKeymap() inside the LCompositor::initialized() event, enabling the use of XKB environment variables to override the default keyboard map. Refer to the Environment page for more details.
# Bug Fixes
* Fixed bug causing unnecessary repaints on outputs using fractional scaling with oversampling.
# Examples
* Cleaned up louvre-weston-clone example and replaced most raw pointers with smart pointers.
-- Eduardo Hopperdietzel <[email protected]> Mon, 24 Jun 2024 13:40:52 -0400
Louvre (2.1.0-1)
# New Protocols
* Wlr Foreign Toplevel Management (Refer to the LForeignToplevelController class for details).
# API Additions
* Add activateRequest(), closeRequest() and unsetMinimizedRequest() to the LToplevelRole class.
# Minor API changes
* Removed unused constructor overload in the LResource class.
* Disabled bottom constraints by default during interactive toplevel move sessions.
# Bug Fixes
* Implemented a temporary fix to allow xdg_popups to trigger reposition requests before being mapped (until GTK4 fixes it).
* Removed unnecessary checks in LLauncher::startDaemon() that prevented it from starting the daemon on some systems.
-- Eduardo Hopperdietzel <[email protected]> Mon, 17 Jun 2024 22:22:05 -0400
Louvre (2.0.0-1)
# New Protocols/Globals
* Session Lock
* Wlr Layer Shell
* Wlr Screen Copy
* Pointer Gestures
* Pointer Constraints
* Relative Pointer
* Wayland Touch Events
* XDG Output
* Update xdg_wm_base global to v6.
* Update zwp_linux_dmabuf global to v5.
# Backends
* Introduced a new Wayland input and graphic backend for running compositors as nested Wayland clients.
* Added support for absolute Libinput pointer events, enabling proper handling of pointer events when running inside QEMU or Virtual Box, thanks to @milisarge.
* Removed unnecessary SRM headers prefix from the DRM backend, thanks to @EBADBEEF.
# Rendering
* Added support for automatic and custom blending modes in LPainter.
* Included premultiplied alpha hints to LTexture.
* Introduced the LFramebufferWrapper class, enabling the use of LPainter in native OpenGL framebuffers.
* Removed deprecated LPainter API.
# Layout
* Introduced the concept of surface layers: background, bottom, middle, top, and overlay, simplifying surface ordering management based on their role.
* Added the concept of available geometry and exclusive edges to LOutput.
* Included the LExclusiveZone class for easy calculation and modification of available geometry for outputs.
# Roles
* Introduced the LLayerRole class for wlr_layer_shell surfaces, featuring a default implementation that automatically updates their position and size, as well as the available outputs geometry.
* Introduced the LSessionLockRole for session_lock surfaces, featuring a default implementation that automatically updates their position, size, and mapping state based on the session state.
* Detached toplevel move and resize sessions from LPointer, moving them into the new LToplevelMoveSession and LToplevelResizeSession classes.
* Move and resize sessions constraints can now be updated dynamically as needed.
* Now multiple move and resize toplevel sessions are allowed at a time (e.g. pointer and touch at the same time).
* Replaced LToplevelRole::ResizeEdge enum with the new LEdge flags.
* Replaced individual LToplevelRole and LPopupRole property change events with atomsChanged(), enabling the handling of multiple property changes simultaneously while accessing the previous state. This prevents issues that arose from the order in which events were previously triggered.
* Added setExtraGeometry() to LToplevelRole to simplify the calculation of position, size, and constraints for toplevels using server-side decorations.
* Popups are now immediately unmapped when dismissed.
* Optimized popup position recalculations, preventing unnecessary processing.
# Screencasting
* Added support for screencasting through the wlr_screencopy protocol, also compatible with the xdg-desktop-portal-wlr portal, thanks to @Fox2Code for providing feedback on the API design.
# Cursor
* Added new LClientCursor class for easier tracking and management of client cursors. When assigned to LCursor, the texture, hotspot, and visibility automatically adjust based on the underlying LCursorRole state.
* LPointer::setCursorRequest() now provides an LClientCursor instead of a raw LCursorRole and hotspot.
* The LClient class now stores and provides access to the last cursor set by a client via LClient::lastCursor().
* LCursor enablement and hardware compositing can be now toggled for specific outputs using LCursor::enable() and LCursor::enableHwCompositing().
* Manual cursor drawing is no longer necessary when hardware composition is not supported.
# Clipboard / Drag & Drop
* Removed the LDataDevice, LDataSource, and LDataOffer classes, their functionality is now handled internally by Louvre.
* Migrated clipboard functionality from LSeat to the new dedicated LClipboard class.
* It is now possible to specify which MIME types of the clipboard to make persistent through LClipboard::persistentMimeTypeFilter().
* Renamed the LDNDManager class to LDND.
* Transferred drag & drop enter, move, and leave events from LPointer to LDND, facilitating support for touch or other forms of DND sessions.
* It is now possible to distinguish whether a DND session is originated from a pointer, keyboard, or touch event using LDND::triggeringEvent().
# Input Events
* Redesigned the entire input system, with each input event now having its own LEvent subclass providing detailed information.
* Added support for touch events through the LTouch, LTouchPoint, and LSceneTouchPoint classes.
* Introduced the LInputDevice class for configuring and accessing basic input device properties.
* Requests triggered by user interactions now include the specific event that triggered them.
* Included support for pointer constraints.
* Added support for swipe, pinch, and hold pointer gestures.
* LClient now provides eventHistory() and findEventBySerial() for querying the last events sent from the compositor.
* Removed the LKeyboard::sendModifiersEvent() method. Modifiers are now automatically sent to focused surfaces whenever they change.
# Security
* Introduced the LWeak class for efficient management of weak references to LObjects, automatically setting them to nullptr upon object destruction, with an optional destruction callback.
* Replaced LClient::destroy() with destroyLater() to prevent immediate client resource destruction and reduce potential access to freed memory.
* Added assert to prevent users from creating factory objects outside LCompositor::createObjectRequest().
# Protocol Globals
* Introduced the new LGlobal class for managing protocol globals.
* Added proper methods in LCompositor for safely adding and removing protocol globals (enabling/disabling protocols).
* Included globalsFilter() in LCompositor to allow only well-known clients to bind to specific protocols.
# Factory
* All classes that provide an interface are now subclasses of LFactoryObject.
* Replaced all virtual constructors/destructors in LCompositor with createObjectRequest() and onAnticipatedObjectDestruction().
# Cleaning / Performance
* Removed unnecessary 'inline' keywords from class member methods, thanks to @Paraworker for the suggestion.
* Added 'noexcept' keyword to all class member methods that do not throw exceptions.
* Removed unnecessary pimpl pattern from multiple classes, enhancing cache locality and performance.
# Bug Fixes
* Fixed incorrect axis scroll values sent to clients using wl_pointer v1.
* Resolved a segmentation fault issue triggered by accessing LOutput buffers following mode changes.
* Addressed synchronization problems related to the presentation time protocol.
# louvre-views example
* Added fade-in/out toplevel animations.
* Added Meta + Shift + L + Up/Down shortcut for modifying the priority of a focused LLayerShell surface.
* Added Meta + Shift + W to launch Wofi.
* Added LLauncher commands at startup to automatically enable the xdg-desktop-portal-wlr portal if installed.
Louvre (1.2.1-1)
# Internal Changes
* Replaced raw boolean pointer of LObject alive indicator with std::shared_ptr - Thanks to @Paraworker.
# Building
* Fixed header include problem preventing Louvre from building on Musl-based distros - Thanks to @ahmadraniri1994 for reporting the issue.
# Documentation
* Added a link to a curated list of compositors using Louvre into README.md - Suggested by @wiki-me.
-- Eduardo Hopperdietzel <[email protected]> Mon, 19 Feb 2024 13:02:10 -0300
Louvre (1.2.0-1)
# New Protocols
* Viewporter (refer to LSurface::srcRect()).
* Fractional Scale (refer to LOutput::setScale()).
* Wlr Gamma Control (refer to LOutput::setGammaRequest()).
* Tearing Control (refer to LSurface::preferVSync() and LOutput::enableVSync()).
# New Features
* LOutput now supports fractional scales and with optional oversampling to reduce aliasing artifacts when necessary.
* Added VSync disabling capability in LOutput with optional refresh rate limits.
* LOutput now supports custom gamma correction curves through LOutput::setGamma() and the new LGammaTable class.
* LPainter has new methods for rendering texture regions with higher precision and applied transforms.
* LTextureView now supports custom source rects and transforms.
* Introduced LBitset class to reduce memory usage for storing binary conditions.
* Introduced isKeySymbolPressed() to LKeyboard, allowing querying the state of key symbols instead of raw key codes.
# Minor API Changes
* Replaced most of the non-order-dependent lists with vectors to minimize cache misses.
* LOutput setBufferDamage() now takes LRegion * as an argument instead of LRegion &.
* Updated all virtual constructor parameters in LCompositor to const void *.
* Removed the create() method in LAnimation and LTimer, replaced with class constructors for stack allocation.
* Replaced LView's paintRect() event with paintEvent().
# Graphic Backend
* The graphic backend modules API has been refactored with a cleaner and more efficient API (this does not affect Louvre public API).
# Input Backend
* The Caps Lock key LED is now automatically toggled based on the state of the keyboard modifiers.
# Bug Fixes
* Resolved a bug causing the compositor to respond to multiple frame callbacks when a client sent multiple frames before waiting for a reply, thanks to @yurikhan for identifying and reporting it.
# Examples
* The louvre-views example now uses a single texture atlas for UI elements instead of individual images.
* Transitioned most heap-allocated objects to stack allocation.
* Workspace switching and fullscreen transition animations have undergone optimization, resulting in a smoother visual experience.
* Added new shortcuts for changing the output transform, scale, mode, and toggling VSync.
# Building
* Updated C++ standard to version 20.
* SRM dependency now requires version 0.5.2 or later.
# Documentation
* Rewrote most of the tutorial for clearer explanations and code.
* Created a new repo containing the code of the final result after completing the tutorial.
* Expanded the tutorial with new chapters on gamma correction, fractional scaling, and VSync.
-- Eduardo Hopperdietzel <[email protected]> Tue, 13 Feb 2024 13:28:39 -0300
Louvre (1.1.0-1)
# License
* License updated from GPLv3 to MIT.
# Dependencies
* Substituted the FreeImage dependency with STB Image.
# Building
* Substituted LConfig.h configuration header with LCompositor methods for querying default assets paths and backends.
* Incorporated soversion in meson.build.
# Minor API Changes
* The LCompositor loadGraphicBackend() and loadInputBackend() methods now accept const std::string & as an argument instead of const char *.
* The LToplevelRole appId() and title() methods now return const std::string & instead of const char *.
* The use of LCompositor::nextSerial() is now deprecated, and LTime::nextSerial() should be used instead.
* LView::paintRect() now takes an LView::PaintRectParams struct reference as an argument, eliminating the need to pass all parameters by value.
* The LView setBlendFunc() method now follows the glBlendFuncSeparate() parameters, enabling a more precise blend function configuration.
# Additions
* Introduce LToplevelRole pendingStates() and pendingSize() methods for querying the last configure() parameters.
* Introduce the LVersion struct and the LCompositor::version() method to facilitate querying the current Louvre version in use.
* Introduce the LTime nextSerial() and us() functions for obtaining incremental integer numbers and timestamps with microsecond granularity.
* Introduce the LLauncher auxiliary class, designed for creating a daemon and safely launching applications.
* Introduce the PaintRectParams struct to LView for utilization in LView::paintRect() calls from an LScene, aiming to reduce the memory transfer overhead associated with each call.
* Introduce the enableAutoBlendFunc() option to LView to enable Louvre to automatically select the OpenGL blend function based on whether the target framebuffer is an output framebuffer or a custom framebuffer. This addition aims to address and resolve alpha-related issues while rendering.
* Add pressedButtons() and isButtonPressed() methods to LPointer, providing the ability to query the state of pointer buttons at any given time.
* The LSurface class now features the views() method, providing access to all LSurfaceViews created for the surface.
# Internal Changes
* Error and fatal messages from LLog are now directed to stderr, thanks to @brianhsu.
* LToplevelRole configure events are now stored and dispatched at the conclusion of a main loop iteration.
* Toplevels are now automatically configured with the pending states and size if the developer does not explicitly configure them during set or unset fullscreen or maximize requests.
* Within the Libinput backend, the Libinput context is no longer recreated with each session switch. Previously, this recreation was necessary when forks were created while the compositor was running, as failure to do so would lead to compositor crashes.
* Pageflip output events are no longer designated as critical sections, enabling them to run concurrently with the main thread loop. This enhancement enhances the output refresh rate.
# Bug Fixes
* Addressed a bug in LPainter::clearScreen() where it failed to clear the entire screen when the current framebuffer transform differed from LFramebuffer::Transform::Normal.
* Addressed a bug where the data source cancelled event wasn't sent to the client when start drag & drop sessions were denied.
* Resolved a bug where LSolidColorViews were not marked as damaged when their color was changed.
# Benchmark
* Include details about the environment in which the benchmark was conducted.
* Enhance benchmark scripts to more safely retrieve the compositors' process IDs.
-- Eduardo Hopperdietzel <[email protected]> Mon, 18 Dec 2023 19:06:14 -0300
Louvre (1.0.1-1)
# Additions
* Introduce new environment variables enabling backend selection, thanks to @2xsaiko for the idea.
# Building
* Incorporate pkg-config into meson.build to enhance dependency resolution, special thanks to @jengelh.
* Integrate meson.build options to streamline the configuration of assets and backends.
# Documentation
* Rectify a package error in Fedora build instructions, thanks to @jwijenbergh.
* Append notes to LCompositor::loadGraphicBackend() and LCompositor::loadInputBackend() methods.
* Enhance benchmark documentation with operational details and transition build system from qmake to Meson.
-- Eduardo Hopperdietzel <[email protected]> Mon, 20 Nov 2023 00:56:50 -0300
Louvre (1.0.0-0)
# Added
* Multi-GPU support is now available.
* Introduction of LObject as the base class facilitates sharing future functionality among classes.
* Pluggable scene and views system introduced for efficient rendering and handling of input events.
* New LAnimation class for creating time-based animations.
* New LTimer class for time-based triggered callbacks.
* New LResource wrapper class for wl_resource structs; each protocol resource or global now has its own LResource subclass.
* Developers can add or modify default compositor globals by overriding the LCompositor::createGlobalsRequest() virtual method.
* New example, louvre-views, a MacOS X lookalike compositor that uses the scene and views system.
* LOutput framebuffers can now be used as textures.
* LOutput now supports framebuffer transforms.
* New LRenderBuffer class for rendering into framebuffers and using them as textures.
* Added support for XDG Decoration, Presentation Time, and Linux DMA-Buf protocols.
* Libseat can now be enabled or disabled using the LOUVRE_ENABLE_LIBSEAT environment variable.
* Single, double, or triple buffering can now be configured using SRM library environment variables.
# Changed
* LCompositor::start() method is now non-blocking; developers can control the rate of compositor events processing using the pollable LCompositor::fd() and LCompositor::processLoop() methods.
* New directory structure for protocol interfaces located in src/lib/protocols.
* Clients can now bind multiple times to the wl_seat global, resolving the Firefox issue where it could only receive pointer events.
* Clients can now create a wl_data_device for each wl_seat.
* Clients can now bind multiple times to the wl_subcompositor global.
* Ping() and pong() methods moved from XDG Shell to LClient class.
* The DRM graphic backend now uses the SRM library.
# Removed
* X11 graphic and input backends are no longer supported.
* LOutputManager class has been eliminated, and its functionality has been integrated into the LSeat class.
-- Eduardo Hopperdietzel <[email protected]> Sun, 12 Nov 2023 23:22:58 -0300
Louvre (0.1.0-1)
* First release.
-- Eduardo Hopperdietzel <[email protected]> Sat, 21 Jan 2023 18:41:12 -0300