mirror of
https://github.com/hyprwm/Hyprland.git
synced 2025-08-07 23:51:55 -07:00
animvar: fixup update callbacks and cleanup
This commit is contained in:
@@ -6,14 +6,14 @@
|
|||||||
#include "../config/ConfigValue.hpp"
|
#include "../config/ConfigValue.hpp"
|
||||||
|
|
||||||
CWindow::CWindow() {
|
CWindow::CWindow() {
|
||||||
m_vRealPosition.create(g_pConfigManager->getAnimationPropertyConfig("windowsIn"), (void*)this, AVARDAMAGE_ENTIRE);
|
m_vRealPosition.create(g_pConfigManager->getAnimationPropertyConfig("windowsIn"), this, AVARDAMAGE_ENTIRE);
|
||||||
m_vRealSize.create(g_pConfigManager->getAnimationPropertyConfig("windowsIn"), (void*)this, AVARDAMAGE_ENTIRE);
|
m_vRealSize.create(g_pConfigManager->getAnimationPropertyConfig("windowsIn"), this, AVARDAMAGE_ENTIRE);
|
||||||
m_fBorderFadeAnimationProgress.create(g_pConfigManager->getAnimationPropertyConfig("border"), (void*)this, AVARDAMAGE_BORDER);
|
m_fBorderFadeAnimationProgress.create(g_pConfigManager->getAnimationPropertyConfig("border"), this, AVARDAMAGE_BORDER);
|
||||||
m_fBorderAngleAnimationProgress.create(g_pConfigManager->getAnimationPropertyConfig("borderangle"), (void*)this, AVARDAMAGE_BORDER);
|
m_fBorderAngleAnimationProgress.create(g_pConfigManager->getAnimationPropertyConfig("borderangle"), this, AVARDAMAGE_BORDER);
|
||||||
m_fAlpha.create(g_pConfigManager->getAnimationPropertyConfig("fadeIn"), (void*)this, AVARDAMAGE_ENTIRE);
|
m_fAlpha.create(g_pConfigManager->getAnimationPropertyConfig("fadeIn"), this, AVARDAMAGE_ENTIRE);
|
||||||
m_fActiveInactiveAlpha.create(g_pConfigManager->getAnimationPropertyConfig("fadeSwitch"), (void*)this, AVARDAMAGE_ENTIRE);
|
m_fActiveInactiveAlpha.create(g_pConfigManager->getAnimationPropertyConfig("fadeSwitch"), this, AVARDAMAGE_ENTIRE);
|
||||||
m_cRealShadowColor.create(g_pConfigManager->getAnimationPropertyConfig("fadeShadow"), (void*)this, AVARDAMAGE_SHADOW);
|
m_cRealShadowColor.create(g_pConfigManager->getAnimationPropertyConfig("fadeShadow"), this, AVARDAMAGE_SHADOW);
|
||||||
m_fDimPercent.create(g_pConfigManager->getAnimationPropertyConfig("fadeDim"), (void*)this, AVARDAMAGE_ENTIRE);
|
m_fDimPercent.create(g_pConfigManager->getAnimationPropertyConfig("fadeDim"), this, AVARDAMAGE_ENTIRE);
|
||||||
|
|
||||||
addWindowDeco(std::make_unique<CHyprDropShadowDecoration>(this));
|
addWindowDeco(std::make_unique<CHyprDropShadowDecoration>(this));
|
||||||
addWindowDeco(std::make_unique<CHyprBorderDecoration>(this));
|
addWindowDeco(std::make_unique<CHyprBorderDecoration>(this));
|
||||||
|
@@ -15,12 +15,10 @@ CWorkspace::CWorkspace(int id, int monitorID, std::string name, bool special) {
|
|||||||
m_szName = name;
|
m_szName = name;
|
||||||
m_bIsSpecialWorkspace = special;
|
m_bIsSpecialWorkspace = special;
|
||||||
|
|
||||||
m_vRenderOffset.m_pWorkspace = this;
|
m_vRenderOffset.create(special ? g_pConfigManager->getAnimationPropertyConfig("specialWorkspace") : g_pConfigManager->getAnimationPropertyConfig("workspaces"), this,
|
||||||
m_vRenderOffset.create(special ? g_pConfigManager->getAnimationPropertyConfig("specialWorkspace") : g_pConfigManager->getAnimationPropertyConfig("workspaces"), nullptr,
|
|
||||||
AVARDAMAGE_ENTIRE);
|
AVARDAMAGE_ENTIRE);
|
||||||
m_fAlpha.m_pWorkspace = this;
|
m_fAlpha.create(AVARTYPE_FLOAT, special ? g_pConfigManager->getAnimationPropertyConfig("specialWorkspace") : g_pConfigManager->getAnimationPropertyConfig("workspaces"), this,
|
||||||
m_fAlpha.create(AVARTYPE_FLOAT, special ? g_pConfigManager->getAnimationPropertyConfig("specialWorkspace") : g_pConfigManager->getAnimationPropertyConfig("workspaces"),
|
AVARDAMAGE_ENTIRE);
|
||||||
nullptr, AVARDAMAGE_ENTIRE);
|
|
||||||
m_fAlpha.setValueAndWarp(1.f);
|
m_fAlpha.setValueAndWarp(1.f);
|
||||||
|
|
||||||
m_vRenderOffset.registerVar();
|
m_vRenderOffset.registerVar();
|
||||||
|
@@ -6,7 +6,7 @@ CBaseAnimatedVariable::CBaseAnimatedVariable(ANIMATEDVARTYPE type) : m_Type(type
|
|||||||
; // dummy var
|
; // dummy var
|
||||||
}
|
}
|
||||||
|
|
||||||
void CBaseAnimatedVariable::create(SAnimationPropertyConfig* pAnimConfig, void* pWindow, AVARDAMAGEPOLICY policy) {
|
void CBaseAnimatedVariable::create(SAnimationPropertyConfig* pAnimConfig, CWindow* pWindow, AVARDAMAGEPOLICY policy) {
|
||||||
m_eDamagePolicy = policy;
|
m_eDamagePolicy = policy;
|
||||||
m_pConfig = pAnimConfig;
|
m_pConfig = pAnimConfig;
|
||||||
m_pWindow = pWindow;
|
m_pWindow = pWindow;
|
||||||
@@ -14,6 +14,29 @@ void CBaseAnimatedVariable::create(SAnimationPropertyConfig* pAnimConfig, void*
|
|||||||
m_bDummy = false;
|
m_bDummy = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CBaseAnimatedVariable::create(SAnimationPropertyConfig* pAnimConfig, SLayerSurface* pLayer, AVARDAMAGEPOLICY policy) {
|
||||||
|
m_eDamagePolicy = policy;
|
||||||
|
m_pConfig = pAnimConfig;
|
||||||
|
m_pLayer = pLayer;
|
||||||
|
|
||||||
|
m_bDummy = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CBaseAnimatedVariable::create(SAnimationPropertyConfig* pAnimConfig, CWorkspace* pWorkspace, AVARDAMAGEPOLICY policy) {
|
||||||
|
m_eDamagePolicy = policy;
|
||||||
|
m_pConfig = pAnimConfig;
|
||||||
|
m_pWorkspace = pWorkspace;
|
||||||
|
|
||||||
|
m_bDummy = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CBaseAnimatedVariable::create(SAnimationPropertyConfig* pAnimConfig, AVARDAMAGEPOLICY policy) {
|
||||||
|
m_eDamagePolicy = policy;
|
||||||
|
m_pConfig = pAnimConfig;
|
||||||
|
|
||||||
|
m_bDummy = false;
|
||||||
|
}
|
||||||
|
|
||||||
CBaseAnimatedVariable::~CBaseAnimatedVariable() {
|
CBaseAnimatedVariable::~CBaseAnimatedVariable() {
|
||||||
unregister();
|
unregister();
|
||||||
}
|
}
|
||||||
|
@@ -67,7 +67,10 @@ concept Animable = OneOf<T, Vector2D, float, CColor>;
|
|||||||
class CBaseAnimatedVariable {
|
class CBaseAnimatedVariable {
|
||||||
public:
|
public:
|
||||||
CBaseAnimatedVariable(ANIMATEDVARTYPE type);
|
CBaseAnimatedVariable(ANIMATEDVARTYPE type);
|
||||||
void create(SAnimationPropertyConfig* pAnimConfig, void* pWindow, AVARDAMAGEPOLICY policy);
|
void create(SAnimationPropertyConfig* pAnimConfig, CWindow* pWindow, AVARDAMAGEPOLICY policy);
|
||||||
|
void create(SAnimationPropertyConfig* pAnimConfig, SLayerSurface* pLayer, AVARDAMAGEPOLICY policy);
|
||||||
|
void create(SAnimationPropertyConfig* pAnimConfig, CWorkspace* pWorkspace, AVARDAMAGEPOLICY policy);
|
||||||
|
void create(SAnimationPropertyConfig* pAnimConfig, AVARDAMAGEPOLICY policy);
|
||||||
|
|
||||||
CBaseAnimatedVariable(const CBaseAnimatedVariable&) = delete;
|
CBaseAnimatedVariable(const CBaseAnimatedVariable&) = delete;
|
||||||
CBaseAnimatedVariable(CBaseAnimatedVariable&&) = delete;
|
CBaseAnimatedVariable(CBaseAnimatedVariable&&) = delete;
|
||||||
@@ -204,11 +207,26 @@ class CAnimatedVariable : public CBaseAnimatedVariable {
|
|||||||
public:
|
public:
|
||||||
CAnimatedVariable() : CBaseAnimatedVariable(typeToANIMATEDVARTYPE<VarType>) {} // dummy var
|
CAnimatedVariable() : CBaseAnimatedVariable(typeToANIMATEDVARTYPE<VarType>) {} // dummy var
|
||||||
|
|
||||||
void create(const VarType& value, SAnimationPropertyConfig* pAnimConfig, void* pWindow, AVARDAMAGEPOLICY policy) {
|
void create(const VarType& value, SAnimationPropertyConfig* pAnimConfig, CWindow* pWindow, AVARDAMAGEPOLICY policy) {
|
||||||
create(pAnimConfig, pWindow, policy);
|
create(pAnimConfig, pWindow, policy);
|
||||||
m_Value = value;
|
m_Value = value;
|
||||||
m_Goal = value;
|
m_Goal = value;
|
||||||
}
|
}
|
||||||
|
void create(const VarType& value, SAnimationPropertyConfig* pAnimConfig, SLayerSurface* pLayer, AVARDAMAGEPOLICY policy) {
|
||||||
|
create(pAnimConfig, pLayer, policy);
|
||||||
|
m_Value = value;
|
||||||
|
m_Goal = value;
|
||||||
|
}
|
||||||
|
void create(const VarType& value, SAnimationPropertyConfig* pAnimConfig, CWorkspace* pWorkspace, AVARDAMAGEPOLICY policy) {
|
||||||
|
create(pAnimConfig, pWorkspace, policy);
|
||||||
|
m_Value = value;
|
||||||
|
m_Goal = value;
|
||||||
|
}
|
||||||
|
void create(const VarType& value, SAnimationPropertyConfig* pAnimConfig, AVARDAMAGEPOLICY policy) {
|
||||||
|
create(pAnimConfig, policy);
|
||||||
|
m_Value = value;
|
||||||
|
m_Goal = value;
|
||||||
|
}
|
||||||
|
|
||||||
using CBaseAnimatedVariable::create;
|
using CBaseAnimatedVariable::create;
|
||||||
|
|
||||||
@@ -261,10 +279,16 @@ class CAnimatedVariable : public CBaseAnimatedVariable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void warp(bool endCallback = true) override {
|
void warp(bool endCallback = true) override {
|
||||||
|
if (m_Value == m_Goal)
|
||||||
|
return;
|
||||||
|
|
||||||
m_Value = m_Goal;
|
m_Value = m_Goal;
|
||||||
|
|
||||||
m_bIsBeingAnimated = false;
|
m_bIsBeingAnimated = false;
|
||||||
|
|
||||||
|
if (m_fUpdateCallback)
|
||||||
|
m_fUpdateCallback(this);
|
||||||
|
|
||||||
if (endCallback)
|
if (endCallback)
|
||||||
onAnimationEnd();
|
onAnimationEnd();
|
||||||
}
|
}
|
||||||
|
@@ -3,12 +3,9 @@
|
|||||||
#include "../Compositor.hpp"
|
#include "../Compositor.hpp"
|
||||||
|
|
||||||
SLayerSurface::SLayerSurface() {
|
SLayerSurface::SLayerSurface() {
|
||||||
alpha.create(g_pConfigManager->getAnimationPropertyConfig("fadeLayers"), nullptr, AVARDAMAGE_ENTIRE);
|
alpha.create(g_pConfigManager->getAnimationPropertyConfig("fadeLayers"), this, AVARDAMAGE_ENTIRE);
|
||||||
realPosition.create(g_pConfigManager->getAnimationPropertyConfig("layers"), nullptr, AVARDAMAGE_ENTIRE);
|
realPosition.create(g_pConfigManager->getAnimationPropertyConfig("layers"), this, AVARDAMAGE_ENTIRE);
|
||||||
realSize.create(g_pConfigManager->getAnimationPropertyConfig("layers"), nullptr, AVARDAMAGE_ENTIRE);
|
realSize.create(g_pConfigManager->getAnimationPropertyConfig("layers"), this, AVARDAMAGE_ENTIRE);
|
||||||
alpha.m_pLayer = this;
|
|
||||||
realPosition.m_pLayer = this;
|
|
||||||
realSize.m_pLayer = this;
|
|
||||||
alpha.registerVar();
|
alpha.registerVar();
|
||||||
realPosition.registerVar();
|
realPosition.registerVar();
|
||||||
realSize.registerVar();
|
realSize.registerVar();
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
#include "../config/ConfigValue.hpp"
|
#include "../config/ConfigValue.hpp"
|
||||||
|
|
||||||
CHyprError::CHyprError() {
|
CHyprError::CHyprError() {
|
||||||
m_fFadeOpacity.create(AVARTYPE_FLOAT, g_pConfigManager->getAnimationPropertyConfig("fadeIn"), nullptr, AVARDAMAGE_NONE);
|
m_fFadeOpacity.create(AVARTYPE_FLOAT, g_pConfigManager->getAnimationPropertyConfig("fadeIn"), AVARDAMAGE_NONE);
|
||||||
m_fFadeOpacity.registerVar();
|
m_fFadeOpacity.registerVar();
|
||||||
|
|
||||||
g_pHookSystem->hookDynamic("focusedMon", [&](void* self, SCallbackInfo& info, std::any param) {
|
g_pHookSystem->hookDynamic("focusedMon", [&](void* self, SCallbackInfo& info, std::any param) {
|
||||||
|
Reference in New Issue
Block a user