// // 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: explicit Renderer(const glm::mat4 &projectionMatrix) { staticShader.start(); staticShader.loadProjectionMatrix(projectionMatrix); staticShader.stop(); }; void prepare(const ::Camera &camera, const Light& light); void renderEntities(const std::unordered_map>> &entities); void finalizeFrame(); private: StaticShader staticShader; void prepareTexturedModel(const TexturedModel &texturedModel); void unbindTexturedModel(); void prepareInstance(const Entity &entity); }; #endif //DICEWARS_SIEDLER_RENDERER_H