summary refs log tree commit diff stats
path: root/src/systems/rendering.cpp
blob: 0034dc392913364750c678b9a2a69d0f7ba6d960 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "rendering.h"
#include "entity_manager.h"
#include "components/sprite_renderable.h"
#include "components/transformable.h"

void RenderingSystem::tick(EntityManager& manager, float dt)
{
  texture.fill(texture.entirety(), 0, 0, 0);
  
  std::set<int> spriteEntities = manager.getEntitiesWithComponents<SpriteRenderableComponent, TransformableComponent>();
  for (int entity : spriteEntities)
  {
    auto& sprite = manager.getComponent<SpriteRenderableComponent>(entity);
    auto& transform = manager.getComponent<TransformableComponent>(entity);
    Rectangle dstrect {(int) transform.getX(), (int) transform.getY(), transform.getW(), transform.getH()};
    
    texture.blit(sprite.getTexture(), sprite.getFrameRect(), dstrect);
  }
  
  texture.renderScreen();
}