OpenGL ES API-এর উপর ভিত্তি করে রেন্ডারিং ইঞ্জিন সহ Android Frame Pacing ব্যবহার করতে নিম্নলিখিত ফাংশনগুলি ব্যবহার করুন৷
শুরু এবং ধ্বংস
যথাক্রমে অ্যান্ড্রয়েড ফ্রেম পেসিং এর একটি উদাহরণ শুরু এবং ধ্বংস করতে নিম্নলিখিত ফাংশনগুলি ব্যবহার করুন:
সাধারণভাবে, ইঞ্জিন স্টার্টআপ সিকোয়েন্সের সময় আপনার যত তাড়াতাড়ি সম্ভব SwappyGL_init()
কল করা উচিত, এবং গেমটি বন্ধ হওয়ার সময় আপনার SwappyGL_destroy()
কল করা উচিত। আপনাকে অন্য কোনো সময়ে এই পদ্ধতিগুলি কল করার প্রয়োজন হবে না।
অদলবদল ব্যবধান এবং রিফ্রেশ সময়কাল কনফিগার করুন
অ্যান্ড্রয়েড ফ্রেম পেসিং-এর একটি উদাহরণ কনফিগার করতে নিম্নলিখিত ফাংশনগুলি ব্যবহার করুন:
-
void SwappyGL_setSwapIntervalNS(uint64_t swap_ns);
-
void SwappyGL_setFenceTimeoutNS(uint64_t fence_timeout_ns);
-
void SwappyGL_setUseAffinity(bool tf);
SwappyGL_setSwapIntervalNS()
কল করার সময়, একটি ফ্রেম উপস্থাপন করার সময়কাল অতিক্রম করুন৷ বেশিরভাগ ক্ষেত্রে, আপনি নিম্নলিখিত ধ্রুবকগুলির মধ্যে একটি ব্যবহার করতে পারেন: SWAPPY_SWAP_60FPS
, SWAPPY_SWAP_30FPS
, বা SWAPPY_SWAP_20FPS
।
সাধারণভাবে, SwappyGL_init()
এ কল করার পরে আপনার এই পদ্ধতিগুলি সরাসরি কল করা উচিত। যাইহোক, আপনার গেমটি কার্যকর করার সময় আপনাকে এই পদ্ধতিগুলিকে অন্য সময়ে কল করতে হতে পারে।
ANativeWindow সেট করা হচ্ছে
ANativeWindow
নির্দিষ্ট অপারেশন সঞ্চালনের জন্য Swappy-এর ANativeWindow
এর হ্যান্ডেল প্রয়োজন, যেমন ANativeWindow_setFrameRate()
কল করা। আপনার অ্যান্ড্রয়েড ডিসপ্লে পৃষ্ঠ পরিবর্তন হয়ে গেলে এবং আপনার কাছে একটি নতুন ANativeWindow
হ্যান্ডেল থাকলে SwappyGL_setWindow()
এ কল করুন (উদাহরণস্বরূপ বাউন্সিবল নমুনা দেখুন)।
অটো মোড
Android ফ্রেম পেসিং পূর্ববর্তী ফ্রেমের গড় সময়কালের উপর ভিত্তি করে অদলবদল সময়কাল এবং পাইপলাইন মোড সামঞ্জস্য করে। আপনি নিম্নলিখিত ফাংশন দিয়ে এই আচরণ নিয়ন্ত্রণ করতে পারেন:
-
void SwappyGL_setAutoSwapInterval(bool enabled);
-
void SwappyGL_setMaxAutoSwapIntervalNS(uint64_t max_swap_ns);
-
void SwappyGL_setAutoPipelineMode(bool enabled);
প্রতি-ফ্রেম অদলবদল সম্পাদন করুন
প্রতিটি রেন্ডারিং ফ্রেমের সময়, bool SwappyGL_swap(EGLDisplay display, EGLSurface surface)
। এই পদ্ধতিটি Open GL ES থেকে eglSwapBuffers()
পদ্ধতিকে মোড়ানো হয়, তাই আপনার গেমে eglSwapBuffers()
এর সমস্ত উদাহরণ SwappyGL_swap()
দিয়ে প্রতিস্থাপন করা উচিত।
ইউটিলিটি ফাংশন
নিম্নলিখিত পদ্ধতিটি Android ফ্রেম পেসিং সক্ষম কিনা তা পরীক্ষা করে:
এটা সম্ভব যে অ্যান্ড্রয়েড ফ্রেম পেসিং-এর একটি দৃষ্টান্ত নিম্নলিখিত কোনও কারণে নিজেকে শুরু করতে সক্ষম নয়:
- ডিভাইসে প্রয়োজনীয় EGL ফাংশন অনুপস্থিত।
- সিস্টেমটি
swappy.disable
বৈশিষ্ট্য সেট করেছে।
এই উভয় পরিস্থিতিতে, SwappyGL_isEnabled()
false
রিটার্ন করে, এবং একটি বিকল্প ফ্রেম-পেসিং কৌশল প্রয়োগ করা আপনার পক্ষে সর্বোত্তম।