summary refs log tree commit diff stats
path: root/src/systems/rendering.cpp
blob: 251c2bc08ed1fb3d11d386882499813581d164bd (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 "game.h"
#include "components/animatable.h"
#include "components/transformable.h"

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