Nuklear
Nuklear — это минималистичный набор инструментов для графического пользовательского интерфейса (GUI) с непосредственным режимом работы, написанный на языке ANSI C. Он распространяется под лицензией public domain и предназначен для использования в качестве простого встраиваемого пользовательского интерфейса для приложений.
Nuklear не имеет зависимостей, стандартного рендер-бэкенда или оконных и входных обработчиков ОС, вместо этого он предлагает модульный подход к библиотеке, используя простое состояние ввода для команд ввода и отрисовки, описывающих примитивные формы как выходные данные.
Особенности
-
Минималистичный графический пользовательский интерфейс: Nuklear предоставляет инструменты для создания простых и эффективных графических интерфейсов пользователя.
-
Библиотека в одном заголовке: Весь код библиотеки содержится в одном файле заголовка, что упрощает её использование.
-
Написан на C89 (ANSI C): Nuklear написан на стандартизированном языке программирования C, что обеспечивает его кроссплатформенность и совместимость с различными средами разработки.
-
Небольшой размер кода (~18kLOC): Библиотека имеет относительно небольшой объём кода, что делает её удобной для встраивания в проекты.
-
Фокус на портативность, эффективность и простоту: Разработчики стремились создать библиотеку, которая была бы легко переносима между платформами, эффективной в использовании ресурсов и простой в освоении.
-
Отсутствие зависимостей: Nuklear не требует внешних библиотек или зависимостей для работы.
-
Полностью настраиваемый: Пользователи могут полностью настроить внешний вид и функциональность библиотеки под свои нужды.
-
Низкий объём памяти: Библиотека оптимизирована для использования минимального объёма памяти.
-
Поддержка UTF-8: Nuklear поддерживает кодировку UTF-8 для отображения текста.
-
Нет глобального или скрытого состояния: Все состояния и данные хранятся локально, что облегчает отладку и анализ кода.
-
Модульные компоненты: Пользователи могут выбирать только те модули, которые им нужны, и компилировать их отдельно.
-
Дополнительные функции: Библиотека предоставляет дополнительные функции, такие как поддержка шрифтов и вершинных буферов.
Сборка
Библиотека представляет собой самодостаточный файл заголовка и может быть использована либо в режиме только заголовка, либо в режиме реализации. Режим только заголовка используется по умолчанию при включении и позволяет включать этот заголовок в другие заголовки без фактической реализации.
Для использования в режиме реализации необходимо определить макрос препроцессора NK_IMPLEMENTATION
в одном файле .c/.cpp перед включением файла nuklear.h. Важно, чтобы каждый раз при включении «nuklear.h» определялись одни и те же необязательные флаги. Это очень важно, так как невыполнение этого требования может привести к ошибкам компилятора или даже к повреждению стека.
Галерея
В тексте приведены скриншоты и примеры использования Nuklear для создания различных графических интерфейсов.
Пример
Приведён пример кода на языке C, демонстрирующий использование Nuklear для создания простого графического интерфейса.
Связки
Существует ряд привязок Nuklear к различным языкам, созданных другими авторами. Однако автор текста не может гарантировать качество этих привязок, поскольку не является специалистом в этих языках. Кроме того, нет гарантии, что все привязки всегда будут поддерживаться в актуальном состоянии. Языки программирования, на которых написана библиотека Nuklear:
Благодарности
Разработано Миха Меттке и всеми прямыми или косвенными участниками GitHub.
В проект включены библиотеки stb_texedit, stb_truetype и stb_rectpack Шона Барретта (общественное достояние) и шрифт ProggyClean.ttf Тристана Гриммера (лицензия MIT).
Большое спасибо Омару Корнуту (ocornut@github) за его библиотеку imgui и вдохновение для этой библиотеки, Кейси Муратори за идею графического пользовательского интерфейса в режиме реального времени и Шону Барретту за его удивительные однофайловые библиотеки, которые вернули мне веру в библиотеки и вдохновили меня на создание собственных.
Лицензия
Существует две лицензии на выбор:
-
Альтернативная А — лицензия MIT.
- Авторское право (c) 2017 Миха Меттке.
- Разрешается бесплатно любому лицу, получающему копию этого программного обеспечения и связанных с ним файлов документации («Программное обеспечение»), использовать Программное обеспечение без ограничений, включая права на использование, копирование, изменение, объединение, публикацию, распространение, сублицензирование и/или продажу копий Программного обеспечения, а также разрешать лицам, которым предоставлено Программное обеспечение, делать это при соблюдении следующих условий:
- Вышеупомянутое уведомление об авторских правах и настоящее разрешение должны быть включены во все копии или существенные части Программного обеспечения.
- ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ КОНКРЕТНОЙ ЦЕЛИ И ОТСУТСТВИЯ НАРУШЕНИЙ ПРАВ. НИ В ОДНОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ АВТОРСКИХ ПРАВ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УЩЕРБ ИЛИ ДРУГИЕ ОБЯЗАТЕЛЬСТВА, ВОЗНИКАЮЩИЕ ИЗ ДЕЙСТВИЙ ПО ДОГОВОРУ, ДЕЛИКТА ИЛИ ИНЫМ ОБРАЗОМ, СВЯЗАННЫЕ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ИНЫМИ ОПЕРАЦИЯМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.
-
Альтернативная B — общественное достояние (www.unlicense.org).
- Это бесплатное и свободное программное обеспечение, выпущенное в общественное достояние. Любой может копировать, изменять, публиковать, использовать, компилировать, продавать или распространять это программное обеспечение в виде исходного кода или скомпилированного двоичного файла для любых целей, коммерческих или некоммерческих, и любыми средствами.
- В юрисдикциях, признающих законы об авторском праве, автор или авторы этого программного обеспечения посвящают любые и все авторские права на программное обеспечение общественному достоянию. Мы делаем это посвящение в интересах широкой публики и в ущерб нашим наследникам и правопреемникам. Мы намерены, чтобы это посвящение было явным актом отказа от всех нынешних и будущих прав на это программное обеспечение согласно закону об авторском праве.
- ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ "КАК ЕСТЬ", БЕЗ ГАРАНТИИ ЛЮБОГО ВИДА, ЯВНОЙ ИЛИ ПОДРАЗУМЕВАЕМОЙ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ ТОВАРОПРИГОДНОСТИ, ПРИГОДНОСТИ ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ И НЕНАРУШЕНИЯ ПРАВ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ АВТОРЫ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ НИ ЗА КАКИЕ ПРЕТЕНЗИИ, УБЫТКИ ИЛИ ДРУГУЮ ОТВЕТСТВЕННОСТЬ, ВЫТЕКАЮЩИЕ ИЗ ДЕЙСТВИЯ ПО КОНТРАКТУ, ДЕЛИКТ ИЛИ ИНЫМ СПОСОБОМ, ВОЗНИКШИЕ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ЕГО ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ ОПЕРАЦИЯМИ, СВЯЗАННЫМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.
Комментарии ( 0 )