Files
coding-game/engine/include/engine/renderer/renderer.h
2025-10-23 22:42:54 +02:00

48 lines
927 B
C++

#ifndef RENDERER_H_
#define RENDERER_H_
#include <glm/glm.hpp>
#include "engine/scene/scene.h"
#include "engine/renderer/shader.h"
#include "engine/export.h"
#include "engine/components/light.h"
#include "engine/opengl/buffers.h"
namespace Core {
// TODO: make static or singleton
class ENGINE_API Renderer {
public:
Renderer(std::shared_ptr<Scene> scene);
void Render();
void Init();
void OnWindowResized(int w, int h);
private:
void ApplyLights(Shader &shader);
void UpdateView();
void RenderScene(Shader &shader);
void GenerateShadowMaps();
void EnsureShadowResources(light& l);
private:
OpenGL::UniformBuffer m_uniform_matrices;
Shader m_shader;
Shader m_depthShader;
std::shared_ptr<Scene> m_scene;
// unsigned int m_depth_fbo;
// unsigned int m_depthMap;
glm::mat4 m_model;
glm::mat4 m_proj;
glm::mat4 m_view;
};
}
#endif // RENDERER_H_