আমি সাউন্ড খেলতে ওপেনাল ব্যবহার করছি। আমি একটি ফায়ার-অ্যান্ড-ভুলে যাওয়া প্লে ফাংশন বাস্তবায়নের চেষ্টা করছি যা একটি বাফার আইডি নেয় এবং এটি পূর্বে বরাদ্দকৃত একটি পুলের উত্সকে এনে দেয় এবং এটি খেলায়। তবে অবজেক্ট লাইফটাইম নিয়ে সমস্যা রয়েছে।
ওপেনজিএলে, ফাংশনগুলি মুছে ফেলা হয় স্বয়ংক্রিয়ভাবে জিনিসগুলি আনবাইন্ড (উদাঃ টেক্সচার), বা অবশেষে আনবাউন্ড (উদাঃ শেডার) হয়ে গেলে জিনিসটি স্বয়ংক্রিয়ভাবে মুছে ফেলা হয় এবং তাই মুছে ফেলা পরিচালনা করা সহজ। তবে এর alDeleteBuffers
পরিবর্তে কেবল AL_INVALID_OPERATION
বাফারটি যদি কোনও উত্সের সাথে আবদ্ধ থাকে তবে এটি ব্যর্থ হয় ।
ওপেনাল বাফারগুলি "মুছে ফেলুন" এমন কোনও মুশকিল উপায় আছে যা তাদের খেলা শেষ করার অনুমতি দেয়, এবং তারপরে স্বয়ংক্রিয়ভাবে আনবাইন্ড এবং সত্যিই সেগুলি বন্ধ করে দেয়? আমার কি উত্স পুলের সাথে আরও গভীরভাবে বাফার পরিচালনাটি বাঁধতে হবে (যেমন একটি বাফার মুছে ফেলার জন্য সমস্ত বরাদ্দ উত্সগুলিও পরীক্ষা করা প্রয়োজন)?
একইভাবে, বাফারগুলি খেলা শেষ করার পরে আনবাইন্ড করার (তবে মুছবে না) মুভি করার উপায় আছে কি? এটি দুর্দান্ত হবে যদি আমি যখন কোনও মুক্ত উত্সের সন্ধান করতাম, তখন কেবল আমার কেবল বাফারটি সংযুক্ত ছিল কিনা এবং উত্সের স্থিতি পরীক্ষা করতে বিরক্ত না করে তা দেখার দরকার ছিল।
(আমি সি ++ ব্যবহার করছি, যদিও সি এর জন্য পদ্ধতিগুলিও ভাল। একটি জিসিডি ভাষা ধরে নেওয়া এবং চূড়ান্তকরণকারী ব্যবহার করা পদ্ধতি সম্ভবত প্রযোজ্য নয়))