OpenGL الأساسي
يُعدّ Core OpenGL ، أو CGL ، واجهة نظام النوافذ Macintosh Quartz من شركة Apple Inc. ، وهي واجهة لنظام التشغيل OS X لتطبيق مواصفات OpenGL . ويُشابه CGL كلاً من GLX ، وهي واجهة X11 لـ OpenGL، و WGL ، وهي واجهة Microsoft Windows لـ OpenGL.
تاريخ
نشأت جميع واجهات أنظمة النوافذ لـ OpenGL من عملية تحويل واجهة برمجة تطبيقات الرسومات ثلاثية الأبعاد ( API ) الخاصة بشركة Silicon Graphics، IrisGL، إلى شكلها القياسي المفتوح الحالي OpenGL. عندما اتُخذ قرار جعل IrisGL معيارًا مفتوحًا، كان التغيير التصميمي الأساسي المطلوب هو جعل واجهة برمجة تطبيقات الرسومات هذه مستقلة عن نظام النوافذ. ولذلك، أُزيلت جميع منطق أنظمة النوافذ من IrisGL عند الانتقال إلى OpenGL. يشمل منطق أنظمة النوافذ أي آلية أحداث لجمع المدخلات من أجهزة مثل لوحات المفاتيح والفأرات، بالإضافة إلى أي منطق لترتيب النوافذ أو تحديد حجمها المستخدم عند الرسم على واجهة مستخدم حديثة ذات نوافذ. علاوة على ذلك، أُزيلت أيضًا جميع عمليات الإدارة الداخلية لمخازن ذاكرة النوافذ، والتي يُشار إليها أحيانًا بالأسطح، من IrisGL لإنشاء OpenGL.
بفضل نظام النوافذ المستقل عن OpenGL، يتعين على شركات مثل Apple تحمل عبء تكوين وإدارة الأسطح المستخدمة كوجهة لعرض OpenGL.
سمات
واجهات نظام النوافذ
في نظام التشغيل macOS، تُعدّ مكتبة CGL الطبقة الأساسية لواجهات نظام النوافذ مع OpenGL. تمتلك كل من مكتبة رسومات Apple ( AGL ) وواجهة برمجة تطبيقات Cocoa (أو AppKit) واجهات مع OpenGL، وهما طبقتان برمجيتان منطقيتان تعتمدان على CGL في عملهما. تتكامل CGL وAGL بسلاسة. يمكن استخدام CGL وCocoa معًا، ولكن قد تُجري فئات Cocoa تغييرات ضمنية على حالة CGL. يُنصح بعدم دمج استدعاءات الدوال من AGL وCocoa.
يتم تكوين هذه الأسطح من خلال عملية اختيار تنسيق البكسل، حيث تُدمج طبقات معلومات العرض المتوافقة المختلفة لتشكيل مخزن إطار . ومن أمثلة هذه الطبقات: مخازن الألوان، ومخازن الشفافية (ألفا)، ومخازن الاستنسل ، ومخازن العمق . تُستخدم دالة CGL المسماة CGLChoosePixelFormat لإجراء فحص توافق المخزن. وبناءً على معلمات الإدخال وسياسة التقييم الخاصة بها، تختار CGLChoosePixelFormat تنسيق بكسل يُمثل تكوين مخزن متوافقًا يدعمه برنامج العرض الأساسي الذي سيُستخدم لمعالجة أوامر الرسومات. قد تكون برامج العرض إما قائمة على الأجهزة، بحيث تتوافق مع بطاقات الرسومات المثبتة في النظام، أو قد تكون قائمة على البرامج، حيث تتولى وحدة المعالجة المركزية الرئيسية للنظام جميع عمليات معالجة أوامر الرسومات وعملية التحويل النهائي إلى صورة نقطية .
التعامل مع عدم تجانس نظام التشغيل Mac OS X
في نظام التشغيل Mac OS X، تتولى وحدة CGL أيضًا مسؤولية إدارة طبيعة تركيبات وتكوينات أجهزة الرسومات المتنوعة على أنظمة ماكنتوش. قد تحتوي أجهزة ماكنتوش على أي عدد من الشاشات وبطاقات الرسومات المثبتة فيها. في هذه التكوينات، يمكن محاكاة سطح مكتب المستخدم (توسيعه) أو عرضه على شاشات متعددة متصلة ببطاقات رسومات متعددة، قد تكون أو لا تكون من نفس مُصنِّع بطاقات الرسومات.
التحكم في عملية العرض
عندما يقوم المستخدمون بتهيئة أجهزة ماكنتوش الخاصة بهم لاستخدام سطح مكتب افتراضي، ويسحبون النوافذ من شاشة إلى أخرى، تتولى CGL إدارة حالة رسومات OpenGL التي يجب نقلها بين الأجهزة لضمان اتساق معالجة الأوامر بينها. يُعرف سحب نافذة عبر سطح مكتب ماكنتوش بين شاشتين مختلفتين تدعمهما وحدتا عرض مختلفتان باسم "تغيير الشاشة الافتراضية".
توفر مكتبة CGL أيضًا آلية للحصول على معلومات حول برنامج العرض المستخدم حاليًا. بنية البيانات الأساسية التي تحتفظ بحالة OpenGL على نظام التشغيل Mac OS X هي CGLContextObj . يمكن استرداد سياقات CGL هذه في أي وقت باستخدام استدعاء الدالة CGLGetCurrentContext . بعد ذلك، يمكن الاستعلام من CGLContextObj عن تفاصيل محددة حول برنامج العرض المرتبط به.
برنامج عرض الرسوميات
يتضمن النظام أيضًا برنامج عرض OpenGL الخاص بشركة Apple . في الأصل، كان هذا البرنامج عبارة عن حزمة بسيطة للأعداد الصحيحة. في نظام التشغيل Mac OS X 10.3، تم تقديم حزمة جديدة للأعداد العشرية حلت محلها في النهاية . على الرغم من بطء برنامج العرض، إلا أنه سريع بما يكفي للتطبيقات الأساسية، وقد تم الحفاظ على جميع ميزاته. (مؤرشف في 8 يناير 2014 على Wayback Machine مع تطبيق OpenGL الخاص بنظام التشغيل OS X لأغراض التطوير).
انظر أيضاً
- GLX : واجهة X11 المكافئة لـ OpenGL
- WGL : واجهة مايكروسوفت ويندوز المكافئة لـ OpenGL
- شركة AGL
- OpenGL
- GLUT : واجهة ذات مستوى أعلى تخفي الاختلافات بين WGL و GLX وما إلى ذلك.
روابط خارجية
- دليل مرجعي لـ CGL على موقع Apple الإلكتروني (html). - مؤرشف بتاريخ 12 أغسطس 2014 في Wayback Machine
- دليل مرجعي لـ CGL على موقع Apple الإلكتروني (ملف PDF). - مؤرشف بتاريخ 24 أغسطس 2014 في Wayback Machine
- واجهات برمجة التطبيقات
- معايير الرسومات
- OpenGL
