such as cucul_dither_t instead of struct cucul_dither.
* Made cucul_buffer_t an opaque structure and implemented the two getters
cucul_get_buffer_data() and cucul_get_buffer_size().
* Documented all missing functions and function parameters.
* Renamed caca_refresh() into caca_display() which makes more sense.
* Optimised gl_bgpal by directly storing floats instead of doing the
conversion at runtime.
* Handle resizing in cucul_set_size() and try to keep as much information
as possible from the previous canvas.
* Moved most global variables into cucul_t or caca_t contexts.
* Moved time.c into libcaca.
of unicode letters) is now separated from the higher level rendering and I/O
(that is, libcaca). This commit totally breaks the API, but once everything
is polished I will think about source-level backward compatibility. Most
drivers are broken, but X11 still sorta works.
The new design is much more object-oriented and allows having several
active renderers at the same time, changing renderers on the fly, and more
important, having no renderer at all (useful for converters, or when you
want to do your own renderer).
And in case you are still wondering, the libcucul acronym has "Unicode"
because I want to support at least a subset of Unicode. There are awesome
glyphs in it, including the ones inherited from Codepage 437 such as
"gray 25%" that are used in DOS and Win32 ANSI art.
+ Fixed a buffer overflow due to bad signed/unsigned handling.
* src/event.c:
+ Disallow zero width or height in the X11 driver.
+ Fixed resizing in ncurses and slang.
* THANKS:
+ Added the Source Mage maintainer.
+ Refresh the X11 window when an exposure event is received.
+ When resizing the X11 window, start showing extra characters when two
thirds are visible.
+ Make sure the mouse coordinates stay within the screen boundaries even
if the window was resized.
* src/bitmap.c:
+ Fixed a buffer underflow in the rendering routine that caused the bottom
and rightmost pixels to be missed in certain conditions.
+ Minor speed optimisation.
+ Added the CACA_EVENT_RESIZE event.
+ Added caca_get_mouse_x() and caca_get_mouse_y().
* src/graphics.c:
+ Window resize handling in the X11 driver.
* examples/aafire.c:
+ Fixed a bad assumption in the resize handling code.
+ Check for gettimeofday().
* src/time.c:
+ Created _caca_time().
+ Ported _caca_getticks() to the Win32 API.
* src/caca.c:
+ Properly builds on Win32.
* test/event.c:
+ Added <stdlib.h> because we use malloc().
+ Initialise the char buffers in the X11 driver.
* src/io.c:
+ caca_get_event() and caca_wait_event() immediately return zero if
event_mask is zero.
+ Added support for the Home, End, PgUp and PgDown keys.
+ In the S-Lang driver, added a call to SLang_getkey() before the call to
SLkp_getkey(), otherwise a single Escape call will not be interpreted.
* test/event.c:
+ The "quit" sequence now quits the program, instead of "q" alone.
+ Added a status bar below.
+ Do not refresh after each event, but only when there is no event
pending.
+ If the pressed key is a printable character, display it.
* src/time.c:
+ Moved _caca_getticks() to this file.
* src/caca.c:
+ Set the escape delay to a very low value in the ncurses driver,
because I don't want escape sequences to be entered manually.
* src/io.c:
+ Autorepeat emulation in the ncurses and slang drivers: do not
immediately send the key release event.
* configure.ac:
+ Check for usleep.
+ Improvements in the win32 platform detection.
+ Use SLkp_getkey instead of SLang_getkey so that escape sequences are
directly interpreted.
+ Major rehandling of the event code. All output drivers are now
correctly separated.
* src/graphics.c:
+ Fixed a compilation warning.
* test/event.c:
+ More human-readable event printing.