engine/include/systems/render.h
2023-05-01 14:13:35 +01:00

39 lines
791 B
C++

#ifndef ENGINE_INCLUDE_SYSTEMS_RENDER_H_
#define ENGINE_INCLUDE_SYSTEMS_RENDER_H_
#include "components/renderable.h"
#include "components/transform.h"
#include "ecs_system.h"
#include "gfx.h"
#include "gfx_device.h"
#include "log.h"
#include "scene.h"
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