summaryrefslogtreecommitdiff
path: root/src/helpers/sync/SyncReleaser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/helpers/sync/SyncReleaser.cpp')
-rw-r--r--src/helpers/sync/SyncReleaser.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/helpers/sync/SyncReleaser.cpp b/src/helpers/sync/SyncReleaser.cpp
new file mode 100644
index 00000000..198495ab
--- /dev/null
+++ b/src/helpers/sync/SyncReleaser.cpp
@@ -0,0 +1,25 @@
+#include "SyncReleaser.hpp"
+#include "SyncTimeline.hpp"
+#include "../../render/OpenGL.hpp"
+
+CSyncReleaser::CSyncReleaser(WP<CSyncTimeline> timeline_, uint64_t point_) : timeline(timeline_), point(point_) {
+ ;
+}
+
+CSyncReleaser::~CSyncReleaser() {
+ if (timeline.expired())
+ return;
+
+ if (sync)
+ timeline->importFromSyncFileFD(point, sync->fd());
+ else
+ timeline->signal(point);
+}
+
+void CSyncReleaser::addReleaseSync(SP<CEGLSync> sync_) {
+ sync = sync_;
+}
+
+void CSyncReleaser::drop() {
+ timeline.reset();
+} \ No newline at end of file