Commit graph

560 commits

Author SHA1 Message Date
6247a6b537 renderer: don't skip back background on preBlurQueued
fixes #6332
2024-07-02 18:40:27 +02:00
95782de966 renderer: don't use the surface counter in popup iterations
fixes #6663
2024-06-25 20:04:02 +02:00
4a8b13ea4f renderer: shrink occlusion rect if blur is used
if we are blurring, we cannot be sure whether the occluded region won't be included in the expanded damage. If it is, we'd get dark shimmers.

fixes #6547
2024-06-21 19:25:34 +02:00
def5fcb212 damageRing: move to hyprland impl
A small wlroots utility we were still using.
2024-06-19 18:25:25 +02:00
fb15b7aa2a core: Move to hyprutils for Math
Moves CRegion, CBox and Vector2D over to hyprutils.

Requires hyprutils>=0.1.4
2024-06-19 16:20:15 +02:00
1360677478 subcompositor/renderer: fixup handling of subsurfaces below the main one
some apps (notably vlc 4) place a subsurface below the main surface (which is kinda cursed) but we have to accomodate for that
2024-06-17 12:42:39 +02:00
UjinT34
a9d53a2252
vrr: add option to fix mouse breaking vrr (#6483)
* option to fix mouse breaking vrr

* skip damage on mouse move

* remove this-> & cleanup

* add cursor:min_refresh_rate to avoid cursor freezing

* run clang-format

---------

Co-authored-by: UjinT34 <ujin@uvpn.ru>
2024-06-14 13:45:32 +02:00
Tom Englund
e6d10539af
core: fix a few small memory leaks on exit (#6470)
* renderer: add destructor and destroy event source

add destructor and destroy the event source.
one less leak on exit of compositor reported by asan.

* compositor: cleanup eventloop on exit

destruct hyprctl to release the event sources, and properly cleanup the
event loop on exit of compositor. less leaks on exit reported by asan

* threadmgr: destroy event source on destruction

destroy the event source on destruction.

* eventloopmgr: reset eventloopmgr on exit aswell

reset the eventloopmanager on exit of compositor and free the leaking
last idle frame on monitor destroy.
2024-06-13 12:08:02 +02:00
Ikalco
38132ffaf5
renderer: properly software lock cursors with zoom_factor (#6434) 2024-06-12 19:28:52 +02:00
1423707dbe output: remove wl_output globals for mirrored displays
ref #6387
2024-06-10 00:06:42 +02:00
3fb079a2a3 renderer: allow custom uv for surface no-blur passes 2024-06-08 16:16:43 +02:00
Vaxry
6967a31450
wayland/core: move to new impl (#6268)
* wayland/core/dmabuf: move to new impl

it's the final countdown
2024-06-08 10:07:59 +02:00
Vaxry
addd3e7f1a
xwayland: move to hyprland impl (#6086) 2024-05-25 22:43:51 +02:00
7eeee2c94e wl-data-device: move to hyprland impl 2024-05-14 23:13:35 +01:00
0cfdde3d1a xdg-shell: move to new impl 2024-05-14 23:02:24 +01:00
121d3a7213 wl_seat: move to hyprland impl 2024-05-14 23:02:24 +01:00
4cdddcfe46 cursor: minor fixes for unhiding surfaces
the surface equality check is done in CPointerManager, the one in renderer can be wrong

fixes #5975
2024-05-14 16:45:12 +01:00
19186de118 renderer: avoid locking during rendering
it can trigger pointermgr to render which fucks up our pass

fixes #5998
2024-05-10 23:38:46 +01:00
a7e23d2f1e presentation-time: move to new impl 2024-05-10 02:38:54 +01:00
b0861b6709 config: move various cursor-related vars to cursor: 2024-05-09 22:25:20 +01:00
635a02d83f layer-shell: move to new impl
Also bumps the hw-s dep
2024-05-09 22:02:18 +01:00
ed411f53bd cursor: move to a hyprland impl
This moves wlr_cursor to a completely new impl mostly under
CPointerManager

Also adds beginSimple to OpenGL for simple render passes (e.g. cursor)
2024-05-09 13:37:39 +01:00
a8a04c746b renderer: deny solitary during a session lock
closes #5906

fixes #5899
2024-05-06 02:24:11 +01:00
Vaxry
1ed1ce9506
internal: new shared_ptr and weak_ptr implementation (#5883)
moves std::shared_ptrs to a new implementation

Advantages:
- you can dereference a weak_ptr directly. This will obviously segfault on a nullptr deref if it's expired.
   - this is useful to avoid the .lock() hell where we are 100% sure the pointer _should_ be valid. (and if it isn't, it should throw.)
- weak_ptrs are still valid while the SP is being destroyed.
   - reasoning: while an object (e.g. CWindow) is being destroyed, its `weak_ptr self` should be accessible (the sp is still alive, and so is CWindow), but it's not because by stl it's already expired (to prevent resurrection)
   - this impl solves it differently. w_p is expired, but can still be dereferenced and used. Creating `s_p`s is not possible anymore, though.
   - this is useful in destructors and callbacks.
2024-05-05 17:16:00 +01:00
8a2269272b output-management: move to new impl 2024-05-03 18:08:04 +01:00
70ebc3add3 sessionLock: call wlr_surface_map/_unmap on the surface manually
fixes unmapped subsurfaces etc

ref #5816
2024-04-30 21:59:07 +01:00
90e1411315 session-lock: move to new impl 2024-04-30 16:34:09 +01:00
5edc32930d layerSurface: refactor/move to a memory-safe impl
Makes all the pointers smart to avoid memory issues
Refactors layerSurface code to live inside desktop/layersurface
2024-04-30 02:41:27 +01:00
33e0bb1478 wlr-output-power: move to new impl 2024-04-29 01:38:24 +01:00
Vaxry
bca7804bb6
internal: Window storage rework - part 1 (#5762)
* Window storage rework - part 1

* format

* remove useless include

* fix pch

* format

* fix crash in dwindle

* fix vram leak

* prefer .expired() for bool checks
2024-04-27 12:43:12 +01:00
eriedaberrie
faa9017043
renderer: fix rounding of the size of fractionally scaled monitors (#5748) 2024-04-25 18:52:49 +01:00
Virt
9fe409800b
renderer: Fix mirrored displays when transformed and preserve aspect ratio (#5697)
* renderer: transform mirror buffer and preserve mirror aspect ratio

* renderer: render mirrors directly from offloadFB

* renderer: fix formatting

* renderer: use monitorMirrorFB again, but properly damage mirrors

* renderer: clean mirrors after reload and support cursor zoom mirroring
2024-04-24 16:29:41 +01:00
d119513749 renderer: fix safety around sendFrameEventsToWorkspace
ref #5718
2024-04-23 21:15:37 +01:00
a2366f78f0 renderer: send frame events to apps on empty damage renders
fixes #5711
2024-04-23 16:08:54 +01:00
cf3596a96d renderer: avoid rendering frame if finalDamage is empty 2024-04-23 12:29:01 +01:00
741c75d907 gamma-control: move to new impl 2024-04-22 18:21:03 +01:00
8afdb8403b style: fix clang-format 2024-04-21 21:29:37 +01:00
f587c3e0ba alpha-modifier: add support for protocol 2024-04-21 21:21:22 +01:00
4ad739ec63 HookSystem: improve callback safety 2024-04-20 20:16:42 +01:00
MightyPlaza
0634aaeac6
renderer: remove border on fullscreen (#5577)
modified:   src/render/Renderer.cpp
2024-04-14 00:16:26 +01:00
TheOnlyMrCat
47e5b41fea
renderer: Add dimaround layer rule (#4643) 2024-04-11 12:41:18 +01:00
63e3668529 style: run clang-format 2024-04-08 15:33:02 +01:00
7d989f2cf0 damageSurface: don't correct smallVec twice 2024-04-07 22:25:34 +01:00
ec2cc79c65 renderer: avoid double-rendering ls-es on fadingOut
fixes #5295
2024-04-04 22:43:57 +01:00
10146f5ec5 core: fix some crash conditions around workspace ptrs in CWindow
ref #5402, supersedes #5409
2024-04-03 20:42:38 +01:00
64964c4e3b renderer: render back layer for workspace-less passes 2024-04-03 14:28:15 +01:00
efdc1af044 renderer: some fixes for renderModif 2024-04-03 14:09:58 +01:00
347b839034 workspaces: add visible flag 2024-04-03 10:09:48 +01:00
Vaxry
ef23ef60c5
Workspace/core: Refactor workspace storage (#5380)
* refactor workspaces to use ptrs

* clang-format
2024-04-02 20:32:39 +01:00
thejch
800dbf71b0
renderer: Fix rendering when swiping workspaces (#5367)
* fix rendering on swiping

* add alpha check

* fix floating fs check
2024-04-01 16:16:18 +01:00