Skip to content

Commit

Permalink
Add gfx_api::buffer::current_buffer_size()
Browse files Browse the repository at this point in the history
  • Loading branch information
past-due committed Nov 2, 2023
1 parent 9fd8ec4 commit 866e733
Show file tree
Hide file tree
Showing 7 changed files with 20 additions and 0 deletions.
2 changes: 2 additions & 0 deletions lib/ivis_opengl/gfx_api.h
Expand Up @@ -160,6 +160,8 @@ namespace gfx_api
// (i.e. Don't re-use a buffer instance for different data in the same frame - use separate buffer instances.)
virtual void update(const size_t& start, const size_t& size, const void* data, const update_flag flag = update_flag::none) = 0;

virtual size_t current_buffer_size() = 0;

virtual void bind() = 0;

virtual ~buffer() {};
Expand Down
5 changes: 5 additions & 0 deletions lib/ivis_opengl/gfx_api_gl.cpp
Expand Up @@ -622,6 +622,11 @@ void gl_buffer::update(const size_t & start, const size_t & size, const void * d
glBindBuffer(to_gl(usage), 0);
}

size_t gl_buffer::current_buffer_size()
{
return buffer_size;
}

// MARK: gl_pipeline_state_object

struct program_data
Expand Down
1 change: 1 addition & 0 deletions lib/ivis_opengl/gfx_api_gl.h
Expand Up @@ -147,6 +147,7 @@ struct gl_buffer final : public gfx_api::buffer
void unbind();
virtual void upload(const size_t & size, const void * data) override;
virtual void update(const size_t & start, const size_t & size, const void * data, const update_flag flag = update_flag::none) override;
virtual size_t current_buffer_size() override;
};

struct gl_pipeline_id final : public gfx_api::pipeline_state_object
Expand Down
5 changes: 5 additions & 0 deletions lib/ivis_opengl/gfx_api_null.cpp
Expand Up @@ -158,6 +158,11 @@ void null_buffer::update(const size_t & start, const size_t & size, const void *
// no-op
}

size_t null_buffer::current_buffer_size()
{
return buffer_size;
}

// MARK: null_pipeline_state_object

null_pipeline_state_object::null_pipeline_state_object(const gfx_api::state_description& _desc, const std::vector<gfx_api::vertex_buffer>& _vertex_buffer_desc)
Expand Down
1 change: 1 addition & 0 deletions lib/ivis_opengl/gfx_api_null.h
Expand Up @@ -81,6 +81,7 @@ struct null_buffer final : public gfx_api::buffer
void bind() override;
virtual void upload(const size_t & size, const void * data) override;
virtual void update(const size_t & start, const size_t & size, const void * data, const update_flag flag = update_flag::none) override;
virtual size_t current_buffer_size() override;
};

struct null_pipeline_state_object final : public gfx_api::pipeline_state_object
Expand Down
5 changes: 5 additions & 0 deletions lib/ivis_opengl/gfx_api_vk.cpp
Expand Up @@ -1907,6 +1907,11 @@ void VkBuf::update(const size_t & start, const size_t & size, const void * data,
cmdBuffer->copyBuffer(stagingMemory.buffer, object, copyRegions, root->vkDynLoader);
}

size_t VkBuf::current_buffer_size()
{
return buffer_size;
}

void VkBuf::bind() {}

// MARK: VkTexture
Expand Down
1 change: 1 addition & 0 deletions lib/ivis_opengl/gfx_api_vk.h
Expand Up @@ -435,6 +435,7 @@ struct VkBuf final : public gfx_api::buffer

virtual void upload(const size_t & size, const void * data) override;
virtual void update(const size_t & start, const size_t & size, const void * data, const update_flag flag = update_flag::none) override;
virtual size_t current_buffer_size() override;

virtual void bind() override;

Expand Down

0 comments on commit 866e733

Please sign in to comment.