mirror of https://github.com/fairyglade/ly.git
				
				
				
			
		
			
				
	
	
		
			58 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
| # Termbox
 | |
| [Termbox](https://github.com/nsf/termbox)
 | |
| was a promising Text User Interface (TUI) library.
 | |
| Unfortunately, its original author
 | |
| [changed his mind](https://github.com/nsf/termbox/issues/37#issuecomment-261075481)
 | |
| about consoles and despite the
 | |
| [community's efforts](https://github.com/nsf/termbox/pull/104#issuecomment-300308156)
 | |
| to keep the library's development going, preferred to let it die. Before it happened,
 | |
| [some people](https://wiki.musl-libc.org/alternatives.html)
 | |
| already noticed the robustness of the initial architecture
 | |
| [became compromised](https://github.com/nsf/termbox/commit/66c3f91b14e24510319bce6b5cc2fecf8cf5abff#commitcomment-3790714)
 | |
| in a nonsensical refactoring frenzy. Now, the author refuses to merge features
 | |
| like true-color support, invoking some
 | |
| [spurious correlations](https://github.com/nsf/termbox/pull/104#issuecomment-300292223)
 | |
| we will discuss no further.
 | |
| 
 | |
| ## The new Termbox-next
 | |
| This fork was made to restore the codebase to its original quality (before
 | |
| [66c3f91](https://github.com/nsf/termbox/commit/66c3f91b14e24510319bce6b5cc2fecf8cf5abff))
 | |
| while providing all the functionnalities of the current implementation.
 | |
| This was achieved by branching at
 | |
| [a2e217f](https://github.com/nsf/termbox/commit/a2e217f0fb97e6bbd589136ea3945f9d5a123d81)
 | |
| and cherry-picking all the commits up to
 | |
| [d63b83a](https://github.com/nsf/termbox/commit/d63b83af04e0fd6da836bb8f37e5cec72a1dc95a)
 | |
| if they weren't harmful.
 | |
| 
 | |
| ## Changes
 | |
| A lot of things changed during the process:
 | |
|  - *waf*, the original build system, was completely removed from the
 | |
|    project and replaced by make.
 | |
|  - anything related to python was removed as well
 | |
| 
 | |
| ## Getting started
 | |
| Termbox's interface only consists of 12 functions:
 | |
| ```
 | |
| tb_init() // initialization
 | |
| tb_shutdown() // shutdown
 | |
| 
 | |
| tb_width() // width of the terminal screen
 | |
| tb_height() // height of the terminal screen
 | |
| 
 | |
| tb_clear() // clear buffer
 | |
| tb_present() // sync internal buffer with terminal
 | |
| 
 | |
| tb_put_cell()
 | |
| tb_change_cell()
 | |
| tb_blit() // drawing functions
 | |
| 
 | |
| tb_select_input_mode() // change input mode
 | |
| tb_peek_event() // peek a keyboard event
 | |
| tb_poll_event() // wait for a keyboard event
 | |
| ```
 | |
| See src/termbox.h header file for full detail.
 | |
| 
 | |
| ## TL;DR
 | |
| `make` to build a static version of the lib under bin/termbox.a
 | |
| `cd src/demo && make` to build the example programs in src/demo/
 |