summaryrefslogblamecommitdiffstats
path: root/src/Framebuffer.hpp
blob: 6e0d33edac4a291a8afe4f6bf8e7298994d13484 (plain) (tree)




























                                                                                            
#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);
};