Dodawanie funkcji tempa klatek

Użyj tych funkcji, aby używać Android Frame Pacing z silnikiem renderowania opartym na interfejsie OpenGL ES API.

Inicjowanie i niszczenie

Aby odpowiednio zainicjować i zniszczyć instancję AndroidFrame Pacing, użyj tych funkcji:

Ogólnie polecenie SwappyGL_init() powinno się wywoływać jak najwcześniej podczas sekwencji uruchamiania silnika i wywoływać SwappyGL_destroy() przy zamykaniu gry. Nie powinno być potrzeby wywoływać tych metod w innym momencie.

Skonfiguruj interwał wymiany i okres odświeżania

Aby skonfigurować instancję Android Frame Pacing, użyj tych funkcji:

Wywołując metodę SwappyGL_setSwapIntervalNS(), podaj czas, przez jaki klatka ma być wyświetlana. W większości przypadków możesz używać jednej z tych stałych: SWAPPY_SWAP_60FPS, SWAPPY_SWAP_30FPS lub SWAPPY_SWAP_20FPS.

Ogólnie rzecz biorąc, te metody należy wywoływać bezpośrednio po wywołaniu funkcji SwappyGL_init(). Może być jednak konieczne wywołanie tych metod w innych momentach podczas uruchamiania gry.

Ustawianie interfejsu ANativeWindow

Funkcja Zamień, potrzebuje uchwytu ANativeWindow, aby wykonywać działania charakterystyczne dla ANativeWindow, np. wywoływać metodę ANativeWindow_setFrameRate(). Wywołaj metodę SwappyGL_setWindow(), gdy powierzchnia wyświetlacza w Androidzie ulegnie zmianie i będziesz mieć nowy nick ANativeWindow (przykład znajdziesz w przykładzie z piłką do gry w bouncyball).

Tryby automatyczne

Android Frame Pacing dostosowuje czas trwania zamiany i tryb potoku na podstawie średniego czasu trwania poprzednich klatek. Możesz kontrolować to zachowanie za pomocą tych funkcji:

Zamiana klatek

Podczas każdej ramki renderowania wywołaj metodę bool SwappyGL_swap(EGLDisplay display, EGLSurface surface). Ta metoda pakuje metodę eglSwapBuffers() z Open GL ES, dlatego należy zastąpić wszystkie wystąpienia eglSwapBuffers() w grze obiektem SwappyGL_swap().

Funkcje użytkowe

Ta metoda pozwala sprawdzić, czy funkcja Android Frame Pacing jest włączona:

Instancja Android Frame Pacing może nie zainicjować się samodzielnie z tych powodów:

  • Na urządzeniu brakuje niezbędnych funkcji EGL.
  • System ustawił właściwość swappy.disable.

W każdej z tych sytuacji SwappyGL_isEnabled() zwraca wartość false i zaleca się wdrożenie alternatywnej strategii tempa klatek.