Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/wolfpld/tracy.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBartosz Taudul <wolf.pld@gmail.com>2018-08-05 17:45:34 +0300
committerBartosz Taudul <wolf.pld@gmail.com>2018-08-05 17:45:34 +0300
commit1d0203ac17eeb454ddc53715c508ec226fec5afe (patch)
treefbbb3dec7ce12e557fbe45e4ef0ba9a9f7e747d5 /server/TracyDecayValue.hpp
parent44e027ad112fb9171084eec78b96667b3038ffbc (diff)
Abstracted away one-frame-decay values.
Diffstat (limited to 'server/TracyDecayValue.hpp')
-rw-r--r--server/TracyDecayValue.hpp47
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