Zaawansowane użycie

W poniższych sekcjach znajdziesz omówienie zaawansowanych zagadnień, które nie są niezbędne do normalnego działania biblioteki.

Inne obsługiwane trackery

Tuning Fork obsługuje wiele trackerów. Obsługiwane są rejestratory z tymi kluczami instrumentu:

  • Czas między rozpoczęciami klatek (PACED_FRAME_TIME)
  • Czas pracy procesora: czas między początkiem klatki a końcem pracy procesora w ramach tej klatki (nazywany CPU_TIME).
  • Czas GPU: czas obsługi poprzedniej klatki przez GPU (nazywany GPU_TIME).
  • Nieprzetworzony czas renderowania klatki określony jako maksymalny czas pracy procesora i GPU (RAW_FRAME_TIME). Różnica między tą opcją a wartością PACED_FRAME_TIME polega na tym, że ta opcja nie uwzględnia czasu oczekiwania podawanego przez usługi Zamieńpy i VSync.

Klucze instrumentu znajdziesz w dokumentacji referencyjnej. Niektóre z tych kluczy są używane automatycznie po włączeniu biblioteki Android Frame Pacing, ale jeśli nie włączasz tej biblioteki, korzystaj z nich bezpośrednio.

Pobierz parametry wierności

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

Jeśli w ustawieniach przekażesz fidelity_params_callback do TuningFork_init lub biblioteka jest w trybie skalowania, nie musisz wywoływać tej funkcji.

Ta funkcja kontaktuje się z serwerem, aby pobrać parametry wierności. Blokada zostanie zablokowana, dopóki nie wystąpi jedna z tych sytuacji:

  • Parametry wierności są pobierane, z wartością zwracaną TFERROR_OK. returnedParams zapisuje parametry. W tym przypadku wszystkie kolejne dane znaczników są powiązane z elementem returnedParams.
  • Liczba milisekund równą timeout_ms, a wartość zwracana to TFERROR_TIMEOUT. W tym przypadku wszystkie kolejne dane znaczników są powiązane z elementem defaultFidelityParams.

Musisz wywołać funkcję TuningFork_init() przed tą funkcją i zrobić ją w innym wątku niż wątek główny (odpowiednią funkcję znajdziesz w sekcji TuningFork_startFidelityParamDownloadThread()). Możesz wywołać tę funkcję ponownie, np. w czasie wczytywania poziomu, aby ponownie pobrać parametry wierności z serwera. Dzięki temu można dynamicznie aktualizować parametry, bez konieczności ich ponownego ładowania przy włączaniu. Jeśli zostaną pobrane nowe parametry wierności lub zostaną użyte nowe wartości domyślne, zostaną przesłane wszystkie wcześniejsze dane znacznika.