OpenGL 用 Swappy
Swappy の OpenGL 部分。
概要
関数 |
|
---|---|
SwappyGL_destroy()
|
void
リソースを破棄し、Swappy が作成したすべてのスレッドを停止します。
|
SwappyGL_getFenceTimeoutNS()
|
uint64_t
フェンスのタイムアウト値(ナノ秒単位)を取得します。
|
SwappyGL_getRefreshPeriodNanos()
|
uint64_t
更新周期の値(ナノ秒単位)を取得します。
|
SwappyGL_getSwapIntervalNS()
|
uint64_t
スワップ間隔の値(ナノ秒単位)を取得します。
|
SwappyGL_getUseAffinity()
|
bool
|
SwappyGL_init(JNIEnv *env, jobject jactivity)
|
bool
Swappy を初期化し、JNI を介してディスプレイ サブシステムから必要な Android パラメータを取得します。
|
SwappyGL_init_internal(JNIEnv *env, jobject jactivity)
|
bool
|
SwappyGL_isEnabled()
|
bool
Swappy が正常に初期化されたかどうかを確認します。
|
SwappyGL_setFenceTimeoutNS(uint64_t fence_timeout_ns)
|
void
ドライバに不具合があるデバイスのために、フェンスのタイムアウト パラメータを設定します。
|
SwappyGL_setSwapIntervalNS(uint64_t swap_ns)
|
void
スワップ間隔をオーバーライドします。
|
SwappyGL_setUseAffinity(bool tf)
|
void
|
SwappyGL_setWindow(ANativeWindow *window)
|
bool
ANativeWindow_* API を呼び出すときに使用する ANativeWindow を Swappy に指示します。
|
SwappyGL_swap(EGLDisplay display, EGLSurface surface)
|
bool
eglSwapBuffers への呼び出しをこれに置き換えます。
|
関数
SwappyGL_getFenceTimeoutNS
uint64_t SwappyGL_getFenceTimeoutNS()
フェンスのタイムアウト値(ナノ秒単位)を取得します。
SwappyGL_getRefreshPeriodNanos
uint64_t SwappyGL_getRefreshPeriodNanos()
更新周期の値(ナノ秒単位)を取得します。
SwappyGL_getSwapIntervalNS
uint64_t SwappyGL_getSwapIntervalNS()
スワップ間隔の値(ナノ秒単位)を取得します。
SwappyGL_getUseAffinity
bool SwappyGL_getUseAffinity()
SwappyGL_init
bool SwappyGL_init( JNIEnv *env, jobject jactivity )
Swappy を初期化し、JNI を介してディスプレイ サブシステムから必要な Android パラメータを取得します。
関連項目: SwappyGL_destroy
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
Swappy の初期化に失敗した場合は false。
|
SwappyGL_init_internal
bool SwappyGL_init_internal( JNIEnv *env, jobject jactivity )
SwappyGL_isEnabled
bool SwappyGL_isEnabled()
Swappy が正常に初期化されたかどうかを確認します。
詳細 | |
---|---|
戻り値 |
swappy.disable システム プロパティが false でない場合、または必要な OpenGL 拡張機能が Swappy で利用できない場合は false。 |
SwappyGL_setFenceTimeoutNS
void SwappyGL_setFenceTimeoutNS( uint64_t fence_timeout_ns )
ドライバに不具合があるデバイスのために、フェンスのタイムアウト パラメータを設定します。
デフォルト値は 50,000,000ns(50ms)です。
SwappyGL_setSwapIntervalNS
void SwappyGL_setSwapIntervalNS( uint64_t swap_ns )
スワップ間隔をオーバーライドします。
デフォルトでは、Swappy は実際のフレーム レンダリング時間に基づいてスワップ間隔を調整します。
Swappy によって計算されたスワップ間隔をアプリでオーバーライドしたい場合は、この関数を呼び出します。
- そうすると、Swappy のフレーム時間が一時的にオーバーライドされますが、
SwappyGL_setAutoSwapInterval(false)
が呼び出されない限りフレーム時間は引き続き動的に更新されるため、スワップ間隔が変更される可能性があります。 - これにより、実行する最小間隔が設定されます。たとえば、
SwappyGL_setSwapIntervalNS(SWAPPY_SWAP_30FPS)
では、スワップの高速化が可能であると自動モードが判断した場合であっても、Swappy はスワップを高速化できません。ただし、自動モードをオンにすると、動作が遅くなる可能性があります。
詳細 | |||
---|---|---|---|
パラメータ |
|
SwappyGL_setUseAffinity
void SwappyGL_setUseAffinity( bool tf )
SwappyGL_setWindow
bool SwappyGL_setWindow( ANativeWindow *window )
ANativeWindow_* API を呼び出すときに使用する ANativeWindow を Swappy に指示します。
詳細 | |||
---|---|---|---|
パラメータ |
|
SwappyGL_swap
bool SwappyGL_swap( EGLDisplay display, EGLSurface surface )
eglSwapBuffers への呼び出しをこれに置き換えます。
Swappy は、前のフレームのバッファが GPU によって処理されるまで待機してから、実際に eglSwapBuffers を呼び出します。