foo.wyrd.name Open in urlscan Pro
5.101.153.240  Public Scan

URL: http://foo.wyrd.name/en:bearlibterminal
Submission: On September 16 via manual from GB — Scanned from DE

Form analysis 5 forms found in the DOM

POST /en:bearlibterminal

<form class="button btn_source" method="post" action="/en:bearlibterminal">
  <div class="no"><input type="hidden" name="do" value="edit"><input type="hidden" name="rev" value="0"><input type="submit" value="Show pagesource" class="button" accesskey="v" title="Show pagesource [V]"></div>
</form>

GET /en:bearlibterminal

<form class="button btn_revs" method="get" action="/en:bearlibterminal">
  <div class="no"><input type="hidden" name="do" value="revisions"><input type="submit" value="Old revisions" class="button" accesskey="o" title="Old revisions [O]"></div>
</form>

GET /en:bearlibterminal

<form class="button btn_media" method="get" action="/en:bearlibterminal">
  <div class="no"><input type="hidden" name="do" value="media"><input type="hidden" name="ns" value="en"><input type="submit" value="Media Manager" class="button" title="Media Manager"></div>
</form>

GET /en:bearlibterminal

<form class="button btn_login" method="get" action="/en:bearlibterminal">
  <div class="no"><input type="hidden" name="do" value="login"><input type="hidden" name="sectok" value="527137396bee99e4cfaf4b230f335992"><input type="submit" value="Login" class="button" title="Login"></div>
</form>

GET /en:bearlibterminal

<form class="button btn_index" method="get" action="/en:bearlibterminal">
  <div class="no"><input type="hidden" name="do" value="index"><input type="submit" value="Sitemap" class="button" accesskey="x" title="Sitemap [X]"></div>
</form>

Text Content

 * en
 * ru




BEARLIBTERMINAL

download | documentation | source code | forum

BearLibTerminal is a library that creates a terminal-like window facilitating
flexible textual output and uncomplicated input processing.

A lot of roguelike games intentionally use asketic textual or pseudographic
visual style. However, native output via the command line interface ususally
have a few annoying shortcomings like low speed or palette and font
restrictions. Using an extended character set (several languages at once or
complicated pseudographics) may also be tricky. BearLibTerminal solves that by
providing it's own window with a grid of character cells and simple yet powerful
API for configuration and textual output.

Notable features of BearLibTerminal include:

 * Ease of Unicode usage.
 * Support for bitmap and vector (TrueType) fonts.
 * Extended output facilities: tile composition, alignment, offsets.
 * High performance (uses OpenGL).
 * Keyboard and mouse support.
 * Windows, Linux and OS X builds.
 * Bindings for several programming languages: С/С++, C#, Lua, Pascal, Python,
   Ruby.

There are similar tools, also primarily intended for roguelike development:

 * libtcod
 * TinyCurses

Unlike popular libtcod library, BearLibTerminal focuses on graphics output. It
does not include random number generators or path finding algorithms. Instead
BearLibTerminal provides a lot more options for font/tileset configuration and
tile-based output.


SOME SCREENSHOTS




SIMPLE EXAMPLE: C/C++

#include "BearLibTerminal.h"
  
int main()
{
    terminal_open();
  
    // Printing text
    terminal_print(1, 1, "Hello, world!");
    terminal_refresh();
  
    // Wait until user close the window
    while (terminal_read() != TK_CLOSE);
  
    terminal_close();
}




SIMPLE EXAMPLE: PYTHON

from bearlibterminal import terminal
 
terminal.open()
terminal.printf(1, 1, 'Hello, world!')
terminal.refresh()
 
while terminal.read() != terminal.TK_CLOSE:
    pass
 
terminal.close()




DOWNLOAD

Current version is 0.15.7 (changelog).

Archives for Windows, Linux and OS X contain library binary (both 32 and 64 bit
versions), a quick showcase of library capabilities and header files for several
programming languages.

Python version (library binary + wrapper module) may be installed directly from
pypi:
pip install bearlibterminal
(You may want to adjust the command a bit, e. g. use pip3 for Python3 or add
--user to install locally.)


DOCUMENTATION

 * Design overview
 * API reference


LICENSE

The library is licensed mainly under the MIT license with a few parts under
other permissive licenses:

 * Modified FreeType2: FreeType License.
 * PicoPNG: zlib license.
 * NanoJPEG: custom KeyJ's Research License.