diff --git a/src/rhi/gl3_core/gl3_core_rhi.cpp b/src/rhi/gl3_core/gl3_core_rhi.cpp index ce3df3b05..18985ac43 100644 --- a/src/rhi/gl3_core/gl3_core_rhi.cpp +++ b/src/rhi/gl3_core/gl3_core_rhi.cpp @@ -1759,6 +1759,14 @@ Rect GlCoreRhi::get_renderbuffer_size(Handle renderbuffer) return ret; } +uint32_t GlCoreRhi::get_buffer_size(Handle buffer) +{ + SRB2_ASSERT(buffer_slab_.is_valid(buffer)); + auto& buf = buffer_slab_[buffer]; + + return buf.desc.size; +} + void GlCoreRhi::finish() { SRB2_ASSERT(graphics_context_active_ == false); diff --git a/src/rhi/gl3_core/gl3_core_rhi.hpp b/src/rhi/gl3_core/gl3_core_rhi.hpp index 633e43754..8814ac36f 100644 --- a/src/rhi/gl3_core/gl3_core_rhi.hpp +++ b/src/rhi/gl3_core/gl3_core_rhi.hpp @@ -184,6 +184,7 @@ public: virtual TextureDetails get_texture_details(Handle texture) override; virtual Rect get_renderbuffer_size(Handle renderbuffer) override; + virtual uint32_t get_buffer_size(Handle buffer) override; virtual Handle begin_transfer() override; virtual void end_transfer(Handle handle) override; diff --git a/src/rhi/rhi.hpp b/src/rhi/rhi.hpp index f947fa201..aeb62e69c 100644 --- a/src/rhi/rhi.hpp +++ b/src/rhi/rhi.hpp @@ -608,6 +608,7 @@ struct Rhi virtual TextureDetails get_texture_details(Handle texture) = 0; virtual Rect get_renderbuffer_size(Handle renderbuffer) = 0; + virtual uint32_t get_buffer_size(Handle buffer) = 0; virtual Handle begin_transfer() = 0; virtual void end_transfer(Handle handle) = 0;