Commit graph

17 commits

Author SHA1 Message Date
John Lindgren
d2ce31fcc9 tree-wide: use forward declarations for wlr types 2025-09-07 19:34:30 +09:00
John Lindgren
9d49d19cd2 include: add config/types.h 2025-08-21 16:55:25 +09:00
John Lindgren
e1475a1e47 include: reduce global includes in labwc.h 2025-07-30 21:04:31 +01:00
John Lindgren
e21fc065c4 include: split output.h from labwc.h 2025-07-30 21:04:31 +01:00
John Lindgren
31d42b50e2 src: include primary header first
This is a common practice in C projects, which simply enforces that
each header must compile cleanly without implicit dependencies on
other headers (see also the previous commit).
2025-07-29 21:51:56 +01:00
Consolatis
0c2cf61895 chase wlroots: use WLR_PRIVATE (MR 4842)
Ref: 6006023a377868187f73d2e0922bbe952072684f
("Use WLR_PRIVATE for private fields")
2025-05-21 06:36:08 +01:00
tokyo4j
3f56814497 magnifier: show magnifier only in one output
This may slightly degrade UX, but this prevents the temporary buffer from
being reallocated for every frame when the magnifier spans multiple
outputs with different scales/transforms.
2025-03-31 21:19:12 +01:00
tokyo4j
6dc8e279ec magnifier: scale/transform the magnifier
Before this commit, the magnifier wasn't scaled, and caused visual
artifacts when the output is transformed.
2025-03-31 21:19:12 +01:00
Consolatis
9f53d7ed25 src/magnifier: fix compile on ancient GCC versions
Fixes
```
../src/magnifier.c:153:3: error: missing initializer for field ‘clip’ of ‘struct wlr_render_rect_options’ [-Werror=missing-field-initializers]
  153 |   };
      |   ^
In file included from ../subprojects/wlroots/include/wlr/render/wlr_renderer.h:14,
                 from ../subprojects/wlroots/include/wlr/types/wlr_output.h:17,
                 from ../src/magnifier.c:5:
../subprojects/wlroots/include/wlr/render/pass.h:115:27: note: ‘clip’ declared here
  115 |  const pixman_region32_t *clip
```
2025-03-30 00:30:05 -04:00
tokyo4j
c9eaecb3ee magnifier: refactor magnifier_draw() 2025-02-24 18:59:57 +09:00
tokyo4j
f9d6fcb1e4 magnifier: use wlr_output.swapchain.format 2025-02-23 14:17:35 +09:00
tokyo4j
b66c0d8797 magnifier: rename some functions 2025-02-23 14:17:31 +09:00
Christopher Snowhill
3879f1f080 backend/drm: Implement support for renderer loss recovery
This implementation is nearly identical to Sway's, except that
it also reloads the configuration, to spur on reloading the
server-side decorations.

v2: Fix style.
v3: Add a reset to the magnifier.
v4: Oops, restructure reset handler a bit.
v5: Commit the magnifier reset immediately, before freeing the
    lost allocator and renderer.
v6: Also check for failed render pass, which may return NULL.
v7: Add a second NULL test, just in case.
2024-07-23 14:44:31 +02:00
Consolatis
40684bad9d magnifier: disable direct scanout when active
Fixes: #1980
2024-07-17 22:44:48 +02:00
Consolatis
45b197b8a4 magnifier: fix flickering on simultaneous gamma changes
Gamma changes take another code path and thus did not
render the magnifier. This patch consalidates both
code paths and therefore also renders the magnifier on
gamma changes.

Fixes: #1905
2024-06-29 23:36:41 +02:00
tokyo4j
b9b870cfa7 magnifier: minor refactor 2024-05-16 11:33:53 +02:00
Simon Long
8ba066a1a5
Add screen magnifier
This adds a screen magnifier which can be controlled with the
`ZoomIn` / `ZoomOut` and `ToggleMagnify` actions.

It scales up part of the rendered framebuffer so the magnification
may end up looking blurry depending on the magnification scale.

PR #1774
2024-05-16 00:07:23 +02:00