Maximilian Seidler
aed529f695
renderer: fix uvBR calculation ( #7975 )
2024-10-03 23:00:44 +01:00
Vaxry
9232bc2c00
internal: move to hyprutils' scopeguard
...
bumps hyprutils dep to 0.2.2
2024-09-21 00:37:17 +01:00
darkwater
04421063af
config: add order rule for layers ( #7697 )
2024-09-09 10:10:08 +01:00
Ikalco
838ed87d6f
renderer: minor direct scanout fixes ( #7594 )
2024-08-31 15:07:52 +02:00
Vaxry
c5fd577181
config: Add a window rule to render while unfocused ( #7582 )
2024-08-30 17:37:52 +02:00
Vaxry
fbd6354393
presentation-feedback: minor fixups
2024-08-30 15:53:45 +02:00
Vaxry
604eb21a7e
renderer: better lockscreen dead behavior ( #7574 )
...
---------
Co-authored-by: Mihai Fufezan <mihai@fufexan.net >
2024-08-29 23:30:12 +02:00
Vaxry
b9b8e6220f
renderer: fade out windows on silent moves
2024-08-28 21:54:49 +02:00
Ikalco
98e99cd03d
renderer: ensure buffer format on commit ( #7556 )
2024-08-28 15:07:13 +02:00
Tom Englund
72c7818ae6
misc: constify the remaining for loops ( #7534 )
...
now we roll loops at blazing constified speed.
2024-08-26 20:24:30 +02:00
Tom Englund
8d6c18076f
core: make most for loops use const references ( #7527 )
...
why not let the compiler optimise things for us at hyprspeeds when we
can.
2024-08-26 17:25:39 +02:00
vaxerski
50348a3ddb
renderer: pass custom modelines to aq
...
ref #7390
2024-08-18 20:19:13 +02:00
vaxerski
912e7ba82d
render: fixup format mismatch after leaving DS
...
fixes #7373
2024-08-17 19:27:20 +02:00
Tom Englund
3fa6db1e7a
core: fix data race and a unsigned int rollover ( #7278 )
...
* keybindmgr: avoid uint rollover on mouse keycode
mouse keycode is 0, and the switch case checks for 0 - 8 and rolls over,
just return early if keycode is 0.
* watchdog: avoid data races in watchdog
asan thread sanitizer reported data races in the watchdog from reading
and setting the bool variables make them std::atomic bools. also add a
atomic bool for the main thread to wait for to avoid data race when
reading the config values.
* hyprdebug: change non unicode character to name
asan created false positives and didnt like this bit, so for the sake of
easier debugging rename it to something unicode.
2024-08-12 18:19:03 +01:00
Walt Bringenberg
01ff5fdf6a
cursor: make inactive_timeout setting a float ( #7268 )
2024-08-10 21:42:45 +01:00
Tom Englund
4b4971c06f
internal: introduce new types to avoid unsigned int rollover and signed int overflow ( #7216 )
...
* framebuffer: avoid gluint overflow
GLuint was being initialized to -1 and rolling over to unsigned int max,
its defined behaviour but very unnecessery. add a bool and use it for
checking if allocated or not.
* opengl: avoid gluint rollover
-1 rolls over to unsigned int max, use 0xFF instead.
* core: big uint64_t to int type conversion
there were a few uint64_t to int implicit conversions overflowing int
and causing UB, make all monitor/workspaces/windows use the new
typedefs. also fix the various related 64 to 32 implicit conversions
going around found with -Wshorten-64-to-32
2024-08-08 21:01:50 +02:00
Vaxry
2d552fbaa2
renderer: fixup nvidia driver version checks
2024-08-07 18:54:45 +02:00
Vaxry
2e3dc17a7e
renderer: guard layer in renderLayer
...
ref #7181
2024-08-07 13:31:32 +02:00
Vaxry
640d161851
renderer: Explicit sync fixes ( #7151 )
...
Enables explicit sync by default for most platforms
`misc:no_direct_scanout` -> `render:direct_scanout`
2024-08-06 15:52:19 +02:00
Vaxry
37e1411e8d
core/surface/buffer: Buffer lock/release fixes ( #7110 )
2024-07-31 21:47:26 +02:00
MightyPlaza
e989a0bcff
internal: refactor fullscreen states ( #7104 )
...
* refactor fullscreen
modified: src/Compositor.cpp
modified: src/Compositor.hpp
modified: src/config/ConfigManager.cpp
modified: src/config/ConfigManager.hpp
modified: src/debug/HyprCtl.cpp
modified: src/desktop/LayerSurface.cpp
modified: src/desktop/Window.cpp
modified: src/desktop/Window.hpp
modified: src/desktop/Workspace.cpp
modified: src/desktop/Workspace.hpp
modified: src/events/Windows.cpp
modified: src/helpers/Monitor.cpp
modified: src/layout/DwindleLayout.cpp
modified: src/layout/DwindleLayout.hpp
modified: src/layout/IHyprLayout.cpp
modified: src/layout/IHyprLayout.hpp
modified: src/layout/MasterLayout.cpp
modified: src/layout/MasterLayout.hpp
modified: src/managers/KeybindManager.cpp
modified: src/managers/KeybindManager.hpp
modified: src/managers/input/IdleInhibitor.cpp
modified: src/managers/input/InputManager.cpp
modified: src/managers/input/Swipe.cpp
modified: src/protocols/ForeignToplevelWlr.cpp
modified: src/render/Renderer.cpp
modified: src/render/decorations/CHyprGroupBarDecoration.cpp
* clean up
modified: src/config/ConfigManager.cpp
modified: src/debug/HyprCtl.cpp
modified: src/desktop/Window.hpp
modified: src/desktop/Workspace.cpp
modified: src/events/Windows.cpp
modified: src/managers/KeybindManager.cpp
modified: src/managers/input/Swipe.cpp
* fix mapWindow fullscreen
modified: src/events/Windows.cpp
* fix typo
modified: src/desktop/Workspace.cpp
* add fullscreenstate
modified: src/config/ConfigManager.cpp
modified: src/events/Windows.cpp
* change syncFullscreen to lower
modified: src/config/ConfigManager.hpp
* initialize fs state
modified: src/desktop/Window.hpp
2024-07-31 19:55:52 +02:00
Vaxry
cc7c117fe7
output: minor tearing fixes
2024-07-30 15:50:14 +02:00
Vaxry
1c221240d0
output: submit damage to kms
2024-07-30 15:46:41 +02:00
vaxerski
141cd09bd3
renderer: use session lock alpha for rendering lacking locks
2024-07-27 18:13:41 +02:00
Sam Lakerveld
3c758db95c
renderer/layer-shell: use explicitly set exclusiveEdge ( #6984 )
2024-07-22 23:36:58 +02:00
Vaxry
5979ceb56b
surface: fixup logical damage size calculations
...
fixes #6618
2024-07-22 12:38:05 +02:00
Vaxry
672bf1f867
compositor: ignore setting surface scanout if DS is disabled
2024-07-21 23:52:16 +02:00
Vaxry
33e933e2a0
renderer: drop redundant spammy trace log
2024-07-21 22:09:29 +02:00
Vaxry
016da234d0
Core: Move to aquamarine ( #6608 )
...
Moves Hyprland from wlroots to aquamarine for the backend.
---------
Signed-off-by: Vaxry <vaxry@vaxry.net >
Co-authored-by: Mihai Fufezan <mihai@fufexan.net >
Co-authored-by: Jan Beich <jbeich@FreeBSD.org >
Co-authored-by: vaxerski <vaxerski@users.noreply.github.com >
Co-authored-by: UjinT34 <41110182+UjinT34@users.noreply.github.com >
Co-authored-by: Tom Englund <tomenglund26@gmail.com >
Co-authored-by: Ikalco <73481042+ikalco@users.noreply.github.com >
Co-authored-by: diniamo <diniamo53@gmail.com >
2024-07-21 13:09:54 +02:00
Junxuan Liao
7486576fa7
session-lock: send locked
after the lock screen is properly rendered ( #6850 )
...
The protocol says:
> The locked event "must not be sent until a new "locked" frame (either from a
> session lock surface or the compositor blanking the output) has been presented
> on all outputs and no security sensitive normal/unlocked content is possibly
> visible".
This helps users ensure the screen is properly locked before suspending
the machine. (e.g. with swaylock --ready-fd)
2024-07-13 12:32:08 +02:00
MightyPlaza
a443902abc
core: Improve handling of window properties ( #6776 )
...
* add mWindowProperties
modified: src/debug/HyprCtl.cpp
modified: src/desktop/Window.cpp
modified: src/desktop/Window.hpp
modified: src/events/Windows.cpp
* support int values
modified: src/debug/HyprCtl.cpp
modified: src/desktop/Window.cpp
modified: src/desktop/Window.hpp
* create m_sWindowData
modified: src/Compositor.cpp
modified: src/debug/HyprCtl.cpp
modified: src/desktop/Window.cpp
modified: src/desktop/Window.hpp
modified: src/events/Windows.cpp
modified: src/layout/DwindleLayout.cpp
modified: src/layout/IHyprLayout.cpp
modified: src/layout/MasterLayout.cpp
modified: src/managers/AnimationManager.cpp
modified: src/managers/KeybindManager.cpp
modified: src/managers/XWaylandManager.cpp
modified: src/render/OpenGL.cpp
modified: src/render/Renderer.cpp
modified: src/render/decorations/CHyprBorderDecoration.cpp
modified: src/render/decorations/CHyprDropShadowDecoration.cpp
modified: src/render/decorations/CHyprGroupBarDecoration.cpp
* simplify some properties
modified: src/Compositor.cpp
modified: src/debug/HyprCtl.cpp
modified: src/desktop/Window.cpp
modified: src/desktop/Window.hpp
modified: src/managers/KeybindManager.cpp
* store multiple values in CWindowOverridableVar
modified: src/Compositor.cpp
modified: src/debug/HyprCtl.cpp
modified: src/desktop/Window.cpp
modified: src/desktop/Window.hpp
modified: src/events/Windows.cpp
modified: src/layout/IHyprLayout.cpp
modified: src/managers/AnimationManager.cpp
modified: src/managers/KeybindManager.cpp
modified: src/managers/XWaylandManager.cpp
modified: src/render/OpenGL.cpp
modified: src/render/Renderer.cpp
modified: src/render/decorations/CHyprBorderDecoration.cpp
modified: src/render/decorations/CHyprDropShadowDecoration.cpp
modified: src/render/decorations/CHyprGroupBarDecoration.cpp
* clean up
modified: src/Compositor.cpp
modified: src/Compositor.hpp
modified: src/config/ConfigManager.cpp
modified: src/config/ConfigManager.hpp
modified: src/debug/HyprCtl.cpp
modified: src/desktop/Window.cpp
modified: src/desktop/Window.hpp
modified: src/events/Windows.cpp
modified: src/layout/DwindleLayout.cpp
modified: src/layout/IHyprLayout.cpp
modified: src/layout/IHyprLayout.hpp
modified: src/layout/MasterLayout.cpp
modified: src/managers/KeybindManager.cpp
* use SET_PROP priority for exec rules
modified: src/config/ConfigManager.hpp
modified: src/desktop/Window.cpp
* add default value
modified: src/Compositor.cpp
modified: src/debug/HyprCtl.cpp
modified: src/desktop/Window.cpp
modified: src/desktop/Window.hpp
modified: src/events/Windows.cpp
modified: src/layout/IHyprLayout.cpp
modified: src/managers/KeybindManager.cpp
modified: src/managers/XWaylandManager.cpp
modified: src/render/OpenGL.cpp
modified: src/render/Renderer.cpp
modified: src/render/decorations/CHyprBorderDecoration.cpp
modified: src/render/decorations/CHyprDropShadowDecoration.cpp
modified: src/render/decorations/CHyprGroupBarDecoration.cpp
* add setprop toggle
modified: src/config/ConfigManager.hpp
modified: src/debug/HyprCtl.cpp
modified: src/desktop/Window.cpp
* add setprop toggle
modified: src/debug/HyprCtl.cpp
* make window rules functional
modified: src/config/ConfigManager.cpp
modified: src/desktop/Window.cpp
* minor fixes
modified: src/Compositor.cpp
modified: src/debug/HyprCtl.cpp
modified: src/desktop/Window.hpp
* properly clean layout data
modified: src/desktop/Window.cpp
modified: src/desktop/Window.hpp
modified: src/events/Windows.cpp
modified: src/layout/DwindleLayout.cpp
modified: src/layout/IHyprLayout.cpp
modified: src/layout/IHyprLayout.hpp
modified: src/layout/MasterLayout.cpp
* remove newline
modified: src/events/Windows.cpp
* fixes
modified: src/config/ConfigManager.hpp
modified: src/debug/HyprCtl.cpp
modified: src/desktop/Window.cpp
modified: src/desktop/Window.hpp
* use CamelCase
modified: src/Compositor.cpp
modified: src/debug/HyprCtl.cpp
modified: src/desktop/Window.cpp
modified: src/desktop/Window.hpp
modified: src/events/Windows.cpp
modified: src/layout/IHyprLayout.cpp
modified: src/managers/AnimationManager.cpp
modified: src/managers/KeybindManager.cpp
modified: src/managers/XWaylandManager.cpp
modified: src/render/OpenGL.cpp
modified: src/render/Renderer.cpp
modified: src/render/decorations/CHyprBorderDecoration.cpp
modified: src/render/decorations/CHyprDropShadowDecoration.cpp
modified: src/render/decorations/CHyprGroupBarDecoration.cpp
2024-07-11 16:10:42 +02:00
Vaxry
6247a6b537
renderer: don't skip back background on preBlurQueued
...
fixes #6332
2024-07-02 18:40:27 +02:00
Vaxry
95782de966
renderer: don't use the surface counter in popup iterations
...
fixes #6663
2024-06-25 20:04:02 +02:00
Vaxry
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
Vaxry
def5fcb212
damageRing: move to hyprland impl
...
A small wlroots utility we were still using.
2024-06-19 18:25:25 +02:00
Vaxry
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
Vaxry
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
Vaxry
1423707dbe
output: remove wl_output globals for mirrored displays
...
ref #6387
2024-06-10 00:06:42 +02:00
Vaxry
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
Vaxry
7eeee2c94e
wl-data-device: move to hyprland impl
2024-05-14 23:13:35 +01:00
Vaxry
0cfdde3d1a
xdg-shell: move to new impl
2024-05-14 23:02:24 +01:00
Vaxry
121d3a7213
wl_seat: move to hyprland impl
2024-05-14 23:02:24 +01:00
Vaxry
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
Vaxry
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
Vaxry
a7e23d2f1e
presentation-time: move to new impl
2024-05-10 02:38:54 +01:00