diff options
Diffstat (limited to 'yage/render/spritebatch.h')
-rw-r--r-- | yage/render/spritebatch.h | 60 |
1 files changed, 34 insertions, 26 deletions
diff --git a/yage/render/spritebatch.h b/yage/render/spritebatch.h index 35d9a1b1..fb9f6337 100644 --- a/yage/render/spritebatch.h +++ b/yage/render/spritebatch.h @@ -9,7 +9,6 @@ #ifndef YAGE_SPRITE_BATCH_H #define YAGE_SPRITE_BATCH_H -#include "../data/renderbatch.h" #include "../data/vertex.h" #include "batch.h" @@ -21,33 +20,42 @@ namespace yage { -class SpriteBatch; +namespace details +{ + +struct RenderBatch { + GLint offset; + GLsizei num_vertices; + GLuint texture; + + RenderBatch(GLint offset_i, GLsizei num_vertices_i, GLuint texture_i) + : offset(offset_i), num_vertices(num_vertices_i), texture(texture_i) + { + } +}; /** Glyph with information of the texture. */ -class Glyph -{ -private: - GLuint texture_; - float depth_; - Vertex top_left_; - Vertex top_right_; - Vertex bottom_right_; - Vertex bottom_left_; - -public: - Glyph(GLuint texture, float depth, const Vertex &top_left, - const Vertex &top_right, const Vertex &bottom_right, - const Vertex &bottom_left); - - GLuint texture() const { return texture_; } - float depth() const { return depth_; } - Vertex top_left() const { return top_left_; } - Vertex top_right() const { return top_right_; } - Vertex bottom_right() const { return bottom_right_; } - Vertex bottom_left() const { return bottom_left_; } +struct Glyph { + GLuint texture; + float depth; + Vertex top_left; + Vertex top_right; + Vertex bottom_right; + Vertex bottom_left; + + Glyph(GLuint texture_i, float depth_i, const Vertex &top_left_i, + const Vertex &top_right_i, const Vertex &bottom_right_i, + const Vertex &bottom_left_i) + : texture(texture_i), depth(depth_i), top_left(top_left_i), + top_right(top_right_i), bottom_right(bottom_right_i), + bottom_left(bottom_left_i) + { + } }; +} // namespace details + class SpriteBatch { public: @@ -56,9 +64,9 @@ public: private: GLuint vao_; GLuint vbo_; - std::vector<Glyph> glyphs_; - std::vector<Glyph *> glyph_ptrs_; - std::vector<RenderBatch> render_batches_; + std::vector<details::Glyph> glyphs_; + std::vector<details::Glyph *> glyph_ptrs_; + std::vector<details::RenderBatch> render_batches_; public: SpriteBatch(); |