Esempio n. 1
0
        public virtual void Run()
        {
            Renderer.Start();

            if (!Renderer.Asynchronous)
            {
                bool AbortMainLoop          = false;
                RenderProgramEventArgs args = new RenderProgramEventArgs();
                while (!AbortMainLoop)
                {
                    OnSyncRenderStart(args);

                    if (args.AbortExecution)
                    {
                        break;
                    }

                    Renderer.ProcessEvents();

                    if (Renderer.TargetWindow?.IsExiting ?? true || !Renderer.IsRunning)
                    {
                        break;
                    }

                    Renderer.AdvanceFrame();
                    OnSyncRenderEnd(args);

                    if (args.AbortExecution)
                    {
                        break;
                    }
                }
            }
        }
Esempio n. 2
0
 protected virtual void OnSyncRenderEnd(RenderProgramEventArgs e)
 {
     SyncRenderEnd?.Invoke(this, e);
 }