Swappy (适用于 OpenGL 附加功能)
用于将 Swappy 与 OpenGL 配合使用的额外实用函数。
摘要
函数 |
|
---|---|
SwappyGL_clearStats()
|
void
清除目前已收集的帧统计信息。
|
SwappyGL_enableStats(bool enabled)
|
void
开启/关闭统计信息收集。
|
SwappyGL_getStats(SwappyStats *swappyStats)
|
void
如果统计信息收集已开启,则返回收集到的统计信息。
|
SwappyGL_injectTracer(const SwappyTracer *t)
|
void
传递回调,以便在每一帧调用以跟踪执行情况。
|
SwappyGL_onChoreographer(int64_t frameTimeNanos)
|
void
如果应用希望使用 Android Choreographer 向 Swappy 提供计时信号,可以调用此函数。
|
SwappyGL_recordFrameStart(EGLDisplay display, EGLSurface surface)
|
void
如果已通过 SwappyGL_enableStats 开启统计信息,则应调用此函数。
|
SwappyGL_setAutoPipelineMode(bool enabled)
|
void
开启/关闭自动流水线模式。
|
SwappyGL_setAutoSwapInterval(bool enabled)
|
void
开启/关闭自动交换间隔检测。
|
SwappyGL_setMaxAutoSwapIntervalNS(uint64_t max_swap_ns)
|
void
设置自动交换间隔的最大持续时间(以纳秒为单位)。
|
SwappyGL_uninjectTracer(const SwappyTracer *t)
|
void
移除之前使用 SwappyGL_injectTracer 添加的回调。
|
函数
SwappyGL_clearStats
void SwappyGL_clearStats()
清除目前已收集的帧统计信息。
收集到的所有帧统计信息都重置为 0;在此调用之后,帧统计信息会正常收集。
SwappyGL_enableStats
void SwappyGL_enableStats( bool enabled )
开启/关闭统计信息收集。
默认情况下,统计信息收集处于关闭状态,没有任何与统计信息相关的开销。应用可以通过调用 SwappyGL_enableStats(true)
开启统计信息收集。然后,应用应在开始进行任何与 CPU 相关的工作之前,为每一帧调用 SwappyGL_recordFrameStart。统计信息将以 'FrameStatistics' 标签记录到 logcat。应用可以通过调用 SwappyGL_getStats 获取统计信息。
SwappyGL_getStats
void SwappyGL_getStats( SwappyStats *swappyStats )
如果统计信息收集已开启,则返回收集到的统计信息。
另请参阅: SwappyStats 另请参阅: SwappyGL_enableStats
详情 | |||
---|---|---|---|
参数 |
|
SwappyGL_onChoreographer
void SwappyGL_onChoreographer( int64_t frameTimeNanos )
如果应用希望使用 Android Choreographer 向 Swappy 提供计时信号,可以调用此函数。
此函数必须在第一次调用 Swappy_swap()
之前调用。之后,请在每个 choreographer 计时信号时调用此函数。
SwappyGL_recordFrameStart
void SwappyGL_recordFrameStart( EGLDisplay display, EGLSurface surface )
如果已通过 SwappyGL_enableStats 开启统计信息,则应调用此函数。
当通过 SwappyGL_enableStats 开启统计信息收集时,应用应在开始进行任何与 CPU 相关的工作之前,为每一帧调用此函数。
另请参阅:SwappyGL_enableStats。
SwappyGL_setAutoPipelineMode
void SwappyGL_setAutoPipelineMode( bool enabled )
开启/关闭自动流水线模式。
默认情况下,如果自动交换间隔开启,则自动流水线处理也会开启,Swappy 将尝试通过在同一流水线阶段调度 CPU 和 GPU 工作来减少延迟(如果适合)。
SwappyGL_setAutoSwapInterval
void SwappyGL_setAutoSwapInterval( bool enabled )
开启/关闭自动交换间隔检测。
默认情况下,Swappy 会根据实际帧渲染时间调整交换间隔。如果应用想覆盖 Swappy 计算的交换间隔,可以调用 SwappyGL_setSwapIntervalNS
。这将暂时覆盖 Swappy 的帧计时,但除非调用 SwappyGL_setAutoSwapInterval(false)
,否则计时会继续动态更新,因此交换间隔可能会改变。
SwappyGL_setMaxAutoSwapIntervalNS
void SwappyGL_setMaxAutoSwapIntervalNS( uint64_t max_swap_ns )
设置自动交换间隔的最大持续时间(以纳秒为单位)。
如果 Swappy 在自动交换间隔模式下运行,并且帧持续时间长于 max_swap_ns
,Swappy 将不进行任何同步,并尽快提交帧。
SwappyGL_uninjectTracer
void SwappyGL_uninjectTracer( const SwappyTracer *t )
移除之前使用 SwappyGL_injectTracer 添加的回调。