İleri düzey kullanım

Aşağıdaki bölümlerde, kitaplığın normal çalışması için gerekli olmayan gelişmiş kullanım konuları özetlenmektedir.

Desteklenen diğer izleyiciler

Tuning Fork, birden fazla izleyiciyi destekler. Aşağıdaki enstrüman anahtarlarına sahip izleyiciler desteklenir:

  • Kare başlangıçları arasındaki süre (PACED_FRAME_TIME olarak adlandırılır)
  • CPU Süresi: Karenin başlangıcı ile karenin CPU işinin sonu arasındaki süre (CPU_TIME olarak adlandırılır)
  • GPU Süresi: Önceki karenin GPU tarafından işlenme süresi (GPU_TIME olarak adlandırılır)
  • CPU ve GPU süresinin maksimum değeri olarak tanımlanan ham kare süresi (RAW_FRAME_TIME olarak adlandırılır). Bu seçenek ile PACED_FRAME_TIME arasındaki fark, bu seçeneğin Swappy veya VSync tarafından eklenen bekleme süresini içermemesidir.

Bu enstrüman anahtarlarını referans belgelerinde bulabilirsiniz. Bu anahtarlardan bazıları Android Frame Pacing kitaplığını etkinleştirdiğinizde otomatik olarak kullanılır. Ancak bu kitaplığı etkinleştirmiyorsanız bunları açıkça kullanmanız gerekir.

Doğruluk parametrelerini alma

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

Ayarlarda fidelity_params_callback değerini TuningFork_init değerine aktarırsanız veya kitaplık ölçeklendirilmiş moddaysa bu işlevi çağırmanız gerekmez.

Bu işlev, doğruluk parametrelerini almak için bir sunucuyla iletişime geçer. Aşağıdaki durumlardan biri gerçekleşene kadar engeller:

  • Doğruluk parametreleri TFERROR_OK dönüş değeriyle alınır ve returnedParams parametreleri depolar. Bu durumda, sonraki tüm tick verileri returnedParams ile ilişkilendirilir.
  • timeout_ms milisaniyeye eşit bir süre geçer ve TFERROR_TIMEOUT dönüş değeri elde edilir. Bu durumda, sonraki tüm tick verileri defaultFidelityParams ile ilişkilendirilir.

Bu işlevden önce TuningFork_init() işlevini çağırmanız ve ana iş parçacığından ayrı bir iş parçacığında çağırmanız gerekir (Bunu sizin için yapan bir yardımcı işlev için TuningFork_startFidelityParamDownloadThread() işlevine bakın). Bu işlevi, örneğin seviye yükleme sırasında tekrar çağırarak doğruluk parametrelerini sunucudan tekrar alabilirsiniz. Bu sayede, parametreleri yalnızca başlangıçta yeniden yüklemek yerine dinamik olarak güncelleyebilirsiniz. Yeni doğruluk parametreleri indirilirse veya yeni bir varsayılan kullanılırsa önceki tüm tick verileri gönderilir.