mirror of
https://github.com/seekrs/MacroLibX.git
synced 2026-01-11 22:53:34 +00:00
removing GLFW support
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2022/10/04 21:49:46 by maldavid #+# #+# */
|
||||
/* Updated: 2024/04/21 20:39:33 by maldavid ### ########.fr */
|
||||
/* Updated: 2024/05/25 15:26:36 by maldavid ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
|
||||
#include <Core/Graphics.h>
|
||||
#include <Platform/Inputs.h>
|
||||
#include <Core/DriverLoader.h>
|
||||
#include <Core/ImagesRegistry.h>
|
||||
#include <Core/Fps.h>
|
||||
|
||||
@@ -61,7 +60,6 @@ namespace mlx
|
||||
private:
|
||||
FpsManager m_fps;
|
||||
Input m_in;
|
||||
DriverLoader m_driver_loader;
|
||||
ImageRegistry m_image_registry;
|
||||
std::vector<std::unique_ptr<GraphicsSupport>> m_graphics;
|
||||
std::function<int(void*)> f_loop_hook;
|
||||
@@ -69,6 +67,6 @@ namespace mlx
|
||||
};
|
||||
}
|
||||
|
||||
#include <core/application.inl>
|
||||
#include <Core/Application.inl>
|
||||
|
||||
#endif // __MLX_APPLICATION__
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
/* **************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* DriverLoader.inl :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/04/03 14:55:01 by maldavid #+# #+# */
|
||||
/* Updated: 2024/04/03 14:55:01 by maldavid ### ########.fr */
|
||||
/* */
|
||||
/* **************************************************************************** */
|
||||
|
||||
#pragma once
|
||||
#include <Core/DriverLoader.h>
|
||||
|
||||
namespace mlx
|
||||
{
|
||||
template <typename T>
|
||||
bool DriverLoader::LoadDriver()
|
||||
{
|
||||
m_instances.emplace_back(new T)->InitDriver();
|
||||
}
|
||||
|
||||
void DriverLoader::ShutdownAllDrivers()
|
||||
{
|
||||
for(auto& driver : m_instances)
|
||||
driver->ShutdownDriver();
|
||||
m_instances.clear();
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@
|
||||
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2023/04/02 14:49:49 by maldavid #+# #+# */
|
||||
/* Updated: 2024/04/23 14:02:48 by maldavid ### ########.fr */
|
||||
/* Updated: 2024/05/25 01:00:10 by maldavid ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@@ -70,6 +70,6 @@ namespace mlx
|
||||
};
|
||||
}
|
||||
|
||||
#include <core/graphics.inl>
|
||||
#include <Core/Graphics.inl>
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,39 +1,41 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* DriverLoader.h :+: :+: :+: */
|
||||
/* SDLManager.h :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/04/02 16:56:10 by maldavid #+# #+# */
|
||||
/* Updated: 2024/04/03 15:02:44 by maldavid ### ########.fr */
|
||||
/* Created: 2024/05/25 15:28:59 by maldavid #+# #+# */
|
||||
/* Updated: 2024/05/25 16:11:50 by maldavid ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#ifndef __MLX_CORE_DRIVER_LOADER__
|
||||
#define __MLX_CORE_DRIVER_LOADER__
|
||||
#ifndef __MLX_SDL_MANAGER__
|
||||
#define __MLX_SDL_MANAGER__
|
||||
|
||||
#include <Drivers/DriverInstance.h>
|
||||
#include <Utils/Singleton.h>
|
||||
|
||||
namespace mlx
|
||||
{
|
||||
class DriverLoader
|
||||
class SDLManager : public Singleton<SDLManager>
|
||||
{
|
||||
friend class Singleton<SDLManager>;
|
||||
|
||||
public:
|
||||
DriverLoader() = default;
|
||||
void Init() noexcept;
|
||||
void Shutdown() noexcept;
|
||||
|
||||
template <typename T>
|
||||
inline bool LoadDriver();
|
||||
|
||||
inline void ShutdownAllDrivers();
|
||||
|
||||
~DriverLoader() = default;
|
||||
void* CreateWindow(const std::string& title, std::size_t w, std::size_t h);
|
||||
void DestroyWindow(void* window) noexcept;
|
||||
|
||||
private:
|
||||
std::vector<std::unique_ptr<DriverInstance> > m_instances;
|
||||
SDLManager() = default;
|
||||
~SDLManager() = default;
|
||||
|
||||
private:
|
||||
std::unordered_set<void*> m_windows_registry;
|
||||
bool m_drop_sdl_responsability = false;
|
||||
};
|
||||
}
|
||||
|
||||
#include <Core/DriverLoader.inl>
|
||||
|
||||
#endif
|
||||
@@ -1,35 +0,0 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* DriverInstance.h :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/04/02 16:57:20 by maldavid #+# #+# */
|
||||
/* Updated: 2024/04/02 17:01:03 by maldavid ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#ifndef __MLX_DRIVER_INSTANCE__
|
||||
#define __MLX_DRIVER_INSTANCE__
|
||||
|
||||
namespace mlx
|
||||
{
|
||||
class DriverInstance
|
||||
{
|
||||
public:
|
||||
DriverInstance() = default;
|
||||
|
||||
virtual bool InitDriver() { m_is_up = true; return true; }
|
||||
virtual void ShutdownDriver() { m_is_up = false; }
|
||||
|
||||
inline bool IsRunning() const noexcept { return m_is_up; }
|
||||
|
||||
virtual ~DriverInstance() = default;
|
||||
|
||||
private:
|
||||
bool m_is_up = false;
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1,34 +0,0 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* GLFWDriverInstance.h :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/04/02 17:01:51 by maldavid #+# #+# */
|
||||
/* Updated: 2024/04/02 17:04:12 by maldavid ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#ifndef __MLX_GLFW_DRIVER_INSTANCE__
|
||||
#define __MLX_GLFW_DRIVER_INSTANCE__
|
||||
|
||||
#include <Drivers/DriverInstance.h>
|
||||
|
||||
namespace mlx
|
||||
{
|
||||
class GLFWDriverInstance : public DriverInstance
|
||||
{
|
||||
public:
|
||||
GLFWDriverInstance() = default;
|
||||
|
||||
inline bool InitDriver() override;
|
||||
inline void ShutdownDriver() override;
|
||||
|
||||
~GLFWDriverInstance() override = default;
|
||||
};
|
||||
}
|
||||
|
||||
#include <Drivers/GLFW/GLFWDriverInstance.inl>
|
||||
|
||||
#endif
|
||||
@@ -1,32 +0,0 @@
|
||||
/* **************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* GLFWDriverInstance.inl :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/04/02 17:04:23 by maldavid #+# #+# */
|
||||
/* Updated: 2024/04/02 17:04:23 by maldavid ### ########.fr */
|
||||
/* */
|
||||
/* **************************************************************************** */
|
||||
|
||||
#include <Drivers/GLFW/GLFWDriverInstance.h>
|
||||
|
||||
namespace mlx
|
||||
{
|
||||
bool GLFWDriverInstance::InitDriver()
|
||||
{
|
||||
glfwSetErrorCallback([]([[maybe_unused]] int code, const char* desc)
|
||||
{
|
||||
FatalError("GLFW Driver Error : %", desc);
|
||||
});
|
||||
glfwInit();
|
||||
DebugLog("GLFW Driver loaded");
|
||||
}
|
||||
|
||||
void GLFWDriverInstance::ShutdownDriver()
|
||||
{
|
||||
glfwTerminate();
|
||||
DebugLog("GLFW Driver shutted down");
|
||||
}
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* GLFWInputs.h :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/03/27 18:32:29 by maldavid #+# #+# */
|
||||
/* Updated: 2024/03/27 18:37:58 by maldavid ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#ifndef __MLX_GLFW_INPUTS__
|
||||
#define __MLX_GLFW_INPUTS__
|
||||
|
||||
#include <Platform/Inputs.h>
|
||||
|
||||
namespace mlx
|
||||
{
|
||||
class GLFWInputs : public Inputs
|
||||
{
|
||||
public:
|
||||
GLFWInputs() = default;
|
||||
|
||||
void Update() override noexcept;
|
||||
|
||||
void RegisterWindow(std::shared_ptr<Window> window) override;
|
||||
|
||||
inline std::int32_t GetX() override const noexcept { return m_x; }
|
||||
inline std::int32_t GetY() override const noexcept { return m_y; }
|
||||
inline std::int32_t GetXRel() override const noexcept { return m_x_rel; }
|
||||
inline std::int32_t GetYRel() override const noexcept { return m_y_rel; }
|
||||
|
||||
~GLFWInputs() override = default;
|
||||
|
||||
private:
|
||||
std::int32_t m_x = 0;
|
||||
std::int32_t m_y = 0;
|
||||
std::int32_t m_x_rel = 0;
|
||||
std::int32_t m_y_rel = 0;
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -6,7 +6,7 @@
|
||||
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2022/10/04 21:53:12 by maldavid #+# #+# */
|
||||
/* Updated: 2024/03/27 21:58:18 by maldavid ### ########.fr */
|
||||
/* Updated: 2024/05/25 16:11:00 by maldavid ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@@ -15,18 +15,12 @@
|
||||
|
||||
namespace mlx
|
||||
{
|
||||
#ifdef LEGACY
|
||||
using WindowHandle = SDL_Window;
|
||||
#else
|
||||
using WindowHandle = GLFWwindow;
|
||||
#endif
|
||||
|
||||
class Window
|
||||
{
|
||||
public:
|
||||
Window(std::size_t w, std::size_t h, const std::string& title);
|
||||
|
||||
inline NonOwningPtr<WindowHandle> GetWindowHandle() const noexcept = 0;
|
||||
inline void* GetWindowHandle() const noexcept { return p_window; }
|
||||
inline int GetWidth() const noexcept { return m_width; }
|
||||
inline int GetHeight() const noexcept { return m_height; }
|
||||
inline std::uint32_t GetID() const noexcept { return m_id; }
|
||||
@@ -36,6 +30,7 @@ namespace mlx
|
||||
~Window() = default;
|
||||
|
||||
private:
|
||||
void* p_window = nullptr;
|
||||
std::uint32_t m_id = -1;
|
||||
int m_width = 0;
|
||||
int m_height = 0;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/03/25 17:37:23 by maldavid #+# #+# */
|
||||
/* Updated: 2024/04/23 13:49:52 by maldavid ### ########.fr */
|
||||
/* Updated: 2024/05/25 15:46:37 by maldavid ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@@ -23,12 +23,8 @@
|
||||
#include <iostream>
|
||||
#include <volk.h>
|
||||
|
||||
#ifdef MLX_LEGACY
|
||||
#include <SDL2/SDL.h>
|
||||
#include <SDL2/SDL_vulkan.h>
|
||||
#else
|
||||
#include <GLFW/glfw3.h>
|
||||
#endif
|
||||
#include <SDL2/SDL.h>
|
||||
#include <SDL2/SDL_vulkan.h>
|
||||
|
||||
#include <functional>
|
||||
#include <memory>
|
||||
|
||||
@@ -16,7 +16,7 @@ namespace mlx
|
||||
{
|
||||
template<typename T>
|
||||
NonOwningPtr<T>::NonOwningPtr(T* ptr) : p_ptr(ptr) {}
|
||||
|
||||
|
||||
template<typename T>
|
||||
NonOwningPtr<T>::NonOwningPtr(NonOwningPtr<T>&& ptr) noexcept : p_ptr(ptr.p_ptr)
|
||||
{
|
||||
@@ -28,7 +28,7 @@ namespace mlx
|
||||
{
|
||||
p_ptr = ptr;
|
||||
}
|
||||
|
||||
|
||||
template<typename T>
|
||||
NonOwningPtr<T>& NonOwningPtr<T>::operator=(NonOwningPtr&& ptr) noexcept
|
||||
{
|
||||
@@ -47,13 +47,13 @@ namespace mlx
|
||||
{
|
||||
return p_ptr;
|
||||
}
|
||||
|
||||
|
||||
template<typename T>
|
||||
T* NonOwningPtr<T>::operator->() const noexcept
|
||||
{
|
||||
return p_ptr;
|
||||
}
|
||||
|
||||
|
||||
template<typename T>
|
||||
T& NonOwningPtr<T>::operator*() const noexcept
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user