2024-08-17 18:01:21 +08:00
|
|
|
#pragma once
|
2024-08-23 22:13:05 +08:00
|
|
|
#include "thread/worker.h"
|
2024-08-17 18:01:21 +08:00
|
|
|
namespace vkn {
|
2024-08-23 22:13:05 +08:00
|
|
|
class Device;
|
|
|
|
|
class Instance;
|
2024-08-17 18:01:21 +08:00
|
|
|
class Backend {
|
2024-08-23 22:13:05 +08:00
|
|
|
protected:
|
|
|
|
|
Instance* mInstance;
|
|
|
|
|
Device* mDevice;
|
|
|
|
|
table<Name, CommandWorker*> mWorkerMap;
|
|
|
|
|
public:
|
|
|
|
|
Backend(string_view appName);
|
|
|
|
|
~Backend();
|
|
|
|
|
void InitWorker(Name name, VkCommandPoolCreateFlags flag);
|
|
|
|
|
CommandWorker* GetWorker(Name name);
|
2024-08-17 18:01:21 +08:00
|
|
|
|
2024-08-23 22:13:05 +08:00
|
|
|
public:
|
|
|
|
|
static CommandWorker* TransferWorker;
|
|
|
|
|
static CommandWorker* RenderWorker;
|
|
|
|
|
static CommandWorker* PresentWorker;
|
2024-08-17 18:01:21 +08:00
|
|
|
};
|
2024-08-23 22:13:05 +08:00
|
|
|
};
|