BearLibTerminal

скачать | документация | репозиторий | форум

BearLibTerminal — это небольшая в интерфейсном плане библиотека для организации терминал-подобного окна, вывода текста, обработки простого ввода.

Большое количество roguelike совершенно осознанно используют аскетичное символьное/псевдографическое оформление. Однако, использование стандартных средств вывода посредством командной строки ОС сопряжено с досадными ограничениями скорости вывода, цветовой гаммы, используемого шрифта. Нередко проблемы вызывает применение расширенного набора символов, например одновременно нескольких языков и/или псевдографики. BearLibTerminal позволяет обойти упомянутые ограничения, предоставляя собственное окно с прямоугольной сеткой ячеек-знакомест и лаконичный, но мощный API для вывода отдельных символов и текста.

Достойными внимания особенностями BearLibTerminal являются:

  • Легкость использования Unicode.
  • Использование тайловых (в виде картинки) и векторных (TrueType) шрифтов.
  • Расширенный вывод символов: композиция, центрирование, смещение.
  • Высокая скорость вывода (в основе лежит OpenGL).
  • Поддержка как клавиатуры, так и мыши.
  • Сборки под Windows, Linux и OS X.
  • Привязки к нескольким языкам: С/С++, C#, Lua, Pascal, Python, Ruby.

Похожими инструментами, также преимущественно предназначенными для разработки псевдоконсольных/roguelike-игр, являются

В отличие от популярной библиотеки libtcod, функциональность BearLibTerminal сконцентрирована на выводе псевдо- и тайловой графики. Библиотека не включает в себя средств генерации случайных чисел или расчета кратчайшего пути. Вместо этого, BearLibTerminal предоставляет больше возможностей по работе с шрифтами, тайлами и выводу их на экран.

Несколько скриншотов

Простой пример использования

#include "BearLibTerminal.h"
 
int main()
{
    terminal_open();
 
    // Выводим текст
    terminal_printf(1, 1, "Hello, world!");
    terminal_refresh();
 
    // Ждем, пока пользователь не закроет окно
    while (terminal_read() != TK_CLOSE); 
 
    terminal_close();
}

Скачать

Версия 0.15.7 для Windows, Linux и OS X (список изменений).

Архив содержит саму библиотеку, беглую демонстрацию возможностей и заголовочные файлы к нескольким языкам программирования. В архиве находятся 32 и 64-битные бинарные файлы.

Документация

Лицензия

Библиотека распространяется в основном под лицензией MIT с отдельными частями на других условиях:

  • Модифицированный код библиотеки FreeType2 под лицензией FreeType License.
  • PicoPNG под лицензией zlib.
  • NanoJPEG под лицензией KeyJ's Research License.