Split IWindow a bit

This commit is contained in:
2020-10-24 23:02:01 +02:00
parent 30dd4f255c
commit ae76fa59e9
8 changed files with 55 additions and 32 deletions

View File

@@ -6,12 +6,11 @@
#pragma once
#include <string>
#include <stdexcept>
#include <glm/glm.hpp>
#include <vulkan/vulkan.hpp>
#include "../PlatformEnums.hpp"
#include "../ICloseable.hpp"
#include <string>
#include <stdexcept>
namespace openVulkanoCpp
{
@@ -82,34 +81,16 @@ namespace openVulkanoCpp
virtual IVulkanWindow* GetVulkanWindow() = 0;
virtual IOpenGlWindow* GetOpenGlWindow() = 0;
virtual int GetWindowId() const = 0;
[[nodiscard]] virtual uint32_t GetWindowId() const = 0;
protected:
static int CreateWindowId()
static uint32_t CreateWindowId()
{
static int id = 0;
static uint32_t id = 0;
return id++;
}
};
class IVulkanWindow : virtual public IWindow
{
public:
virtual ~IVulkanWindow() = default;
virtual vk::SurfaceKHR CreateSurface(const vk::Instance& instance, const vk::AllocationCallbacks* pAllocator = nullptr) = 0;
virtual std::vector<std::string> GetRequiredInstanceExtensions() = 0;
};
class IOpenGlWindow : virtual public IWindow
{
public:
virtual ~IOpenGlWindow() = default;
virtual void MakeCurrentThread() = 0;
virtual void Present() const = 0;
};
class IWindowHandler
{
public: