Swappy para OpenGL

OpenGL que faz parte do Swappy.

Resumo

Funções

SwappyGL_destroy()
void
Destrói os recursos e interrompe todas as linhas de execução que o Swappy criou.
SwappyGL_getFenceTimeoutNS()
uint64_t
Recebe o valor de tempo limite, em nanossegundos.
SwappyGL_getRefreshPeriodNanos()
uint64_t
Recebe o valor do período de atualização, em nanossegundos.
SwappyGL_getSwapIntervalNS()
uint64_t
Recebe o valor do intervalo de troca, em nanossegundos.
SwappyGL_getUseAffinity()
bool
SwappyGL_init(JNIEnv *env, jobject jactivity)
bool
Inicializa o Swappy, conseguindo os parâmetros necessários para o Android do subsistema de exibição por JNI.
SwappyGL_init_internal(JNIEnv *env, jobject jactivity)
bool
SwappyGL_isEnabled()
bool
Verifica se o Swappy foi inicializado corretamente.
SwappyGL_setFenceTimeoutNS(uint64_t fence_timeout_ns)
void
Define o parâmetro de tempo limite para dispositivos com drivers defeituosos.
SwappyGL_setSwapIntervalNS(uint64_t swap_ns)
void
Substitui o intervalo de troca.
SwappyGL_setUseAffinity(bool tf)
void
SwappyGL_setWindow(ANativeWindow *window)
bool
Informa ao Swappy qual ANativeWindow usar ao chamar a API ANativeWindow_*.
SwappyGL_swap(EGLDisplay display, EGLSurface surface)
bool
Substitui as chamadas para eglSwapBuffers por essa opção.

Funções

SwappyGL_destroy

void SwappyGL_destroy()

Destrói os recursos e interrompe todas as linhas de execução que o Swappy criou.

Consulte também: SwappyGL_init

SwappyGL_getFenceTimeoutNS

uint64_t SwappyGL_getFenceTimeoutNS()

Recebe o valor de tempo limite, em nanossegundos.

SwappyGL_getRefreshPeriodNanos

uint64_t SwappyGL_getRefreshPeriodNanos()

Recebe o valor do período de atualização, em nanossegundos.

SwappyGL_getSwapIntervalNS

uint64_t SwappyGL_getSwapIntervalNS()

Recebe o valor do intervalo de troca, em nanossegundos.

SwappyGL_getUseAffinity

bool SwappyGL_getUseAffinity()

SwappyGL_init

bool SwappyGL_init(
  JNIEnv *env,
  jobject jactivity
)

Inicializa o Swappy, conseguindo os parâmetros necessários para o Android do subsistema de exibição por JNI.

Consulte também: SwappyGL_destroy

Detalhes
Parâmetros
env
Ambiente JNI em que o Swappy é usado
jactivity
Atividade em que o Swappy é usado
Retornos
"false" se o Swappy não foi inicializado.

SwappyGL_init_internal

bool SwappyGL_init_internal(
  JNIEnv *env,
  jobject jactivity
)

SwappyGL_isEnabled

bool SwappyGL_isEnabled()

Verifica se o Swappy foi inicializado corretamente.

Detalhes
Retornos
"false" se a propriedade do sistema swappy.disable não for false ou as extensões OpenGL necessárias não estiverem disponíveis para que o Swappy funcione.

SwappyGL_setFenceTimeoutNS

void SwappyGL_setFenceTimeoutNS(
  uint64_t fence_timeout_ns
)

Define o parâmetro de tempo limite para dispositivos com drivers defeituosos.

O valor padrão é 50.000.000 ns (50 ms).

SwappyGL_setSwapIntervalNS

void SwappyGL_setSwapIntervalNS(
  uint64_t swap_ns
)

Substitui o intervalo de troca.

Por padrão, o Swappy ajustará o intervalo de troca com base no tempo real para renderização do frame.

Caso um app queira substituir o intervalo de troca calculado pelo Swappy, a seguinte função pode ser chamada:

  • Isso modificará temporariamente os tempos para a renderização de frame do Swappy, mas, a menos que SwappyGL_setAutoSwapInterval(false) seja chamado, os tempos continuarão sendo atualizados de forma dinâmica. Portanto, o intervalo de troca pode mudar.
  • Isso define o intervalo mínimo para execução. Por exemplo, SwappyGL_setSwapIntervalNS(SWAPPY_SWAP_30FPS) não permitirá que o Swappy faça trocas mais rápidas, mesmo que o modo automático decida fazer isso. Mas ele poderá ficar mais lento se o modo automático estiver ativado.

Detalhes
Parâmetros
swap_ns
Novo valor do intervalo de troca, em nanossegundos.

SwappyGL_setUseAffinity

void SwappyGL_setUseAffinity(
  bool tf
)

SwappyGL_setWindow

bool SwappyGL_setWindow(
  ANativeWindow *window
)

Informa ao Swappy qual ANativeWindow usar ao chamar a API ANativeWindow_*.

Detalhes
Parâmetros
window
ANativeWindow usada para criar EGLSurface

SwappyGL_swap

bool SwappyGL_swap(
  EGLDisplay display,
  EGLSurface surface
)

Substitui as chamadas para eglSwapBuffers por essa opção.

O Swappy esperará que o buffer do frame anterior seja processado pela GPU antes de chamar eglSwapBuffers.