globjects  1.0.0.000000000000
Strict OpenGL objects wrapper.
Sync.h
Go to the documentation of this file.
1
2#pragma once
3
4#include <glbinding/gl/types.h>
5
7
8#include <globjects/globjects_api.h>
9
10
11namespace globjects
12{
13
14
15class GLOBJECTS_API Sync : public Referenced
16{
17 friend class AbstractObjectNameImplementation;
18
19public:
20 static Sync * fence(gl::GLenum condition);
21
22 virtual ~Sync();
23
24 gl::GLenum clientWait(gl::SyncObjectMask flags, gl::GLuint64 timeout);
25 void wait(gl::GLuint64 timeout);
26
27 void get(gl::GLenum pname, gl::GLsizei bufsize, gl::GLsizei * length, gl::GLint * values);
28 gl::GLint get(gl::GLenum pname);
29
30 gl::GLsync sync() const;
31
32protected:
33 Sync(gl::GLsync sync);
34
35 void wait(gl::UnusedMask flags, gl::GLuint64 timeout);
36
37 static gl::GLsync fenceSync(gl::GLenum condition, gl::UnusedMask flags);
38 static Sync * fence(gl::GLenum condition, gl::UnusedMask flags);
39
40protected:
41 gl::GLsync m_sync;
42 mutable void * m_objectLabelState;
43};
44
45
46} // namespace globjects
Superclass for all classes that use reference counting in globjects.
Definition: Referenced.h:23
Definition: Sync.h:16
void * m_objectLabelState
Definition: Sync.h:42
gl::GLenum clientWait(gl::SyncObjectMask flags, gl::GLuint64 timeout)
virtual ~Sync()
static Sync * fence(gl::GLenum condition)
void get(gl::GLenum pname, gl::GLsizei bufsize, gl::GLsizei *length, gl::GLint *values)
static Sync * fence(gl::GLenum condition, gl::UnusedMask flags)
gl::GLint get(gl::GLenum pname)
static gl::GLsync fenceSync(gl::GLenum condition, gl::UnusedMask flags)
gl::GLsync sync() const
void wait(gl::UnusedMask flags, gl::GLuint64 timeout)
Sync(gl::GLsync sync)
void wait(gl::GLuint64 timeout)
gl::GLsync m_sync
Definition: Sync.h:41
Contains all the classes that wrap OpenGL functionality.