summaryrefslogtreecommitdiffstats
path: root/src/Framebuffer.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Framebuffer.hpp')
-rw-r--r--src/Framebuffer.hpp29
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