// // Created by sebastian on 24.12.25. // #ifndef DICEWARS_SIEDLER_RENDERER_H #define DICEWARS_SIEDLER_RENDERER_H #include "../layer/entities/Entity.h" #include "model/RawModel.h" #include "model/TexturedModel.h" #include "shaders/StaticShader.h" class Light; class Camera; class Renderer { public: Renderer() : projectionMatrix(createProjectionMatrix()) { staticShader.start(); staticShader.loadProjectionMatrix(projectionMatrix); staticShader.stop(); }; void prepare(const ::Camera &camera, const Light& light); void renderFrame(const ::Entity &entity, const ::Camera &camera, const Light& light); private: void renderRawModel(const Entity &entity); StaticShader staticShader; glm::mat4 projectionMatrix; constexpr static float FOV = 70.0f; constexpr static float NEAR_PLANE = 0.1f; constexpr static float FAR_PLANE = 1000.0f; static glm::mat4 createProjectionMatrix(); }; #endif //DICEWARS_SIEDLER_RENDERER_H