إضافة دوال وتيرة الإطار

استخدِم الوظائف التالية لاستخدام Android Frame Pacing مع محرّك عرض استنادًا إلى واجهة برمجة تطبيقات OpenGL ES.

الإعداد والتدمير

استخدم الدوال التالية لتهيئة وإتلاف مثيل من معدل سرعة إطار Android على التوالي:

بشكل عام، يجب طلب الرمز SwappyGL_init() في أقرب وقت ممكن أثناء تسلسل بدء تشغيل المحرّك، ويجب طلب SwappyGL_destroy() عند الخروج من اللعبة. لن تحتاج إلى طلب هذه الطرق في أي وقت آخر.

ضبط الفاصل الزمني للتبديل وفترة إعادة التحميل

استخدِم الدوال التالية لضبط مثيل لنظام سرعة إطارات Android:

عند استدعاء SwappyGL_setSwapIntervalNS()، مرر المدة التي يجب تقديم الإطار فيها. في معظم الحالات، يمكنك استخدام أحد الثوابت التالية: SWAPPY_SWAP_60FPS أو SWAPPY_SWAP_30FPS أو SWAPPY_SWAP_20FPS.

بشكل عام، يجب طلب هذه الطرق مباشرةً بعد الاتصال بالرقم SwappyGL_init(). ومع ذلك، قد تحتاج أيضًا إلى استدعاء هذه الطرق في أوقات أخرى أثناء تنفيذ لعبتك.

إعداد ANativeWindow

يحتاج Swappy إلى الاسم المعرِّف ANativeWindow كي ينفّذ عملية ANativeWindow خاصة، مثل طلب ANativeWindow_setFrameRate(). يمكنك الاتصال بالرقم SwappyGL_setWindow() عندما يتم تغيير سطح شاشة Android وعندما يتوفّر لديك اسم معرِّف جديد ANativeWindow (يمكنك الاطّلاع على نموذج كرة القدم للحصول على مثال).

الأوضاع التلقائية

تضبط ميزة Frame Pacing مدة التبديل ووضع مسار الإحالة الناجحة استنادًا إلى متوسط مدة اللقطات السابقة. يمكنك التحكم في هذا السلوك باستخدام الدوال التالية:

تنفيذ التبديل حسب الإطار

خلال كل إطار عرض، استدعِ bool SwappyGL_swap(EGLDisplay display, EGLSurface surface). تتيح هذه الطريقة استخدام طريقة eglSwapBuffers() من Open GL ES، لذا يجب استبدال جميع مثيلات eglSwapBuffers() في لعبتك بـ SwappyGL_swap().

وظائف الأدوات المساعدة

تتحقّق الطريقة التالية مما إذا تم تفعيل ميزة "ضبط سرعة الإطارات في Android" أم لا:

من الممكن ألا يتمكن مثيل Android Frame Pacing من تهيئة نفسه لأي من الأسباب التالية:

  • وظائف EGL الضرورية غير موجودة على الجهاز.
  • لقد ضبط النظام السمة swappy.disable.

في أي من هاتين الحالتَين، يعرض SwappyGL_isEnabled() القيمة false، ومن الأفضل بالنسبة إليك تنفيذ استراتيجية بديلة بوتيرة اللقطات.