#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 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; }; };