From 0ea0cde668f88b013de1ed31903ec24f625b44bb Mon Sep 17 00:00:00 2001 From: Kbz-8 Date: Thu, 17 Oct 2024 18:35:33 +0200 Subject: [PATCH] fixing inputs bug, fixing missing depth image destruction in scenes --- .github/workflows/fetch_dependencies.yml | 2 +- includes/mlx.h | 4 +- runtime/Includes/Core/SDLManager.h | 8 +- runtime/Includes/Embedded/2DVertex.nzsl | 4 +- runtime/Includes/Embedded/2DVertex.spv.h | 54 ++++----- runtime/Includes/Graphics/Scene.h | 2 +- runtime/Includes/Platform/Inputs.h | 4 +- runtime/Includes/Platform/Window.h | 2 +- runtime/Sources/Core/Application.cpp | 2 + runtime/Sources/Core/SDLManager.cpp | 109 ++++++++---------- runtime/Sources/Graphics/Scene.cpp | 5 + runtime/Sources/Platform/Inputs.cpp | 10 +- runtime/Sources/Platform/Window.cpp | 4 +- .../Sources/Renderer/Pipelines/Graphics.cpp | 1 - .../Sources/Renderer/RenderPasses/2DPass.cpp | 1 - 15 files changed, 104 insertions(+), 108 deletions(-) diff --git a/.github/workflows/fetch_dependencies.yml b/.github/workflows/fetch_dependencies.yml index f9e1311..76c6f3d 100644 --- a/.github/workflows/fetch_dependencies.yml +++ b/.github/workflows/fetch_dependencies.yml @@ -2,7 +2,7 @@ name: Fetch Dependencies on: schedule: - - cron: '0 0 * * *' # Runs daily + - cron: '0 0 * * 0' # Runs weekly jobs: update-dependencies: diff --git a/includes/mlx.h b/includes/mlx.h index ef02780..e4f7d43 100644 --- a/includes/mlx.h +++ b/includes/mlx.h @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* mlx.h :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: maldavid +#+ +:+ +#+ */ +/* By: maldavid +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/10/04 16:56:35 by maldavid #+# #+# */ -/* Updated: 2024/09/15 09:23:48 by maldavid ### ########.fr */ +/* Updated: 2024/10/17 17:51:28 by maldavid ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/runtime/Includes/Core/SDLManager.h b/runtime/Includes/Core/SDLManager.h index e314f05..568f45e 100644 --- a/runtime/Includes/Core/SDLManager.h +++ b/runtime/Includes/Core/SDLManager.h @@ -10,9 +10,11 @@ namespace mlx public: SDLManager(); - Handle CreateWindow(const std::string& title, std::size_t w, std::size_t h, bool hidden); + Handle CreateWindow(const std::string& title, std::size_t w, std::size_t h, bool hidden, std::int32_t& id); void DestroyWindow(Handle window) noexcept; + void InputsFetcher(func::function functor); + VkSurfaceKHR CreateVulkanSurface(Handle window, VkInstance instance) const noexcept; std::vector GetRequiredVulkanInstanceExtentions() const noexcept; Vec2ui GetVulkanDrawableSize(Handle window) const noexcept; @@ -20,8 +22,6 @@ namespace mlx void GetScreenSizeWindowIsOn(Handle window, int* x, int* y) const noexcept; void SetWindowPosition(Handle window, int x, int y) const noexcept; - inline void SetEventCallback(func::function functor, void* userdata) { f_callback = std::move(functor); p_callback_data = userdata; } - std::int32_t GetX() const noexcept; std::int32_t GetY() const noexcept; std::int32_t GetXRel() const noexcept; @@ -36,8 +36,6 @@ namespace mlx static SDLManager* s_instance; std::unordered_set m_windows_registry; - func::function f_callback; - void* p_callback_data = nullptr; bool m_drop_sdl_responsability = false; }; } diff --git a/runtime/Includes/Embedded/2DVertex.nzsl b/runtime/Includes/Embedded/2DVertex.nzsl index 8e62204..a69261d 100644 --- a/runtime/Includes/Embedded/2DVertex.nzsl +++ b/runtime/Includes/Embedded/2DVertex.nzsl @@ -34,11 +34,11 @@ external [entry(vert)] fn main(input: VertIn) -> VertOut { - let position: vec2[f32] = input.pos.xy + model.position.xy; + let position: vec4[f32] = vec4[f32](input.pos.xyz + model.position.xyz, 1.0); input.uv *= -1.0; let output: VertOut; output.uv = input.uv; output.color = model.color; - output.pos = viewer_data.projection_matrix * vec4[f32](position, 0.0, 1.0); + output.pos = viewer_data.projection_matrix * position; return output; } diff --git a/runtime/Includes/Embedded/2DVertex.spv.h b/runtime/Includes/Embedded/2DVertex.spv.h index 3f13839..27b04db 100644 --- a/runtime/Includes/Embedded/2DVertex.spv.h +++ b/runtime/Includes/Embedded/2DVertex.spv.h @@ -35,37 +35,37 @@ 21,0,0,0,7,0,0,0,17,0,0,0,30,0,4,0,22,0,0,0,2,0,0,0,17,0,0,0,32,0, 4,0,23,0,0,0,7,0,0,0,22,0,0,0,32,0,4,0,24,0,0,0,3,0,0,0,2,0,0,0, 32,0,4,0,26,0,0,0,3,0,0,0,17,0,0,0,30,0,5,0,29,0,0,0,2,0,0,0,17,0, -0,0,2,0,0,0,43,0,4,0,1,0,0,0,30,0,0,0,0,0,128,191,32,0,4,0,31,0,0,0, -7,0,0,0,29,0,0,0,43,0,4,0,14,0,0,0,32,0,0,0,2,0,0,0,43,0,4,0,1,0, -0,0,33,0,0,0,0,0,0,0,43,0,4,0,1,0,0,0,34,0,0,0,0,0,128,63,32,0,4,0, -45,0,0,0,9,0,0,0,2,0,0,0,32,0,4,0,60,0,0,0,2,0,0,0,3,0,0,0,59,0, +0,0,2,0,0,0,43,0,4,0,14,0,0,0,30,0,0,0,2,0,0,0,23,0,4,0,31,0,0,0, +1,0,0,0,3,0,0,0,43,0,4,0,1,0,0,0,32,0,0,0,0,0,128,63,43,0,4,0,1,0, +0,0,33,0,0,0,0,0,128,191,32,0,4,0,34,0,0,0,7,0,0,0,29,0,0,0,32,0,4,0, +45,0,0,0,9,0,0,0,2,0,0,0,32,0,4,0,61,0,0,0,2,0,0,0,3,0,0,0,59,0, 4,0,5,0,0,0,6,0,0,0,2,0,0,0,59,0,4,0,8,0,0,0,9,0,0,0,9,0,0,0, 59,0,4,0,12,0,0,0,13,0,0,0,1,0,0,0,59,0,4,0,18,0,0,0,19,0,0,0,1,0, 0,0,59,0,4,0,24,0,0,0,25,0,0,0,3,0,0,0,59,0,4,0,26,0,0,0,27,0,0,0, 3,0,0,0,59,0,4,0,24,0,0,0,28,0,0,0,3,0,0,0,54,0,5,0,10,0,0,0,35,0, -0,0,0,0,0,0,11,0,0,0,248,0,2,0,36,0,0,0,59,0,4,0,21,0,0,0,37,0,0,0, -7,0,0,0,59,0,4,0,31,0,0,0,38,0,0,0,7,0,0,0,59,0,4,0,23,0,0,0,39,0, +0,0,0,0,0,0,11,0,0,0,248,0,2,0,36,0,0,0,59,0,4,0,16,0,0,0,37,0,0,0, +7,0,0,0,59,0,4,0,34,0,0,0,38,0,0,0,7,0,0,0,59,0,4,0,23,0,0,0,39,0, 0,0,7,0,0,0,65,0,5,0,16,0,0,0,40,0,0,0,39,0,0,0,15,0,0,0,63,0,3,0, 40,0,0,0,13,0,0,0,65,0,5,0,21,0,0,0,41,0,0,0,39,0,0,0,20,0,0,0,63,0, 3,0,41,0,0,0,19,0,0,0,65,0,5,0,16,0,0,0,42,0,0,0,39,0,0,0,15,0,0,0, -61,0,4,0,2,0,0,0,43,0,0,0,42,0,0,0,79,0,7,0,17,0,0,0,44,0,0,0,43,0, -0,0,43,0,0,0,0,0,0,0,1,0,0,0,65,0,5,0,45,0,0,0,46,0,0,0,9,0,0,0, -20,0,0,0,61,0,4,0,2,0,0,0,47,0,0,0,46,0,0,0,79,0,7,0,17,0,0,0,48,0, -0,0,47,0,0,0,47,0,0,0,0,0,0,0,1,0,0,0,129,0,5,0,17,0,0,0,49,0,0,0, -44,0,0,0,48,0,0,0,62,0,3,0,37,0,0,0,49,0,0,0,65,0,5,0,21,0,0,0,50,0, -0,0,39,0,0,0,20,0,0,0,61,0,4,0,17,0,0,0,51,0,0,0,50,0,0,0,142,0,5,0, -17,0,0,0,52,0,0,0,51,0,0,0,30,0,0,0,65,0,5,0,21,0,0,0,53,0,0,0,39,0, -0,0,20,0,0,0,62,0,3,0,53,0,0,0,52,0,0,0,65,0,5,0,21,0,0,0,54,0,0,0, -39,0,0,0,20,0,0,0,61,0,4,0,17,0,0,0,55,0,0,0,54,0,0,0,65,0,5,0,21,0, -0,0,56,0,0,0,38,0,0,0,20,0,0,0,62,0,3,0,56,0,0,0,55,0,0,0,65,0,5,0, -45,0,0,0,57,0,0,0,9,0,0,0,15,0,0,0,61,0,4,0,2,0,0,0,58,0,0,0,57,0, -0,0,65,0,5,0,16,0,0,0,59,0,0,0,38,0,0,0,15,0,0,0,62,0,3,0,59,0,0,0, -58,0,0,0,65,0,5,0,60,0,0,0,61,0,0,0,6,0,0,0,15,0,0,0,61,0,4,0,3,0, -0,0,62,0,0,0,61,0,0,0,61,0,4,0,17,0,0,0,63,0,0,0,37,0,0,0,80,0,6,0, -2,0,0,0,64,0,0,0,63,0,0,0,33,0,0,0,34,0,0,0,145,0,5,0,2,0,0,0,65,0, -0,0,62,0,0,0,64,0,0,0,65,0,5,0,16,0,0,0,66,0,0,0,38,0,0,0,32,0,0,0, -62,0,3,0,66,0,0,0,65,0,0,0,61,0,4,0,29,0,0,0,67,0,0,0,38,0,0,0,81,0, -5,0,2,0,0,0,68,0,0,0,67,0,0,0,0,0,0,0,62,0,3,0,25,0,0,0,68,0,0,0, -81,0,5,0,17,0,0,0,69,0,0,0,67,0,0,0,1,0,0,0,62,0,3,0,27,0,0,0,69,0, -0,0,81,0,5,0,2,0,0,0,70,0,0,0,67,0,0,0,2,0,0,0,62,0,3,0,28,0,0,0, -70,0,0,0,253,0,1,0,56,0,1,0 +61,0,4,0,2,0,0,0,43,0,0,0,42,0,0,0,79,0,8,0,31,0,0,0,44,0,0,0,43,0, +0,0,43,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,65,0,5,0,45,0,0,0,46,0,0,0, +9,0,0,0,20,0,0,0,61,0,4,0,2,0,0,0,47,0,0,0,46,0,0,0,79,0,8,0,31,0, +0,0,48,0,0,0,47,0,0,0,47,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,129,0,5,0, +31,0,0,0,49,0,0,0,44,0,0,0,48,0,0,0,80,0,5,0,2,0,0,0,50,0,0,0,49,0, +0,0,32,0,0,0,62,0,3,0,37,0,0,0,50,0,0,0,65,0,5,0,21,0,0,0,51,0,0,0, +39,0,0,0,20,0,0,0,61,0,4,0,17,0,0,0,52,0,0,0,51,0,0,0,142,0,5,0,17,0, +0,0,53,0,0,0,52,0,0,0,33,0,0,0,65,0,5,0,21,0,0,0,54,0,0,0,39,0,0,0, +20,0,0,0,62,0,3,0,54,0,0,0,53,0,0,0,65,0,5,0,21,0,0,0,55,0,0,0,39,0, +0,0,20,0,0,0,61,0,4,0,17,0,0,0,56,0,0,0,55,0,0,0,65,0,5,0,21,0,0,0, +57,0,0,0,38,0,0,0,20,0,0,0,62,0,3,0,57,0,0,0,56,0,0,0,65,0,5,0,45,0, +0,0,58,0,0,0,9,0,0,0,15,0,0,0,61,0,4,0,2,0,0,0,59,0,0,0,58,0,0,0, +65,0,5,0,16,0,0,0,60,0,0,0,38,0,0,0,15,0,0,0,62,0,3,0,60,0,0,0,59,0, +0,0,65,0,5,0,61,0,0,0,62,0,0,0,6,0,0,0,15,0,0,0,61,0,4,0,3,0,0,0, +63,0,0,0,62,0,0,0,61,0,4,0,2,0,0,0,64,0,0,0,37,0,0,0,145,0,5,0,2,0, +0,0,65,0,0,0,63,0,0,0,64,0,0,0,65,0,5,0,16,0,0,0,66,0,0,0,38,0,0,0, +30,0,0,0,62,0,3,0,66,0,0,0,65,0,0,0,61,0,4,0,29,0,0,0,67,0,0,0,38,0, +0,0,81,0,5,0,2,0,0,0,68,0,0,0,67,0,0,0,0,0,0,0,62,0,3,0,25,0,0,0, +68,0,0,0,81,0,5,0,17,0,0,0,69,0,0,0,67,0,0,0,1,0,0,0,62,0,3,0,27,0, +0,0,69,0,0,0,81,0,5,0,2,0,0,0,70,0,0,0,67,0,0,0,2,0,0,0,62,0,3,0, +28,0,0,0,70,0,0,0,253,0,1,0,56,0,1,0 diff --git a/runtime/Includes/Graphics/Scene.h b/runtime/Includes/Graphics/Scene.h index 53bd5b9..e4bd110 100644 --- a/runtime/Includes/Graphics/Scene.h +++ b/runtime/Includes/Graphics/Scene.h @@ -29,7 +29,7 @@ namespace mlx [[nodiscard]] MLX_FORCEINLINE DepthImage& GetDepth() noexcept { return m_depth; } [[nodiscard]] MLX_FORCEINLINE ViewerData& GetViewerData() noexcept { return m_viewer_data; } - ~Scene() = default; + ~Scene(); private: SceneDescriptor m_descriptor; diff --git a/runtime/Includes/Platform/Inputs.h b/runtime/Includes/Platform/Inputs.h index 1114058..3ac5b90 100644 --- a/runtime/Includes/Platform/Inputs.h +++ b/runtime/Includes/Platform/Inputs.h @@ -17,7 +17,9 @@ namespace mlx }; public: - Inputs(); + Inputs() = default; + + void FetchInputs(); inline void RegisterWindow(std::shared_ptr window) { m_windows[window->GetID()] = window; } diff --git a/runtime/Includes/Platform/Window.h b/runtime/Includes/Platform/Window.h index 1a15f33..903b8cf 100644 --- a/runtime/Includes/Platform/Window.h +++ b/runtime/Includes/Platform/Window.h @@ -30,7 +30,7 @@ namespace mlx private: Handle p_window = nullptr; - std::uint32_t m_id = -1; + std::int32_t m_id; int m_width = 0; int m_height = 0; }; diff --git a/runtime/Sources/Core/Application.cpp b/runtime/Sources/Core/Application.cpp index 433bb81..5b7c18b 100644 --- a/runtime/Sources/Core/Application.cpp +++ b/runtime/Sources/Core/Application.cpp @@ -33,6 +33,8 @@ namespace mlx if(!m_fps.Update()) continue; + m_in.FetchInputs(); + if(f_loop_hook) f_loop_hook(p_param); diff --git a/runtime/Sources/Core/SDLManager.cpp b/runtime/Sources/Core/SDLManager.cpp index 13031aa..0c5c20f 100644 --- a/runtime/Sources/Core/SDLManager.cpp +++ b/runtime/Sources/Core/SDLManager.cpp @@ -44,68 +44,10 @@ namespace mlx if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTS | SDL_INIT_TIMER) != 0) FatalError("SDL : unable to init all subsystems; %", SDL_GetError()); - - struct WatcherData - { - func::function callback; - NonOwningPtr manager; - void* userdata; - }; - - WatcherData watcher_data; - watcher_data.callback = f_callback; - watcher_data.userdata = p_callback_data; - - SDL_AddEventWatch([](void* userdata, SDL_Event* event) -> int - { - WatcherData* data = static_cast(userdata); - - std::uint32_t id = event->window.windowID; - switch(event->type) - { - case SDL_KEYUP: data->callback(MLX_KEYUP, id, event->key.keysym.scancode, data->userdata); break; - case SDL_KEYDOWN: data->callback(MLX_KEYDOWN, id, event->key.keysym.scancode, data->userdata); break; - case SDL_MOUSEBUTTONUP: data->callback(MLX_MOUSEUP, id, event->button.button, data->userdata); break; - case SDL_MOUSEBUTTONDOWN: data->callback(MLX_MOUSEDOWN, id, event->button.button, data->userdata); break; - case SDL_MOUSEWHEEL: - { - if(event->wheel.y > 0) // scroll up - data->callback(MLX_MOUSEWHEEL, id, 1, data->userdata); - else if(event->wheel.y < 0) // scroll down - data->callback(MLX_MOUSEWHEEL, id, 2, data->userdata); - if(event->wheel.x > 0) // scroll right - data->callback(MLX_MOUSEWHEEL, id, 3, data->userdata); - else if(event->wheel.x < 0) // scroll left - data->callback(MLX_MOUSEWHEEL, id, 4, data->userdata); - break; - } - case SDL_WINDOWEVENT: - { - switch(event->window.event) - { - case SDL_WINDOWEVENT_CLOSE: data->callback(MLX_WINDOW_EVENT, id, 0, data->userdata); break; - case SDL_WINDOWEVENT_MOVED: data->callback(MLX_WINDOW_EVENT, id, 1, data->userdata); break; - case SDL_WINDOWEVENT_MINIMIZED: data->callback(MLX_WINDOW_EVENT, id, 2, data->userdata); break; - case SDL_WINDOWEVENT_MAXIMIZED: data->callback(MLX_WINDOW_EVENT, id, 3, data->userdata); break; - case SDL_WINDOWEVENT_ENTER: data->callback(MLX_WINDOW_EVENT, id, 4, data->userdata); break; - case SDL_WINDOWEVENT_FOCUS_GAINED: data->callback(MLX_WINDOW_EVENT, id, 5, data->userdata); break; - case SDL_WINDOWEVENT_LEAVE: data->callback(MLX_WINDOW_EVENT, id, 6, data->userdata); break; - case SDL_WINDOWEVENT_FOCUS_LOST: data->callback(MLX_WINDOW_EVENT, id, 7, data->userdata); break; - - default : break; - } - break; - } - - default: break; - } - - return 0; - }, &watcher_data); DebugLog("SDL Manager initialized"); } - Handle SDLManager::CreateWindow(const std::string& title, std::size_t w, std::size_t h, bool hidden) + Handle SDLManager::CreateWindow(const std::string& title, std::size_t w, std::size_t h, bool hidden, std::int32_t& id) { Internal::WindowInfos* infos = new Internal::WindowInfos; Verify(infos != nullptr, "SDL : window allocation failed"); @@ -118,6 +60,8 @@ namespace mlx m_windows_registry.insert(infos); + id = SDL_GetWindowID(infos->window); + return infos; } @@ -228,6 +172,53 @@ namespace mlx return y; } + void SDLManager::InputsFetcher(func::function functor) + { + SDL_Event event; + while(SDL_PollEvent(&event)) + { + std::uint32_t id = event.window.windowID; + switch(event.type) + { + case SDL_KEYUP: functor(MLX_KEYUP, id, event.key.keysym.scancode); break; + case SDL_KEYDOWN: functor(MLX_KEYDOWN, id, event.key.keysym.scancode); break; + case SDL_MOUSEBUTTONUP: functor(MLX_MOUSEUP, id, event.button.button); break; + case SDL_MOUSEBUTTONDOWN: functor(MLX_MOUSEDOWN, id, event.button.button); break; + case SDL_MOUSEWHEEL: + { + if(event.wheel.y > 0) // scroll up + functor(MLX_MOUSEWHEEL, id, 1); + else if(event.wheel.y < 0) // scroll down + functor(MLX_MOUSEWHEEL, id, 2); + if(event.wheel.x > 0) // scroll right + functor(MLX_MOUSEWHEEL, id, 3); + else if(event.wheel.x < 0) // scroll left + functor(MLX_MOUSEWHEEL, id, 4); + break; + } + case SDL_WINDOWEVENT: + { + switch(event.window.event) + { + case SDL_WINDOWEVENT_CLOSE: functor(MLX_WINDOW_EVENT, id, 0); break; + case SDL_WINDOWEVENT_MOVED: functor(MLX_WINDOW_EVENT, id, 1); break; + case SDL_WINDOWEVENT_MINIMIZED: functor(MLX_WINDOW_EVENT, id, 2); break; + case SDL_WINDOWEVENT_MAXIMIZED: functor(MLX_WINDOW_EVENT, id, 3); break; + case SDL_WINDOWEVENT_ENTER: functor(MLX_WINDOW_EVENT, id, 4); break; + case SDL_WINDOWEVENT_FOCUS_GAINED: functor(MLX_WINDOW_EVENT, id, 5); break; + case SDL_WINDOWEVENT_LEAVE: functor(MLX_WINDOW_EVENT, id, 6); break; + case SDL_WINDOWEVENT_FOCUS_LOST: functor(MLX_WINDOW_EVENT, id, 7); break; + + default : break; + } + break; + } + + default: break; + } + } + } + SDLManager::~SDLManager() { if(m_drop_sdl_responsability) diff --git a/runtime/Sources/Graphics/Scene.cpp b/runtime/Sources/Graphics/Scene.cpp index 998ed64..c508553 100644 --- a/runtime/Sources/Graphics/Scene.cpp +++ b/runtime/Sources/Graphics/Scene.cpp @@ -44,4 +44,9 @@ namespace mlx m_sprites.erase(it); } while(it != m_sprites.end()); } + + Scene::~Scene() + { + m_depth.Destroy(); + } } diff --git a/runtime/Sources/Platform/Inputs.cpp b/runtime/Sources/Platform/Inputs.cpp index b93561f..25ea36f 100644 --- a/runtime/Sources/Platform/Inputs.cpp +++ b/runtime/Sources/Platform/Inputs.cpp @@ -6,14 +6,16 @@ namespace mlx { - Inputs::Inputs() + void Inputs::FetchInputs() { - SDLManager::Get().SetEventCallback([this](mlx_event_type event, int window_id, int code, [[maybe_unused]] void* userdata) + SDLManager::Get().InputsFetcher([this](mlx_event_type event, int window_id, int code) { - if(m_windows.find(window_id) == m_windows.end()) + if(!m_windows.contains(window_id)) + return; + if(!m_events_hooks.contains(window_id) || !m_events_hooks[window_id][event].hook) return; m_events_hooks[window_id][event].hook(code, m_events_hooks[window_id][event].param); - }, nullptr); + }); } std::int32_t Inputs::GetX() const noexcept diff --git a/runtime/Sources/Platform/Window.cpp b/runtime/Sources/Platform/Window.cpp index bc15aec..4c3173b 100644 --- a/runtime/Sources/Platform/Window.cpp +++ b/runtime/Sources/Platform/Window.cpp @@ -7,9 +7,7 @@ namespace mlx { Window::Window(std::size_t w, std::size_t h, const std::string& title, bool hidden) : m_width(w), m_height(h) { - static std::uint64_t ids = 0; - p_window = SDLManager::Get().CreateWindow(title, w, h, hidden); - m_id = ids++; + p_window = SDLManager::Get().CreateWindow(title, w, h, hidden, m_id); } void Window::Destroy() noexcept diff --git a/runtime/Sources/Renderer/Pipelines/Graphics.cpp b/runtime/Sources/Renderer/Pipelines/Graphics.cpp index 226d606..ecab564 100644 --- a/runtime/Sources/Renderer/Pipelines/Graphics.cpp +++ b/runtime/Sources/Renderer/Pipelines/Graphics.cpp @@ -4,7 +4,6 @@ #include #include #include -#include namespace mlx { diff --git a/runtime/Sources/Renderer/RenderPasses/2DPass.cpp b/runtime/Sources/Renderer/RenderPasses/2DPass.cpp index 5b9a9dd..f2f5ed8 100644 --- a/runtime/Sources/Renderer/RenderPasses/2DPass.cpp +++ b/runtime/Sources/Renderer/RenderPasses/2DPass.cpp @@ -5,7 +5,6 @@ #include #include #include -#include namespace mlx {