ফ্রেম পেসিং ফাংশন যোগ করুন

OpenGL ES API-এর উপর ভিত্তি করে রেন্ডারিং ইঞ্জিন সহ Android Frame Pacing ব্যবহার করতে নিম্নলিখিত ফাংশনগুলি ব্যবহার করুন৷

শুরু এবং ধ্বংস

যথাক্রমে অ্যান্ড্রয়েড ফ্রেম পেসিং এর একটি উদাহরণ শুরু এবং ধ্বংস করতে নিম্নলিখিত ফাংশনগুলি ব্যবহার করুন:

সাধারণভাবে, ইঞ্জিন স্টার্টআপ সিকোয়েন্সের সময় আপনার যত তাড়াতাড়ি সম্ভব SwappyGL_init() কল করা উচিত, এবং গেমটি বন্ধ হওয়ার সময় আপনার SwappyGL_destroy() কল করা উচিত। আপনাকে অন্য কোনো সময়ে এই পদ্ধতিগুলি কল করার প্রয়োজন হবে না।

অদলবদল ব্যবধান এবং রিফ্রেশ সময়কাল কনফিগার করুন

অ্যান্ড্রয়েড ফ্রেম পেসিং-এর একটি উদাহরণ কনফিগার করতে নিম্নলিখিত ফাংশনগুলি ব্যবহার করুন:

SwappyGL_setSwapIntervalNS() কল করার সময়, একটি ফ্রেম উপস্থাপন করার সময়কাল অতিক্রম করুন৷ বেশিরভাগ ক্ষেত্রে, আপনি নিম্নলিখিত ধ্রুবকগুলির মধ্যে একটি ব্যবহার করতে পারেন: SWAPPY_SWAP_60FPS , SWAPPY_SWAP_30FPS , বা SWAPPY_SWAP_20FPS

সাধারণভাবে, SwappyGL_init() এ কল করার পরে আপনার এই পদ্ধতিগুলি সরাসরি কল করা উচিত। যাইহোক, আপনার গেমটি কার্যকর করার সময় আপনাকে এই পদ্ধতিগুলিকে অন্য সময়ে কল করতে হতে পারে।

ANativeWindow সেট করা হচ্ছে

ANativeWindow নির্দিষ্ট অপারেশন সঞ্চালনের জন্য Swappy-এর ANativeWindow এর হ্যান্ডেল প্রয়োজন, যেমন ANativeWindow_setFrameRate() কল করা। আপনার অ্যান্ড্রয়েড ডিসপ্লে পৃষ্ঠ পরিবর্তন হয়ে গেলে এবং আপনার কাছে একটি নতুন ANativeWindow হ্যান্ডেল থাকলে SwappyGL_setWindow() এ কল করুন (উদাহরণস্বরূপ বাউন্সিবল নমুনা দেখুন)।

অটো মোড

Android ফ্রেম পেসিং পূর্ববর্তী ফ্রেমের গড় সময়কালের উপর ভিত্তি করে অদলবদল সময়কাল এবং পাইপলাইন মোড সামঞ্জস্য করে। আপনি নিম্নলিখিত ফাংশন দিয়ে এই আচরণ নিয়ন্ত্রণ করতে পারেন:

প্রতি-ফ্রেম অদলবদল সম্পাদন করুন

প্রতিটি রেন্ডারিং ফ্রেমের সময়, bool SwappyGL_swap(EGLDisplay display, EGLSurface surface) । এই পদ্ধতিটি Open GL ES থেকে eglSwapBuffers() পদ্ধতিকে মোড়ানো হয়, তাই আপনার গেমে eglSwapBuffers() এর সমস্ত উদাহরণ SwappyGL_swap() দিয়ে প্রতিস্থাপন করা উচিত।

ইউটিলিটি ফাংশন

নিম্নলিখিত পদ্ধতিটি Android ফ্রেম পেসিং সক্ষম কিনা তা পরীক্ষা করে:

এটা সম্ভব যে অ্যান্ড্রয়েড ফ্রেম পেসিং-এর একটি দৃষ্টান্ত নিম্নলিখিত কোনও কারণে নিজেকে শুরু করতে সক্ষম নয়:

  • ডিভাইসে প্রয়োজনীয় EGL ফাংশন অনুপস্থিত।
  • সিস্টেমটি swappy.disable বৈশিষ্ট্য সেট করেছে।

এই উভয় পরিস্থিতিতে, SwappyGL_isEnabled() false রিটার্ন করে, এবং একটি বিকল্প ফ্রেম-পেসিং কৌশল প্রয়োগ করা আপনার পক্ষে সর্বোত্তম।