Implemented KRDeviceManager

This commit is contained in:
2021-08-17 00:20:56 -07:00
parent f6b3845057
commit a3fc0d84d4
8 changed files with 295 additions and 172 deletions

View File

@@ -45,6 +45,7 @@
#include "KRShaderManager.h"
#include "KRSourceManager.h"
#include "KRSurfaceManager.h"
#include "KRDeviceManager.h"
#include "KRStreamer.h"
#include "KRDevice.h"
#include "KRSurface.h"
@@ -111,6 +112,7 @@ public:
KRShaderManager *getShaderManager();
KRSourceManager *getSourceManager();
KRSurfaceManager* getSurfaceManager();
KRDeviceManager* getDeviceManager();
KRCamera *createCamera(int width, int height);
@@ -159,11 +161,12 @@ public:
static std::mutex g_SurfaceInfoMutex;
static std::mutex g_DeviceInfoMutex;
/*
KRDevice& GetDeviceInfo(KrDeviceHandle handle);
KRSurface& GetSurfaceInfo(KrSurfaceHandle handle);
VkInstance& GetVulkanInstance();
KrSurfaceHandle GetBestDeviceForSurface(const VkSurfaceKHR& surface);
*/
#if TARGET_OS_MAC
static void attachToView(void *view);
@@ -183,6 +186,7 @@ private:
KRUnknownManager *m_pUnknownManager;
KRShaderManager *m_pShaderManager;
KRSourceManager *m_pSourceManager;
std::unique_ptr<KRDeviceManager> m_deviceManager;
std::unique_ptr<KRSurfaceManager> m_surfaceManager;
KRResource** m_resourceMap;
@@ -207,20 +211,12 @@ private:
static void *s_log_callback_user_data;
KRStreamer m_streamer;
VkInstance m_vulkanInstance;
void createDeviceContexts();
void createDevices();
void destroyDeviceContexts();
unordered_multimap<std::string, KRResource*> m_resources;
std::unique_ptr<KRPresentationThread> m_presentationThread;
unordered_map<KrDeviceHandle, std::unique_ptr<KRDevice>> m_devices;
KrDeviceHandle m_topDeviceHandle;
unordered_map<KrSurfaceMapIndex, KrSurfaceHandle> m_surfaceHandleMap;
};