Swappy untuk OpenGL

OpenGL bagian dari Swappy.

Ringkasan

Fungsi

SwappyGL_destroy()
void
Hancurkan resource dan hentikan semua thread yang telah dibuat oleh Swappy.
SwappyGL_getFenceTimeoutNS()
uint64_t
Dapatkan nilai waktu tunggu fence, dalam nanodetik.
SwappyGL_getRefreshPeriodNanos()
uint64_t
Dapatkan nilai periode refresh, dalam nanodetik.
SwappyGL_getSwapIntervalNS()
uint64_t
Dapatkan nilai interval pertukaran, dalam nanodetik.
SwappyGL_getUseAffinity()
bool
SwappyGL_init(JNIEnv *env, jobject jactivity)
bool
Lakukan inisialisasi Swappy, mendapatkan parameter Android yang diperlukan dari subsistem tampilan melalui JNI.
SwappyGL_init_internal(JNIEnv *env, jobject jactivity)
bool
SwappyGL_isEnabled()
bool
Lihat apakah Swappy berhasil diinisialisasi.
SwappyGL_setFenceTimeoutNS(uint64_t fence_timeout_ns)
void
Setel parameter waktu tunggu fence untuk perangkat dengan driver yang rusak.
SwappyGL_setSwapIntervalNS(uint64_t swap_ns)
void
Ganti interval pertukaran.
SwappyGL_setUseAffinity(bool tf)
void
SwappyGL_setWindow(ANativeWindow *window)
bool
Beri tahu Swappy, ANativeWindow mana yang akan digunakan saat memanggil API ANativeWindow_*.
SwappyGL_swap(EGLDisplay display, EGLSurface surface)
bool
Ganti panggilan ke eglSwapBuffers dengan ini.

Fungsi

SwappyGL_destroy

void SwappyGL_destroy()

Hancurkan resource dan hentikan semua thread yang telah dibuat oleh Swappy.

Lihat juga: SwappyGL_init

SwappyGL_getFenceTimeoutNS

uint64_t SwappyGL_getFenceTimeoutNS()

Dapatkan nilai waktu tunggu fence, dalam nanodetik.

SwappyGL_getRefreshPeriodNanos

uint64_t SwappyGL_getRefreshPeriodNanos()

Dapatkan nilai periode refresh, dalam nanodetik.

SwappyGL_getSwapIntervalNS

uint64_t SwappyGL_getSwapIntervalNS()

Dapatkan nilai interval pertukaran, dalam nanodetik.

SwappyGL_getUseAffinity

bool SwappyGL_getUseAffinity()

SwappyGL_init

bool SwappyGL_init(
  JNIEnv *env,
  jobject jactivity
)

Lakukan inisialisasi Swappy, mendapatkan parameter Android yang diperlukan dari subsistem tampilan melalui JNI.

Lihat juga: SwappyGL_destroy

Detail
Parameter
env
Lingkungan JNI yang menggunakan Swappy
jactivity
Aktivitas yang menggunakan Swappy
Hasil
false jika Swappy gagal diinisialisasi.

SwappyGL_init_internal

bool SwappyGL_init_internal(
  JNIEnv *env,
  jobject jactivity
)

SwappyGL_isEnabled

bool SwappyGL_isEnabled()

Lihat apakah Swappy berhasil diinisialisasi.

Detail
Hasil
false jika properti sistem swappy.disable bukan false atau ekstensi OpenGL yang diperlukan tidak tersedia agar Swappy berfungsi.

SwappyGL_setFenceTimeoutNS

void SwappyGL_setFenceTimeoutNS(
  uint64_t fence_timeout_ns
)

Setel parameter waktu tunggu fence untuk perangkat dengan driver yang rusak.

Nilai defaultnya adalah 50.000.000ns (50 md).

SwappyGL_setSwapIntervalNS

void SwappyGL_setSwapIntervalNS(
  uint64_t swap_ns
)

Ganti interval pertukaran.

Secara default, Swappy akan menyesuaikan interval pertukaran berdasarkan waktu rendering frame yang sebenarnya.

Jika aplikasi ingin mengganti interval pertukaran yang dihitung oleh Swappy, aplikasi ini dapat memanggil fungsi ini:

  • Ini akan mengganti pengaturan waktu frame Swappy sementara, kecuali SwappyGL_setAutoSwapInterval(false) dipanggil, pengaturan waktu akan terus diupdate secara dinamis, sehingga interval pertukaran dapat berubah.
  • Tindakan ini menyetel interval minimal untuk dijalankan. Misalnya, SwappyGL_setSwapIntervalNS(SWAPPY_SWAP_30FPS) tidak akan memungkinkan Swappy bertukar dengan lebih cepat, meskipun mode otomatis memutuskan dapat dilakukan. Namun, mode ini dapat menjadi lebih lambat jika mode otomatis diaktifkan.

Detail
Parameter
swap_ns
Nilai interval pertukaran baru, dalam nanodetik.

SwappyGL_setUseAffinity

void SwappyGL_setUseAffinity(
  bool tf
)

SwappyGL_setWindow

bool SwappyGL_setWindow(
  ANativeWindow *window
)

Beri tahu Swappy, ANativeWindow mana yang akan digunakan saat memanggil API ANativeWindow_*.

Detail
Parameter
window
ANativeWindow yang digunakan untuk membuat EGLSurface

SwappyGL_swap

bool SwappyGL_swap(
  EGLDisplay display,
  EGLSurface surface
)

Ganti panggilan ke eglSwapBuffers dengan ini.

Swappy akan menunggu buffering frame sebelumnya diproses oleh GPU sebelum benar-benar memanggil eglSwapBuffers.