]> git.tdb.fi Git - libs/vr.git/blobdiff - source/system.cpp
Add a system creation function with automatic backend detection
[libs/vr.git] / source / system.cpp
index 99a6d4871ece2486b7658eb2c1234d9ecbf6f62c..c8354561489ffba0bf1b1711c7ed38db97264eb8 100644 (file)
@@ -25,5 +25,31 @@ System *System::create(const string &type)
        throw invalid_argument(format("system '%s' not supported", type));
 }
 
+System *System::create_autodetect()
+{
+#ifdef WITH_OPENVR
+       if(OpenVRSystem::is_maybe_available())
+       {
+               try
+               {
+                       return new OpenVRSystem;
+               }
+               catch(const runtime_error &)
+               { }
+       }
+#endif
+
+#ifdef WITH_LIBOVR
+       try
+       {
+               return new LibOVRSystem;
+       }
+       catch(const runtime_error &)
+       { }
+#endif
+
+       return 0;
+}
+
 } // namespace VR
 } // namespace Msp