summaryrefslogtreecommitdiffstats
path: root/src/libs/dxvk-native-1.9.2a/src/dxvk/dxvk_signal.h
blob: fa99f7810dc67bad839222c4d3e4d81554fe5c1a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#pragma once

#include "dxvk_include.h"

namespace dxvk {
  
  /**
   * \brief Signal tracker
   */
  class DxvkSignalTracker {
    
  public:
    
    DxvkSignalTracker();
    ~DxvkSignalTracker();
    
    /**
     * \brief Adds a signal to track
     *
     * \param [in] signal The signal
     * \param [in] value Target value
     */
    void add(const Rc<sync::Signal>& signal, uint64_t value);
    
    /**
     * \brief Notifies tracked signals
     */
    void notify();
    
    /**
     * \brief Resets signal tracker
     */
    void reset();
    
  private:
    
    std::vector<std::pair<Rc<sync::Signal>, uint64_t>> m_signals;
    
  };
  
}