CEGUI
![]() | Тема этой статьи может не соответствовать рекомендациям Википедии по известности продуктов и услуг . ( ноябрь 2018 г. ) |
![]() Пример игрового меню с использованием CEGUI | |
Оригинальный автор(ы) | Пол Д. Тернер |
---|---|
Разработчик(и) | Команда CEGUI |
Первоначальный выпуск | декабрь 2004 г |
Стабильная версия | 0.8.7 (28 апреля 2016 г [±] [1] | )
Написано в | С++ |
Операционная система | Линукс , ОС Х , Windows |
Тип | Набор инструментов для виджетов |
Лицензия | С До версии 0.5.0: ГНУ ЛГПЛ [2] |
Веб-сайт | Сеги |
GUI Crazy Eddie ( CEGUI ) — это графического пользовательского интерфейса (GUI) библиотека для языка программирования C++ . Он был разработан для нужд видеоигр , но пригоден для неигровых задач, таких как приложения и инструменты. Он разработан для обеспечения гибкости пользовательского внешнего вида и возможности адаптации к выбору пользователем инструментов и операционных систем.
Конфигурируемость
[ редактировать ]Сильными сторонами CEGUI являются его надежность. [3] и его возможность настройки. Система не загружает файлы напрямую, не отображает окна, не отображает текст напрямую и даже не получает входные данные из системы. CEGUI взаимодействует с ними посредством определяемого пользователем кода, хотя его пакет исходного кода включает в себя ряд модулей для использования определенных компонентов и библиотек.
Эта свобода позволяет использовать CEGUI в любой системе управления ресурсами или операционной среде. Ожидается, что входные данные будут собраны пользовательским кодом, возможно, отфильтрованы по усмотрению пользователя, а затем переданы в CEGUI для обработки окна.
CEGUI поставляется с разумным набором виджетов, сравнимым с набором инструментов среднего виджета.
Инструменты
[ редактировать ]CEGUI можно полностью настроить с помощью стандартных инструментов редактирования изображений, XML и/или кода. Однако CEGUI также предоставляет инструменты, предназначенные для помощи в проектировании и разработке интерфейсов на основе CEGUI.
Более старые версии CEGUI, до 0.8, предоставляли отдельные инструменты для редактирования различных аспектов интерфейса. Наиболее известными из них являются редакторы Imageset и Layout.
Начиная с CEGUI 0.8, существует новый унифицированный инструмент редактирования, называемый унифицированным редактором CEGUI (CEED), который активно разрабатывается. [4] Он объединяет все аспекты разработки графического интерфейса в одном инструменте.
Рендеринг
[ редактировать ]Рендеринг выполняется внутренним модулем рендеринга . CEGUI предоставляет модули для Direct3D , OpenGL , движка OGRE 3D и Irrlicht Engine . Другие модули могут быть написаны для пользовательских движков.
Компоненты графического интерфейса CEGUI организованы в виде дерева (графика). [5] и отображаются в порядке обхода дерева.
Управление ресурсами
[ редактировать ]Загрузка файлов и управление ресурсами выполняются через внутренний «Модуль поставщика ресурсов». Пользователи могут создавать собственные модули для определения способа доступа к ресурсам. Это позволяет использовать библиотеку практически в любой операционной среде. Поставщик ресурсов по умолчанию является кроссплатформенным и предоставляет стандартную механику доступа к файлам для загрузки ресурсов. Дополнительный модуль minizip позволяет загружать ресурсы из zip-архивов.
Управление памятью
[ редактировать ]CEGUI имеет гибкую систему управления памятью . Эта система была основана на OGRE и позволяет клиентам сопоставлять разные типы распределителей с разными типами объектов. По умолчанию все объекты используют распределитель по умолчанию операционной системы. CEGUI обеспечивает поддержку распределителей OGRE и nedmalloc .
Сценарии
[ редактировать ]CEGUI имеет дополнительный внутренний модуль сценариев . Модули сценариев Lua и Python предоставляются CEGUI. Полный интерфейс прикладного программирования (API) CEGUI доступен через сценарий, поэтому клиенты могут создавать окна, определять взаимосвязи и обрабатывать события в среде сценариев.
Смотри и чувствуй
[ редактировать ]CEGUI имеет мощную систему для определения внешнего вида различных виджетов . Система под названием Falagard позволяет определять внешний вид виджета с помощью XML-файлов или кода C++, по желанию пользователя. Он также может изменить поведение макета любых виджетов.
Анимация
[ редактировать ]CEGUI имеет встроенную систему анимации. Эта система позволяет использовать множество стандартных переходных эффектов: от перемещения и изменения размера окон до преобразования цвета и упорядочения изображений. Анимации могут быть определены в XML и запускаться любым событием. Клиент может указать свойства окна как ключевые кадры, способ перехода между кадрами и время перехода между кадрами.
Юникод
[ редактировать ]CEGUI поддерживает Unicode и поддерживает двунаправленные языки через дополнительный внутренний модуль Bidi . Эту поддержку обеспечивает MiniBidi или FriBidi .
Зависимости библиотеки
[ редактировать ]CEGUI может быть построен без каких-либо зависимостей от внешних библиотек. Однако для типичных конфигураций требуется FreeType , модуль рендеринга, модуль синтаксического анализатора XML и модуль кодека изображения. CEGUI уже обеспечивает поддержку нескольких внешних библиотек благодаря своей модульной конструкции:
Тип | Имя | Дополнительная информация |
---|---|---|
Модуль рендеринга | Основной профиль OpenGL 3.2+ | Использует программируемый конвейер рендеринга и только неустаревшие функции и, следовательно, совместим с контекстами основного профиля OpenGL (доступен, начиная с OpenGL 3.2). Его также можно использовать со старыми версиями OpenGL и/или профилем совместимости, если доступны необходимые функции. |
OpenGL | Использует конвейер рендеринга с фиксированной функцией. Он разработан для совместимости с очень ранними версиями OpenGL, начиная с OpenGL 1.2, с использованием некоторых расширений OpenGL. | |
Microsoft Директ3D | Microsoft Direct3D 9, 10 и 11 поддерживаются с помощью отдельных модулей. | |
ОГРЕ | В выпусках поддерживается последняя стабильная версия Ogre. | |
Иррлихт Двигатель | В выпусках поддерживается последняя стабильная версия Irrlicht. | |
Модуль кодека изображения | Простая библиотека загрузки изображений (ГЛУПО) | Кодек изображения по умолчанию, основанный на библиотеке SILLY. Поддерживает множество форматов. [6] |
ДевИЛ | Кодек изображений на основе библиотеки DevIL. | |
Бесплатное изображение | Кодек изображений на основе библиотеки FreeImage. | |
ОГРЕ | Кодек изображения, загружающий данные через средства загрузки изображений OGRE. | |
Модуль поставщика ресурсов | По умолчанию | Внутреннего поставщика ресурсов CEGUI можно использовать без необходимости использования дополнительного модуля. Он использует стандартный кроссплатформенный доступ к файлам. |
ОГРЕ | Пользователи Ogre могут использовать Ogre ResourceManager CEGUI. Таким образом, местоположения ресурсов CEGUI могут быть указаны так же, как это уже сделано для ресурсов Ogre. | |
мини-zip | MinizipResourceProvider CEGUI позволяет загружать файлы ресурсов из мест в файлах .zip. | |
Модуль XML-парсера | Эмигрант | XML-парсер по умолчанию CEGUI. Использует библиотеку Expat для анализа XML. |
LibXML2 | Использует библиотеку LibXML2 для анализа XML. | |
РапидXml | Использует библиотеку RapidXml для анализа XML. | |
КрошечныйXML | Использует библиотеку TinyXML для анализа XML. | |
Ксерцес -C++ | Использует библиотеку Xerces-C++ для анализа XML. Он может проверять схемы, используя файлы .xsd, представленные в ресурсах CEGUI. | |
Модуль шрифтов | FreeType | FreeType — это библиотека шрифтов CEGUI по умолчанию и в настоящее время единственная официально поддерживаемая. |
Модуль регулярных выражений | Perl-совместимые регулярные выражения (PCRE) | Библиотека регулярных выражений по умолчанию и на данный момент единственная официально поддерживаемая. Использует PCRE. |
Модуль сценариев | Два | Предоставляет привязки Lua с использованием tolua++. |
Питон | Официальные привязки Python доступны с помощью PyCEGUI. [7] | |
Управление памятью | ОГРЕ | Распределитель памяти Ogre может дополнительно использоваться для управления памятью CEGUI. |
недмаллок | nedmalloc может опционально использоваться в качестве распределителя памяти. | |
Двунаправленный языковой модуль | МиниБИДИ | MiniBIDI Реализация визуального отображения Bidi CEGUI на основе . |
ПтBIDI [8] | FriBIDI Реализация визуального отображения Bidi CEGUI на основе . |
Библиотека Ogre3D раньше зависела от библиотеки CEGUI в своем пользовательском интерфейсе. [9] но с тех пор Ogre3D изменился и теперь включает собственное решение пользовательского интерфейса, которое тоньше, но также обеспечивает меньшую функциональность.
История выпусков
[ редактировать ]Версия | Дата выпуска |
---|---|
0.1.0 | 2004-12-19 [10] |
0.1.1 | 2005-01-23 |
0.2.0 | 2005-02-17 |
0.2.1 | 2005-05-30 |
0.3.0 | 2005-06-30 |
0.4.0 | 2005-09-07 |
0.4.1 | 2005-11-26 |
0.5.0 | 2006-11-06 |
0.6.0 | 2008-03-27 |
0.6.2 | 2008-12-03 |
0.7.0 | 2009-09-20 |
0.7.1 | 2009-10-26 |
0.7.2 | 2010-08-29 |
0.7.3 | 2010-10-08 |
0.7.4 | 2010-10-11 |
0.7.5 | 2010-11-20 |
0.7.6 | 2012-01-22 |
0.7.7 | 2012-06-23 |
0.7.8 | 2013-01-08 |
0.7.9 | 2013-01-13 |
0.8.0 | 2013-05-26 |
0.8.1 | 2013-06-05 |
0.8.2 | 2013-06-12 |
0.8.3 | 2013-12-07 |
0.8.4 | 2014-07-07 |
0.8.5 | 2016-03-12 |
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ https://github.com/cegui/cegui/releases/tag/v0-8-7
- ^ «Простой уровень DirectMedia — Лицензия» .
- ^ Макдональд, Микки (29 января 2018 г.). Освоение разработки игр на C++: создавайте профессиональные и реалистичные 3D-игры с использованием C++ 17 . Бирмингем, Великобритания. ISBN 978-1-78862-983-6 . OCLC 1023864109 .
{{cite book}}
: CS1 maint: отсутствует местоположение издателя ( ссылка ) - ^ CEED
- ^ Повсеместные вычисления и сетевой мир: Совместная международная конференция, ICPCA/SWS 2012, Стамбул, Турция, 28-30 ноября 2012 г., Пересмотренные избранные статьи . Цзу, Цяохун, Ху, Бо, Эльчи, Атилла, Симпозиум IEEE по веб-сообществу (2012: Стамбул, Турция). Берлин: Шпрингер. 2013. ISBN 978-3-642-37015-1 . OCLC 830532405 .
{{cite book}}
: CS1 maint: другие ( ссылка ) - ^ «SILLY — CEGUI Wiki — Система графического интерфейса Сумасшедшего Эдди (с открытым исходным кодом)» .
- ^ «PyCEGUI — CEGUI Wiki — Система графического интерфейса Crazy Eddie (с открытым исходным кодом)» .
- ^ "Дом" . сайт Fribidi.org .
- ^ Торн, Алан. (2008). Кроссплатформенная разработка игр . Плано, Техас: Wordware Pub. ISBN 978-1-59822-056-8 . OCLC 213408662 .
- ^ «Система графического интерфейса Crazy Eddies (CEGUI) — просмотрите /CEGUI Mk-2/0.1.0 на SourceForge.net» .
Внешние ссылки
[ редактировать ]- Интерфейсы прикладного программирования
- Кроссплатформенное программное обеспечение
- Бесплатные компьютерные библиотеки
- Графические пользовательские интерфейсы
- Программное обеспечение, поддерживающее сценарии Lua (язык программирования)
- Программное обеспечение, использующее лицензию MIT
- Наборы инструментов для виджетов