/* $Id$ */ /** \page libcaca-todo Libcaca TODO list

\section libcucul libcucul

  \subsection dep API-dependent stuff

  - big change: support several internal formats for canvases, for instance
    support the old ASCII canvas that only has 8-bit values, support the old
    ANSI color-only canvas, and add features to canvases, such as auto-adapt so
    that the canvas' format is automatically upgraded. Also, separate attribute
    stuff from colour stuff. List of attributes we support:
    - bold
    - blink
    - underline
    - italics
    list of attributes we may want to support:
    - faint
    - concealed
    - double underline
    - strike through
    - inverse video (not that stupid, canceling it is a bitwise op)
    - rapidly blinking / slowly blinking
    - fraktur (gothic) (wtf is that?)
    - alternate fonts 1 to 9 (wtf is that?) (probably not wanted)
    - proportional spacing (yeah)
    - framed
    - encircled
    - overlined

  - add a caca_unset_attr() and a caca_toggle_attr() ?

  - support for holes in canvas (eg. not full EOL)
  - support for TAB
  - allow to change the canvas size in a per-frame basis.
  - export attribute parsing functions such as attr_to_ansi4fg etc.
  - add attributes such as "can grow X-wise" to frames.
  - handle frame name in caca export

  \subsection indep API-independent stuff

  - Brightness, contrast support for bitmaps (the functions are here, we
     just need to fill them)
  - Error distribution dithering
  - Add a random factor to the random ditherer. No need to change the API
     for that, we can just pass \c "random:10" instead of \c "random" to the
     cucul_set_bitmap_dithering() function.
  - Implement the colour modes set in cucul_set_bitmap_color(). For the
     moment only \c "full16" and \c "16" are implemented.
  - Fix the thin ellipse rendering (currently it's only |s and -s, we
     could make them smoother by using ' ` , etc).
  - better mask support in cucul_blit()
  - optimise exporters so that they do not allocate huge blocks of memory
     when they only need half of it.


\section libcaca libcaca

  \subsection dep API-dependent stuff

  - beep support
  - check that the libcucul version matches on init

  \subsection indep API-independent stuff

  - Write a Linux console output
  - Better keyboard driver in an X terminal, see
     http://groups.yahoo.com/group/zepp/message/381
  - Unicode support for X11 (maybe through Xft)
  - fix Unicode support for ncurses (look at the nano source, it gets it right)
  - and Jylam wants a framebuffer output
  - write sample code for a text edit widget with cursor support
  - optimise renderers by having dirty lines support (requires libcucul
    changes)


\section bindings Language bindings

  \subsection needed Needed

  - Fix Python
  - Fix Perl
  - C# (it's the next big thing, believe me)
  - PHP (together with the HTML output it would allow for nice web
     applications)

  \subsection notimp Not that important

  - Ruby
  - Java


\section kernel Kernel mode

  - keyboard support
  - printf/fprintf are missing
  - Improve malloc/free so that we can reuse freed memory


\section doc Documentation

  - Write a tutorial.
  - Draw a nicer logo


\section apps Applications

  \section cacaview cacaview

  - File browser
  - open ANSI files
  - save in different formats

  \section cacadraw cacadraw

  - Only a skeleton exists yet. A modern ANSI editor that can also
     do Unicode.

*/