summaryrefslogtreecommitdiff
path: root/src/render
Commit message (Collapse)AuthorAgeFilesLines
...
* renderer/layer-shell: use explicitly set exclusiveEdge (#6984)Sam Lakerveld2024-07-221-3/+4
|
* egl: avoid setting debug mode and handle legacyrendererVaxry2024-07-221-2/+5
| | | | ref #6973
* renderer: untransform textures matching display transformVaxry2024-07-222-8/+15
| | | | | | fixes #6754 This will break if the client uses a transform that is not equal to the display, reverting to old behavior. Combining transforms is left as a todo for the future.
* surface: fixup logical damage size calculationsVaxry2024-07-221-1/+1
| | | | fixes #6618
* compositor: ignore setting surface scanout if DS is disabledVaxry2024-07-211-1/+1
|
* renderer: drop redundant spammy trace logVaxry2024-07-211-3/+1
|
* Core: Move to aquamarine (#6608)Vaxry2024-07-218-537/+850
| | | | | | | | | | | | | | 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>
* renderer: Make shader time always count from zero (#6903)Party Wumpus2024-07-162-8/+11
| | | | | | | * testing out an initialtime variable * Make time universally start at zero instead of exposing an initial time * Appease the CI
* config: use hyprutils helper (#6891)Mihai Fufezan2024-07-161-1/+1
| | | | | | | | | | | * flake.lock: update nix/overlays: remove xwayland overlay (merged upstream) * config: use hyprutils helper * flake.lock: update * CMake & Meson: update required versions
* renderer: partially revert previous xray fix (#6868)MightyPlaza2024-07-131-1/+1
| | | modified: src/render/OpenGL.cpp
* style: fix clang-formatVaxry2024-07-131-2/+1
|
* session-lock: send `locked` after the lock screen is properly rendered (#6850)Junxuan Liao2024-07-131-0/+3
| | | | | | | | | | 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)
* renderer: fix a few xray regressions (#6855)MightyPlaza2024-07-121-2/+2
| | | | | | | * fix xray unset modified: src/render/OpenGL.cpp * fix xwray unset modified: src/render/OpenGL.cpp
* core: Improve handling of window properties (#6776)MightyPlaza2024-07-115-22/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* renderer: don't skip back background on preBlurQueuedVaxry2024-07-021-1/+1
| | | | fixes #6332
* core: fix a few ubsan issues reported at exit of hyprland (#6699)Tom Englund2024-06-282-2/+2
| | | | | | | | | | | | | | | | | * watchdog: dont detach and cause race condition instead of detaching and causing a race condition on destruction where the thread is alive and watchdog has been destroyed, check if its joinable and join it on destruction. causes heap use after free on exit of compositor. * render: add checks for compositor shutting down avoid member call on null pointer, if the g_pHyprRenderer is destroyed we can call the member makeEGLCurrent on it, causes undefined behaviour on destruction of the compositor/hyprrenderer. found with ubsan.
* renderer: don't use the surface counter in popup iterationsVaxry2024-06-251-1/+1
| | | | fixes #6663
* renderer: shrink occlusion rect if blur is usedVaxry2024-06-211-3/+9
| | | | | | 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
* damageRing: move to hyprland implVaxry2024-06-191-6/+10
| | | | A small wlroots utility we were still using.
* core: Move to hyprutils for MathVaxry2024-06-1913-79/+77
| | | | | | Moves CRegion, CBox and Vector2D over to hyprutils. Requires hyprutils>=0.1.4
* subcompositor/renderer: fixup handling of subsurfaces below the main oneVaxry2024-06-171-1/+11
| | | | some apps (notably vlc 4) place a subsurface below the main surface (which is kinda cursed) but we have to accomodate for that
* egl: fixup format modifier lookups with implicit modifiersVaxry2024-06-142-11/+25
| | | | ref #6485
* vrr: add option to fix mouse breaking vrr (#6483)UjinT342024-06-142-3/+4
| | | | | | | | | | | | | | | * 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>
* core: fix a few small memory leaks on exit (#6470)Tom Englund2024-06-132-0/+6
| | | | | | | | | | | | | | | | | | | | * 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.
* renderer: properly software lock cursors with zoom_factor (#6434)Ikalco2024-06-121-7/+9
|
* groupbar: fix groupbar position rounding (#6433)MightyPlaza2024-06-121-7/+7
| | | modified: src/render/decorations/CHyprGroupBarDecoration.cpp
* groupbar: Don't apply monitor scale twice to groupbar text (#6411)zakk42232024-06-111-4/+4
|
* groupbar: Fix window title rendering (#6392)zakk42232024-06-102-21/+35
|
* output: remove wl_output globals for mirrored displaysVaxry2024-06-101-1/+4
| | | | ref #6387
* egl: assume implicit modifiers are available for old driversVaxry2024-06-091-1/+5
| | | | fixes #6367
* renderer: allow custom uv for surface no-blur passesVaxry2024-06-081-2/+2
|
* wayland/core: move to new impl (#6268)Vaxry2024-06-0812-454/+683
| | | | | * wayland/core/dmabuf: move to new impl it's the final countdown
* xwayland: move to hyprland impl (#6086)Vaxry2024-05-251-7/+3
|
* renderer: render fonts with pango, add global `font_family` config option ↵giskard2024-05-222-15/+29
| | | | (#6138)
* decoration: Stacked group tabs (#5886)zakk42232024-05-162-28/+59
| | | | | | | | | | | | * Stacked group tabs * Fix index when creating groupbar title textures * Changes for stacked dnd * formatting * Don't remove internal horizontal padding when calculating stacked bar width
* wl-data-device: move to hyprland implVaxry2024-05-141-14/+3
|
* xdg-shell: move to new implVaxry2024-05-141-9/+18
|
* wl_seat: move to hyprland implVaxry2024-05-141-2/+2
|
* cursor: minor fixes for unhiding surfacesVaxry2024-05-141-3/+0
| | | | | | the surface equality check is done in CPointerManager, the one in renderer can be wrong fixes #5975
* renderer: avoid locking during renderingVaxry2024-05-101-9/+8
| | | | | | it can trigger pointermgr to render which fucks up our pass fixes #5998
* presentation-time: move to new implVaxry2024-05-101-2/+10
|
* config: move various cursor-related vars to cursor:Vaxry2024-05-092-5/+5
|
* groupbar: fix title scaling (#5969)MightyPlaza2024-05-092-5/+5
| | | | modified: src/render/decorations/CHyprGroupBarDecoration.cpp modified: src/render/decorations/CHyprGroupBarDecoration.hpp
* layer-shell: move to new implVaxry2024-05-093-18/+29
| | | | Also bumps the hw-s dep
* decorations: fix groupbar input (#5963)MightyPlaza2024-05-092-11/+12
| | | | modified: src/render/decorations/CHyprGroupBarDecoration.cpp modified: src/render/decorations/CHyprGroupBarDecoration.hpp
* cursor: move to a hyprland implVaxry2024-05-096-103/+149
| | | | | | | This moves wlr_cursor to a completely new impl mostly under CPointerManager Also adds beginSimple to OpenGL for simple render passes (e.g. cursor)
* deco-positioner: avoid infinite recalcsVaxry2024-05-071-2/+4
| | | | fixes #5908
* renderer: deny solitary during a session lockVaxry2024-05-061-1/+1
| | | | | | closes #5906 fixes #5899
* internal: new shared_ptr and weak_ptr implementation (#5883)Vaxry2024-05-057-73/+74
| | | | | | | | | | | 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.
* shadow: fix small pixel gaps between borderVaxry2024-05-041-1/+1
| | | | huge fix