Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
            }
        }