#pragma once #include "typedefs.hpp" #include class Texture; class Framebuffer { uint fbo; uint depth; uint width; uint height; uint format; std::unique_ptr texture; public: Framebuffer(uint fbo, uint depth, std::unique_ptr texture); Framebuffer(uint width, uint height, bool alpha=false); ~Framebuffer(); /// @brief Use framebuffer void bind(); /// @brief Stop using framebuffer void unbind(); /// @brief Update framebuffer texture size /// @param width new width /// @param height new height void resize(uint width, uint height); /// @brief Get framebuffer color attachment Texture* getTexture() const; /// @brief Get framebuffer width uint getWidth() const; /// @brief Get framebuffer height uint getHeight() const; };