Add basic input system
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
#pragma once
|
||||
|
||||
#include <algorithm>
|
||||
#include <functional>
|
||||
#include <memory>
|
||||
#include <mutex>
|
||||
|
||||
21
openVulkanoCpp/Base/IPlatform.hpp
Normal file
21
openVulkanoCpp/Base/IPlatform.hpp
Normal file
@@ -0,0 +1,21 @@
|
||||
#pragma once
|
||||
|
||||
#include "IInitable.hpp"
|
||||
#include "ITickable.hpp"
|
||||
#include "ICloseable.hpp"
|
||||
#include "UI/IWindow.hpp"
|
||||
|
||||
namespace openVulkanoCpp
|
||||
{
|
||||
class PlatformInitFailedException : public std::runtime_error
|
||||
{
|
||||
public:
|
||||
PlatformInitFailedException(char const* const message) : runtime_error(message) {}
|
||||
};
|
||||
|
||||
class IPlatform : public IInitable, public ITickable, public ICloseable
|
||||
{
|
||||
public:
|
||||
virtual IWindow* MakeWindow() = 0;
|
||||
};
|
||||
}
|
||||
@@ -10,4 +10,5 @@ namespace openVulkanoCpp
|
||||
std::shared_ptr<spdlog::logger> Logger::AUDIO = nullptr;
|
||||
std::shared_ptr<spdlog::logger> Logger::DATA = nullptr;
|
||||
std::shared_ptr<spdlog::logger> Logger::SCENE = nullptr;
|
||||
std::shared_ptr<spdlog::logger> Logger::INPUT = nullptr;
|
||||
}
|
||||
@@ -28,6 +28,7 @@ namespace openVulkanoCpp
|
||||
static std::shared_ptr<spdlog::logger> AUDIO;
|
||||
static std::shared_ptr<spdlog::logger> DATA;
|
||||
static std::shared_ptr<spdlog::logger> SCENE;
|
||||
static std::shared_ptr<spdlog::logger> INPUT;
|
||||
|
||||
static void SetupLogger(std::string logFolder = "logs", std::string logFile = "openVulkano.log")
|
||||
{
|
||||
@@ -59,6 +60,7 @@ namespace openVulkanoCpp
|
||||
AUDIO = CreateLogger("audio");
|
||||
DATA = CreateLogger("data");
|
||||
SCENE = CreateLogger("scene");
|
||||
INPUT = CreateLogger("input");
|
||||
|
||||
spdlog::flush_every(std::chrono::seconds(5));
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ namespace openVulkanoCpp
|
||||
//OpenGL,
|
||||
//DirectX11,
|
||||
//DirectX12,
|
||||
//Metal,
|
||||
MAX_VALUE
|
||||
};
|
||||
|
||||
@@ -27,7 +28,7 @@ namespace openVulkanoCpp
|
||||
{
|
||||
enum Platform
|
||||
{
|
||||
Windows = 0, MacOS, Linux, Android, MAX_VALUE
|
||||
Windows = 0, MacOS, Linux, Android, iOS, MAX_VALUE
|
||||
};
|
||||
|
||||
inline std::string ToString(Platform os)
|
||||
@@ -35,9 +36,10 @@ namespace openVulkanoCpp
|
||||
switch (os)
|
||||
{
|
||||
case Windows: return "Windows";
|
||||
case MacOS: return "Windows";
|
||||
case Linux: return "Windows";
|
||||
case Android: return "Windows";
|
||||
case MacOS: return "MacOS";
|
||||
case Linux: return "Linux";
|
||||
case Android: return "Android";
|
||||
case iOS: return "iOS";
|
||||
}
|
||||
return "Invalid";
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
#include <glm/glm.hpp>
|
||||
#include <vulkan/vulkan.hpp>
|
||||
#include "../PlatformEnums.hpp"
|
||||
#include "../ITickable.hpp"
|
||||
#include "../ICloseable.hpp"
|
||||
|
||||
namespace openVulkanoCpp
|
||||
@@ -29,7 +28,7 @@ namespace openVulkanoCpp
|
||||
WindowMode windowMode = WINDOWED;
|
||||
};
|
||||
|
||||
class IWindow : public ITickable, public ICloseable
|
||||
class IWindow : public ICloseable
|
||||
{
|
||||
public:
|
||||
virtual ~IWindow() = default;
|
||||
|
||||
Reference in New Issue
Block a user