gapitimer.cs.svn-base

来自「这是一个windows mobile程序能够实现窗体运货效果非常不错」· SVN-BASE 代码 · 共 61 行

SVN-BASE
61
字号
using System;
using System.Runtime.InteropServices;

namespace Aspecto.GapiDrawNet
{
	/// <summary>
	/// Summary description for CGapiTimer.
	/// </summary>
	public class GapiTimer : IDisposable
	{
		protected IntPtr unmanagedGapiObject;
		public IntPtr GapiObject
		{
			get { return unmanagedGapiObject; }
		}

		public GapiTimer(IntPtr GapiDraw)
		{
            unmanagedGapiObject = GdNet.CGapiTimer_Create(GapiDraw);
		}

		virtual public void Dispose()
		{
			GdNet.CGapiTimer_Destroy(unmanagedGapiObject);
		}

		public void StartTimer(int TargetFrameRate)
		{
			UInt32 hResult = GdNet.CGapiTimer_StartTimer(unmanagedGapiObject, TargetFrameRate);
			// int hResult = CGapiTimer_StartTimer(unmanagedGapiObject, TargetFrameRate);
		}

		public GapiResults WaitForNextFrame()
		{
            GapiResults hResult = (GapiResults)GdNet.CGapiTimer_UpdateTimer(unmanagedGapiObject);

			if(hResult != 0 && hResult != GapiResults.GDERR_FRAMETIMEOVERFLOW)
			{
				GapiUtility.RaiseExceptionOnError((uint)hResult);
			}
			
			return (GapiResults)hResult;
		}

		public double GetActualFrameRate()
		{
			float pActualFrameRate = 0;
			UInt32 hResult = GdNet.CGapiTimer_GetActualFrameRate(unmanagedGapiObject, ref pActualFrameRate);

			return pActualFrameRate;
		}

		public double GetActualFrameTimeMS()
		{
			float pActualFrameTime = 0;

			GdNet.CGapiTimer_GetActualFrameTime(unmanagedGapiObject, ref pActualFrameTime);
			return pActualFrameTime;
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?