engine/include/systems/render.hpp

39 lines
805 B
C++

#ifndef ENGINE_INCLUDE_SYSTEMS_RENDER_H_
#define ENGINE_INCLUDE_SYSTEMS_RENDER_H_
#include "components/renderable.hpp"
#include "components/transform.hpp"
#include "ecs_system.hpp"
#include "gfx.hpp"
#include "gfx_device.hpp"
#include "log.hpp"
#include "scene.hpp"
namespace engine {
class RenderSystem : public System {
public:
RenderSystem(Scene* scene);
~RenderSystem();
void OnUpdate(float ts) override;
void SetCameraEntity(uint32_t entity);
private:
GFXDevice* const gfx_;
struct {
// only uses transform component, which is required for all entities anyway
uint32_t cam_entity = 0;
float vertical_fov_degrees = 70.0f;
float clip_near = 0.5f;
float clip_far = 10000.0f;
} camera_;
float viewport_aspect_ratio_ = 1.0f;
};
} // namespace engine
#endif