Make gfx::mesh only bind index buffer as GL_ELEMENT_ARRAY_BUFFER, in accordance with WebGL restrictions
This commit is contained in:
parent
4e2aa5f577
commit
f75c04d988
2 changed files with 7 additions and 13 deletions
|
|
@ -195,11 +195,11 @@ namespace psemek::gfx
|
||||||
GLenum index_type() const { return info_.index_type_; }
|
GLenum index_type() const { return info_.index_type_; }
|
||||||
|
|
||||||
buffer & vertex_buffer() { return vertex_buffer_; }
|
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 & instance_buffer() { return instance_buffer_; }
|
||||||
|
|
||||||
buffer const & vertex_buffer() const { return vertex_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_; }
|
buffer const & instance_buffer() const { return instance_buffer_; }
|
||||||
|
|
||||||
// Drawing commands
|
// Drawing commands
|
||||||
|
|
@ -211,7 +211,7 @@ namespace psemek::gfx
|
||||||
private:
|
private:
|
||||||
array array_;
|
array array_;
|
||||||
buffer vertex_buffer_ = buffer::null();
|
buffer vertex_buffer_ = buffer::null();
|
||||||
buffer index_buffer_ = buffer::null();
|
basic_buffer<gl::ELEMENT_ARRAY_BUFFER> index_buffer_ = basic_buffer<gl::ELEMENT_ARRAY_BUFFER>::null();
|
||||||
buffer instance_buffer_ = buffer::null();
|
buffer instance_buffer_ = buffer::null();
|
||||||
|
|
||||||
struct mesh_info
|
struct mesh_info
|
||||||
|
|
@ -298,11 +298,8 @@ namespace psemek::gfx
|
||||||
assert((index_count % (*n)) == 0);
|
assert((index_count % (*n)) == 0);
|
||||||
|
|
||||||
if (!index_buffer_)
|
if (!index_buffer_)
|
||||||
{
|
index_buffer_ = {};
|
||||||
index_buffer_ = buffer{};
|
array_.bind();
|
||||||
array_.bind();
|
|
||||||
gl::BindBuffer(gl::ELEMENT_ARRAY_BUFFER, index_buffer_.id());
|
|
||||||
}
|
|
||||||
index_buffer_.load(indices, index_count, usage);
|
index_buffer_.load(indices, index_count, usage);
|
||||||
info_.index_count_ = index_count;
|
info_.index_count_ = index_count;
|
||||||
info_.indexed_ = true;
|
info_.indexed_ = true;
|
||||||
|
|
|
||||||
|
|
@ -144,11 +144,8 @@ namespace psemek::gfx
|
||||||
assert(vertex_buffer_);
|
assert(vertex_buffer_);
|
||||||
|
|
||||||
if (!index_buffer_)
|
if (!index_buffer_)
|
||||||
{
|
index_buffer_ = {};
|
||||||
index_buffer_ = buffer{};
|
array_.bind();
|
||||||
array_.bind();
|
|
||||||
gl::BindBuffer(gl::ELEMENT_ARRAY_BUFFER, index_buffer_.id());
|
|
||||||
}
|
|
||||||
vertex_buffer_.load(vertices, vertex_size * vertex_count, usage);
|
vertex_buffer_.load(vertices, vertex_size * vertex_count, usage);
|
||||||
index_buffer_.load(indices, index_size(index_type) * index_count, usage);
|
index_buffer_.load(indices, index_size(index_type) * index_count, usage);
|
||||||
info_.vertex_count_ = vertex_count;
|
info_.vertex_count_ = vertex_count;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue