Kare hızı işlevleri ekleyin

Android Frame Pacing'i OpenGL ES API'ye dayalı bir oluşturma motoruyla kullanmak için aşağıdaki işlevleri kullanın.

Başlat ve kaldır

Android Frame Pacing örneğini başlatmak ve kaldırmak için sırasıyla aşağıdaki işlevleri kullanın:

Genel olarak, motor başlatma sırası sırasında SwappyGL_init() yöntemini ve oyundan çıkarken SwappyGL_destroy() yöntemini çağırmalısınız. Bu yöntemleri başka bir zamanda çağırmanız gerekmez.

Değiştirme aralığını ve yenileme dönemini yapılandırma

Android Frame Pacing'in bir örneğini yapılandırmak için aşağıdaki işlevleri kullanın:

SwappyGL_setSwapIntervalNS() çağırırken karenin sunulması gereken süreyi geçirin. Çoğu durumda şu sabit değerlerden birini kullanabilirsiniz: SWAPPY_SWAP_60FPS, SWAPPY_SWAP_30FPS veya SWAPPY_SWAP_20FPS.

Genel olarak, bu yöntemleri SwappyGL_init() çağrısından hemen sonra çağırmanız gerekir. Ancak bu yöntemleri oyununuzun yürütülmesi sırasında başka zamanlarda da çağırmanız gerekebilir.

ANativeWindow'u Ayarlama

Değişim işlemi, ANativeWindow_setFrameRate() gibi ANativeWindow ile ilgili bir işlem gerçekleştirebilmek için ANativeWindow işleyicisine ihtiyaç duyar. Android ekran yüzeyiniz değiştiğinde ve yeni bir ANativeWindow herkese açık kullanıcı adınız olduğunda SwappyGL_setWindow() kodunu çağırın (örnek için Bouncyball örneğine bakın).

Otomatik Modlar

Android Frame Pacing, değiştirme süresini ve ardışık düzen modunu önceki karelerin ortalama süresine göre ayarlar. Bu davranışı aşağıdaki işlevlerle kontrol edebilirsiniz:

Kare başına değiştirme gerçekleştir

Her oluşturma çerçevesi sırasında bool SwappyGL_swap(EGLDisplay display, EGLSurface surface) çağrısını yapın. Bu yöntem, Open GL ES'deki eglSwapBuffers() yöntemini sarmalar. Bu nedenle, oyununuzdaki tüm eglSwapBuffers() örneklerini SwappyGL_swap() ile değiştirmeniz gerekir.

Yardımcı işlevler

Aşağıdaki yöntem Android Frame Pacing'in etkin olup olmadığını kontrol eder:

Android Frame Pacing örneğinin aşağıdaki nedenlerden dolayı kendi kendini başlatamaması mümkündür:

  • Cihazda gerekli EGL işlevleri eksik.
  • Sistem, swappy.disable özelliğini ayarladı.

Bu durumlardan herhangi birinde SwappyGL_isEnabled(), false değerini döndürür ve alternatif bir kare hızı stratejisi uygulamanız sizin için en iyisidir.