VolViz
A volume visualization tool
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
Framebuffer.h
Go to the documentation of this file.
1 #ifndef VolViz_Framebuffer_h
2 #define VolViz_Framebuffer_h
3 
4 #include "GLdefs.h"
5 
6 namespace VolViz {
7 namespace Private_ {
8 namespace GL {
9 
11 struct Framebuffer {
12 
15  inline Framebuffer(int) noexcept {}
16 
17  inline Framebuffer() noexcept { glGenFramebuffers(1, &name); }
18 
20 
21  inline Framebuffer(Framebuffer &&rhs) noexcept {
22  using std::swap;
23  swap(name, rhs.name);
24  }
25 
26  inline Framebuffer &operator=(Framebuffer &&rhs) noexcept {
27  using std::swap;
28  swap(name, rhs.name);
29  return *this;
30  }
31 
32  inline void bind(GLenum target) const noexcept {
34  assertGL("Failed to bind FBO");
35  }
36 
37  inline static void unbind(GLenum target) noexcept {
39  }
40 
41  GLuint name = 0;
42 };
43 
44 } // namespace GL
45 } // namespace Private_
46 } // namespace VolViz
47 
48 #endif // VolViz_Framebuffer_h
void bind(GLenum target) const noexcept
Definition: Framebuffer.h:32
void assertGL(char const *txt) noexcept
Definition: Error.h:17
GLenum target
Definition: glad.h:3122
unsigned int GLenum
Definition: glad.h:678
#define glGenFramebuffers
Definition: glad.h:2920
Framebuffer(int) noexcept
Definition: Framebuffer.h:15
unsigned int GLuint
Definition: glad.h:688
RAII wrapper for OpenGL framebuffer objects.
Definition: Framebuffer.h:11
Framebuffer(Framebuffer &&rhs) noexcept
Definition: Framebuffer.h:21
GLuint const GLchar * name
Definition: glad.h:2430
Framebuffer & operator=(Framebuffer &&rhs) noexcept
Definition: Framebuffer.h:26
~Framebuffer()
Definition: Framebuffer.h:19
static void unbind(GLenum target) noexcept
Definition: Framebuffer.h:37
Framebuffer() noexcept
Definition: Framebuffer.h:17
#define glDeleteFramebuffers
Definition: glad.h:2917
#define glBindFramebuffer
Definition: glad.h:2914