2018-02-15 13:26:05 +01:00
|
|
|
#include "dxvk_event.h"
|
|
|
|
|
|
|
|
namespace dxvk {
|
|
|
|
|
|
|
|
DxvkEvent:: DxvkEvent() { }
|
|
|
|
DxvkEvent::~DxvkEvent() { }
|
|
|
|
|
|
|
|
|
|
|
|
uint32_t DxvkEvent::reset() {
|
|
|
|
std::unique_lock<std::mutex> lock(m_mutex);
|
|
|
|
|
|
|
|
m_status = DxvkEventStatus::Reset;
|
|
|
|
return ++m_revision;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2018-02-18 22:57:45 +01:00
|
|
|
void DxvkEvent::signal(uint32_t revision) {
|
2018-02-15 13:26:05 +01:00
|
|
|
std::unique_lock<std::mutex> lock(m_mutex);
|
|
|
|
|
|
|
|
if (m_revision == revision) {
|
|
|
|
m_status = DxvkEventStatus::Signaled;
|
|
|
|
m_signal.notify_one();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
DxvkEventStatus DxvkEvent::getStatus() {
|
|
|
|
std::unique_lock<std::mutex> lock(m_mutex);
|
|
|
|
return m_status;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|