CEGUI - CEGUI

CEGUI
Пример игрового меню с использованием CEGUI
Пример игрового меню с использованием CEGUI
Оригинальный автор (ы) Пол Д Тернер
Разработчики) Команда CEGUI
изначальный выпуск Декабрь 2004 г . ; 16 лет назад  ( 2004-12 )
Стабильный выпуск 0.8.7 (28 апреля 2016 г . ; 4 года назад ) [±]  ( 2016-04-28 )
Написано в C ++
Операционная система Linux , OS X , Windows
Тип Набор инструментов для виджетов
Лицензия MIT
До версии 0.5.0:
GNU LGPL
Интернет сайт cegui .org .uk

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 уже обеспечивает поддержку нескольких внешних библиотек благодаря своей модульной конструкции:

Внешние библиотеки, поддерживаемые 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

Смотрите также

Рекомендации

внешняя ссылка