Пример #1
0
 protected virtual void OnDrawPrepare(FrameStageControllerEventArgs args)
 {
     DrawPrepare?.Invoke(this, args);
 }
Пример #2
0
 protected virtual void OnProcessingRawInput(FrameStageControllerEventArgs args)
 {
     ProcessingRawInput?.Invoke(this, args);
 }
Пример #3
0
 private void ProcessInput(FrameStageControllerEventArgs args)
 {
     OnProcessingRawInput(args);
 }
Пример #4
0
        public void AdvanceFrame()
        {
            if (_frameIndex > 0)
            {
                _currFrameTimerValue = (ulong)_systemTimer.ElapsedTicks;
                _timeSinceLastFrame  = (ulong)((_currFrameTimerValue - _lastFrameTimeValue) * SystemTimerResolution);
                _totalFrameTime     += _timeSinceLastFrame;
            }

            FrameStageControllerEventArgs args = new FrameStageControllerEventArgs(CurrentTime);

            FrameStarted = true;
            OnFrameStart(CurrentTime);

            ProcessInput(args);

            if (args.AbortExecution)
            {
                AbortFlag = true;
                return;
            }

            if (AutoClearFrames)
            {
                ClearBuffer();

                OnBufferClear(CurrentTime);
            }

            if (AutoEventPolling)
            {
                ProcessEvents();
            }

            OnDrawPrepare(args);

            if (args.AbortExecution)
            {
                AbortFlag = true;
                return;
            }
            if (args.SkipFrame)
            {
                _frameIndex++;
                _lastFrameTimeValue = _currFrameTimerValue;
                _framesSkipped++;
                return;
            }

            OnDraw(CurrentTime);
            OnDrawEnd(CurrentTime);
            FrameStarted = false;

            SwapBuffers();

            OnBufferSwap(CurrentTime);

            OnFrameEnd(CurrentTime);
            ActiveShaderProgram = null;

            SleepThread();

            _frameIndex++;
            _lastFrameTimeValue = _currFrameTimerValue;
        }
Пример #5
0
 protected virtual void Renderer_DrawPrepare(RenderThread sender, FrameStageControllerEventArgs args)
 {
 }
Пример #6
0
 protected virtual void Renderer_ProcessingRawInput(RenderThread sender, FrameStageControllerEventArgs args)
 {
 }