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

استخدِم الوظائف التالية لاستخدام ميزة "معدل سرعة عرض الإطارات" في نظام التشغيل Android مع محرّك عرض يستند إلى واجهة برمجة التطبيقات 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 (اطّلِع على مثال على نموذج Bouncyball).

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

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

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

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

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

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

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

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

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