// Adapted from the vrdashboard template (FrameAssistant commit 4a5b090), // verified on the Steam Frame. See docs/steamframe/DESIGN.md, section 3. #include "RenderBackend.h" #include "OpenGLRenderBackend.h" #if OVRAS_HAS_VULKAN # include "VulkanRenderBackend.h" #endif std::unique_ptr createRenderBackend( GraphicsApi api ) { switch ( api ) { case GraphicsApi::OpenGL: return std::make_unique(); case GraphicsApi::Vulkan: #if OVRAS_HAS_VULKAN return std::make_unique(); #else return nullptr; // built without Vulkan support #endif } return nullptr; } bool parseGraphicsApi( const QString& name, GraphicsApi* api ) { const QString lower = name.toLower(); if ( lower == QLatin1String( "opengl" ) || lower == QLatin1String( "gl" ) ) *api = GraphicsApi::OpenGL; else if ( lower == QLatin1String( "vulkan" ) || lower == QLatin1String( "vk" ) ) *api = GraphicsApi::Vulkan; else return false; return true; }