diff options
author | Bartosz Taudul <wolf.pld@gmail.com> | 2018-08-05 17:45:34 +0300 |
---|---|---|
committer | Bartosz Taudul <wolf.pld@gmail.com> | 2018-08-05 17:45:34 +0300 |
commit | 1d0203ac17eeb454ddc53715c508ec226fec5afe (patch) | |
tree | fbbb3dec7ce12e557fbe45e4ef0ba9a9f7e747d5 /server/TracyDecayValue.hpp | |
parent | 44e027ad112fb9171084eec78b96667b3038ffbc (diff) |
Abstracted away one-frame-decay values.
Diffstat (limited to 'server/TracyDecayValue.hpp')
-rw-r--r-- | server/TracyDecayValue.hpp | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/server/TracyDecayValue.hpp b/server/TracyDecayValue.hpp new file mode 100644 index 00000000..746a9b65 --- /dev/null +++ b/server/TracyDecayValue.hpp @@ -0,0 +1,47 @@ +#ifndef __TRACYDECAYVALUE_HPP__ +#define __TRACYDECAYVALUE_HPP__ + +#include "../common/TracyForceInline.hpp" + +namespace tracy +{ + +template<typename T> +class DecayValue +{ +public: + DecayValue( const T& init ) + : m_value( init ) + , m_active( false ) + { + } + + tracy_force_inline operator const T& () const { return m_value; } + + tracy_force_inline DecayValue& operator=( const T& value ) + { + m_value = value; + m_active = true; + return *this; + } + + tracy_force_inline void Decay( const T& value ) + { + if( m_active ) + { + m_active = false; + } + else + { + m_value = value; + } + } + +private: + T m_value; + bool m_active; +}; + +} + +#endif |