コード例 #1
0
        private void Render()
        {
            var      now = m_stopwatch.Elapsed;
            TimeSpan elapsed;

            if (m_previousFrame == TimeSpan.MinValue)
            {
                elapsed = TimeSpan.Zero;
            }
            else
            {
                elapsed = now - m_previousFrame;
            }

            m_previousFrame = now;

            if (elapsed != TimeSpan.Zero)
            {
                m_framesPerSecond = m_framesPerSecond * 0.95 + (1 / elapsed.TotalSeconds) * 0.05;
            }

            WinApi.ValidateRect(m_display.Handle, IntPtr.Zero);

            m_logic.Render(elapsed);

            var result = WinApi.SwapBuffers(m_display.DeviceContext);

            if (!result)
            {
                var error = WinApi.GetLastError();
                Console.WriteLine("Error : " + error);
            }
        }