Skip to content

File RenderBuffer.h

File List > buffers > RenderBuffer.h

Go to the documentation of this file

#pragma once
#include "Texture.h"

class RenderBuffer
{
private:
    GLuint rb_ID     = 0;                      
    GLuint rb_format = GL_DEPTH24_STENCIL8;    
    GLuint rb_w      = 0;                      
    GLuint rb_h      = 0;                      

    void _delRB();

    void _deepCopyFrom(const RenderBuffer& rb);

public:

    RenderBuffer();
    RenderBuffer(GLuint _type);
    ~RenderBuffer();

    RenderBuffer(const RenderBuffer& rb);

    RenderBuffer(RenderBuffer&& rb) noexcept;

    RenderBuffer& operator=(const RenderBuffer& rb);

    RenderBuffer& operator=(RenderBuffer&& rb) noexcept;

public:

    void BindRenderBuffer() const;
    void UnbindRenderBuffer() const;

    void Resize(GLuint w, GLuint h);
    void Resize(const glm::vec2& size);

    GLuint GetRenderBufferID() const { return rb_ID; }
};