예제 #1
0
 // Token: 0x06005F92 RID: 24466 RVA: 0x00219C10 File Offset: 0x00218010
 private void Update()
 {
     if (this.text != null)
     {
         if (Input.GetKeyDown(KeyCode.I))
         {
             this.text.enabled = !this.text.enabled;
         }
         if (this.text.enabled)
         {
             CVRCompositor compositor = OpenVR.Compositor;
             if (compositor != null)
             {
                 Compositor_FrameTiming compositor_FrameTiming = default(Compositor_FrameTiming);
                 compositor_FrameTiming.m_nSize = (uint)Marshal.SizeOf(typeof(Compositor_FrameTiming));
                 compositor.GetFrameTiming(ref compositor_FrameTiming, 0u);
                 double flSystemTimeInSeconds = compositor_FrameTiming.m_flSystemTimeInSeconds;
                 if (flSystemTimeInSeconds > this.lastUpdate)
                 {
                     double num = (this.lastUpdate <= 0.0) ? 0.0 : (1.0 / (flSystemTimeInSeconds - this.lastUpdate));
                     this.lastUpdate = flSystemTimeInSeconds;
                     this.text.text  = string.Format("framerate: {0:N0}\ndropped frames: {1}", num, (int)compositor_FrameTiming.m_nNumDroppedFrames);
                 }
                 else
                 {
                     this.lastUpdate = flSystemTimeInSeconds;
                 }
             }
         }
     }
 }
예제 #2
0
 public static bool GetFrameTiming(ref Compositor_FrameTiming pTiming, uint unFramesAgo)
 {
     pTiming.m_nSize = (uint)Marshal.SizeOf(pTiming);
     if (m_vrCompositor != null)
     {
         return(m_vrCompositor.GetFrameTiming(ref pTiming, unFramesAgo));
     }
     return(false);
 }
    void SetTiming()
    {
        var timing = new Compositor_FrameTiming();

        timing.m_nSize = (uint)System.Runtime.InteropServices.Marshal.SizeOf(typeof(Compositor_FrameTiming));
        compositor.GetFrameTiming(ref timing, 0);

        var update = timing.m_flSystemTimeInSeconds;

        if (update > lastUpdate)
        {
            var framerate        = (lastUpdate > 0.0f) ? 1.0f / (update - lastUpdate) : 0.0f;
            int numFramesDropped = (int)timing.m_nNumDroppedFrames;
            lastUpdate = update;
            text.text  = string.Format("FPS: {0:N0}\nDropped: {1}", framerate, numFramesDropped);
            ColorizeText(framerate);
        }
        else
        {
            lastUpdate = update;
        }
    }
예제 #4
0
        //----------------------コンポジターfps取得-------------------
        public double GetCompositorFrameTime()
        {
            CVRCompositor cVRCompositor = OpenVR.Compositor;

            if (cVRCompositor == null)
            {
                return(float.NaN);
            }

            //現在
            Compositor_FrameTiming pTiming0 = new Compositor_FrameTiming();

            pTiming0.m_nSize = (uint)System.Runtime.InteropServices.Marshal.SizeOf(typeof(Compositor_FrameTiming));
            if (!cVRCompositor.GetFrameTiming(ref pTiming0, 0))
            {
                return(float.NaN);
            }

            double frameTime0 = pTiming0.m_flTotalRenderGpuMs;
            double fps        = 1f / frameTime0;

            return(frameTime0);
        }
예제 #5
0
        private void Update()
        {
            if (Input.anyKeyDown)
            {
                print("Got Key Down, Count: " + ++_count + ", Player " + (!_hasPaused ? "Paused" : "Playing"));
                if (Input.GetKeyDown(KeyCode.Escape))
                {
                    print("Got Key Down, Code: Escape");
                    _hasPaused                = true;
                    _toAnotherScene           = true;
                    enabled                   = false;
                    ConfigurationManager.Test = (int)_count;
                    SceneManager.LoadScene(ConfigurationManager.MenuSceneName, LoadSceneMode.Single);
                    return;
                }

                _hasPaused = !_hasPaused;
            }

            if (UseVrDevice && _compositor == null)
            {
                _compositor = SteamVR.instance.compositor;
            }
            var frameTiming = new Compositor_FrameTiming
            {
                m_nSize = (uint)Marshal.SizeOf(typeof(Compositor_FrameTiming))
            };

            if (!UseVrDevice || _compositor != null && _compositor.GetFrameTiming(ref frameTiming, 0))
            {
                if (frameTiming.m_nFrameIndex == _lastVrFrameIndex)
                {
                    return;
                }
                _lastVrFrameIndex = frameTiming.m_nFrameIndex;
            }
        }