बेहतर इस्तेमाल के लिए

यहां दिए गए सेक्शन में, लाइब्रेरी के ऐडवांस इस्तेमाल के बारे में बताया गया है. हालांकि, लाइब्रेरी के सामान्य ऑपरेशन के लिए इनकी ज़रूरत नहीं होती.

अन्य ट्रेसर जिनका इस्तेमाल किया जा सकता है

Tuning Fork में एक से ज़्यादा ट्रेसर इस्तेमाल किए जा सकते हैं. इन इंस्ट्रुमेंट की के साथ काम करने वाले ट्रेसर इस्तेमाल किए जा सकते हैं:

  • फ़्रेम शुरू होने के बीच का समय (इसे PACED_FRAME_TIME कहा जाता है)
  • सीपीयू टाइम: फ़्रेम के शुरू होने और सीपीयू के काम के खत्म होने के बीच का समय. इसे CPU_TIME कहा जाता है
  • जीपीयू का समय: पिछले फ़्रेम को जीपीयू से प्रोसेस होने में लगा समय (इसे GPU_TIME कहा जाता है)
  • रॉ फ़्रेम टाइम, जिसे सीपीयू और जीपीयू के ज़्यादा से ज़्यादा समय (इसे RAW_FRAME_TIME कहा जाता है) के तौर पर तय किया जाता है. इस विकल्प और PACED_FRAME_TIME के बीच का अंतर यह है कि इस विकल्प में, Swappy या VSync की वजह से लगने वाला कोई भी इंतज़ार का समय शामिल नहीं होता है.

आपको ये इंस्ट्रूमेंट कुंजियां, रेफ़रंस दस्तावेज़ में मिल सकती हैं. Android Frame Pacing लाइब्रेरी चालू करने पर, इनमें से कुछ कुंजियों का इस्तेमाल अपने-आप होता है. हालांकि, अगर आपने इस लाइब्रेरी को चालू नहीं किया है, तो आपको इनका इस्तेमाल साफ़ तौर पर करना चाहिए.

फ़िडेलिटी पैरामीटर पाना

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() देखें. इसमें एक यूटिलिटी फ़ंक्शन दिया गया है, जो आपके लिए यह काम करता है. इस फ़ंक्शन को फिर से कॉल किया जा सकता है. उदाहरण के लिए, लेवल लोड होने के समय, सर्वर से फ़िडेलिटी पैरामीटर फिर से पाने के लिए. इससे, आपको पैरामीटर को डाइनैमिक तौर पर अपडेट करने की अनुमति मिलती है. इसके लिए, आपको सिर्फ़ स्टार्टअप के समय उन्हें फिर से लोड करने की ज़रूरत नहीं होती. अगर नए फ़िडेलिटी पैरामीटर डाउनलोड किए जाते हैं या नए डिफ़ॉल्ट का इस्तेमाल किया जाता है, तो टिक किए गए पिछले सभी डेटा को सबमिट किया जाता है.