কেন ডুম 3 সোর্স কোডে সমস্ত ওপেনএল ফাংশন কলগুলি "কিউ" দিয়ে উপসর্গযুক্ত?


42

কেন প্রতিটি ওপেনএল কল ডুম 3 সোর্স কোডটিতে "কিউ" দিয়ে উপসর্গযুক্ত? সেগুলি কি কাস্টম ফাংশন বা কোনও ভিন্ন গ্রন্থাগার, এবং যদি তাই হয় তবে ওপেনজিএল-এর কেন এটি ব্যবহার করবেন? যে কোনও গুগল অনুসন্ধান কিউটি ওপেনজিএল মডিউলটি নিয়ে আসে, যা আমি অনুমান করি এর সাথে কোনও সম্পর্ক নেই।

উত্তর:


62

- অবগতির জন্য Doom3 এর qgl.h

ওপেনজিএল একটি বিজোড় ছোট্ট এপিআই। আপনাকে প্রায়শই ফাংশন পয়েন্টারগুলির সাথে কাজ করতে হবে কারণ মানক প্রয়োগটি নতুন কার্যকারিতা হারিয়েছে বা আপনি এক্সটেনশানগুলির সাথে কাজ করতে চান বলে because উদাহরণস্বরূপ, আপনি যদি কল করতে চান glCreateShaderতবে আপনার যে ওএসটি বিকাশ করা হচ্ছে তা নতুন পর্যাপ্ত জিএল হেডার সহ শিপ করে না, আপনাকে glGetProcAddress("CreateShader")ব্যবহারকারীর ড্রাইভারের বাইরে ফাংশনটি লোড করার জন্য আপনাকে অবশ্যই ব্যবহার করতে হবে । এবং তারপরে আপনাকে সেই ফাংশন পয়েন্টারটি কোথাও সঞ্চয় করতে হবে।

এমনকি যদি আপনার বিকাশের পরিবেশের একটি নির্দিষ্ট কার্য থাকে তবে ব্যবহারকারীদের মেশিনগুলি এটি নাও করতে পারে। এবং তারপরে একটি নির্দিষ্ট ফাংশন 2-3 ফর্মগুলিতে আসতে পারে (বিক্রেতার এক্সটেনশন, এআরবি এক্সটেনশন, কোর ফাংশন) এবং তাই আপনাকে বেশ কয়েকটি ভিন্ন নামে কোনও ফাংশন সন্ধান করতে হতে পারে।

অনেক জিএল "লোডার" লাইব্রেরি ( জিএলইডাব্লু এর মতো ) জিএল কনভেনশনগুলিকে আটকে রাখার চেষ্টা করে। তারা সাধারণ- glপ্রিফিক্সের সাথে "জাল" ফাংশন তৈরি করে এবং জাদুকরভাবে আপনার কোডটি প্রয়োজনীয় কোনও বৈশিষ্ট্য সমর্থনকারী কোনও ওএস বা ড্রাইভারের জন্য কাজ করার চেষ্টা করে। মূলত, এর পরিবর্তে glFooপ্রকৃত ফাংশন হচ্ছে, এটা ঠিক একটি বিশ্বব্যাপী ফাংশন পয়েন্টার এবং লোডার লাইব্রেরী (আরম্ভের বা প্রথম ব্যবহারের সময়) অনুসন্ধানসমূহ এর FooEXT, FooARBএবং Fooযতক্ষণ না এটি একটি বাস্তবায়ন খুঁজে বের করে এবং তারপর নির্ধারণ বিশ্বব্যাপী পয়েন্টার যে। ক্লায়েন্ট কোডটি দেখে মনে হচ্ছে এটি কেবল একটি নিয়মিত ফাংশনকে কল করছে তবে এটি জাদুগতভাবে সমস্ত সূচনাকালীন সময়ে রানটাইমের সময় এমনভাবে সমাধান হয়ে যায় যা সমস্ত বিভিন্ন প্ল্যাটফর্ম এবং ড্রাইভারদের সাথে ডিল করে।

অন্যান্য গ্রন্থাগারগুলি নাম স্থানগুলিতে ফাংশন রাখে বা অন্যথায় জিএল আদর্শ থেকে কিছুটা পৃথক হয়। আইডি নিজেদের লোডার লিখেছিলেন, হয় কারণ তারা বেশী যে অস্তিত্ব বা ভালো লাগে নি - সম্ভাবনা বেশি - কোয়েক শুধু অন্য কোন গ্রন্থাগার যে আইডি ব্যবহার করতে পারতেন চেয়েও পুরনো ( qমধ্যে qglকোয়েক জন্য সম্ভবত ব্রিদিং, ব্যবহার করা প্রথম আইডি টেক খেলা ছিল যা জি এল)।

জিএল স্পেকটি নিয়ে এটি লেখা রয়েছে একটি সম্ভাবনা। অনুমানটি উপসর্গ ব্যতীত রচিত ; এটি ওপেনএল-এর বাস্তবায়ন যা কোন উপসর্গটি ব্যবহার করবে তা স্থির করে ( glঅবশ্যই সাধারণভাবে হওয়া)। লোডার লাইব্রেরিগুলি যা নাম স্থানগুলিতে ফাংশন রাখে বা তাদের নিজস্ব উপসর্গ ব্যবহার করে তা সম্পূর্ণ বৈধ।

ডুম 3, কোপেন ইঞ্জিনের উপর ভিত্তি করে, একাধিক প্ল্যাটফর্মে জিএল-এর বিজোড়তা মোকাবেলা করতে এবং qglউপসর্গটি ব্যবহার করার জন্য চয়ন করার জন্য একটি লোডার লাইব্রেরি ব্যবহার করা সম্পূর্ণরূপে সাধারণ এবং ন্যায়সঙ্গত ।


+1, এবং কুদোস চিহ্নিত করার জন্য আমি idখারাপ লিখেছি (আপনি মূলধনের বিষয়ে পুরোপুরি সঠিক), যদিও en.wikedia.org/wiki/Id_Tech এখনও স্থানের সাথে লেখা আছে, আমি যে সমস্ত উত্স খুঁজে পেতে পারি।
ভ্যাক্সকুইস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.