33 lines
772 B
C++
33 lines
772 B
C++
#pragma once
|
|
|
|
#include "buffer.hpp"
|
|
#include "interfaces/IResizable.hpp"
|
|
#include "Vector2.hpp"
|
|
|
|
namespace TSE::OpenGL
|
|
{
|
|
class FrameBuffer : public buffer, public IResizable
|
|
{
|
|
private:
|
|
uint textureOutputCount = 1;
|
|
uint textureIDs[32] = {0};
|
|
uint depthRboID = 0;
|
|
bool shouldResize = false;
|
|
|
|
public:
|
|
FrameBuffer(const Vector2& size, uint textureCount = 1);
|
|
void Bind() override;
|
|
void Unbind() override;
|
|
~FrameBuffer() override;
|
|
void Resize(Vector2 size);
|
|
void Update();
|
|
uint GetTextureId(uint id = 0) const;
|
|
Vector2 GetSize() const;
|
|
|
|
private:
|
|
void Initialize();
|
|
void LoadFBTexture();
|
|
void CreateFBTexture();
|
|
};
|
|
} // namespace TSE
|