diff --git a/src/core/application.cpp b/src/core/application.cpp index f8ce592..a7c3749 100644 --- a/src/core/application.cpp +++ b/src/core/application.cpp @@ -6,7 +6,7 @@ /* By: maldavid +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/10/04 22:10:52 by maldavid #+# #+# */ -/* Updated: 2023/12/08 13:32:18 by kbz_8 ### ########.fr */ +/* Updated: 2023/12/09 17:44:13 by kbz_8 ### ########.fr */ /* */ /* ************************************************************************** */ @@ -35,7 +35,7 @@ namespace mlx::core if(_loop_hook) _loop_hook(_param); - + for(auto& gs : _graphics) gs->endRender(); } @@ -66,6 +66,7 @@ namespace mlx::core Application::~Application() { + SDL_QuitSubSystem(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_EVENTS); SDL_Quit(); } } diff --git a/src/core/graphics.cpp b/src/core/graphics.cpp index 0ef2dba..a66e140 100644 --- a/src/core/graphics.cpp +++ b/src/core/graphics.cpp @@ -6,7 +6,7 @@ /* By: maldavid +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/04/02 15:13:55 by maldavid #+# #+# */ -/* Updated: 2023/11/24 20:42:15 by maldavid ### ########.fr */ +/* Updated: 2023/12/09 16:52:08 by kbz_8 ### ########.fr */ /* */ /* ************************************************************************** */ @@ -77,5 +77,6 @@ namespace mlx _text_put_pipeline->destroy(); _pixel_put_pipeline.destroy(); _renderer->destroy(); + _window->destroy(); } } diff --git a/src/platform/window.cpp b/src/platform/window.cpp index ffbbbca..c3e712f 100644 --- a/src/platform/window.cpp +++ b/src/platform/window.cpp @@ -6,13 +6,14 @@ /* By: maldavid +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/10/04 17:36:44 by maldavid #+# #+# */ -/* Updated: 2023/11/25 11:48:26 by maldavid ### ########.fr */ +/* Updated: 2023/12/09 16:52:29 by kbz_8 ### ########.fr */ /* */ /* ************************************************************************** */ #include #include #include +#include namespace mlx { @@ -40,14 +41,16 @@ namespace mlx void MLX_Window::destroy() noexcept { - if(_win) + std::cout << "prout" << std::endl; + if(_win != nullptr) + { SDL_DestroyWindow(_win); - if(_icon) + _win = nullptr; + } + if(_icon != nullptr) + { SDL_FreeSurface(_icon); - } - - MLX_Window::~MLX_Window() - { - destroy(); + _icon = nullptr; + } } } diff --git a/src/platform/window.h b/src/platform/window.h index 8923564..f1c7f16 100644 --- a/src/platform/window.h +++ b/src/platform/window.h @@ -6,7 +6,7 @@ /* By: maldavid +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/10/04 21:53:12 by maldavid #+# #+# */ -/* Updated: 2023/12/08 19:05:31 by kbz_8 ### ########.fr */ +/* Updated: 2023/12/09 16:35:57 by kbz_8 ### ########.fr */ /* */ /* ************************************************************************** */ @@ -31,7 +31,7 @@ namespace mlx void destroy() noexcept; - ~MLX_Window(); + ~MLX_Window() = default; private: SDL_Surface* _icon = nullptr; diff --git a/valgrind.supp b/valgrind.supp index 5f02aa8..ed92da5 100644 --- a/valgrind.supp +++ b/valgrind.supp @@ -1,20 +1,50 @@ +{ + name + Memcheck:Leak + fun:*alloc + ... + obj:*libmlx* + ... +} +{ + name + Memcheck:Leak + fun:*alloc + ... + obj:*SDL* + ... +} +{ + name + Memcheck:Leak + fun:*alloc + ... + obj:*X11* + ... +} +{ + name + Memcheck:Leak + fun:*alloc + ... + obj:*libGLX_nvidia.so* + ... +} { name Memcheck:ReallocZero fun:realloc - obj:/usr/lib/libnvidia-glcore.so.545.29.06 - obj:/usr/lib/libGLX_nvidia.so.545.29.06 - obj:/usr/lib/libGLX_nvidia.so.545.29.06 - obj:/usr/lib/libGLX_nvidia.so.545.29.06 + ... + obj:*libGLX_nvidia.so* + ... } { name Memcheck:BadSize fun:posix_memalign - obj:/usr/lib/libnvidia-glcore.so.545.29.06 - obj:/usr/lib/libGLX_nvidia.so.545.29.06 - obj:/usr/lib/libGLX_nvidia.so.545.29.06 - obj:/usr/lib/libGLX_nvidia.so.545.29.06 + ... + obj:*libGLX_nvidia.so* + ... } { name