Aggiungere funzioni di pacing dei frame

Usa le seguenti funzioni per usare il pacing dei frame Android con un motore di rendering basato sull'API OpenGL ES.

Inizializza ed elimina

Utilizza le seguenti funzioni per inizializzare ed eliminare un'istanza di pacing del frame Android, rispettivamente:

In generale, devi chiamare SwappyGL_init() il prima possibile durante la sequenza di avvio del motore e devi chiamare SwappyGL_destroy() quando il gioco uscirà. Non dovrebbe essere necessario richiamare questi metodi in nessun altro momento.

Configura l'intervallo di scambio e il periodo di aggiornamento

Utilizza le seguenti funzioni per configurare un'istanza di pacing dei frame Android:

Quando chiami SwappyGL_setSwapIntervalNS(), specifica la durata di presentazione di un frame. Nella maggior parte dei casi, puoi utilizzare una delle seguenti costanti: SWAPPY_SWAP_60FPS, SWAPPY_SWAP_30FPS o SWAPPY_SWAP_20FPS.

In generale, devi chiamare questi metodi direttamente dopo una chiamata a SwappyGL_init(). Tuttavia, potresti dover richiamare questi metodi anche in altri momenti durante l'esecuzione del gioco.

Impostazione di A NativeWindow

Stackpy ha bisogno dell'handle di ANativeWindow per eseguire un'operazione specifica per ANativeWindow, ad esempio chiamare ANativeWindow_setFrameRate(). Chiama SwappyGL_setWindow() quando la piattaforma del tuo display Android è cambiata e hai un nuovo handle di ANativeWindow (vedi l'esempio di Bouncyball per un esempio).

Modalità automatiche

Il pacing dei frame Android regola la durata di scambio e la modalità pipeline in base alla durata media dei frame precedenti. Puoi controllare questo comportamento con le seguenti funzioni:

Esegui scambio per frame

Durante ogni frame di rendering, chiama bool SwappyGL_swap(EGLDisplay display, EGLSurface surface). Questo metodo esegue il wrapping del metodo eglSwapBuffers() di Open GL ES, quindi dovresti sostituire tutte le istanze di eglSwapBuffers() nel tuo gioco con SwappyGL_swap().

Funzioni di utilità

Il seguente metodo verifica se il pacing dei frame Android è attivato:

È possibile che un'istanza di pacing del frame Android non sia in grado di inizializzarsi per uno dei seguenti motivi:

  • Le funzioni EGL necessarie non sono presenti sul dispositivo.
  • Il sistema ha impostato la proprietà swappy.disable.

In una di queste situazioni, SwappyGL_isEnabled() restituisce false ed è consigliabile implementare una strategia di pacing dei frame alternativa.