From 88921241f18c7a9e4e19b20badde290518c7cf31 Mon Sep 17 00:00:00 2001 From: Benjamin Kyd Date: Wed, 4 Oct 2023 13:09:24 +0100 Subject: [PATCH] past me is a dumbass --- libhart/scene/camera.hpp | 36 +++++++++++++++---------------- src/preview_renderer/renderer.cpp | 14 ++++++------ 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/libhart/scene/camera.hpp b/libhart/scene/camera.hpp index d756533..36bf152 100644 --- a/libhart/scene/camera.hpp +++ b/libhart/scene/camera.hpp @@ -33,33 +33,33 @@ typedef struct Camera { glm::vec3 Position = {}; glm::vec3 LookDirection = {}; - std::unique_ptr<_CameraImpl> _impl; + _CameraImpl* _impl; } Camera; -std::unique_ptr camera_create(); -void camera_cleanup(std::unique_ptr& camera); +Camera* camera_create(); +void camera_cleanup(Camera* camera); -void camera_update(std::unique_ptr& camera); -bool camera_did_update(std::unique_ptr& camera); -void camera_new_frame(std::unique_ptr& camera); +void camera_update(Camera* camera); +bool camera_did_update(Camera* camera); +void camera_new_frame(Camera* camera); -glm::mat4 camera_get_view(std::unique_ptr& camera); -glm::mat4 camera_get_projection(std::unique_ptr& camera); -glm::mat4 camera_get_look(std::unique_ptr& camera); +glm::mat4 camera_get_view(Camera* camera); +glm::mat4 camera_get_projection(Camera* camera); +glm::mat4 camera_get_look(Camera* camera); -void raster_set_viewport(std::unique_ptr& camera, glm::ivec2 viewport); -glm::ivec2 raster_get_viewport(std::unique_ptr& camera); +void raster_set_viewport(Camera* camera, glm::ivec2 viewport); +glm::ivec2 raster_get_viewport(Camera* camera); -void ray_set_viewport(std::unique_ptr& camera, glm::ivec2 viewport); -glm::ivec2 ray_get_viewport(std::unique_ptr& camera); +void ray_set_viewport(Camera* camera, glm::ivec2 viewport); +glm::ivec2 ray_get_viewport(Camera* camera); -void camera_move(std::unique_ptr& camera, uint8_t movement_delta); -void camera_mouse_move(std::unique_ptr& camera, glm::vec2 mouse_delta); +void camera_move(Camera* camera, uint8_t movement_delta); +void camera_mouse_move(Camera* camera, glm::vec2 mouse_delta); -void camera_set_position(std::unique_ptr& camera, glm::vec3 position); -void camera_set_euler_look(std::unique_ptr& camera, float roll, +void camera_set_position(Camera* camera, glm::vec3 position); +void camera_set_euler_look(Camera* camera, float roll, float pitch, float yaw); -void camera_set_look(std::unique_ptr& camera, +void camera_set_look(Camera* camera, glm::vec3 look_direction); } // namespace inferno::graphics diff --git a/src/preview_renderer/renderer.cpp b/src/preview_renderer/renderer.cpp index 8fb5e1f..e7e5aea 100644 --- a/src/preview_renderer/renderer.cpp +++ b/src/preview_renderer/renderer.cpp @@ -14,9 +14,9 @@ namespace inferno::graphics { -std::unique_ptr preview_create() +PreviewRenderer* preview_create() { - std::unique_ptr renderer = new PreviewRenderer; + PreviewRenderer* renderer = new PreviewRenderer; glGenFramebuffers(1, &renderer->RenderTarget); glBindFramebuffer(GL_FRAMEBUFFER, renderer->RenderTarget); @@ -47,21 +47,21 @@ std::unique_ptr preview_create() return renderer; } -void preview_cleanup(std::unique_ptr& renderer) +void preview_cleanup(PreviewRenderer* renderer) { } -void preview_set_viewport(std::unique_ptr& renderer, std::unique_ptr viewport) +void preview_set_viewport(PreviewRenderer* renderer, Viewport* viewport) { } -GLuint preview_get_rendered_texture(std::unique_ptr& renderer) +GLuint preview_get_rendered_texture(PreviewRenderer* renderer) { glBindFramebuffer(GL_FRAMEBUFFER, renderer->RenderTarget); return renderer->RenderTargetTexture; } -void preview_draw(std::unique_ptr& renderer, std::unique_ptr& scene) +void preview_draw(PreviewRenderer* renderer, scene::Scene* scene) { const glm::ivec2& viewport = graphics::raster_get_viewport(scene::scene_get_camera(scene)); glBindFramebuffer(GL_FRAMEBUFFER, renderer->RenderTarget); @@ -108,7 +108,7 @@ void preview_draw(std::unique_ptr& renderer, std::unique_ptr& o : scene::scene_get_renderables(scene)) { + for (scene::SceneObject* o : scene::scene_get_renderables(scene)) { for (scene::Mesh* m : scene::scene_object_get_meshs(o)) { glBindVertexArray(m->getVAO()); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m->getEBO());