mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-10-17 09:49:19 +02:00
23 lines
581 B
C++
23 lines
581 B
C++
module;
|
|
#include "glad/glad.h"
|
|
|
|
module eu07.gl.fence;
|
|
|
|
gl::fence::fence()
|
|
{
|
|
sync = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
|
|
}
|
|
|
|
gl::fence::~fence()
|
|
{
|
|
glDeleteSync(sync);
|
|
}
|
|
|
|
bool gl::fence::is_signalled()
|
|
{
|
|
// glClientWaitSync is faster than glGetSynciv. glGetSynciv probably tries to synchronize cpu and gpu
|
|
// https://stackoverflow.com/questions/34601376/which-to-use-for-opengl-client-side-waiting-glgetsynciv-vs-glclientwaitsync
|
|
GLenum r = glClientWaitSync(sync, GL_SYNC_FLUSH_COMMANDS_BIT, 1);
|
|
return r == GL_ALREADY_SIGNALED || r == GL_CONDITION_SATISFIED;
|
|
}
|