summaryrefslogtreecommitdiff
path: root/src/managers/AnimationManager.cpp
Commit message (Collapse)AuthorAgeFilesLines
* core: add --verify-config to verify the config with HyprlandVaxry2025-01-241-1/+2
| | | | fixes #9135
* core: fixup includesvaxerski2025-01-171-4/+4
|
* core: cleanup header includes (#9088)user1111111111111111111111111111111112025-01-171-0/+1
| | | Cleanup some unneeded includes to speed up compilation
* animation: fixup adding animvars during ::tick (#9030)Maximilian Seidler2025-01-111-5/+2
|
* animation: avoid crashes in ::tick() on mutationsvaxerski2025-01-101-1/+5
| | | | mutating the active variables is valid during a tick, we can't let it crash
* animationmgr: don't warp based on POINTY value (#9000)Maximilian Seidler2025-01-091-4/+5
|
* core: minor fixes for animation rewritevaxerski2025-01-071-3/+2
|
* core: move parts of the animation system to hyprutils (#8868)Maximilian Seidler2025-01-071-320/+210
| | | | | | | | | | | | | * core: change animation manager to use Hyprutils::Animation * config: move animation config to hyprutils animation tree * use g_pAnimationManager->createAnimation and the new PHLANIMVAR template * core: use CGenericAnimatedVariabled::{enabled,setConfig,getStyle} and adapt callbacks * core: adapt animated variable usage (dereference the shared pointer) * misc: bump CMakeLists to hyprutils 0.3.3
* ctm: add an internal fade animation to ctm transitionsvaxerski2024-12-291-0/+6
|
* internal: Make static analysis more happy (#8767)Ikalco2024-12-191-1/+1
| | | | | | | | | * make functions used in 1 file static * fix invalid substr param -1 * give default initializer to borderGradier * move RASSERT from printf to std::print
* animationmgr: fixup stack-use-after-returnVaxry2024-12-161-9/+9
|
* core: drop using deques in favor of vectorsVaxry2024-12-161-1/+1
| | | | No point in most of these.
* core: Add clang-tidy (#8664)Vaxry2024-12-071-6/+6
| | | | | This adds a .clang-tidy file for us. It's not a strict requirement to be compliant, but I tuned it to be alright.
* core: move colorspace handling to oklab (#8635)Vaxry2024-12-031-8/+47
| | | | | | | | | | | * Meson: add hyprgraphics * Nix: add hyprgraphics * CI/setup_base: get hyprgraphics-git --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* core: workspace-related function cleanup / refactorVaxry2024-11-221-1/+1
| | | | CCompositor is massive, and has a lot of functions that could be better optimized if in CWorkspace
* shadow: add sharp and refactor optionsVaxry2024-11-051-1/+1
| | | | options moved to decoration:shadow:
* core: move internal structures to monitor pointers (#8266)Vaxry2024-10-271-3/+3
|
* internal: Move CMonitor to SP (#8178)Vaxry2024-10-191-1/+1
| | | | | * move monitors to sp * XD
* input: Fix VRR for constrained cursors (#6877)UjinT342024-10-121-1/+1
|
* window/xwayland: minor property cleanupVaxry2024-08-301-1/+1
| | | | fixes #6921
* misc: constify the remaining for loops (#7534)Tom Englund2024-08-261-5/+5
| | | now we roll loops at blazing constified speed.
* core: make most for loops use const references (#7527)Tom Englund2024-08-261-1/+1
| | | | why not let the compiler optimise things for us at hyprspeeds when we can.
* animations: add workspace in/out configsvaxerski2024-08-211-1/+1
|
* Core: Move to aquamarine (#6608)Vaxry2024-07-211-1/+1
| | | | | | | | | | | | | | 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>
* core: Improve handling of window properties (#6776)MightyPlaza2024-07-111-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* core: move to steady_clock where applicableVaxry2024-06-251-1/+1
| | | | avoid issues when system clock gets desynchronized or changed
* core: Move to hyprutils for MathVaxry2024-06-191-9/+9
| | | | | | Moves CRegion, CBox and Vector2D over to hyprutils. Requires hyprutils>=0.1.4
* animations: fix overriding direction for slideVaxry2024-06-151-11/+10
| | | | fixes #6512
* layer-shell: move to new implVaxry2024-05-091-1/+1
| | | | Also bumps the hw-s dep
* internal: new shared_ptr and weak_ptr implementation (#5883)Vaxry2024-05-051-2/+2
| | | | | | | | | | | 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.
* layerSurface: refactor/move to a memory-safe implVaxry2024-04-301-2/+3
| | | | | Makes all the pointers smart to avoid memory issues Refactors layerSurface code to live inside desktop/layersurface
* internal: Window storage rework - part 1 (#5762)Vaxry2024-04-271-11/+11
| | | | | | | | | | | | | | | | | * Window storage rework - part 1 * format * remove useless include * fix pch * format * fix crash in dwindle * fix vram leak * prefer .expired() for bool checks
* core: Event loop rework (#5466)Vaxry2024-04-071-5/+6
| | | | | * Event loop rework * revert missed
* workspaces: add visible flagVaxry2024-04-031-1/+1
|
* Workspace/core: Refactor workspace storage (#5380)Vaxry2024-04-021-9/+9
| | | | | * refactor workspaces to use ptrs * clang-format
* animations: simplify window loopVaxry2024-04-011-1/+1
|
* renderer: Fix layer and window damage sometimes missing 1 frame (#5370)thejch2024-04-011-6/+11
| | | | | * fix the layer and window damage missing 1 frame sometimes * remove extra loop
* renderer/animations: Fix various inaccurate damage tracking issues and ↵thejch2024-03-311-58/+36
| | | | offsets (#5297)
* animationmgr: use realpos and size for border damageVaxry2024-03-241-1/+1
| | | | fixes #5239
* animations: Fix animation issue in focusworkspaceoncurrentmonitor (#5202)thejch2024-03-231-6/+6
| | | | | | | | | | | | | | | | | * dont render when workspace offset * add guard * can remove useless code now if workspace offset is not taken into account * clang-format * when special workspace is moved, set anim to move * add offset back * make it a configurable option because some folks apparently can't align their monitors correctly and may not want this feature😔 * remove config option
* refactor: move window.hpp to desktop/Vaxry2024-03-201-0/+1
|
* renderer: add better multi monitor animations (#5126)thejch2024-03-161-5/+30
|
* config: improve config value infrastructureVaxry2024-03-031-4/+5
|
* animations: Refactor AnimatedVariable (#4911)GartoxFR2024-03-021-70/+41
| | | | | | | | | | | | | | | | | | | | | | | * animation: Refactor AnimatedVariable This commit decomposes the AnimatedVariable class into a base class with the common attribute to all variable types and a templated derived type containing strongly typed info on the type being animated. Access to the typed version is perfomed using the visitor pattern. A utility is provided to build a visitor on the fly using lambdas. Adding a new type to be animated should just be a matter of adding the typed in the list defined by the ANIMABLE_TYPES macro The size of the commit is justified by the API change in the AnimatedVariable class. No more vec(), fl() or col() method but a unified value() method. * animation: Remove visitor pattern * animation: Fix coding style * animation: Fix coding style
* layers: add fully featured animationsVaxry2024-02-281-1/+22
| | | | | | | | Adds configs and layerrules to handle them alas fixes #981 I have cooked
* animationmgr: expand layer box for damageVaxry2024-02-221-0/+5
|
* Migrate the config to hyprlang (#4656)Vaxry2024-02-181-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Migrate to hyprlang * pop up errors * fix swapped args * Meson & Nix: build with hyprlang * CI: add hyprlang to setup action * add infra for plugin stuff * fix hyprctl getoption * fix hyprctl getoption with json * format * fix post parse logic * fix autogen config * oops missed exec-once * fmt * fix ws rules * require 0.3.0 for hyprlang * nix: flaek * minor type fixes * fix cfg usages in swipe * use cvarlist for ws rules * fix throw in addPluginConfigVar * Nix: update hyprlang * minor fixes * fix disableLogs * mention hyprlang docs * bump hyprlang dep in cmake * Meson: bump min hyprlang version Nix: update hyprlang * minor fix * Nix: update meson patch --------- Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
* internal: Remake borders as window decorations (#4104)Vaxry2023-12-101-0/+2
|
* renderer: clip floating boxes on slide animVaxry2023-11-161-0/+6
| | | | fixes #3514
* animationmgr: push shadow avs to ended on disabledVaxry2023-11-111-0/+1
|