Uso avançado

As seções a seguir descrevem tópicos de uso avançados que não são necessários para a operação normal da biblioteca.

Outros rastreadores compatíveis

O Tuning Fork é compatível com vários rastreadores. Os rastreadores com as seguintes chaves de instrumento são compatíveis:

  • Tempo entre o início do frame (chamado PACED_FRAME_TIME)
  • Tempo de CPU: tempo entre o início do frame e o fim do trabalho da CPU para o frame (chamado CPU_TIME)
  • Tempo de GPU: tempo para processamento do frame anterior pela GPU (chamado GPU_TIME)
  • Tempo bruto para a renderização do frame, definido como o máximo do tempo de CPU e GPU (chamado RAW_FRAME_TIME). A diferença entre essa opção e PACED_FRAME_TIME é que essa opção não inclui nenhum tempo de espera acrescentado pelo Swappy ou VSync.

É possível encontrar essas chaves de instrumento na documentação de referência. Algumas chaves são automaticamente usadas quando você ativa a biblioteca Android Frame Pacing. No entanto, caso você não tenha essa biblioteca ativada, use as chaves de forma explícita.

Receber parâmetros de fidelidade

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

Se você transmitir fidelity_params_callback para TuningFork_init nas configurações ou se a biblioteca estiver no modo dimensionado, não será necessário chamar essa função.

Essa função entra em contato com um servidor para recuperar parâmetros de fidelidade. Ela é bloqueada até que uma das seguintes situações ocorra:

  • Os parâmetros de fidelidade são recuperados com um valor de retorno de TFERROR_OK e são armazenados por returnedParams. Nesse caso, todos os dados de marcação posteriores são associados a returnedParams.
  • Um total de milissegundos igual a timeout_ms é transmitido, com um valor de retorno de TFERROR_TIMEOUT. Nesse caso, todos os dados de marcação posteriores são associados a defaultFidelityParams.

É necessário chamar TuningFork_init() antes dessa função, em uma linha de execução separada da principal (consulte TuningFork_startFidelityParamDownloadThread() para ver uma função de utilitário que faz isso por você). É possível chamar essa função novamente, por exemplo, no tempo de carregamento do nível, para recuperar parâmetros de fidelidade do servidor mais uma vez. Isso permite que você atualize os parâmetros de forma dinâmica, em vez de precisar carregá-los apenas na inicialização. Se novos parâmetros de fidelidade forem transferidos por download ou um novo padrão for usado, todos os dados de marcação anteriores serão enviados.