This commit is contained in:
Kbz-8
2024-04-21 18:10:36 +02:00
parent 0e04356ea7
commit 810417a251
28 changed files with 558 additions and 375 deletions

35
runtime/Includes/Drivers/DriverInstance.h git.filemode.normal_file
View File

@@ -0,0 +1,35 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* 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

View File

@@ -0,0 +1,34 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* 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

View File

@@ -0,0 +1,32 @@
/* **************************************************************************** */
/* */
/* ::: :::::::: */
/* 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");
}
}