Split IWindow a bit
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user