8#include <unordered_map>
84 std::shared_ptr<Shader>
shader,
85 std::multimap<RenderPriority,ShapeId> & ids,
89 std::vector<std::pair<Info, Shape>> shapes =
vectorise(ids);
104 std::multimap<RenderPriority, ShapeId> & ids,
108 std::vector<std::pair<Info, Shape>> shapes =
vectorise(ids);
119 std::shared_ptr<Shader>
shader,
146 std::shared_ptr<Shader>
shader,
147 std::vector<std::pair<Info, Shape>> & shapes,
Store elements in a priority ordering, with identities.
Definition priorityStore.h:32
std::vector< std::pair< Info, Shape > > vectorise(std::multimap< Priority, ElementId > &oids)
Return a vector from overriding priorities.
Definition priorityStore.h:142
Shape & operator[](ElementId id)
Definition priorityStore.h:155
std::vector< std::pair< Info, Shape > > cache
Definition priorityStore.h:169
std::unordered_map< ElementId, std::pair< Shape, Priority > > idToElement
Definition priorityStore.h:167
Renders shapes with optional rendering priority.
Definition shapeRenderer.h:31
glm::mat4 projection
Definition shapeRenderer.h:153
virtual void draw(std::shared_ptr< Shader > shader, UpdateInfo info=UpdateInfo())
Draw with overriding shader and cached priorities.
Definition shapeRenderer.h:118
virtual void draw(std::shared_ptr< Shader > shader, std::multimap< RenderPriority, ShapeId > &ids, UpdateInfo info=UpdateInfo())
Draw with overriding render priority and shader.
Definition shapeRenderer.h:83
std::shared_ptr< Shader > shader
Definition shapeRenderer.h:151
virtual void draw(UpdateInfo info=UpdateInfo())
Draw with default shader and cached priorities.
Definition shapeRenderer.h:131
const glm::vec4 * getColour(ShapeId id)
Definition shapeRenderer.h:70
virtual void draw(std::shared_ptr< Shader > shader, std::vector< std::pair< Info, Shape > > &shapes, UpdateInfo info=UpdateInfo())=0
ShapeRenderer(std::shared_ptr< Shader > shader, size_t sizeHint=8)
Construct a new ShapeRenderer.
Definition shapeRenderer.h:63
virtual void setProjection(glm::mat4 p)
Definition shapeRenderer.h:140
bool hasId(const ShapeId id) const
Definition shapeRenderer.h:138
const Transform * getTransform(ShapeId id)
Definition shapeRenderer.h:69
virtual void draw(std::multimap< RenderPriority, ShapeId > &ids, UpdateInfo info=UpdateInfo())
Draw with overriding render priority.
Definition shapeRenderer.h:103
ShapeRenderer(size_t sizeHint=8)
Construct a new ShapeRenderer.
Definition shapeRenderer.h:53
Shape & getShape(ShapeId id)
Definition shapeRenderer.h:67
A drawable shape.
Definition shape.h:14
const Transform * transform
Definition shape.h:26
const glm::vec4 * colour
Definition shape.h:27
A drawable graphic.
Definition id.h:10
std::string ShapeId
Definition shapeRenderer.h:24
Control updated data for drawing.
Definition shapeRenderer.h:40
bool xytheta
Definition shapeRenderer.h:45
bool colour
Definition shapeRenderer.h:45
UpdateInfo()
Definition shapeRenderer.h:41
bool scale
Definition shapeRenderer.h:45