Swappy para OpenGL

Parte OpenGL de Swappy.

Resumen

Funciones

SwappyGL_destroy()
void
Destruye los recursos y detiene todos los subprocesos creados por Swappy.
SwappyGL_getFenceTimeoutNS()
uint64_t
Obtiene el valor de valla de tiempo de espera en nanosegundos.
SwappyGL_getRefreshPeriodNanos()
uint64_t
Obtiene el valor del período de actualización en nanosegundos.
SwappyGL_getSwapIntervalNS()
uint64_t
Obtiene el valor del intervalo de intercambio en nanosegundos.
SwappyGL_getUseAffinity()
bool
SwappyGL_init(JNIEnv *env, jobject jactivity)
bool
Inicializa Swappy y obtiene los parámetros requeridos de Android desde el subsistema de pantalla a través de JNI.
SwappyGL_init_internal(JNIEnv *env, jobject jactivity)
bool
SwappyGL_isEnabled()
bool
Verifica si Swappy se inicializó correctamente.
SwappyGL_setFenceTimeoutNS(uint64_t fence_timeout_ns)
void
Configura el parámetro de valla de tiempo de espera para dispositivos con controladores defectuosos.
SwappyGL_setSwapIntervalNS(uint64_t swap_ns)
void
Anula el intervalo de intercambio.
SwappyGL_setUseAffinity(bool tf)
void
SwappyGL_setWindow(ANativeWindow *window)
bool
Indica a Swappy cuál ANativeWindow usar cuando se llame a la API ANativeWindow_*.
SwappyGL_swap(EGLDisplay display, EGLSurface surface)
bool
Reemplaza las llamadas a eglSwapBuffers.

Funciones

SwappyGL_destroy

void SwappyGL_destroy()

Destruye los recursos y detiene todos los subprocesos creados por Swappy.

Consulta también: SwappyGL_init

SwappyGL_getFenceTimeoutNS

uint64_t SwappyGL_getFenceTimeoutNS()

Obtiene el valor de valla de tiempo de espera en nanosegundos.

SwappyGL_getRefreshPeriodNanos

uint64_t SwappyGL_getRefreshPeriodNanos()

Obtiene el valor del período de actualización en nanosegundos.

SwappyGL_getSwapIntervalNS

uint64_t SwappyGL_getSwapIntervalNS()

Obtiene el valor del intervalo de intercambio en nanosegundos.

SwappyGL_getUseAffinity

bool SwappyGL_getUseAffinity()

SwappyGL_init

bool SwappyGL_init(
  JNIEnv *env,
  jobject jactivity
)

Inicializa Swappy y obtiene los parámetros requeridos de Android desde el subsistema de pantalla a través de JNI.

Consulta también: SwappyGL_destroy

Detalles
Parámetros
env
Es el entorno de JNI en el que se usa Swappy.
jactivity
Es la actividad en la que se usa Swappy.
Resultado que se muestra
Es falso si no se pudo inicializar Swappy.

SwappyGL_init_internal

bool SwappyGL_init_internal(
  JNIEnv *env,
  jobject jactivity
)

SwappyGL_isEnabled

bool SwappyGL_isEnabled()

Verifica si Swappy se inicializó correctamente.

Detalles
Resultado que se muestra
Es falso si la propiedad del sistema swappy.disable no es false o si las extensiones requeridas de OpenGL no están disponibles para que Swappy funcione.

SwappyGL_setFenceTimeoutNS

void SwappyGL_setFenceTimeoutNS(
  uint64_t fence_timeout_ns
)

Configura el parámetro de valla de tiempo de espera para dispositivos con controladores defectuosos.

Su valor predeterminado es 50,000,000 ns (50 ms).

SwappyGL_setSwapIntervalNS

void SwappyGL_setSwapIntervalNS(
  uint64_t swap_ns
)

Anula el intervalo de intercambio.

De forma predeterminada, Swappy puede ajustar el intervalo de intercambio en virtud del tiempo real de procesamiento de fotogramas.

Para anular el intervalo de intercambio calculado por Swappy, la app puede llamar a esta función:

  • Esta acción anulará temporalmente la latencia de fotogramas de Swappy, pero, a menos que se llame a SwappyGL_setAutoSwapInterval(false), se seguirá actualizando esta latencia de forma dinámica, por lo que el intervalo de intercambio podría cambiar.
  • También establece el intervalo mínimo de ejecución. Por ejemplo, SwappyGL_setSwapIntervalNS(SWAPPY_SWAP_30FPS) no permitirá que Swappy realice un intercambio más rápido, incluso si el modo automático indica que puede hacerlo. Sin embargo, puede realizar uno más lento si el modo automático está activado.

Detalles
Parámetros
swap_ns
Es el nuevo valor del intervalo de intercambio en nanosegundos.

SwappyGL_setUseAffinity

void SwappyGL_setUseAffinity(
  bool tf
)

SwappyGL_setWindow

bool SwappyGL_setWindow(
  ANativeWindow *window
)

Indica a Swappy cuál ANativeWindow usar cuando se llame a la API ANativeWindow_*.

Detalles
Parámetros
window
Es el elemento ANativeWindow que se usó para crear el EGLSurface.

SwappyGL_swap

bool SwappyGL_swap(
  EGLDisplay display,
  EGLSurface surface
)

Reemplaza las llamadas a eglSwapBuffers.

Swappy esperará que la GPU procese el búfer del fotograma anterior antes de llamar a eglSwapBuffers.