Module: RbSDL2::Timer
- Defined in:
- lib/rb_sdl2/timer.rb
Class Method Summary collapse
-
.delay(ms) ⇒ Object
ms へ与えたミリ秒だけスレッドを停止します。SDL のタイマーを使用しています。 ms が負の数だった場合 ArgumentError が発生します。 このメソッドは SDL_Init の前に呼び出すことができます。.
-
.performance_count ⇒ Object
SDL が提供する高精度カウンターの値を返します。 返ってくる値には意味がありません。精度も SDL の実装や動作環境ごとに違います。 このメソッドは SDL_Init の前に呼び出すことができます。.
-
.performance_frequency ⇒ Object
performance_count の 1 秒あたりの増加量を返します。.
-
.realtime ⇒ Object
与えられたブロックの実行時間を返します。単位は秒です。 実行時間の計測に SDL の高精度カウンターを使用しています。 このメソッドは SDL_Init の前に呼び出すことができます。.
-
.ticks ⇒ Object
SDL が起動してからの経過時間をミリ秒で返します。 このメソッドは SDL_Init の前に呼び出すことができます。 タイマーの開始は SDL_Init を呼ぶか、このメソッドをその前に呼び出したときです。 SDL のタイマーを使用しており、49日ほどで 0 に戻ります。.
Class Method Details
.delay(ms) ⇒ Object
ms へ与えたミリ秒だけスレッドを停止します。SDL のタイマーを使用しています。 ms が負の数だった場合 ArgumentError が発生します。 このメソッドは SDL_Init の前に呼び出すことができます。
7 8 9 10 |
# File 'lib/rb_sdl2/timer.rb', line 7 def delay(ms) raise ArgumentError if ms < 0 ::SDL.Delay(ms) end |
.performance_count ⇒ Object
SDL が提供する高精度カウンターの値を返します。 返ってくる値には意味がありません。精度も SDL の実装や動作環境ごとに違います。 このメソッドは SDL_Init の前に呼び出すことができます。
18 |
# File 'lib/rb_sdl2/timer.rb', line 18 def performance_count = ::SDL.GetPerformanceCounter |
.performance_frequency ⇒ Object
performance_count の 1 秒あたりの増加量を返します。
13 |
# File 'lib/rb_sdl2/timer.rb', line 13 def performance_frequency = ::SDL.GetPerformanceFrequency |
.realtime ⇒ Object
与えられたブロックの実行時間を返します。単位は秒です。 実行時間の計測に SDL の高精度カウンターを使用しています。 このメソッドは SDL_Init の前に呼び出すことができます。
23 24 25 26 27 |
# File 'lib/rb_sdl2/timer.rb', line 23 def realtime t = performance_count yield (performance_count - t).fdiv(performance_frequency) end |
.ticks ⇒ Object
SDL が起動してからの経過時間をミリ秒で返します。 このメソッドは SDL_Init の前に呼び出すことができます。 タイマーの開始は SDL_Init を呼ぶか、このメソッドをその前に呼び出したときです。 SDL のタイマーを使用しており、49日ほどで 0 に戻ります。
33 |
# File 'lib/rb_sdl2/timer.rb', line 33 def ticks = ::SDL.GetTicks |