From 61a8ce6a66643e846406efd4413d415d451294ef Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Sun, 3 Sep 2017 18:46:33 -0300 Subject: [PATCH] Remove obsolete code and hopefully fix VS2013 build --HG-- branch : minor --- src/modules/graphics/opengl/FenceSync.cpp | 61 ----------------------- src/modules/graphics/opengl/FenceSync.h | 42 +--------------- 2 files changed, 1 insertion(+), 102 deletions(-) diff --git a/src/modules/graphics/opengl/FenceSync.cpp b/src/modules/graphics/opengl/FenceSync.cpp index 889a978af..37e075847 100644 --- a/src/modules/graphics/opengl/FenceSync.cpp +++ b/src/modules/graphics/opengl/FenceSync.cpp @@ -81,67 +81,6 @@ void FenceSync::cleanup() } } -BufferSync::~BufferSync() -{ - cleanup(); -} - -void BufferSync::lock(size_t start, size_t length) -{ - Range range = {start, length}; - GLsync sync = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0); - locks.emplace_back(range, sync); -} - -void BufferSync::wait(size_t start, size_t length) -{ - Range range = {start, length}; - int lockcount = (int) locks.size(); - - for (int i = 0; i < lockcount; i++) - { - if (range.overlaps(locks[i].range)) - { - syncWait(locks[i].sync); - glDeleteSync(locks[i].sync); - - locks[i] = locks[lockcount - 1]; - locks.pop_back(); - - --lockcount; - --i; - } - } -} - -void BufferSync::cleanup() -{ - for (const auto &lock : locks) - glDeleteSync(lock.sync); - - locks.clear(); -} - -void BufferSync::syncWait(GLsync sync) -{ - GLbitfield flags = 0; - GLuint64 duration = 0; - - while (true) - { - GLenum status = glClientWaitSync(sync, flags, duration); - - if (status == GL_ALREADY_SIGNALED || status == GL_CONDITION_SATISFIED) - return; - - if (status == GL_WAIT_FAILED) - return; - - flags = GL_SYNC_FLUSH_COMMANDS_BIT; - duration = 1000000000; // 1 second in nanoseconds. - } -} - } // opengl } // graphics } // love diff --git a/src/modules/graphics/opengl/FenceSync.h b/src/modules/graphics/opengl/FenceSync.h index 8106e9936..8b3b3114b 100644 --- a/src/modules/graphics/opengl/FenceSync.h +++ b/src/modules/graphics/opengl/FenceSync.h @@ -38,6 +38,7 @@ class FenceSync { public: + FenceSync() {} ~FenceSync(); bool fence(); @@ -50,47 +51,6 @@ private: }; // FenceSync -class BufferSync -{ -public: - - ~BufferSync(); - - void lock(size_t start, size_t length); - void wait(size_t start, size_t length); - void cleanup(); - -private: - - struct Range - { - size_t offset; - size_t length; - - bool overlaps(const Range &other) const - { - return offset < (other.offset + other.length) - && other.offset < (offset + length); - } - }; - - struct Lock - { - Range range; - GLsync sync; - - Lock(const Range &range, GLsync sync) - : range(range) - , sync(sync) - {} - }; - - void syncWait(GLsync sync); - - std::vector locks; - -}; // BufferSync - } // opengl } // graphics } // love