initial commit
This commit is contained in:
37
source/app/vulkan_application.cpp
Normal file
37
source/app/vulkan_application.cpp
Normal file
@@ -0,0 +1,37 @@
|
||||
|
||||
#include "iwa/app/vulkan_application.hpp"
|
||||
|
||||
#include <mijin/virtual_filesystem/filesystem.hpp>
|
||||
#include <mijin/virtual_filesystem/relative.hpp>
|
||||
|
||||
namespace iwa
|
||||
{
|
||||
VulkanApplication::VulkanApplication(const ApplicationCreationArgs& args, ObjectPtr<> owner) : super_t(std::move(owner))
|
||||
{
|
||||
mInstance = Instance::create(args.instanceArgs);
|
||||
mDevice = mInstance->createDevice(args.deviceArgs);
|
||||
mMainWindow = mInstance->createWindow(args.mainWindowArgs);
|
||||
|
||||
SwapchainCreationArgs swapchainCreationArgs = args.mainWindowSwapchainArgs;
|
||||
MIJIN_ASSERT(swapchainCreationArgs.window == nullptr, "Main window swapchain args shouldn't contain a window.");
|
||||
swapchainCreationArgs.window = mMainWindow;
|
||||
mMainWindowSwapchain = mDevice->createChild<Swapchain>(swapchainCreationArgs);
|
||||
|
||||
if (!args.assetPath.empty())
|
||||
{
|
||||
mInstance->getPrimaryFSAdapter().emplaceAdapter<mijin::RelativeFileSystemAdapter<mijin::OSFileSystemAdapter>>(
|
||||
/* root = */ fs::current_path() / "assets"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
int VulkanApplication::execute(int argc, char** argv) // NOLINT
|
||||
{
|
||||
(void) argc;
|
||||
(void) argv;
|
||||
mInstance->getMainTaskLoop().addTask(c_init());
|
||||
mInstance->getMainTaskLoop().runUntilDone();
|
||||
|
||||
return 0;
|
||||
}
|
||||
} // namespace iwa
|
||||
Reference in New Issue
Block a user