Develop and Download Open Source Software

Browse Subversion Repository

Contents of /Nyx/branches/v4/Nyx/Source/Timer/FPSTimer.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 185 - (show annotations) (download) (as text)
Wed Dec 5 16:14:36 2012 UTC (11 years, 5 months ago) by thayamizu
File MIME type: text/x-chdr
File size: 3460 byte(s)


1 /********************************************************************************
2 *
3 * The MIT License
4 *
5 * Copyright (c)2010 - t.hayamizu
6 *
7 *以下に定める条件に従い、本ソフトウェアおよび関連文書のファイル(以下「ソフトウェア」)の複製を取得するすべての人に対し、ソフトウェ
8 *アを無制限に扱うことを無償で許可します。これには、ソフトウェアの複製を使用、複写、変更、結合、掲載、頒布、サブライセンス、および/ま
9 *たは販売する権利、およびソフトウェアを提供する相手に同じことを許可する権利も無制限に含まれます。
10 *
11 *上記の著作権表示および本許諾表示を、ソフトウェアのすべての複製または重要な部分に記載するものとします。
12 *
13 *ソフトウェアは「現状のまま」で、明示であるか暗黙であるかを問わず、何らの保証もなく提供されます。ここでいう保証とは、商品性、特定の目*的への適合性、および権利非侵害についての保証も含みますが、それに限定されるものではありません。 作者または著作権者は、契約行為、不法
14 *行為、またはそれ以外であろうと、ソフトウェアに起因または関連し、あるいはソフトウェアの使用またはその他の扱いによって生じる一切の請
15 *求、損害、その他の義務について何らの責任も負わないものとします。
16 ********************************************************************************/
17 #ifndef NYX_CORE_INCLUDED_FPS_TIMER_H_
18 #define NYX_CORE_INCLUDED_FPS_TIMER_H_
19 #include "Timer/ITimer.h"
20 namespace Nyx {
21
22 ///FPSタイマー
23 class FPSTimer : public ITimer {
24 public:
25 //------------------------------------------------------------------------
26 // 公開メンバ変数
27 //------------------------------------------------------------------------
28 static const uint FPS30; ///< 30FPS
29 static const uint FPS60; ///< 60FPS
30 public:
31 //------------------------------------------------------------------------
32 // 構築・破壊
33 //------------------------------------------------------------------------
34 /**
35 * コンストラクタ
36 */
37 FPSTimer(ulong fps=FPS60);
38
39 /**
40 * デストラクタ
41 */
42 ~FPSTimer();
43
44 //------------------------------------------------------------------------
45 // 時間の取得・設定
46 //------------------------------------------------------------------------
47 /**
48 * タイマの時刻をリセットする.
49 *以降、Getを呼ぶとリセットされた時刻からの経過時間が買える
50 */
51 void Reset();
52
53 /**
54 * 時刻の取得
55 * @return ulong
56 */
57 ulong Get();
58
59 /**
60 *タイマの時刻設定
61 *@param ulong 時刻
62 */
63 void Set(ulong now);
64
65 /*
66 * タイマーをポーズする
67 *@param bool ポーズするのであればtrueを指定
68 */
69 void Pause(bool pause_);
70
71 /**
72 * ポーズ中かどうか
73 * @return bool trueならポーズ
74 */
75 bool IsPause();
76
77 /**
78 * ポーズ中ならタイマをリスタートさせる.そうでなければなにもしない
79 */
80 void Restart();
81
82 //------------------------------------------------------------------------
83 // FPSの調整
84 //------------------------------------------------------------------------
85 /**
86 * FPSの取得
87 * @return uint FPS
88 */
89 uint GetFPS();
90
91 /**
92 * 現在のFPSを取得
93 * @param uint FPS
94 */
95 uint GetNowFPS();
96
97 /**
98 * FPSを設定する
99 */
100 void SetFPS(uint fps);
101
102 /**
103 * 指定したFPSになるようフレームを調整
104 */
105 void WaitFrame();
106
107 // private:
108 uint fps; ///< FPS
109 uint nowFPS; ///< 現在のFPS値
110 uint frames; ///< 前フレームの時刻
111 ulong beforeTime;///< 前回の時刻
112 ulong fpsWaitTT;///< 1000 * 0x10000 / fpsの値
113 ulong fpsWait; ///<経過時間
114 ulong lastDraw; ///<最後に描画した時刻
115 Timer* timer; ///<FPS計測タイマー
116 };
117 }
118 #endif

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26