diff --git a/libs/gfx/include/psemek/gfx/mesh.hpp b/libs/gfx/include/psemek/gfx/mesh.hpp index 89d37fc1..52153bdb 100644 --- a/libs/gfx/include/psemek/gfx/mesh.hpp +++ b/libs/gfx/include/psemek/gfx/mesh.hpp @@ -195,11 +195,11 @@ namespace psemek::gfx GLenum index_type() const { return info_.index_type_; } buffer & vertex_buffer() { return vertex_buffer_; } - buffer & index_buffer() { return index_buffer_; } + auto & index_buffer() { return index_buffer_; } buffer & instance_buffer() { return instance_buffer_; } buffer const & vertex_buffer() const { return vertex_buffer_; } - buffer const & index_buffer() const { return index_buffer_; } + auto const & index_buffer() const { return index_buffer_; } buffer const & instance_buffer() const { return instance_buffer_; } // Drawing commands @@ -211,7 +211,7 @@ namespace psemek::gfx private: array array_; buffer vertex_buffer_ = buffer::null(); - buffer index_buffer_ = buffer::null(); + basic_buffer index_buffer_ = basic_buffer::null(); buffer instance_buffer_ = buffer::null(); struct mesh_info @@ -298,11 +298,8 @@ namespace psemek::gfx assert((index_count % (*n)) == 0); if (!index_buffer_) - { - index_buffer_ = buffer{}; - array_.bind(); - gl::BindBuffer(gl::ELEMENT_ARRAY_BUFFER, index_buffer_.id()); - } + index_buffer_ = {}; + array_.bind(); index_buffer_.load(indices, index_count, usage); info_.index_count_ = index_count; info_.indexed_ = true; diff --git a/libs/gfx/source/mesh.cpp b/libs/gfx/source/mesh.cpp index 455225b0..6cb2afa7 100644 --- a/libs/gfx/source/mesh.cpp +++ b/libs/gfx/source/mesh.cpp @@ -144,11 +144,8 @@ namespace psemek::gfx assert(vertex_buffer_); if (!index_buffer_) - { - index_buffer_ = buffer{}; - array_.bind(); - gl::BindBuffer(gl::ELEMENT_ARRAY_BUFFER, index_buffer_.id()); - } + index_buffer_ = {}; + array_.bind(); vertex_buffer_.load(vertices, vertex_size * vertex_count, usage); index_buffer_.load(indices, index_size(index_type) * index_count, usage); info_.vertex_count_ = vertex_count;