7 Months Ago
Reduce stack usage Vulkan headers Include headers Restructure (see desc) fpxr::Instance now handles creating a compositor. fpxr::Compositor handles creating an event manager. The idea behind this is that we want to be able to use Vulkan functions to create images, so that we can pass any valid VkImage in from an app and then have FPXR copy it over to the VkImage that OpenXR wants to use, meaning that you don't have to fuck around with passing images and image views to and from OpenXR and your application. We'll manually vkCmdCopyImage at the end of the frame before submitting to OpenXR (i.e. when rendering a layer). ```cpp fpxr::InstanceBuilder instance_builder{}; fpxr::Instance instance = instance_builder.SetAppName("fpxr") .WithGraphicsAPI(fpxr::GraphicsAPI::GRAPHICS_API_HEADLESS) .RequestValidationLayers() .WithDebugMessenger() .Build(); fpxr::Compositor* compositor = instance.Compositor(); fpxr::EventManager* eventManager = compositor->EventManager(); ```