39 lines
927 B
C++
39 lines
927 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 TexturedModel &texturedModel);
|
|
void unbindTexturedModel();
|
|
void prepareInstance(const Entity &entity);
|
|
|
|
|
|
};
|
|
|
|
|
|
#endif //DICEWARS_SIEDLER_RENDERER_H
|