summaryrefslogtreecommitdiff
path: root/src/helpers/sync/SyncReleaser.cpp
blob: 198495ab6da46414edb6bcdba568c84686db19b8 (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
#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();
}