// Copyright (C) 2022 Jérôme "Lynix" Leclercq (lynix680@gmail.com) // This file is part of the "Nazara Engine - OpenGL renderer" // For conditions of distribution and use, see copyright notice in Config.hpp #pragma once #ifndef NAZARA_OPENGLRENDERER_OPENGLFBOFRAMEBUFFER_HPP #define NAZARA_OPENGLRENDERER_OPENGLFBOFRAMEBUFFER_HPP #include #include #include #include #include namespace Nz { class OpenGLDevice; class RenderPass; class Texture; class NAZARA_OPENGLRENDERER_API OpenGLFboFramebuffer final : public OpenGLFramebuffer { public: OpenGLFboFramebuffer(OpenGLDevice& device, const std::vector>& attachments); OpenGLFboFramebuffer(const OpenGLFboFramebuffer&) = delete; OpenGLFboFramebuffer(OpenGLFboFramebuffer&&) noexcept = default; ~OpenGLFboFramebuffer() = default; void Activate() const override; inline const Vector2ui& GetAttachmentSize(std::size_t i) const; std::size_t GetColorBufferCount() const override; const Vector2ui& GetSize() const override; void UpdateDebugName(std::string_view name) override; OpenGLFboFramebuffer& operator=(const OpenGLFboFramebuffer&) = delete; OpenGLFboFramebuffer& operator=(OpenGLFboFramebuffer&&) = delete; private: GL::Framebuffer m_framebuffer; std::size_t m_colorAttachmentCount; std::vector m_attachmentSizes; Vector2ui m_size; }; } #include #endif // NAZARA_OPENGLRENDERER_OPENGLFBOFRAMEBUFFER_HPP