zengine/engine/modules/render/vulkan/include/vkn/backend.h
2024-08-30 22:09:05 +08:00

26 lines
556 B
C++

#pragma once
#include "vkn/type.h"
namespace vkn {
class Device;
class Instance;
class Backend {
protected:
Instance* mInstance;
Device* mDevice;
public:
Backend(string_view appName);
~Backend();
template<typename Worker>
Worker* InitWorker(Name name, VkCommandPoolCreateFlags flag);
Instance& GetInstance() {
return *mInstance;
}
Device& GetDevice() {
return *mDevice;
}
public:
static struct BufferWorker* TransferWorker;
static struct CommandWorker* RenderWorker;
static struct CommandWorker* PresentWorker;
};
};