توابع تنظیم فریم را اضافه کنید

از عملکردهای زیر برای استفاده از Android Frame Pacing با موتور رندر مبتنی بر OpenGL ES API استفاده کنید.

اولیه و نابود کنید

به ترتیب از توابع زیر برای مقداردهی اولیه و از بین بردن یک نمونه از Android Frame Pacing استفاده کنید:

به طور کلی، شما باید SwappyGL_init() هر چه زودتر در طول دنباله راه اندازی موتور فراخوانی کنید، و باید SwappyGL_destroy() را هنگام خروج از بازی فراخوانی کنید. شما نباید در هر زمان دیگری نیازی به فراخوانی این روش ها داشته باشید.

پیکربندی فاصله مبادله و دوره تجدید

برای پیکربندی یک نمونه از Android Frame Pacing از عملکردهای زیر استفاده کنید:

هنگام فراخوانی SwappyGL_setSwapIntervalNS() ، مدت زمانی که یک فریم باید ارائه شود را بگذرانید. در بیشتر موارد، می‌توانید از یکی از ثابت‌های زیر استفاده کنید: SWAPPY_SWAP_60FPS ، SWAPPY_SWAP_30FPS ، یا SWAPPY_SWAP_20FPS .

به طور کلی، شما باید این متدها را مستقیماً پس از تماس با SwappyGL_init() فراخوانی کنید. با این حال، ممکن است لازم باشد این روش ها را در زمان های دیگر در طول اجرای بازی خود فراخوانی کنید.

تنظیم ANativeWindow

Swappy برای انجام عملیات خاص ANativeWindow ، مانند فراخوانی ANativeWindow_setFrameRate() به دسته ANativeWindow نیاز دارد. زمانی که سطح صفحه نمایش اندروید شما تغییر کرد و یک دسته ANativeWindow جدید دارید، SwappyGL_setWindow() را فراخوانی کنید (برای نمونه به نمونه Bouncyball مراجعه کنید).

حالت های خودکار

Android Frame Pacing مدت زمان تعویض و حالت خط لوله را بر اساس میانگین مدت فریم های قبلی تنظیم می کند. شما می توانید این رفتار را با توابع زیر کنترل کنید:

انجام تعویض در هر فریم

در طول هر فریم رندر، bool SwappyGL_swap(EGLDisplay display, EGLSurface surface) را فراخوانی کنید. این متد متد eglSwapBuffers() از Open GL ES می‌پیچد، بنابراین شما باید همه نمونه‌های eglSwapBuffers() را در بازی خود با SwappyGL_swap() جایگزین کنید.

توابع سودمند

روش زیر بررسی می‌کند که آیا Android Frame Pacing فعال است یا خیر:

ممکن است یک نمونه از Android Frame Pacing به هر یک از دلایل زیر نتواند خود را مقداردهی اولیه کند:

  • عملکردهای ضروری EGL در دستگاه وجود ندارد.
  • سیستم ویژگی swappy.disable را تنظیم کرده است.

در هر یک از این موقعیت‌ها، SwappyGL_isEnabled() false را برمی‌گرداند، و بهترین کار برای شما این است که یک استراتژی جایگزین برای تنظیم فریم اجرا کنید.

،

از عملکردهای زیر برای استفاده از Android Frame Pacing با موتور رندر مبتنی بر OpenGL ES API استفاده کنید.

اولیه و نابود کنید

به ترتیب از توابع زیر برای مقداردهی اولیه و از بین بردن یک نمونه از Android Frame Pacing استفاده کنید:

به طور کلی، شما باید SwappyGL_init() هر چه زودتر در طول دنباله راه اندازی موتور فراخوانی کنید، و باید SwappyGL_destroy() را هنگام خروج از بازی فراخوانی کنید. شما نباید در هر زمان دیگری نیازی به فراخوانی این روش ها داشته باشید.

پیکربندی فاصله مبادله و دوره تجدید

برای پیکربندی یک نمونه از Android Frame Pacing از عملکردهای زیر استفاده کنید:

هنگام فراخوانی SwappyGL_setSwapIntervalNS() ، مدت زمانی که یک فریم باید ارائه شود را بگذرانید. در بیشتر موارد، می‌توانید از یکی از ثابت‌های زیر استفاده کنید: SWAPPY_SWAP_60FPS ، SWAPPY_SWAP_30FPS ، یا SWAPPY_SWAP_20FPS .

به طور کلی، شما باید این متدها را مستقیماً پس از تماس با SwappyGL_init() فراخوانی کنید. با این حال، ممکن است لازم باشد این روش ها را در زمان های دیگر در طول اجرای بازی خود فراخوانی کنید.

تنظیم ANativeWindow

Swappy برای انجام عملیات خاص ANativeWindow ، مانند فراخوانی ANativeWindow_setFrameRate() به دسته ANativeWindow نیاز دارد. زمانی که سطح صفحه نمایش اندروید شما تغییر کرد و یک دسته ANativeWindow جدید دارید، SwappyGL_setWindow() را فراخوانی کنید (برای نمونه به نمونه Bouncyball مراجعه کنید).

حالت های خودکار

Android Frame Pacing مدت زمان تعویض و حالت خط لوله را بر اساس میانگین مدت فریم های قبلی تنظیم می کند. شما می توانید این رفتار را با توابع زیر کنترل کنید:

انجام تعویض در هر فریم

در طول هر فریم رندر، bool SwappyGL_swap(EGLDisplay display, EGLSurface surface) را فراخوانی کنید. این متد متد eglSwapBuffers() از Open GL ES می‌پیچد، بنابراین شما باید همه نمونه‌های eglSwapBuffers() را در بازی خود با SwappyGL_swap() جایگزین کنید.

توابع سودمند

روش زیر بررسی می‌کند که آیا Android Frame Pacing فعال است یا خیر:

ممکن است یک نمونه از Android Frame Pacing به هر یک از دلایل زیر نتواند خود را مقداردهی اولیه کند:

  • عملکردهای ضروری EGL در دستگاه وجود ندارد.
  • سیستم ویژگی swappy.disable را تنظیم کرده است.

در هر یک از این موقعیت‌ها، SwappyGL_isEnabled() false را برمی‌گرداند، و بهترین کار برای شما این است که یک استراتژی جایگزین برای تنظیم فریم اجرا کنید.