Grindstone Game Engine
v0.2.0
An open source game engine and toolkit.
Toggle main menu visibility
Loading...
Searching...
No Matches
GLFramebuffer.hpp
1
#pragma once
2
3
#include <Common/Graphics/Framebuffer.hpp>
4
#include <Common/Graphics/DLLDefs.hpp>
5
6
namespace
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
}
Grindstone::GraphicsAPI::Framebuffer
Definition
Framebuffer.hpp:16
Grindstone::GraphicsAPI::Image
Definition
Image.hpp:49
Grindstone::GraphicsAPI::RenderPass
Definition
RenderPass.hpp:10
Grindstone::GraphicsAPI::OpenGL
Definition
GLBuffer.hpp:5
Grindstone::GraphicsAPI::Framebuffer::CreateInfo
Definition
Framebuffer.hpp:24
plugins
Grindstone.RHI.OpenGL
include
GLFramebuffer.hpp
Generated by
1.17.0