Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
Framebuffer.hpp
1#pragma once
2
3#include "RenderPass.hpp"
4#include "Formats.hpp"
5#include <vector>
6#include <stdint.h>
7
8namespace Grindstone::GraphicsAPI {
9 class RenderPass;
10 class Image;
11
17 public:
19 uint32_t width;
20 uint32_t height;
21 RenderPass* renderPass = nullptr;
22 };
23
24 struct CreateInfo {
25 const char* debugName;
26 RenderPass* renderPass;
27 uint32_t width;
28 uint32_t height;
29
30 Image** renderTargets;
31 uint32_t renderTargetCount;
32 Image* depthTarget;
33 bool isCubemap = false;
34 };
35
36 virtual RenderPass* GetRenderPass() const = 0;
37 virtual void Resize(uint32_t width, uint32_t height) = 0;
38 virtual void Clear(ClearMode mask) = 0;
39 virtual void BindTextures(int i) = 0;
40 virtual void Bind() = 0;
41 virtual void BindWrite() = 0;
42 virtual void BindRead() = 0;
43 virtual void Unbind() = 0;
44 virtual uint32_t GetWidth() const = 0;
45 virtual uint32_t GetHeight() const = 0;
46 virtual uint32_t GetRenderTargetCount() const = 0;
47 virtual Image* GetRenderTarget(uint32_t index) const = 0;
48 virtual Image* GetDepthStencilTarget() const = 0;
49 virtual ~Framebuffer() {};
50 };
51}
Definition Framebuffer.hpp:16
Definition Image.hpp:48
Definition RenderPass.hpp:27