22 #include "../../generic/property.h"
23 #include "../../types.h"
24 #include "../../interfaces.h"
25 #include "../../interfaces/boundable.h"
26 #include "render_queue.h"
27 #include "../../generic/uniquely_identifiable.h"
35 typedef sig::signal<void (RenderPriority, RenderPriority)> RenderPriorityChangedSignal;
44 void set_render_priority(RenderPriority priority) {
45 if(priority != render_priority_) {
46 auto old = render_priority_;
47 render_priority_ = priority;
49 on_render_priority_changed(old, render_priority_);
50 signal_render_priority_changed_(old, render_priority_);
54 virtual RenderPriority render_priority()
const {
return render_priority_; }
57 RenderPriority render_priority_ = RENDER_PRIORITY_MAIN;
59 virtual void on_render_priority_changed(
60 RenderPriority old_priority, RenderPriority new_priority
62 _S_UNUSED(old_priority);
63 _S_UNUSED(new_priority);
68 MeshArrangement arrangement = MESH_ARRANGEMENT_TRIANGLES;
72 std::size_t index_element_count = 0;
75 std::size_t vertex_range_count = 0;
77 RenderPriority render_priority = RENDER_PRIORITY_MAIN;
78 Mat4 final_transformation;
80 bool is_visible =
true;
82 LightPtr lights_affecting_this_frame[MAX_LIGHTS_PER_RENDERABLE];
83 uint8_t light_count = 0;
86 float precedence = 0.0f;
89 typedef std::shared_ptr<Renderable> RenderablePtr;