سيجوي

واجهة المستخدم الرسومية لكريزي إيدي ( CEGUI ) هي مكتبة واجهات مستخدم رسومية (GUI) للغة البرمجة C++ . صُممت لتلبية احتياجات ألعاب الفيديو ، ولكنها قابلة للاستخدام في مهام أخرى غير الألعاب، مثل التطبيقات والأدوات. صُممت لتوفير مرونة للمستخدم في المظهر والتجربة، وقابلية التكيف مع اختياراته من الأدوات وأنظمة التشغيل.

قابلية التكوين

تكمن نقاط قوة CEGUI في متانتها [ 3 ] وقابليتها للتخصيص. لا يقوم النظام بتحميل الملفات أو عرض النوافذ أو عرض النصوص مباشرةً، ولا حتى جلب المدخلات من النظام. يتفاعل CEGUI مع هذه العناصر من خلال كود يُحدده المستخدم، على الرغم من أن حزمة الكود المصدري الخاصة به تتضمن عددًا من الوحدات النمطية لاستخدام مكونات ومكتبات معينة.

تتيح هذه الحرية استخدام CEGUI في أي نوع من أنظمة إدارة الموارد أو بيئات التشغيل. من المتوقع أن يقوم كود المستخدم بجمع المدخلات، وربما تصفيتها حسب ما يراه المستخدم مناسبًا، ثم تمريرها إلى CEGUI لمعالجة النوافذ.

يأتي برنامج CEGUI مزودًا بمجموعة معقولة من الأدوات، قابلة للمقارنة بتلك الموجودة في مجموعة أدوات الأدوات العادية.

أدوات

يمكن تخصيص CEGUI بالكامل باستخدام أدوات تحرير الصور وملفات XML والبرمجيات القياسية. ومع ذلك، يوفر CEGUI أيضًا أدوات مصممة للمساعدة في تصميم وتطوير واجهات المستخدم القائمة على CEGUI.

كانت الإصدارات القديمة من CEGUI، قبل الإصدار 0.8، توفر أدوات منفصلة لتحرير جوانب مختلفة من واجهة المستخدم. وأبرزها محررات مجموعات الصور والتخطيطات.

منذ إصدار CEGUI 0.8، توجد أداة تحرير موحدة جديدة تُسمى محرر CEGUI الموحد (CEED) والتي يجري تطويرها بنشاط. [ 4 ] وهي تجمع جميع جوانب تطوير واجهات المستخدم الرسومية في أداة واحدة.

عرض

تتم عملية العرض بواسطة وحدة عرض خلفية . يوفر برنامج CEGUI وحدات لـ Direct3D و OpenGL ومحرك OGRE ثلاثي الأبعاد ومحرك Irrlicht . ويمكن كتابة وحدات أخرى لمحركات مخصصة.

يتم تنظيم مكونات واجهة المستخدم الرسومية لـ CEGUI في شجرة (رسم بياني) [ 5 ] ويتم عرضها بترتيب اجتياز الشجرة.

إدارة الموارد

تتم إدارة تحميل الملفات والموارد من خلال وحدة "موفر الموارد" في الواجهة الخلفية. يمكن للمستخدمين إنشاء وحدات مخصصة لتحديد كيفية الوصول إلى الموارد، مما يسمح باستخدام المكتبة في أي بيئة تشغيل تقريبًا. موفر الموارد الافتراضي متوافق مع مختلف الأنظمة الأساسية، ويوفر آليات قياسية للوصول إلى الملفات لتحميل الموارد. كما تتيح وحدة minizip الاختيارية تحميل الموارد من ملفات مضغوطة.

إدارة الذاكرة

يتميز برنامج CEGUI بنظام إدارة ذاكرة مرن . يعتمد هذا النظام على OGRE، ويتيح للعملاء ربط أنواع مختلفة من مُخصِّصات الذاكرة بأنواع مختلفة من الكائنات. افتراضيًا، تستخدم جميع الكائنات مُخصِّص الذاكرة الافتراضي لنظام التشغيل. يدعم CEGUI مُخصِّصات الذاكرة OGRE و nedmalloc .

كتابة البرامج النصية

يحتوي CEGUI على وحدة برمجة نصية اختيارية للواجهة الخلفية . يوفر CEGUI وحدات برمجة نصية بلغة Lua و Python . تتوفر واجهة برمجة تطبيقات CEGUI الكاملة (API) عبر البرمجة النصية، مما يتيح للعملاء إنشاء النوافذ، وتحديد العلاقات، ومعالجة الأحداث، كل ذلك ضمن بيئة برمجية.

المظهر والملمس

يحتوي CEGUI على نظام قوي لتحديد مظهر ووظائف مختلف الأدوات . يتيح هذا النظام، المسمى Falagard، تحديد مظهر الأداة عبر ملفات XML، أو باستخدام كود C++، إذا رغب المستخدم بذلك. كما يمكنه تغيير سلوك تخطيط أي أداة.

الرسوم المتحركة

يحتوي برنامج CEGUI على نظام رسوم متحركة مدمج. يتيح هذا النظام العديد من التأثيرات الانتقالية القياسية، بدءًا من تحريك النوافذ وتغيير حجمها وصولًا إلى تحويلات الألوان وتسلسل الصور. يمكن تعريف الرسوم المتحركة باستخدام لغة XML وتفعيلها عند وقوع أي حدث. يستطيع المستخدم تحديد خصائص النافذة كإطارات رئيسية، وكيفية الانتقال بين الإطارات، ومدة الانتقال بينها.

يونيكود

يدعم برنامج CEGUI ترميز Unicode ، كما يدعم اللغات ثنائية الاتجاه عبر وحدة Bidi اختيارية في الواجهة الخلفية . ويتم توفير هذا الدعم بواسطة MiniBidi أو FriBidi .

تبعيات المكتبة

يمكن بناء CEGUI دون الاعتماد على مكتبات خارجية. مع ذلك، تتطلب التكوينات النموذجية FreeType ، ووحدة عرض، ووحدة تحليل XML، ووحدة ترميز الصور. يوفر CEGUI بالفعل دعمًا للعديد من المكتبات الخارجية بفضل تصميمه المعياري.

المكتبات الخارجية التي يدعمها CEGUI
يكتباسممعلومات إضافية
وحدة العرضOpenGL 3.2+ Core Profileيستخدم هذا البرنامج مسار العرض القابل للبرمجة والوظائف غير المهملة فقط، وبالتالي فهو متوافق مع سياقات OpenGL Core Profile (المتوفرة منذ OpenGL 3.2). كما يمكن استخدامه مع إصدارات OpenGL الأقدم و/أو ملفات تعريف التوافق، طالما أن الوظائف المطلوبة متوفرة.
OpenGLيستخدم خط أنابيب العرض ذو الوظائف الثابتة. وهو مصمم ليكون متوافقًا مع الإصدارات المبكرة جدًا من OpenGL، بدءًا من OpenGL 1.2، باستخدام بعض ملحقات OpenGL.
مايكروسوفت دايركت ثري دييتم دعم Microsoft Direct3D 9 و 10 و 11 باستخدام وحدات منفصلة.
غوليتم دعم أحدث إصدار مستقر من Ogre في الإصدارات.
محرك إيرليختيتم دعم أحدث إصدار مستقر من Irrlicht في الإصدارات.
وحدة ترميز الصورمكتبة تحميل الصور البسيطة (SILLY)برنامج ترميز الصور الافتراضي، والذي يعتمد على مكتبة SILLY. يدعم العديد من التنسيقات. [ 6 ]
شيطانبرنامج ترميز الصور يعتمد على مكتبة DevIL.
صورة مجانيةبرنامج ترميز الصور يعتمد على مكتبة FreeImage.
غولبرنامج ترميز الصور الذي يقوم بتحميل البيانات عبر مرافق تحميل الصور الخاصة بـ OGRE.
وحدة موفر المواردتقصيريمكن استخدام موفر الموارد الداخلي لـ CEGUI دون الحاجة إلى وحدة إضافية. وهو يستخدم الوصول القياسي إلى الملفات عبر المنصات المختلفة.
غوليمكن لمستخدمي Ogre استخدام مدير موارد Ogre الخاص بـ CEGUI. وبهذه الطريقة، يمكن تحديد مواقع موارد CEGUI بنفس الطريقة المتبعة بالفعل مع موارد Ogre.
minizipتتيح خاصية MinizipResourceProvider في CEGUI إمكانية تحميل ملفات الموارد من مواقع داخل ملفات .zip.
وحدة تحليل XMLمغتربمحلل XML الافتراضي لـ CEGUI. يستخدم مكتبة Expat لتحليل XML.
LibXML2يستخدم مكتبة LibXML2 لتحليل XML.
RapidXmlيستخدم مكتبة RapidXml لتحليل XML.
TinyXMLيستخدم مكتبة TinyXML لتحليل XML.
Xerces -C++يستخدم مكتبة Xerces-C++ لتحليل XML. ويمكنه التحقق من صحة المخططات باستخدام ملفات .xsd المتوفرة في موارد CEGUI.
وحدة الخطفري تايبFreeType هي مكتبة الخطوط الافتراضية لـ CEGUI وهي حاليًا المكتبة الوحيدة المدعومة رسميًا.
وحدة التعبير النمطيالتعبيرات النمطية المتوافقة مع لغة بيرل (PCRE)مكتبة التعبيرات النمطية الافتراضية، وهي حاليًا المكتبة الوحيدة المدعومة رسميًا. تستخدم PCRE.
وحدة البرمجة النصيةلغة لوايوفر روابط لغة Lua باستخدام tolua++.
بايثونتتوفر روابط بايثون الرسمية باستخدام PyCEGUI [ 7 ]
إدارة الذاكرةغوليمكن استخدام مُخصِّص الذاكرة الخاص بـ Ogre اختياريًا لإدارة الذاكرة في CEGUI.
nedmallocيمكن استخدام nedmalloc اختيارياً كمخصص للذاكرة.
وحدة لغة ثنائية الاتجاهمينيبيديتطبيق قائم على MiniBIDI لرسم الخرائط المرئية ثنائية الأبعاد في CEGUI.
فريبيدي [ 8 ]تطبيق قائم على FriBIDI لرسم الخرائط المرئية ثنائية الأبعاد من CEGUI.

كانت مكتبة Ogre3D تعتمد على مكتبة CEGUI لواجهة المستخدم الخاصة بها [ 9 ] ولكن Ogre3D قد تغيرت منذ ذلك الحين لتضمين حل واجهة المستخدم الخاص بها، وهو حل أبسط ولكنه يوفر أيضًا وظائف أقل.

سجل الإصدارات

إصدارتاريخ الافراج عنه
0.1.02004-12-19 [ 10 ]
0.1.123 يناير 2005
0.2.017-02-2005
0.2.130-05-2005
0.3.030-06-2005
0.4.02005-09-07
0.4.12005-11-26
0.5.02006-11-06
0.6.027-03-2008
0.6.22008-12-03
0.7.02009-09-20
0.7.12009-10-26
0.7.22010-08-29
0.7.32010-10-08
0.7.42010-10-11
0.7.52010-11-20
0.7.62012-01-22
0.7.72012-06-23
0.7.82013-01-08
0.7.913-01-2013
0.8.02013-05-26
0.8.12013-06-05
0.8.22013-06-12
0.8.32013-12-07
0.8.42014-07-07
0.8.52016-03-12

انظر أيضاً

مراجع

  1. https://github.com/cegui/cegui/releases/tag/v0-8-7
  2. "Simple DirectMedia Layer - License" .
  3. ماكدونالد، ميكي (29 يناير 2018). إتقان تطوير ألعاب C++ : إنشاء ألعاب ثلاثية الأبعاد احترافية وواقعية باستخدام C++ 17. برمنغهام، المملكة المتحدة. ISBN  978-1-78862-983-6. OCLC 1023864109 . {{cite book}}: CS1 maint: موقع الناشر مفقود ( رابط )
  4. CEED
  5. الحوسبة المنتشرة والعالم الشبكي : المؤتمر الدولي المشترك، ICPCA/SWS 2012، إسطنبول، تركيا، 28-30 نوفمبر 2012، أوراق مختارة منقحة . زو، تشياوهونغ، هو، بو، إلتشي، أتيلا، ندوة IEEE حول مجتمع الويب (2012 : إسطنبول، تركيا). برلين: سبرينغر. 2013. ISBN   978-3-642-37015-1. OCLC 830532405 . {{cite book}}صيانة CS1: أخرى ( رابط )
  6. "SILLY - CEGUI Wiki - Crazy Eddie's GUI System (Open Source)" .
  7. "PyCEGUI - CEGUI Wiki - Crazy Eddie's GUI System (Open Source)" .
  8. "الصفحة الرئيسية" . fribidi.org .
  9. ثورن، آلان. (2008). تطوير الألعاب متعددة المنصات . بلانو، تكساس: دار نشر ووردوير. ISBN 978-1-59822-056-8. OCLC 213408662 . 
  10. "Crazy Eddies GUI System (CEGUI) - Browse /CEGUI Mk-2/0.1.0 at SourceForge.net" .