diff options
Diffstat (limited to 'src/Framebuffer.hpp')
-rw-r--r-- | src/Framebuffer.hpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/Framebuffer.hpp b/src/Framebuffer.hpp new file mode 100644 index 0000000..6e0d33e --- /dev/null +++ b/src/Framebuffer.hpp @@ -0,0 +1,29 @@ +#pragma once + +#include <gl/glew.h> + +class Framebuffer { + unsigned int width, height; + GLuint fbo, texColor = 0, rboDepthStencil = 0; +public: + Framebuffer(unsigned int width, unsigned int height, bool createDepthStencilBuffer); + ~Framebuffer(); + Framebuffer(const Framebuffer&) = delete; + Framebuffer(Framebuffer &&) = delete; + Framebuffer &operator=(const Framebuffer &) = delete; + Framebuffer &operator=(Framebuffer &&) = delete; + + void Activate(); + + void RenderTo(Framebuffer &target); + + void Resize(unsigned int newWidth, unsigned int newHeight); + + inline GLuint GetColor() { + return texColor; + } + + static Framebuffer &GetDefault(); + + void Clear(bool color = true, bool depth = true, bool stencil = true); +};
\ No newline at end of file |