Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
ehopperdietzel committed Jul 23, 2024
1 parent 32aa8c3 commit 147f8da
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 11 deletions.
12 changes: 6 additions & 6 deletions CHANGES
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,19 @@ Louvre (2.4.0-1)

# API Additions

* Added LOutput::setCustomScanoutBuffer() allowing direct scanout of fullscreen textures, reducing GPU consumption and latency.
* 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: Prevented unnecessary update of SSD toplevels titles during resizing, which caused slowdowns.
* louvre-views: Prevented unnecessary repainting of offscreen scene views during toplevel fullscreen/unfullscreen animations.
* louvre-views: Added louvre.desktop file to enable starting louvre-views as a Wayland session.
* 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

* Properly position the title bar of fullscreen toplevels when the X offset of the output is not 0.
* Wayland backend: Disabled custom user cursor sizes when emulating hardware composition due to issues with cursor size perception on the parent compositor.
* 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

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ Fortunately, Louvre simplifies this intricate process by handling all the comple
## ⭐ Features

* Fractional Scaling (with optional oversampling)
* Direct Scanout (primary plane)
* VSync Control
* Gamma Correction
* Screencasting (compatible with PipeWire via xdg-desktop-portal-wlr)
Expand Down Expand Up @@ -156,8 +157,7 @@ Similarly as with CPU consumption, we can observe that Louvre uses fewer GPU res
* XDG activation Protocol
* Idle Notify Protocol
* Cursor Shape Protocol
* Direct Buffer Scanout
* DRM Planes Control
* DRM Overlay Planes Control
* Rootless XWayland
* DRM Lease Protocol
* Tablet Events Protocol
Expand Down
5 changes: 4 additions & 1 deletion src/examples/louvre-views/src/Global.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -607,7 +607,7 @@ void G::reparentWithSubsurfaces(Surface *surf, LView *newParent, bool onlySubsur
}
}

void G::arrangeOutputs()
void G::arrangeOutputs(Output *caller) noexcept
{
Int32 x = 0;

Expand All @@ -616,6 +616,9 @@ void G::arrangeOutputs()
o->setPos(LPoint(x, 0));
x += o->size().w();
o->repaint();

if (caller && o != caller)
o->moveGL();
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/examples/louvre-views/src/Global.h
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ class G
static void enableClippingChildren(LView *parent, bool enabled);
static Output *mostIntersectedOuput(LView *view);
static void reparentWithSubsurfaces(Surface *surf, LView *newParent, bool onlySubsurfaces = true);
static void arrangeOutputs();
static void arrangeOutputs(Output *caller = nullptr) noexcept;
static class Toplevel *searchFullscreenParent(Surface *parent);
static void repositionNonVisibleToplevelChildren(Output *target, Surface *toplevel);
};
Expand Down
2 changes: 1 addition & 1 deletion src/examples/louvre-views/src/Output.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ void Output::initializeGL()

void Output::resizeGL()
{
G::arrangeOutputs();
G::arrangeOutputs(this);
updateWorkspacesPos();
setWorkspace(currentWorkspace, 1);
topbar.updateOutputInfo();
Expand Down

0 comments on commit 147f8da

Please sign in to comment.