Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
GLFramebuffer.hpp
1#pragma once
2
3#include <Common/Graphics/Framebuffer.hpp>
4#include <Common/Graphics/DLLDefs.hpp>
5
6namespace Grindstone::GraphicsAPI::OpenGL {
7 class Framebuffer : public Grindstone::GraphicsAPI::Framebuffer {
8 public:
9 Framebuffer(const CreateInfo& createInfo);
10 ~Framebuffer();
11
12 virtual void Blit(uint32_t i, uint32_t x, uint32_t y, uint32_t w, uint32_t h);
13
14 // Inherited via Framebuffer
15 virtual RenderPass* GetRenderPass() const override;
16 virtual void Clear(ClearMode mask) override;
17 virtual void Resize(uint32_t newWidth, uint32_t newHeight) override;
18 virtual void Bind() override;
19 virtual void BindWrite() override;
20 virtual void BindRead() override;
21 virtual void BindTextures(int i) override;
22 virtual void Unbind() override;
23 virtual uint32_t GetWidth() const override;
24 virtual uint32_t GetHeight() const override;
25 virtual uint32_t GetRenderTargetCount() const override;
26 virtual Grindstone::GraphicsAPI::Image* GetRenderTarget(uint32_t index) const override;
27 virtual Grindstone::GraphicsAPI::Image* GetDepthStencilTarget() const override;
28 private:
29 void CreateFramebuffer();
30 private:
31 std::string debugName;
32 GLuint framebuffer = 0;
33 GLsizei numTotalRenderTargets = 0;
34 Grindstone::GraphicsAPI::RenderPass* renderPass = nullptr;
35 std::vector<Grindstone::GraphicsAPI::Image*> colorAttachments;
36 Grindstone::GraphicsAPI::Image* depthTarget = nullptr;
37 uint32_t width;
38 uint32_t height;
39 };
40}
Definition Framebuffer.hpp:16
Definition Image.hpp:48
Definition RenderPass.hpp:27