diff --git a/sfw/render_immediate/renderer.cpp b/sfw/render_immediate/renderer.cpp index 291bc60..7fb4567 100644 --- a/sfw/render_immediate/renderer.cpp +++ b/sfw/render_immediate/renderer.cpp @@ -498,6 +498,19 @@ void Renderer::camera_3d_bind() { RenderState::projection_matrix_3d = _camera_3d_projection; } +void Renderer::camera_3d_reset() { + _camera_3d_projection = Projection(); + _camera_3d_camera_transform_matrix = Transform(); + _camera_3d_model_view_matrix = Transform(); + + _camera_3d_camera_transform_matrix_stack.clear(); + _camera_3d_model_view_matrix_stack.clear(); + + RenderState::camera_transform_3d = _camera_3d_camera_transform_matrix; + RenderState::model_view_matrix_3d = _camera_3d_model_view_matrix; + RenderState::projection_matrix_3d = _camera_3d_projection; +} + Transform Renderer::camera_3d_get_current_camera_transform_matrix() const { return _camera_3d_camera_transform_matrix; } diff --git a/sfw/render_immediate/renderer.h b/sfw/render_immediate/renderer.h index 37a4acb..b968b81 100644 --- a/sfw/render_immediate/renderer.h +++ b/sfw/render_immediate/renderer.h @@ -92,6 +92,7 @@ public: //3D Camera API void camera_3d_bind(); + void camera_3d_reset(); Transform camera_3d_get_current_camera_transform_matrix() const; void camera_3d_push_camera_transform_matrix(const Transform &p_transform);