ওপেনজিএল একটি রাষ্ট্রীয় মেশিন। একটি ওপেনজিএল প্রসঙ্গটি সেই রাজ্যকে ধারণ করে। রাজ্যে এমন তথ্য রয়েছে যেমন কোন টেক্সচারটি কোন টেক্সচার ইউনিটগুলির সাথে আবদ্ধ, কোনটি বর্তমান এফবিও সংযুক্ত করে এবং এর মতো জিনিস।
আপনি যখন বর্তমান প্রসঙ্গটি সেট করেন, আপনি পুরানো প্রসঙ্গ থেকে সমস্ত প্রসঙ্গে নতুন প্রসঙ্গে স্যুইচ করছেন। এখানে একটি উদাহরণ:
glfwMakeContextCurrent(window1);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, texture1);
glfwMakeContextCurrent(window2);
এটি যা করে তা হ'ল window1
বর্তমানের প্রসঙ্গকে । এরপরে এটি 2 ডি টেক্সচার ইউনিটকে সক্ষম করে এবং এর সাথে আবদ্ধ texture1
হয়।
পরবর্তী এটি window2
বর্তমানের প্রেক্ষাপট তৈরি করে । যদি আপনি GL_TEXTURE_2D
এটির সক্ষম হওয়া রাষ্ট্রটি যাচাই করে দেখেন তবে এটি মিথ্যা হবে (যদি আপনি পূর্বে window2
প্রসঙ্গে এটি সক্ষম না করেন )। তেমনিভাবে, আপনি যদি কোনও টেক্সচার 2 ডি টেক্সচার ইউনিটের সাথে আবদ্ধ হয় তা পরীক্ষা করেন তবে আপনি সম্ভবত কোনও টেক্সচার আবদ্ধ নয়, বা texture1
আবদ্ধ ছাড়া অন্য কিছু অঙ্গবিন্যাসকে দেখতে পাবেন ।
মূলত সমস্ত অঙ্কন বর্তমান প্রসঙ্গে ঘটে। আপনি যদি কোনও ভিন্ন প্রসঙ্গে বর্তমান করেন, তবে সমস্ত অঙ্কন এখন সেই প্রসঙ্গে ঘটবে।
মাল্টি-থ্রেড ওপেনএল অ্যাপ্লিকেশনটিতে থ্রেড প্রতি একক প্রসঙ্গ থাকা সাধারণ। এইভাবে প্রতিটি থ্রেড তার নিজস্ব প্রসঙ্গে আঁকছে এবং অন্যান্য থ্রেডে প্রসঙ্গের অবস্থার সাথে গোলমাল করবে না।