public OculusContext(VRContextOptions options) { _options = options; ovrInitParams initParams = new ovrInitParams(); initParams.Flags = ovrInitFlags.RequestVersion | ovrInitFlags.FocusAware | ovrInitFlags.Debug; initParams.RequestedMinorVersion = 30; ovrResult result = ovr_Initialize(&initParams); if (result != ovrResult.Success) { throw new VeldridException($"Failed to initialize Oculus: {result}"); } ovrSession session; ovrGraphicsLuid luid; result = ovr_Create(&session, &luid); if (result != ovrResult.Success) { throw new VeldridException($"Failed to create an Oculus session."); } _session = session; _luid = luid; _mirrorTexture = new OculusMirrorTexture(this); }
private static bool CheckSupport() { try { ovrInitParams initParams = new ovrInitParams(); initParams.Flags = ovrInitFlags.RequestVersion | ovrInitFlags.FocusAware | ovrInitFlags.Debug; initParams.RequestedMinorVersion = 30; ovrResult result = ovr_Initialize(&initParams); if (result != ovrResult.Success) { return(false); } ovrSession session; ovrGraphicsLuid luid; result = ovr_Create(&session, &luid); if (result != ovrResult.Success) { return(false); } ovr_Destroy(session); ovr_Shutdown(); return(true); } catch { return(false); } }