From cdd79e605c2ecc4d28548cb67ed61f1366e9a0fb Mon Sep 17 00:00:00 2001 From: milek7 Date: Sun, 21 Oct 2018 00:38:39 +0200 Subject: [PATCH] add gl::fence --- CMakeLists.txt | 1 + gl/fence.cpp | 18 ++++++++++++++++++ gl/fence.h | 15 +++++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 gl/fence.cpp create mode 100644 gl/fence.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 798a6646..3628c5d7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -108,6 +108,7 @@ set(SOURCES "gl/cubemap.cpp" "gl/glsl_common.cpp" "gl/buffer.cpp" +"gl/fence.cpp" "imgui/imgui.cpp" "imgui/imgui_demo.cpp" diff --git a/gl/fence.cpp b/gl/fence.cpp new file mode 100644 index 00000000..47650068 --- /dev/null +++ b/gl/fence.cpp @@ -0,0 +1,18 @@ +#include "fence.h" + +gl::fence::fence() +{ + sync = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0); +} + +gl::fence::~fence() +{ + glDeleteSync(sync); +} + +bool gl::fence::is_signalled() +{ + GLint val; + glGetSynciv(sync, GL_SYNC_STATUS, 1, &val); + return val == GL_SIGNALED; +} diff --git a/gl/fence.h b/gl/fence.h new file mode 100644 index 00000000..cc5cd09e --- /dev/null +++ b/gl/fence.h @@ -0,0 +1,15 @@ +#include "object.h" + +namespace gl +{ + class fence + { + GLsync sync; + + public: + fence(); + ~fence(); + + bool is_signalled(); + }; +}