aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/system/RenderSystem.cpp
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2024-11-21 10:41:08 +0100
committerLoek Le Blansch <loek@pipeframe.xyz>2024-11-21 10:41:08 +0100
commit5134bebc19c46e4e07a5ec3af1d3f3d2d17a86dd (patch)
tree837daf5b5de189d557b6ae8eaed149354a3b5030 /src/crepe/system/RenderSystem.cpp
parent70b1bf50de703330436f2ae9cb103fe33cbb567e (diff)
parent115d6f50152dc018073345800ca90b85846ebaa9 (diff)
merge `master` into `loek/scripts`
Diffstat (limited to 'src/crepe/system/RenderSystem.cpp')
-rw-r--r--src/crepe/system/RenderSystem.cpp12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/crepe/system/RenderSystem.cpp b/src/crepe/system/RenderSystem.cpp
index e379771..ad510f5 100644
--- a/src/crepe/system/RenderSystem.cpp
+++ b/src/crepe/system/RenderSystem.cpp
@@ -24,7 +24,7 @@ void RenderSystem::present_screen() { this->context.present_screen(); }
void RenderSystem::update_camera() {
ComponentManager & mgr = this->component_manager;
- std::vector<std::reference_wrapper<Camera>> cameras = mgr.get_components_by_type<Camera>();
+ RefVector<Camera> cameras = mgr.get_components_by_type<Camera>();
if (cameras.size() == 0) throw std::runtime_error("No cameras in current scene");
@@ -42,10 +42,8 @@ bool sorting_comparison(const Sprite & a, const Sprite & b) {
return false;
}
-std::vector<std::reference_wrapper<Sprite>>
-RenderSystem::sort(std::vector<std::reference_wrapper<Sprite>> & objs) const {
-
- std::vector<std::reference_wrapper<Sprite>> sorted_objs(objs);
+RefVector<Sprite> RenderSystem::sort(RefVector<Sprite> & objs) const {
+ RefVector<Sprite> sorted_objs(objs);
std::sort(sorted_objs.begin(), sorted_objs.end(), sorting_comparison);
return sorted_objs;
@@ -87,8 +85,8 @@ void RenderSystem::render_normal(const Sprite & sprite, const Transform & tm) {
void RenderSystem::render() {
ComponentManager & mgr = this->component_manager;
- vector<reference_wrapper<Sprite>> sprites = mgr.get_components_by_type<Sprite>();
- vector<reference_wrapper<Sprite>> sorted_sprites = this->sort(sprites);
+ RefVector<Sprite> sprites = mgr.get_components_by_type<Sprite>();
+ RefVector<Sprite> sorted_sprites = this->sort(sprites);
for (const Sprite & sprite : sorted_sprites) {
if (!sprite.active) continue;