libcaca documentation

Libcaca news

## Changes between 0.99.beta18 and 0.99.beta17

- new "cacaclock" utility
- improved FIGlet support
- improved Python and Ruby bindings
- numerous improvements and bugfixes

## Changes between 0.99.beta17 and 0.99.beta16

- new dirty rectangle framework for accelerated rendering
- new <conio.h> compatible header for old DOS software porting
- XCode and Visual Studio build improvements
- Unicode support in the X11 driver
- triangle texture mapping
- improved HTML output
- new troff output
- improved Ruby and .NET bindings
- new comprehensive PHP bindings
- new Java bindings
- Cocoa driver enhancements
- support for ANSI colour in FIGlet and TOIlet fonts
- documentation updates
- numerous improvements and bugfixes

## Changes between 0.99.beta16 and 0.99.beta15

- many build fixes, especially for nonstandard platforms

## Changes between 0.99.beta15 and 0.99.beta14

- libcucul was merged back into libcaca for more clarity

## Changes between 0.99.beta14 and 0.99.beta13

- internal FIGlet font support
- use C99 types in public headers
- runtime support for output drivers
- BBcode export support

## Changes between 0.99.beta13 and 0.99.beta12

- device-dependent cursor support
- event API rewrite
- minor API improvements and extensions
- img2txt improvements
- Ruby bindings
- Massive C# bindings improvements
- Python sample code
- Visual Studio build solution

## Changes between 0.99.beta12 and 0.99.beta11

- support for 90-degree canvas rotation
- better behaviour when trying to output Unicode on an ASCII terminal
- the built-in font now supports the Geometric Shapes, Halfwidth and Fullwidth Forms and Miscellaneous Symbols Unicode blocks
- new rotozoom effect in cacademo
- Cocoa output driver for Mac OS X
- preliminary .NET bindings
- many bugfixes and documentation changes

## Changes between 0.99.beta11 and 0.99.beta10

- fixed compilation of the C++ bindings
- fixed bugs in cucul_import_memory(), cucul_set_canvas_size()
- implemented caca_set_display_title() for ncurses and S-Lang
- minor bugfixes

## Changes between 0.99.beta10 and 0.99.beta9

- new debug mode
- blitting canvases now makes use of the canvas' handle coordinates
- import functions can read streamed data
- attribute to colorspace transformations
- added katakana and hiragana glyphs to the built-in font
- many bugfixes and documentation changes

## Changes between 0.99.beta9 and 0.99.beta8

- support for blink, bold, italics and underline attributes
- allow to import and export zero-sized canvases
- fixed Imlib2 support in cacaview
- fixed buffer overlows in the file importer
- big documentation updates

## Changes between 0.99.beta8 and 0.99.beta7

- allow to build the X11 and GL drivers as separate plugins
- support for fullwidth Unicode characters
- improved cucul_flip() and cucul_rotate()
- minor bugfixes and documentation updates

## Changes between 0.99.beta7 and 0.99.beta6

- transparency support in the UTF-8 importer and exporter
- optimised triangle fill routine
- updated C++ bindings

## Changes between 0.99.beta6 and 0.99.beta5

- ANSI importer now handles transparency and UTF-8
- Unicode support was broken for about 10% of the set
- various memory leaks were fixed

## Changes between 0.99.beta5 and 0.99.beta4

- implemented cucul_getchar() and cucul_get_color()
- handle transparency in the IRC export
- new cropping and expanding filters
- full Unicode support in the OpenGL driver
- portability fixes for 64-bit architectures, Win32 and MS-DOS
- all demos except cacafire were merged into cacademo

## Changes between 0.99.beta4 and 0.99.beta3

- added a compatibility layer for pre-1.x libcaca applications
- fixed manpage generation
- minor bugfixes and documentation updates

## Changes between 0.99.beta3 and 0.99.beta2

- libcaca functions use errno for error reporting
- updated C++ bindings
- minor improvements, bugfixes and documentation updates

## Changes between 0.99.beta2 and 0.99.beta1

- ANSI importer
- functions use errno for error reporting
- updated C++ bindings
- .NET bindings
- cacadraw, an ANSI viewer that will evolve into an editor
- Unicode input and output support for SLang and ncurses
- built-in fonts work on Win32

## Changes between 0.9 and 0.99.beta1

- license switched to WTFPL
- libcaca was split into libcucul, a standalone text manipulation backend, and libcaca, the display and user input frontend
- Unicode support
- TrueColor (more than 16 colours) support
- Floyd-Steinberg dithering
- gamma correction
- export functions for HTML, IRC, ANSI, SVG, PostScript, TGA...
- builtin fonts for device-independent bitmap output
- various text transformation routines (rotation, horizontal flip...)
- OpenGL renderer
- kernel mode to build libcaca programs into a bootable x86 kernel
- cacaserver, a telnet server that can be hooked to libcaca applications
- img2irc, an image to IRC conversion utility

## Changes between 0.8 and 0.9

- fix for a buffer overflow in the line rendering
- fixed resizing in the ncurses and slang drivers
- aspect ratio and finer zoom support in cacaview
- minor compilation fixes

## Changes between 0.7 and 0.8

- window resizing support
- native Win32 port
- autorepeat emulation in the ncurses and slang drivers
- support for more keycodes in the ncurses and slang drivers
- cacaplas, a plasma animation example
- cacamoir, a moire circles animation example
- MSVC project file

## Changes between 0.6 and 0.7

- many bugfixes in the event handling
- cacaball, a metaball animation example

## Changes between 0.5 and 0.6

- 30% speed increase in the bitmap rendering routine
- mouse support and various speed optimisations in the X11 driver
- X11 is now the preferred driver
- improved documentation
- minor bugfixes

## Changes between 0.4 and 0.5

- palette optimisation for the S-Lang driver to work around the colour pair shortage bug
- minor compilation fix

## Changes between 0.3 and 0.4

- preliminary X11 graphics driver
- support for simultaneously compiled-in drivers
- honour the CACA_DRIVER, CACA_GEOMETRY and CACA_FONT environment variables
- more documentation

## Changes between 0.2 and 0.3

- antialiasing support
- dithering, antialiasing and background mode can now be selected at runtime or in the environment using the CACA_BACKGROUND, CACA_DITHERING and CACA_ANTIALIASING variables
- alpha channel support in cacaview
- BMP loading support in cacaview even if Imlib2 is not present
- cacafire, a libcaca port of aafire

## Changes between 0.1 and 0.2

- rendering now uses 256 colour pairs instead of 16
- mouse support for ncurses
- ncurses is now the preferred backend
- arbitrary color depth and bitmasks in the bitmap renderer
- cacaview, an image viewer based on libcaca

## New in 0.1

- initial release
- slang, ncurses and conio drivers
- basic line, box, ellipse and triangle primitives
- colour bitmap blitting