LINUX.ORG.RU

Состоялся релиз Nuklear — библиотеки для построения пользовательских интерфейсов, написанной на ANSI C

 , ,


15

8

11 апреля 2016 года состоялся релиз Nuklear — небольшой библиотеки для построения GUI, написанной на ANSI C.

Это минималистичный тулкит, построенный на принципах immediate mode и переданный в общественное достояние. Библиотека была спроектирована как простой встраиваемый интерфейс и не имеет никаких дополнительных зависимостей. Для рендеринга и обработки пользовательского ввода используются платформозависимые бэкенды, поверх которых построена модульная система, позволяющая спроектировать интерфейс основываясь на концепциях ввода/вывода.

Особенности

  • immediate mode
  • header only (можно использовать и как обычную библиотеку, с разделением на реализацию и заголовки)
  • написан на C89 (ANSI C)
  • небольшая кодовая база (~15kLOC)
  • ориентирован на портабельность, эффективность и простоту
  • нет зависимостей (не требуется даже стандартная библиотека)
  • настраиваемый внешний вид
  • занимает мало места в памяти, предоставляет полный контроль за потребляемыми ресурсами
  • поддержка UTF-8
  • не имеет глобального или скрытого состояния
  • модульность: вы можете скомпилировать и использовать только ту часть библиотеки, которую собираетесь использовать

Несколько примеров пользовательского интерфейса, реализованного с помощью nuklear: раз, два, три.

>>> Подробности

★★★

Проверено: tailgunner ()

поддержка UTF-8

русские буквы не рисует. в поле ввода не понимает.

samy_volosaty ★★★★★ ()
Ответ на: комментарий от reprimand

лет 17 назад это было...

была когда-то такая библиотека для библиотеки allegro (для игр ).

ну и, в играх, иногда надо какие-то диалоги рисовать.

allegro рисовало что-то вроде родного X11 (если усилий не прилагать).

ну и кто-то сделал дополнения для отрисовки диалогов а-ля Win95.

ну и это вроде того же. пишешь на SDL. вот тебе и диалоги, можно самому не напрягаться.

samy_volosaty ★★★★★ ()

Интерфейс под диабло выглядит забавно.

Odalist ★★★★★ ()
Ответ на: комментарий от samy_volosaty

была когда-то такая библиотека для библиотеки allegro (для игр ).

Недавно была здесь новость про открытого клона принца персии MINIMUM. Там как раз используется allegro, а так больше о ней ничего не слышал.

gag ★★★★★ ()
Ответ на: комментарий от Tujh

О каком embedded может идти речь,

Возможно, пришла пора ввести несколько типов embeded. На нижнем уровне что-то вроде attiny или pic16f84. Потом мой stm32 и аналогичные продукты с 0.1-4метра памяти и 32-256кб «оперативки». Ну и в конце чуть ли не raspberry pi которые по возможностям сопоставимы с компами конца девяностых.

true_admin ★★★★★ ()
Ответ на: комментарий от Tujh

Такое к встройке и близко подпускать нельзя

Почему? Если что, на встроенных системах нынче работают полные ОС.

tailgunner ★★★★★ ()

Задумка годная, но на недобуке с OpenGL 2.1 запустились только демки с Allegro и X11.

buddhist ★★★★★ ()
Ответ на: комментарий от buddhist

с OpenGL 2.1

Вот это особенно обидно: ведь никакой производительный 3D и не нужен, а просто 2D для гуя. Как раз аналогичная проблема, когда запускаешь винду под qemu, а не virtualbox'ом.

gag ★★★★★ ()

По-моему такое пригодно максимум для микроволновки или холодильника.

anonymous ()
Ответ на: комментарий от buddhist

Под виртуалбоксом с У14.04 под мком даже аллегро не собрался. Только Х11.

Edible ()
Ответ на: комментарий от anonymous

Нормальные люди компилируют современными компиляторами

Для arm это gcc

cvs-255 ★★★★★ ()
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от cvs-255

написан на C89 (ANSI C)

шел 2016 год

Я даже более того скажу: в нашем 2016-м еще и на голом асме либы пишут. И весьма успешно.

segfault ★★★★★ ()
Последнее исправление: segfault (всего исправлений: 1)
Ответ на: комментарий от gag

Кроме x11 всё замылено, почему?

Пофиксили: Fixed blurry font for examples. Теперь всё чёткое и окошки плавают как по маслу: такое видел только на маке.

gag ★★★★★ ()
Ответ на: комментарий от gag

Еще автор оперативно отвечает на гитхабе, и движуха там сейчас идет нехилая. Штука однозначно крутая, наравне с stb.

anonymous ()
Ответ на: комментарий от q0tw4

Однако мучают сомнения, а стоит ли связываться с тем что осталось от тулкита, если оно такое маленькое, что проще было бы переписать его 1 в 1 на тот язык, на котором я буду писать гуй.

Кстати, это ещё один плюс реализации на Си. Например, есть c2go-транслятор, с помощью которого была выполнена рутинная работа по переводу компилятора go на go. Разумеется, надо будет подчищать код, а может и сам транслятор улучшить. (Жаль, но go стал после этого медленнее компилировать.)

И есть ли доки о том как писать бекенды

Да, и вообще о выбранных архитектурных подходах...

gag ★★★★★ ()
Ответ на: комментарий от anonymous

simple embeddable user interface

embeddable interface и интерфейс для эмбеддеда - совсем разные вещи.

«embeddable interface» это встраиваемый/встроенный интерфейс. Например окно настроек и консоль в играх - это встроенный интерфейс.

cvs-255 ★★★★★ ()
Последнее исправление: cvs-255 (всего исправлений: 1)

Чем это лучше EFL?

immediate mode

То есть мне нужно будет пердолиться с тем, что моё окно было частично кем-то перекрыто?

L29Ah ()

Годнота!

Надо потыкать палочкой...

Особенно нравится лицензия, можно грабить корованы использовать в закрытых прошивках!

shkolnick-kun ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.