Uso avanzado

En las siguientes secciones, se describen los temas de uso avanzado que no son necesarios para el funcionamiento normal de la biblioteca.

Otros rastreadores compatibles

Tuning Fork es compatible con varios rastreadores. Se admiten aquellos que cuenten con las siguientes etiquetas de marca:

  • Tiempo entre el inicio de los fotogramas (llamado PACED_FRAME_TIME)
  • Tiempo de CPU: tiempo entre el inicio del fotograma y el final del trabajo de la CPU asociado a este (llamado CPU_TIME)
  • Tiempo de GPU: tiempo que tiene la GPU para controlar el fotograma anterior (llamado GPU_TIME)
  • Latencia de fotogramas sin procesar, que corresponde al mayor de los tiempos de CPU y GPU (llamado RAW_FRAME_TIME). La diferencia entre esta opción y PACED_FRAME_TIME es que esta no contempla ningún tiempo de espera incluido por Swappy o VSync.

Puedes encontrar estas etiquetas de marca en la documentación de referencia. Algunas de ellas se usan automáticamente cuando habilitas la biblioteca de Android Frame Pacing, pero, si no lo haces, deberás usarlas de manera explícita.

Cómo obtener parámetros de fidelidad

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

No es necesario que llames a esta función si pasas fidelity_params_callback a TuningFork_init en la configuración o si la biblioteca está en modo de ajuste.

Esta función contacta a un servidor a fin de recuperar parámetros de fidelidad. Se bloquea hasta que tenga lugar una de las siguientes acciones:

  • Se recuperan los parámetros de fidelidad, se muestra un valor TFERROR_OK y returnedParams almacena los parámetros. En este caso, todos los datos de marcas posteriores se asociarán con returnedParams.
  • Transcurre una cantidad de milisegundos equivalente a timeout_ms y se muestra un valor TFERROR_TIMEOUT. En este caso, todos los datos de marcas posteriores se asociarán con defaultFidelityParams.

Debes llamar a TuningFork_init() antes de esta función, y debes hacerlo en un subproceso independiente del principal (consulta TuningFork_startFidelityParamDownloadThread() para encontrar una función de utilidad que haga esto por ti). Puedes llamar a esta función nuevamente, por ejemplo, al momento de cargar los niveles, a fin de obtener los parámetros de fidelidad desde el servidor una vez más. Esto te permite actualizar de manera dinámica los parámetros, en lugar de volver a cargarlos solo durante el inicio. Si se descargan nuevos parámetros de fidelidad o se usa un valor predeterminado nuevo, se enviarán todos los datos de marcas anteriores.