CEGUI - CEGUI
Пример игрового меню с использованием CEGUI
| |
Оригинальный автор (ы) | Пол Д Тернер |
---|---|
Разработчики) | Команда CEGUI |
изначальный выпуск | Декабрь 2004 г . |
Стабильный выпуск | 0.8.7 (28 апреля 2016 г . [±] | )
Написано в | C ++ |
Операционная система | Linux , OS X , Windows |
Тип | Набор инструментов для виджетов |
Лицензия |
MIT До версии 0.5.0: GNU LGPL |
Интернет сайт | cegui |
GUI Сумасшедшего Эдди ( CEGUI ) - это библиотека графического интерфейса пользователя (GUI) для языка программирования C ++ . Он был разработан для нужд видеоигр , но может использоваться для неигровых задач, таких как приложения и инструменты. Он разработан для обеспечения гибкости внешнего вида и возможностей пользователя и может быть адаптирован к выбору пользователя в отношении инструментов и операционных систем.
Конфигурируемость
Сильные стороны CEGUI - его надежность и настраиваемость. Система не загружает файлы напрямую, не отображает окна, не отображает текст и даже не получает ввод из системы. CEGUI взаимодействует с ними через определяемый пользователем код, хотя его пакет с исходным кодом поставляется с рядом модулей для использования определенных компонентов и библиотек.
Эта свобода позволяет использовать CEGUI в любой системе управления ресурсами или операционной среде. Ожидается, что ввод будет собираться кодом пользователя, возможно, отфильтрованным по усмотрению пользователя, а затем передан в CEGUI для обработки окна.
CEGUI поставляется с разумным набором виджетов, сопоставимым со средним набором виджетов.
Инструменты
CEGUI можно полностью настроить с помощью стандартных инструментов редактирования изображений, xml и / или кода. Однако CEGUI также предоставляет инструменты, предназначенные для помощи в проектировании и разработке интерфейсов на основе CEGUI.
Более старые версии CEGUI, до 0.8, предоставляли отдельные инструменты для редактирования различных аспектов интерфейса. Наиболее заметными из них являются редакторы Imageset и Layout.
Начиная с CEGUI 0.8, существует новый унифицированный инструмент редактирования, называемый унифицированным редактором CEGUI (CEED), который активно развивается. Он объединяет все аспекты разработки графического интерфейса в одном инструменте.
Рендеринг
Рендеринг выполняется внутренним модулем рендеринга . CEGUI предоставляет модули для Direct3D , OpenGL , движка OGRE 3D и движка Irrlicht . Другие модули могут быть написаны для собственных движков.
Компоненты графического интерфейса пользователя CEGUI организованы в виде дерева (графа) и отображаются в порядке обхода дерева.
Управление ресурсами
Загрузка файлов и управление ресурсами осуществляется через внутренний «модуль поставщика ресурсов». Пользователи могут создавать собственные модули, чтобы определять способ доступа к ресурсам. Это позволяет использовать библиотеку практически в любой операционной среде. Поставщик ресурсов по умолчанию является кроссплатформенным и предоставляет стандартные механизмы доступа к файлам для загрузки ресурсов. Дополнительный модуль 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 Core Profile (доступен с OpenGL 3.2). Его также можно использовать со старыми версиями OpenGL и / или профилем совместимости, если доступны необходимые функции. |
OpenGL | Использует конвейер рендеринга с фиксированной функцией. Он разработан для совместимости с очень ранними версиями OpenGL, начиная с OpenGL 1.2, с использованием некоторых расширений OpenGL. | |
Microsoft Direct3D | Microsoft Direct3D 9, 10 и 11 поддерживаются с использованием отдельных модулей. | |
ОГРЭ | В выпусках поддерживается последняя стабильная версия Ogre. | |
Двигатель Irrlicht | В выпусках поддерживается последняя стабильная версия Irrlicht. | |
Модуль кодека изображений | Простая библиотека загрузки изображений ( SILLY ) | Кодек изображения по умолчанию, основанный на библиотеке SILLY. Поддерживает множество форматов. |
Дьявол | Кодек изображений на основе библиотеки DevIL. | |
FreeImage | Кодек изображений на основе библиотеки FreeImage. | |
ОГРЭ | Кодек изображений, который загружает данные с помощью средств загрузки изображений OGRE. | |
Модуль поставщика ресурсов | Дефолт | Внутренний поставщик ресурсов CEGUI можно использовать без дополнительного модуля. Он использует стандартный кроссплатформенный доступ к файлам. |
ОГРЭ | Пользователи Ogre могут использовать CEGUI Ogre ResourceManager. Таким образом, расположение ресурсов CEGUI можно указать так же, как это уже сделано для ресурсов Ogre. | |
minizip | CEGUI MinizipResourceProvider позволяет предоставлять возможность загружать файлы ресурсов из мест в файлах .zip. | |
Модуль синтаксического анализа XML | Эмигрант | XML-парсер CEGUI по умолчанию. Использует библиотеку Expat для синтаксического анализа XML. |
LibXML2 | Использует библиотеку LibXML2 для синтаксического анализа XML. | |
RapidXml | Использует библиотеку RapidXml для синтаксического анализа XML. | |
TinyXML | Использует библиотеку TinyXML для синтаксического анализа XML. | |
Xerces -С ++ | Использует библиотеку Xerces-C ++ для синтаксического анализа XML. Он может проверять схемы, используя файлы .xsd, предоставленные в ресурсах CEGUI. | |
Модуль шрифтов | FreeType | FreeType - это библиотека шрифтов по умолчанию для CEGUI и в настоящее время единственная официально поддерживаемая. |
Модуль регулярных выражений | Регулярные выражения, совместимые с Perl (PCRE) | Библиотека регулярных выражений по умолчанию и в настоящее время единственная официально поддерживаемая. Использует PCRE. |
Модуль сценариев | Lua | Предоставляет привязки lua с использованием tolua ++. |
Python | Официальные привязки Python доступны с использованием PyCEGUI | |
Управление памятью | ОГРЭ | Распределитель памяти Ogre может дополнительно использоваться для управления памятью CEGUI. |
недмаллок | nedmalloc может при желании использоваться как распределитель памяти. | |
Двунаправленный языковой модуль | MiniBIDI | Реализация визуального отображения Bidi CEGUI на основе MiniBIDI. |
FriBIDI | Реализация визуального отображения Bidi CEGUI на основе FriBIDI. |
Библиотека Ogre3D раньше зависела от библиотеки CEGUI для своего пользовательского интерфейса, но с тех пор Ogre3D был изменен, чтобы включить собственное решение пользовательского интерфейса, которое стало более тонким, но также обеспечивает меньшую функциональность.
История выпуска
Версия | Дата выхода |
---|---|
0.1.0 | 2004-12-19 |
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 |