Swappy 常用工具

与适用于 OpenGL 的 Swappy 或适用于 Vulkan 的 Swappy 结合使用的工具。

摘要

类型定义符

SwappyPostSwapBuffersCallback)(void *, long desiredPresentationTimeMillis) typedef
void(*
指向函数的指针,可附加至 SwappyTracer::postSwapBuffers
SwappyPostWaitCallback)(void *, long cpu_time_ns, long gpu_time_ns) typedef
void(*
指向函数的指针,可附加至 SwappyTracer::postWait
SwappyPreSwapBuffersCallback)(void *) typedef
void(*
指向函数的指针,可附加至 SwappyTracer::preSwapBuffers
SwappyPreWaitCallback)(void *) typedef
void(*
指向函数的指针,可附加至 SwappyTracer::preWait
SwappyStartFrameCallback)(void *, int currentFrame, long desiredPresentationTimeMillis) typedef
void(*
指向函数的指针,可附加至 SwappyTracer::startFrame
SwappySwapIntervalChangedCallback)(void *) typedef
void(*
指向函数的指针,可附加至 SwappyTracer::swapIntervalChanged
SwappyThreadFunctions typedef
该结构使您可以通过调用 Swappy_setThreadFunctions 设置 Swappy 如何启动并联接线程。
SwappyThreadId typedef
uint64_t
由外部线程管理器返回的线程的 ID。
SwappyTracer typedef
struct SwappyTracer
需要为每个帧调用的回调集合,用以跟踪执行情况。

函数

Swappy_setThreadFunctions(const SwappyThreadFunctions *thread_functions)
void
如需使用自定义线程管理器,请在调用任何其他函数之前调用它。
Swappy_version()
uint32_t
在运行时返回 Swappy 库的版本。

SWAPPY_SWAP_20FPS (50000000L)
20fps 的交换间隔(以纳秒为单位)。
SWAPPY_SWAP_30FPS (33333333L)
30fps 的交换间隔(以纳秒为单位)。
SWAPPY_SWAP_60FPS (16666667L)
60fps 的交换间隔(以纳秒为单位)。

结构体

SwappyThreadFunctions

该结构使您可以通过调用 Swappy_setThreadFunctions 设置 Swappy 如何启动并联接线程。

SwappyTracer

需要为每个帧调用的回调集合,用以跟踪执行情况。

类型定义符

SwappyPostSwapBuffersCallback

void(* SwappyPostSwapBuffersCallback)(void *, long desiredPresentationTimeMillis)

指向函数的指针,可附加至 SwappyTracer::postSwapBuffers

详细信息
参数
userData
指向任意数据的指针,请参阅 SwappyTracer::userData
desiredPresentationTimeMillis
在屏幕上呈现帧的目标时间(以毫秒为单位)。

SwappyPostWaitCallback

void(* SwappyPostWaitCallback)(void *, long cpu_time_ns, long gpu_time_ns)

指向函数的指针,可附加至 SwappyTracer::postWait

详细信息
参数
userData
指向任意数据的指针,请参阅 SwappyTracer::userData
cpu_time_ns
此帧的 CPU 处理用时(以纳秒为单位)。
gpu_time_ns
上一帧的 GPU 处理用时(以纳秒为单位)。

SwappyPreSwapBuffersCallback

void(* SwappyPreSwapBuffersCallback)(void *)

指向函数的指针,可附加至 SwappyTracer::preSwapBuffers

详细信息
参数
userData
指向任意数据的指针,请参阅 SwappyTracer::userData

SwappyPreWaitCallback

void(* SwappyPreWaitCallback)(void *)

指向函数的指针,可附加至 SwappyTracer::preWait

详细信息
参数
userData
指向任意数据的指针,请参阅 SwappyTracer::userData

SwappyStartFrameCallback

void(* SwappyStartFrameCallback)(void *, int currentFrame, long desiredPresentationTimeMillis)

指向函数的指针,可附加至 SwappyTracer::startFrame

详细信息
参数
userData
指向任意数据的指针,请参阅 SwappyTracer::userData
desiredPresentationTimeMillis
按计划呈现帧的时间(以毫秒为单位)。

SwappySwapIntervalChangedCallback

void(* SwappySwapIntervalChangedCallback)(void *)

指向函数的指针,可附加至 SwappyTracer::swapIntervalChanged

调用 SwappyGL_getSwapIntervalNS 或 ::SwappyVk_getSwapIntervalNS 以获取最新的 swapInterval。

详细信息
参数
userData
指向任意数据的指针,请参阅 SwappyTracer::userData

SwappyThreadFunctions

struct SwappyThreadFunctions SwappyThreadFunctions

该结构使您可以通过调用 Swappy_setThreadFunctions 设置 Swappy 如何启动并联接线程。

您可以选择是否使用此功能。

SwappyThreadId

uint64_t SwappyThreadId

由外部线程管理器返回的线程的 ID。

SwappyTracer

struct SwappyTracer SwappyTracer

需要为每个帧调用的回调集合,用以跟踪执行情况。

您可以选择是否注入。

函数

Swappy_setThreadFunctions

void Swappy_setThreadFunctions(
  const SwappyThreadFunctions *thread_functions
)

如需使用自定义线程管理器,请在调用任何其他函数之前调用它。

您完全可以选择是否使用此函数。Swappy 默认使用 std::thread。

Swappy_version

uint32_t Swappy_version()

在运行时返回 Swappy 库的版本。

SWAPPY_SWAP_20FPS

 SWAPPY_SWAP_20FPS (50000000L)

20fps 的交换间隔(以纳秒为单位)。

SWAPPY_SWAP_30FPS

 SWAPPY_SWAP_30FPS (33333333L)

30fps 的交换间隔(以纳秒为单位)。

SWAPPY_SWAP_60FPS

 SWAPPY_SWAP_60FPS (16666667L)

60fps 的交换间隔(以纳秒为单位)。