Dicewars-Siedler/src/engine/renderer/Renderer.h
2026-02-13 22:01:42 +01:00

39 lines
922 B
C++

//
// 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<TexturedModel *, std::vector<std::unique_ptr<Entity>>> &entities);
void finalizeFrame();
private:
StaticShader staticShader;
void prepareTexturedModel(const SubModel &texturedModel);
void unbindTexturedModel();
void prepareInstance(const Entity &entity);
};
#endif //DICEWARS_SIEDLER_RENDERER_H