高级用法

以下部分概述了正常运行库时不需要的高级用法主题。

其他支持的跟踪器

Tuning Fork 支持多种跟踪器。支持具有以下 instrument key 的跟踪器:

  • 帧启动之间的时间(称为 PACED_FRAME_TIME
  • CPU 时间:从帧开始到 CPU 完成帧工作之间的时间(称为 CPU_TIME
  • GPU 时间:GPU 处理前一帧所需的时间(称为 GPU_TIME
  • 原始帧时间,定义为 CPU 和 GPU 时间的最大值(称为 RAW_FRAME_TIME)。此选项与 PACED_FRAME_TIME 的区别在于,此选项不包含 Swappy 或 VSync 导致的任何等待时间。

您可以在参考文档中找到这些 instrument key。当您启用 Android Frame Pacing 库时,其中一些 key 会自动使用,但如果您未启用此库,则应明确使用它们。

获取保真度参数

TFErrorCode TuningFork_getFidelityParameters(const CProtobufSerialization* defaultParams, CProtobufSerialization* params, uint32_t timeout_ms);

如果您在设置中将 fidelity_params_callback 传递给 TuningFork_init,或者库处于缩放模式,则无需调用此函数。

此函数联系服务器以检索保真度参数。它会一直阻塞,直到发生以下情况之一:

  • 保真度参数已检索,返回值为 TFERROR_OK,并且 returnedParams 存储了这些参数。在这种情况下,所有后续的打点数据都将与 returnedParams 相关联。
  • 经过的毫秒数等于 timeout_ms,返回值为 TFERROR_TIMEOUT。在这种情况下,所有后续的打点数据都将与 defaultFidelityParams 相关联。

您必须在此函数之前调用 TuningFork_init(),并且必须在主线程之外的单独线程上调用它(请参阅 TuningFork_startFidelityParamDownloadThread(),其中提供了一个可为您完成此操作的实用函数)。您可以再次调用此函数,例如在关卡加载时,以再次从服务器检索保真度参数。这允许您动态更新参数,而不必仅在启动时重新加载它们。如果下载了新的保真度参数或使用了新的默认参数,则所有先前的打点数据都将被提交。