1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/zhouxs1212-nuklear

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
Readme.md

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 и вдохновение для этой библиотеки, Кейси Муратори за идею графического пользовательского интерфейса в режиме реального времени и Шону Барретту за его удивительные однофайловые библиотеки, которые вернули мне веру в библиотеки и вдохновили меня на создание собственных.

Лицензия

Существует две лицензии на выбор:

  1. Альтернативная А — лицензия MIT.

    • Авторское право (c) 2017 Миха Меттке.
    • Разрешается бесплатно любому лицу, получающему копию этого программного обеспечения и связанных с ним файлов документации («Программное обеспечение»), использовать Программное обеспечение без ограничений, включая права на использование, копирование, изменение, объединение, публикацию, распространение, сублицензирование и/или продажу копий Программного обеспечения, а также разрешать лицам, которым предоставлено Программное обеспечение, делать это при соблюдении следующих условий:
      • Вышеупомянутое уведомление об авторских правах и настоящее разрешение должны быть включены во все копии или существенные части Программного обеспечения.
      • ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ КОНКРЕТНОЙ ЦЕЛИ И ОТСУТСТВИЯ НАРУШЕНИЙ ПРАВ. НИ В ОДНОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ АВТОРСКИХ ПРАВ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УЩЕРБ ИЛИ ДРУГИЕ ОБЯЗАТЕЛЬСТВА, ВОЗНИКАЮЩИЕ ИЗ ДЕЙСТВИЙ ПО ДОГОВОРУ, ДЕЛИКТА ИЛИ ИНЫМ ОБРАЗОМ, СВЯЗАННЫЕ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ИНЫМИ ОПЕРАЦИЯМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.
  2. Альтернативная B — общественное достояние (www.unlicense.org).

    • Это бесплатное и свободное программное обеспечение, выпущенное в общественное достояние. Любой может копировать, изменять, публиковать, использовать, компилировать, продавать или распространять это программное обеспечение в виде исходного кода или скомпилированного двоичного файла для любых целей, коммерческих или некоммерческих, и любыми средствами.
    • В юрисдикциях, признающих законы об авторском праве, автор или авторы этого программного обеспечения посвящают любые и все авторские права на программное обеспечение общественному достоянию. Мы делаем это посвящение в интересах широкой публики и в ущерб нашим наследникам и правопреемникам. Мы намерены, чтобы это посвящение было явным актом отказа от всех нынешних и будущих прав на это программное обеспечение согласно закону об авторском праве.
    • ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ "КАК ЕСТЬ", БЕЗ ГАРАНТИИ ЛЮБОГО ВИДА, ЯВНОЙ ИЛИ ПОДРАЗУМЕВАЕМОЙ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ ТОВАРОПРИГОДНОСТИ, ПРИГОДНОСТИ ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ И НЕНАРУШЕНИЯ ПРАВ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ АВТОРЫ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ НИ ЗА КАКИЕ ПРЕТЕНЗИИ, УБЫТКИ ИЛИ ДРУГУЮ ОТВЕТСТВЕННОСТЬ, ВЫТЕКАЮЩИЕ ИЗ ДЕЙСТВИЯ ПО КОНТРАКТУ, ДЕЛИКТ ИЛИ ИНЫМ СПОСОБОМ, ВОЗНИКШИЕ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ЕГО ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ ОПЕРАЦИЯМИ, СВЯЗАННЫМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Это инструментарий для создания графического пользовательского интерфейса с минимальным состоянием и немедленным режимом работы, написанный на языке ANSI C и распространяемый на условиях общественного достояния. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/zhouxs1212-nuklear.git
git@api.gitlife.ru:oschina-mirror/zhouxs1212-nuklear.git
oschina-mirror
zhouxs1212-nuklear
zhouxs1212-nuklear
master