আমি ভেবেছিলাম যে ওপেনজিএল নামকরণের কনভেনশন এবং এক্সটেনশানগুলি কীভাবে কাজ করেছে সে সম্পর্কে আমি সাধারণ ধারণা তৈরি করেছি, যতক্ষণ না আমি আমাকে বিভ্রান্ত করে এমন কোনও মামলায় হোঁচট খাই।
এখানে আমার বোঝাপড়া এতদূর:
প্রত্যয় নেই - যেমন glGenBuffers()
। এই ফাংশনটি মূল প্রোফাইলের একটি অংশ। উইকি পাতা আমাকে বলে যে, এই কোর প্রফাইল সংস্করণ 1.5 থেকে শুরু যোগ করা হয়েছিল।
এআরবি - যেমন glGenBuffersARB()
। এই ফাংশনটি মানকযুক্ত GL_ARB_vertex_buffer_object
এক্সটেনশনের অংশ । বৈশিষ্ট এই এক্সটেনশানের পরিষ্কারভাবে ঘোষণা GenBuffersARB()
"নতুন পদ্ধতি এবং কার্যাবলী" বিভাগে। "নির্ভরতা" বিভাগটি আমাকে বলেছে যে হার্ডওয়্যারটি যদি এক্সটেনশানটিকে সমর্থন করে তবে আমি সম্ভবত এটি 1.4+ প্রসঙ্গ থেকে অ্যাক্সেস করতে পারি।
এক্সট - এগুলি বিক্রেতা-নির্দিষ্ট এক্সটেনশন এবং ফাংশন যা কেবলমাত্র কিছু বিক্রেতারা সমর্থন করতে পারেন। ভার্টেক্স বাফার অবজেক্টের রেজিস্ট্রিতে কোনও এক্সট এক্সটেনশন আছে বলে মনে হচ্ছে না।
আমার বোধগম্যতা এখানে ভেঙে গেছে এখানে:
glGenFramebuffers
, যেমন উইকি শো, 3.0 কোর যুক্ত করা হয়েছে।
এখন আমি 3.0 এর চেয়ে কম মূল প্রোফাইল সংস্করণে ফ্রেম বাফার বৈশিষ্ট্যগুলি অ্যাক্সেস করতে চাই। তাই আমি এটি একটি এক্সটেনশন হিসাবে ব্যবহার করতে চাই। অনুমানের রেজিস্ট্রি আমাকে বলেছে যে দুটি উপলব্ধ এক্সটেনশন রয়েছে - এআরবি এবং এক্সটি ।
প্রশ্ন 1 - যদি কোনও এআরবি এক্সটেনশান উপস্থিত থাকে তবে একটি এক্সটি এক্সটেনশন কেন বিদ্যমান? আপনি কি সবসময় বিক্রেতা-নির্দিষ্ট কোনওটির চেয়ে মানককে বেছে নেবেন না?
"নতুন পদ্ধতি এবং ফাংশন" বিভাগে এআরবি সুনির্দিষ্ট দৃষ্টিভঙ্গি আমাকে বলে যে এক্সটেনশনটি GenRenderbuffers()
ফাংশনটি সংজ্ঞায়িত করে । এবার কোনও এআরবি প্রত্যয় নেই। GLEW এর মোটেও কোনও ফাংশন প্রোটোটাইপ নেই glGenRenderbuffersARB()
। রহস্যময়।
GenRenderbuffersEXT()
এক্সট স্পেকটির তবে নতুন ফাংশন বিভাগে একটি ফাংশন রয়েছে এবং জিএলইউও রয়েছে glGenRenderbuffersEXT()
।
প্রশ্ন 2 - কোনও এআরবি প্রত্যয় কেন একটি এক্সটি প্রত্যয় আছে? এআরবি ফাংশন এবং মূল ফাংশনগুলির নাম একই হওয়ায় এআরবির পক্ষে এটি কীভাবে কাজ করবে?
প্রশ্ন 3 - আমি শেষ পর্যন্ত একটি 1.4 প্রোফাইল থেকে ফ্রেমবফার বৈশিষ্ট্যগুলি চাই। আমি কোন এক্সটেনশন এবং কোন ফাংশন-সেটটি ব্যবহার করব যাতে আমি সর্বোচ্চ হার্ডওয়্যার সামঞ্জস্যতা কভারেজ পাই?