texture getters
parent
e9e3622963
commit
f2a81237a8
|
@ -1,6 +1,6 @@
|
||||||
cmake_minimum_required(VERSION 3.25)
|
cmake_minimum_required(VERSION 3.25)
|
||||||
|
|
||||||
set(BLT_GRAPHICS_VERSION 0.9.14)
|
set(BLT_GRAPHICS_VERSION 0.9.15)
|
||||||
set(BLT_GRAPHICS_TEST_VERSION 0.0.1)
|
set(BLT_GRAPHICS_TEST_VERSION 0.0.1)
|
||||||
|
|
||||||
project(BLT_WITH_GRAPHICS VERSION ${BLT_GRAPHICS_VERSION})
|
project(BLT_WITH_GRAPHICS VERSION ${BLT_GRAPHICS_VERSION})
|
||||||
|
|
|
@ -41,8 +41,9 @@ namespace blt::gfx
|
||||||
private:
|
private:
|
||||||
GLuint rboID;
|
GLuint rboID;
|
||||||
GLuint storage_type;
|
GLuint storage_type;
|
||||||
|
blt::i32 width_, height_;
|
||||||
public:
|
public:
|
||||||
rbo_t(): rboID(0), storage_type(0)
|
rbo_t(): rboID(0), storage_type(0), width_(-1), height_(-1)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
void create();
|
void create();
|
||||||
|
@ -51,7 +52,7 @@ namespace blt::gfx
|
||||||
|
|
||||||
void setStorage(GLuint storage_type, blt::i32 width, blt::i32 height);
|
void setStorage(GLuint storage_type, blt::i32 width, blt::i32 height);
|
||||||
|
|
||||||
void updateStorage(blt::i32 width, blt::i32 height) const;
|
void updateStorage(blt::i32 width, blt::i32 height);
|
||||||
|
|
||||||
static void unbind();
|
static void unbind();
|
||||||
|
|
||||||
|
@ -96,6 +97,9 @@ namespace blt::gfx
|
||||||
// this function takes ownership of the render buffer
|
// this function takes ownership of the render buffer
|
||||||
void attachRenderBuffer(rbo_t rbo, attachment_t attachment);
|
void attachRenderBuffer(rbo_t rbo, attachment_t attachment);
|
||||||
|
|
||||||
|
void blitTexture(const fbo_t& draw, blt::i32 x1_offset = 0, blt::i32 y1_offset = 0, blt::i32 x2_offset = 0, blt::i32 y2_offset = 0);
|
||||||
|
void blitDepth(fbo_t draw, blt::i32 x1_offset = 0, blt::i32 y1_offset = 0, blt::i32 x2_offset = 0, blt::i32 y2_offset = 0);
|
||||||
|
|
||||||
static bool validate();
|
static bool validate();
|
||||||
|
|
||||||
static void unbind();
|
static void unbind();
|
||||||
|
|
|
@ -166,6 +166,16 @@ namespace blt::gfx
|
||||||
virtual void updateSize(blt::i32, blt::i32)
|
virtual void updateSize(blt::i32, blt::i32)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
[[nodiscard]] int getHeight() const
|
||||||
|
{
|
||||||
|
return m_height;
|
||||||
|
}
|
||||||
|
|
||||||
|
[[nodiscard]] int getWidth() const
|
||||||
|
{
|
||||||
|
return m_width;
|
||||||
|
}
|
||||||
|
|
||||||
virtual ~texture_gl()
|
virtual ~texture_gl()
|
||||||
{
|
{
|
||||||
glDeleteTextures(1, &textureID);
|
glDeleteTextures(1, &textureID);
|
||||||
|
|
|
@ -38,8 +38,10 @@ namespace blt::gfx
|
||||||
glDeleteRenderbuffers(1, &rboID);
|
glDeleteRenderbuffers(1, &rboID);
|
||||||
}
|
}
|
||||||
|
|
||||||
void rbo_t::updateStorage(blt::i32 width, blt::i32 height) const
|
void rbo_t::updateStorage(blt::i32 width, blt::i32 height)
|
||||||
{
|
{
|
||||||
|
width_ = width;
|
||||||
|
height_ = height;
|
||||||
glRenderbufferStorage(GL_RENDERBUFFER, storage_type, width, height);
|
glRenderbufferStorage(GL_RENDERBUFFER, storage_type, width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -114,6 +116,23 @@ namespace blt::gfx
|
||||||
texture->updateSize(width, height);
|
texture->updateSize(width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void fbo_t::blitTexture(const fbo_t& draw, blt::i32 x1_offset, blt::i32 y1_offset, blt::i32 x2_offset, blt::i32 y2_offset)
|
||||||
|
{
|
||||||
|
if (texture_buffers.empty())
|
||||||
|
{
|
||||||
|
BLT_ERROR("Trying to blit texture with no texture attached!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
glBindFramebuffer(GL_READ_FRAMEBUFFER, fboID);
|
||||||
|
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, draw.fboID);
|
||||||
|
//glBlitFramebuffer(x1_offset, y1_offset, texture_buffers[0].)
|
||||||
|
}
|
||||||
|
|
||||||
|
void fbo_t::blitDepth(fbo_t draw, blt::i32 x1_offset, blt::i32 y1_offset, blt::i32 x2_offset, blt::i32 y2_offset)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
fbo_t fbo_t::make_render_texture(blt::i32 width, blt::i32 height)
|
fbo_t fbo_t::make_render_texture(blt::i32 width, blt::i32 height)
|
||||||
{
|
{
|
||||||
fbo_t fbo;
|
fbo_t fbo;
|
||||||
|
|
Loading…
Reference in New Issue