private static void RunOnRenderThread(int eventID)
 {
     if (eventID == STARTNATIVERENDEREVENT)
     {
         m_NativeRenderring.Start();
     }
     else if (eventID == RESUMENATIVERENDEREVENT)
     {
         m_NativeRenderring.Resume();
     }
     else if (eventID == STOPNATIVERENDEREVENT)
     {
         m_NativeRenderring.Pause();
     }
     else if (eventID == STOPNATIVERENDEREVENT)
     {
         if (m_NativeRenderring != null)
         {
             m_NativeRenderring.Destroy();
             m_NativeRenderring = null;
         }
         NRDevice.Instance.Destroy();
     }
     else if (eventID == SETRENDERTEXTUREEVENT)
     {
         FrameInfo framinfo = (FrameInfo)Marshal.PtrToStructure(m_NativeRenderring.FrameInfoPtr, typeof(FrameInfo));
         m_NativeRenderring.DoRender(framinfo.leftTex, framinfo.rightTex, ref framinfo.pose);
     }
 }
        private void StartUp()
        {
#if !UNITY_EDITOR
            m_NativeRenderring = new NativeRenderring();
            m_NativeRenderring.Create();

            StartCoroutine(RenderCoroutine());
#endif
            GL.IssuePluginEvent(RenderThreadHandlePtr, STARTNATIVERENDEREVENT);
        }
        private void StartUp()
        {
            leftCamera.enabled  = true;
            rightCamera.enabled = true;
#if !UNITY_EDITOR
            m_NativeRenderring = new NativeRenderring();
            m_NativeRenderring.Create();
#if !UNITY_STANDALONE_WIN
            m_NativeRenderring.InitColorSpace();
#endif

            StartCoroutine(RenderCoroutine());
#endif
            m_CurrentState = RendererState.Running;
            GL.IssuePluginEvent(RenderThreadHandlePtr, STARTNATIVERENDEREVENT);
        }
        private IEnumerator StartUp()
        {
            var virtualDisplay = GameObject.FindObjectOfType <NRVirtualDisplayer>();

            while (virtualDisplay == null || !virtualDisplay.IsPlaying)
            {
                NRDebugger.Log("[NRRender] Wait virtual display ready...");
                yield return(new WaitForEndOfFrame());

                if (virtualDisplay == null)
                {
                    virtualDisplay = GameObject.FindObjectOfType <NRVirtualDisplayer>();
                }
            }

            yield return(new WaitForEndOfFrame());

            yield return(new WaitForEndOfFrame());

            yield return(new WaitForEndOfFrame());

            NRDebugger.Log("[NRRender] StartUp");
            CreateRenderTextures();

            leftCamera.enabled  = true;
            rightCamera.enabled = true;
#if !UNITY_EDITOR
            m_NativeRenderring = new NativeRenderring();
            m_NativeRenderring.Create();
#if !UNITY_STANDALONE_WIN
            m_NativeRenderring.InitColorSpace();
#endif
            StartCoroutine(RenderCoroutine());
#endif
            m_CurrentState = RendererState.Running;
            GL.IssuePluginEvent(RenderThreadHandlePtr, STARTNATIVERENDEREVENT);
        }