1#ifndef SPRITERENDERER_H
2#define SPRITERENDERER_H
8#include <unordered_map>
62 std::shared_ptr<Shader>
shader,
63 std::multimap<RenderPriority, SpriteId> ids
66 std::vector<std::pair<Info, Sprite>> sprites =
vectorise(ids);
77 virtual void draw(std::multimap<RenderPriority, SpriteId> ids)
79 std::vector<std::pair<Info, Sprite>> sprites =
vectorise(ids);
105 std::shared_ptr<Shader>
shader,
106 std::vector<std::pair<Info, Sprite>> & sprites
Store elements in a priority ordering, with identities.
Definition priorityStore.h:32
std::vector< std::pair< Info, Sprite > > vectorise(std::multimap< Priority, ElementId > &oids)
Return a vector from overriding priorities.
Definition priorityStore.h:142
Sprite & operator[](ElementId id)
Definition priorityStore.h:155
std::vector< std::pair< Info, Sprite > > cache
Definition priorityStore.h:169
Renders sprites in batches, with optional render priority.
Definition spriteRenderer.h:31
static const uint8_t MAX_BATCH_BOUND_TEXTURES
Largest number of concurrent textures bound for one batch.
Definition spriteRenderer.h:39
SpriteRenderer(size_t sizeHint=8)
Construct a new SpriteRenderer.
Definition spriteRenderer.h:46
virtual void draw(std::multimap< RenderPriority, SpriteId > ids)
Draw with overriding render priority.
Definition spriteRenderer.h:77
glm::mat4 projection
Definition spriteRenderer.h:111
virtual void draw()
Draw with default shader and priority.
Definition spriteRenderer.h:97
std::shared_ptr< Shader > shader
Definition spriteRenderer.h:109
virtual void setProjection(glm::mat4 p)
Definition spriteRenderer.h:99
virtual void draw(std::shared_ptr< Shader > shader)
Draw with overriding shader.
Definition spriteRenderer.h:88
virtual void draw(std::shared_ptr< Shader > shader, std::vector< std::pair< Info, Sprite > > &sprites)=0
virtual void draw(std::shared_ptr< Shader > shader, std::multimap< RenderPriority, SpriteId > ids)
Draw with overriding render priority and shader.
Definition spriteRenderer.h:61
Sprite & getSprite(SpriteId id)
Definition spriteRenderer.h:50
A drawable graphic.
Definition id.h:10
std::string SpriteId
User name for a Shape.
Definition spriteRenderer.h:20