diff options
| author | hachem <im@hachem.wtf> | 2025-08-12 18:41:26 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2025-08-12 18:41:26 +0200 |
| commit | 7e06a916e6a385c37075abcb83d14b8c1fef7bc0 (patch) | |
| tree | 8054d96e89d43b0f98b75af726079d723a70ca2a /src/rendering/renderer.cpp | |
| parent | 50cdd344a3ed87c75a67739e2ffd34762e9b0895 (diff) | |
feat: camera
Diffstat (limited to 'src/rendering/renderer.cpp')
| -rw-r--r-- | src/rendering/renderer.cpp | 45 |
1 files changed, 22 insertions, 23 deletions
diff --git a/src/rendering/renderer.cpp b/src/rendering/renderer.cpp index 1da5034..19917a6 100644 --- a/src/rendering/renderer.cpp +++ b/src/rendering/renderer.cpp @@ -3,10 +3,12 @@ #include <memory> #include <glm/gtc/matrix_transform.hpp> -namespace Donut { - - Scope<RendererAPI> RendererAPI::create() { - switch (s_api) { +namespace Donut +{ + Scope<RendererAPI> RendererAPI::create() + { + switch (s_api) + { case API::OpenGL: return std::make_unique<OpenGLRendererAPI>(); default: @@ -16,32 +18,28 @@ namespace Donut { RendererAPI::API RendererAPI::s_api = RendererAPI::API::OpenGL; - Renderer::SceneData* Renderer::s_scene_data = new Renderer::SceneData; - - void Renderer::init() { + void Renderer::init() + { RenderCommand::init(); + RenderCommand::enable_depth_test(); } - void Renderer::shutdown() { - delete s_scene_data; + void Renderer::shutdown() + { } - void Renderer::on_window_resize(uint32_t width, uint32_t height) { + void Renderer::on_window_resize(uint32_t width, uint32_t height) + { RenderCommand::set_viewport(0, 0, width, height); } - void Renderer::begin_scene() { - s_scene_data->ViewProjectionMatrix = glm::ortho(-1.0f, 1.0f, -1.0f, 1.0f, -1.0f, 1.0f); - } - - void Renderer::end_scene() { - } - void Renderer::submit(const std::shared_ptr<Shader>& shader, const std::shared_ptr<VertexArray>& vertex_array, - const glm::mat4& transform) { + const glm::mat4& transform, + const glm::mat4& view_projection) + { shader->bind(); - shader->set_mat4("u_ViewProjection", s_scene_data->ViewProjectionMatrix); + shader->set_mat4("u_ViewProjection", view_projection); shader->set_mat4("u_Transform", transform); vertex_array->bind(); @@ -50,12 +48,13 @@ namespace Donut { Scope<RendererAPI> RenderCommand::s_renderer_api = RendererAPI::create(); - void Renderer::set_clear_color(const glm::vec4& color) { + void Renderer::set_clear_color(const glm::vec4& color) + { RenderCommand::set_clear_color(color); } - void Renderer::clear() { + void Renderer::clear() + { RenderCommand::clear(); } - -} +}; |
