diff options
Diffstat (limited to 'yage')
-rw-r--r-- | yage/data/renderbatch.h | 2 | ||||
-rw-r--r-- | yage/render/spritebatch.cpp | 5 |
2 files changed, 4 insertions, 3 deletions
diff --git a/yage/data/renderbatch.h b/yage/data/renderbatch.h index 0d034035..51521ec5 100644 --- a/yage/data/renderbatch.h +++ b/yage/data/renderbatch.h @@ -9,7 +9,7 @@ struct RenderBatch { GLuint texture; RenderBatch(GLint offset_i, GLsizei num_vertices_i, GLuint texture_i) - : offset(offset_i), num_vertices(num_vertices_i), texture(texture_i = 0) + : offset(offset_i), num_vertices(num_vertices_i), texture(texture_i) { } }; diff --git a/yage/render/spritebatch.cpp b/yage/render/spritebatch.cpp index fb6c3d78..c1bf4a28 100644 --- a/yage/render/spritebatch.cpp +++ b/yage/render/spritebatch.cpp @@ -9,6 +9,7 @@ #include "spritebatch.h" #include <algorithm> +#include <iostream> #include <stdexcept> namespace yage @@ -88,10 +89,9 @@ void SpriteBatch::draw(const glm::vec4 &destination_rect, void SpriteBatch::render() { // sort and create render batches - glBindVertexArray(vao_); sortGlyphs(); createRenderBatches(); - + glBindVertexArray(vao_); for (auto &&batch : render_batches_) { glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, batch.texture); @@ -155,6 +155,7 @@ void SpriteBatch::createRenderBatches() glyph_ptrs_[i - 1]->texture()))) { render_batches_.emplace_back(i * NUM_VERTICES, NUM_VERTICES, glyph_ptrs_[i]->texture()); + } else { render_batches_.back().num_vertices += NUM_VERTICES; } |