From 421d168382e7f076049686eedc67260c97a782c9 Mon Sep 17 00:00:00 2001 From: Sam Hocevar Date: Fri, 21 Apr 2006 16:27:43 +0000 Subject: [PATCH] * Added AUTHORS, THANKS, NEWS and TODO to the Doxygen documentation. Moved the main documentation page from caca.h to a separate file. --- AUTHORS | 17 +++--- NEWS | 106 ++++++++++++++++++-------------------- THANKS | 38 +++++++------- TODO | 125 +++++++++++++++++++++------------------------ caca/caca.h | 54 -------------------- doc/Makefile.am | 2 +- doc/doxygen.cfg.in | 25 ++++----- doc/libcaca.dox | 63 +++++++++++++++++++++++ 8 files changed, 212 insertions(+), 218 deletions(-) create mode 100644 doc/libcaca.dox diff --git a/AUTHORS b/AUTHORS index e67ac94..5ee5ba0 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,15 +1,16 @@ -$Id$ +/* $Id$ */ /** \page authors Authors Sam Hocevar - o main programmer + - main programmer Jean-Yves Lamoureux - o cacaball - o OpenGL driver - o Pypycaca Python wrapper - o exporters - o network driver + - cacaball + - OpenGL driver + - Pypycaca Python wrapper + - exporters + - network driver John Beppu - o Term::Caca Perl wrapper + - Term::Caca Perl wrapper +*/ diff --git a/NEWS b/NEWS index 0858c43..f19d4f0 100644 --- a/NEWS +++ b/NEWS @@ -1,79 +1,71 @@ -$Id$ +/* $Id$ */ /** \page news News -Changes between 0.8 and 0.9: ----------------------------- +\section news0_9 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 + - 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: ----------------------------- +\section news0_8 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 moiré circles animation example - * MSVC project file + - 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 moiré circles animation example + - MSVC project file -Changes between 0.6 and 0.7: ----------------------------- +\section news0_7 Changes between 0.6 and 0.7 - * many bugfixes in the event handling - * cacaball, a metaball animation example + - many bugfixes in the event handling + - cacaball, a metaball animation example -Changes between 0.5 and 0.6: ----------------------------- +\section news0_6 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 + - 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: ----------------------------- +\section news0_5 Changes between 0.4 and 0.5 - * palette optimisation for the S-Lang driver to work around the colour pair + - palette optimisation for the S-Lang driver to work around the colour pair shortage bug - * minor compilation fix + - minor compilation fix -Changes between 0.3 and 0.4: ----------------------------- +\section news0_4 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 + - 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: ----------------------------- +\section news0_3 Changes between 0.2 and 0.3 - * antialiasing support - * dithering, antialiasing and background mode can now be selected at + - 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 + - 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: ----------------------------- +\section news0_2 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 + - 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 ----------- +\section news_0_1 New in 0.1 - * initial release - * slang, ncurses and conio drivers - * basic line, box, ellipse and triangle primitives - * colour bitmap blitting + - initial release + - slang, ncurses and conio drivers + - basic line, box, ellipse and triangle primitives + - colour bitmap blitting +*/ diff --git a/THANKS b/THANKS index ef8021a..87a8544 100644 --- a/THANKS +++ b/THANKS @@ -1,21 +1,23 @@ -$Id$ +/* $Id$ */ /** \page thanks Thanks -Bugfixes and improvements -========================= -Gildas Bazin - win32 driver improvements -Jari Komppa - win32 speed improvements +\section thanks1 Bugfixes and improvements -Reused code -=========== -Jan Hubicka - aafire -Michele Bini - original SDL plasma -Free Software Foundation, Inc. - multiboot.S +- Gildas Bazin - win32 driver improvements +- Jari Komppa - win32 speed improvements -Porters and packagers -===================== -Derk-Jan Hartman - Gentoo ebuild file -Ladislav Hagara - Source Mage spell -Philip Balinov - Slackware package -Richard Zidlicky - rpm specfile -Thomas Klausner - NetBSD port maintainer -Vincent Tantardini - FreeBSD port maintainer +\section thanks2 Reused code + +- Jan Hubicka - aafire +- Michele Bini - original SDL plasma +- Free Software Foundation, Inc. - multiboot.S + +\section thanks3 Porters and packagers + +- Derk-Jan Hartman - Gentoo ebuild file +- Ladislav Hagara - Source Mage spell +- Philip Balinov - Slackware package +- Richard Zidlicky - rpm specfile +- Thomas Klausner - NetBSD port maintainer +- Vincent Tantardini - FreeBSD port maintainer + +*/ diff --git a/TODO b/TODO index 6ff76cd..903ec42 100644 --- a/TODO +++ b/TODO @@ -1,145 +1,134 @@ -$Id$ +/* $Id$ */ /** \page todo TODO list -libcucul -======== +\section libcucul libcucul - API-dependent stuff - ------------------- + \subsection dep API-dependent stuff - o all the sprite stuff (loading, saving, blitting, transparency + - all the sprite stuff (loading, saving, blitting, transparency support, background colour support, thinking of a storage format, etc.) - o Or maybe, instead of doing shit with the sprites, just allow canvases + - Or maybe, instead of doing shit with the sprites, just allow canvases to have several buffers, allow to change the active buffer, and treat sprites like that. - o ASCII/ANSI art loading functions (maybe load them as sprites) + - ASCII/ANSI art loading functions (maybe load them as sprites) - API-independent stuff - --------------------- + \subsection indep API-independent stuff - o support for transparency (CUCUL_COLOR_TRANSPARENT) + - support for transparency (CUCUL_COLOR_TRANSPARENT) - o Brightness, contrast support for bitmaps (the functions are here, we + - Brightness, contrast support for bitmaps (the functions are here, we just need to fill them) - o Error distribution dithering + - Error distribution dithering - o Add a random factor to the random ditherer. No need to change the API + - Add a random factor to the random ditherer. No need to change the API for that, we can just pass "random:10" instead of "random" to the cucul_set_bitmap_dithering() function. - o Implement the colour modes set in cucul_set_bitmap_color(). For the + - Implement the colour modes set in cucul_set_bitmap_color(). For the moment only "full16" and "16" are implemented. - o Fix the thin ellipse rendering (currently it's only |s and -s, we + - Fix the thin ellipse rendering (currently it's only |s and -s, we could make them smoother by using ' ` , etc). - o support for double width glyphs (also needs some libcaca changes) + - support for double width glyphs (also needs some libcaca changes) - o better mask support in cucul_blit() + - better mask support in cucul_blit() - o factor Unicode character conversions, especially UCS4 -> UTF-8 + - factor internal Unicode character conversions, especially UCS4 -> UTF-8 + - optimise exporters so that they do not allocate huge blocks of memory + when they only need half of it. -libcaca -======= - API-dependent stuff - ------------------- +\section libcaca libcaca - o text edit widget with cursor support (I'm unsure about this, it + \subsection dep API-dependent stuff + + - text edit widget with cursor support (I'm unsure about this, it seems pretty difficult) - API-independent stuff - --------------------- + \subsection indep API-independent stuff - o Write a Linux console output + - Write a Linux console output - o Better keyboard driver in an X terminal, see + - Better keyboard driver in an X terminal, see http://groups.yahoo.com/group/zepp/message/381 - o Unicode support for X11 (maybe through Xft) + - Unicode support for X11 (maybe through Xft) - o fix Unicode support for ncurses + - fix Unicode support for ncurses - o Unicode support for GL + - Unicode support for GL - o and Jylam wants a framebuffer output + - and Jylam wants a framebuffer output -Language bindings -================= +\section bindings Language bindings - Needed - ------ + \subsection needed Needed - o Fix Python + - Fix Python - o Fix Perl + - Fix Perl - o C# (it's the next big thing, believe me) + - C# (it's the next big thing, believe me) - o PHP (together with the HTML output it would allow for nice web + - PHP (together with the HTML output it would allow for nice web applications) - Not that important - ------------------ + \subsection notimp Not that important - o Ruby + - Ruby - o Java + - Java -Kernel mode -=========== +\section kernel Kernel mode - o keyboard support + - keyboard support - o printf/fprintf are missing + - printf/fprintf are missing - o Improve malloc/free so that we can reuse freed memory + - Improve malloc/free so that we can reuse freed memory -Documentation -============= +\section doc Documentation - o Write a tutorial. + - Write a tutorial. - o Draw a nicer logo + - Draw a nicer logo -Applications -============ +\section apps Applications - cacaview - -------- + \section cacaview cacaview - o File browser + - File browser - o open ANSI files + - open ANSI files - o save in different formats + - save in different formats - cacadraw - -------- + \section cacadraw cacadraw - o Does not exist yet, but I want it. A modern ANSI editor that can also + - Does not exist yet, but I want it. A modern ANSI editor that can also do Unicode. - CUCUlet - ------- + \section cuculet CUCUlet - o Does not exist yet, but I want it. A replacement for FIGlet that can + - Does not exist yet, but I want it. A replacement for FIGlet that can also do Unicode - o Colour support, of course: outputs to IRC, ANSI, HTML... + - Colour support, of course: outputs to IRC, ANSI, HTML... - o Can open FIGlet fonts + - Can open FIGlet fonts +*/ diff --git a/caca/caca.h b/caca/caca.h index f74b2d5..f009f2e 100644 --- a/caca/caca.h +++ b/caca/caca.h @@ -20,60 +20,6 @@ * using \e libcaca may use. */ -/** \mainpage libcaca developer documentation - * - * \section intro Introduction - * - * \e libcaca is a graphics library that outputs text instead of pixels, - * so that it can work on older video cards or text terminals. It is not - * unlike the famous AAlib library. \e libcaca can use almost any virtual - * terminal to work, thus it should work on all Unix systems (including - * Mac OS X) using either the slang library or the ncurses library, on DOS - * using the conio library, and on Windows systems using either slang or - * ncurses (through Cygwin emulation) or conio. There is also a native X11 - * driver, and an OpenGL driver (through freeglut) that does not require a - * text terminal. For machines without a screen, the raw driver can be used - * to send the output to another machine, using for instance cacaserver. - * - * \e libcaca is free software, released under the Do What The Fuck You - * Want To Public License. This ensures that no one, not even the \e libcaca - * developers, will ever have anything to say about what you do with the - * software. It used to be licensed under the GNU Lesser General Public - * License, but that was not free enough. - * - * \section api The libcaca API - * - * \e libcaca relies on a low-level, device independent library, called - * \e libcucul. \e libcucul can be used alone as a simple ASCII and/or - * Unicode compositing canvas. - * - * The complete \e libcucul and \e libcaca programming interface is - * available from the cucul.h and caca.h headers. - * - * \section env Environment variables - * - * Some environment variables can be used to change the behaviour of - * \e libcaca without having to modify the program which uses them. These - * variables are: - * - * \li \b CACA_DRIVER: set the backend video driver. In order of preference: - * - \c conio uses the DOS conio.h interface. - * - \c ncurses uses the ncurses library. - * - \c slang uses the S-Lang library. - * - \c x11 uses the native X11 driver. - * - \c gl uses freeglut and opengl libraries. - * - \c raw outputs to the standard output instead of rendering the - * canvas. This is can be used together with cacaserver. - * - * \li \b CACA_GEOMETRY: set the video display size. The format of this - * variable must be XxY, with X and Y being integer values. This option - * currently works with the network, X11 and GL drivers. - * - * \li \b CACA_FONT: set the rendered font. The format of this variable is - * implementation dependent, but since it currently only works with the - * X11 driver, an X11 font name such as "fixed" or "5x7" is expected. - */ - #ifndef __CACA_H__ #define __CACA_H__ diff --git a/doc/Makefile.am b/doc/Makefile.am index ed12b63..0822634 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -1,6 +1,6 @@ # $Id$ -EXTRA_DIST = doxygen.cfg.in footer.html header.html $(man_MANS) +EXTRA_DIST = doxygen.cfg.in footer.html header.html libcaca.dox $(man_MANS) man_MANS = caca-config.1 cacafire.1 cacaview.1 diff --git a/doc/doxygen.cfg.in b/doc/doxygen.cfg.in index ff89987..d91fd10 100644 --- a/doc/doxygen.cfg.in +++ b/doc/doxygen.cfg.in @@ -244,7 +244,7 @@ EXTRACT_STATIC = NO # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. -EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_CLASSES = NO # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in @@ -319,7 +319,7 @@ INLINE_INFO = YES # alphabetically by member name. If set to NO the members will appear in # declaration order. -SORT_MEMBER_DOCS = YES +SORT_MEMBER_DOCS = NO # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically @@ -381,7 +381,7 @@ MAX_INITIALIZER_LINES = 30 # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. -SHOW_USED_FILES = YES +SHOW_USED_FILES = NO # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy @@ -459,7 +459,9 @@ WARN_LOGFILE = # directories like "/usr/src/myproject". Separate the files or directories # with spaces. -INPUT = @top_srcdir@/cucul \ +INPUT = @top_srcdir@ \ + @top_srcdir@/doc \ + @top_srcdir@/cucul \ @top_srcdir@/caca # If the value of the INPUT tag contains directories, you can use the @@ -469,21 +471,20 @@ INPUT = @top_srcdir@/cucul \ # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py -FILE_PATTERNS = *.c \ - cucul.h \ - caca.h +FILE_PATTERNS = *.dox *.c cucul.h caca.h \ + NEWS AUTHORS THANKS TODO # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. -RECURSIVE = YES +RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. -EXCLUDE = ../src/config.h +EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded @@ -597,7 +598,7 @@ USE_HTAGS = NO # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. -VERBATIM_HEADERS = YES +VERBATIM_HEADERS = NO #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index @@ -712,7 +713,7 @@ TOC_EXPAND = NO # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. -DISABLE_INDEX = NO +DISABLE_INDEX = YES # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. @@ -808,7 +809,7 @@ LATEX_BATCHMODE = YES # include the index chapters (such as File Index, Compound Index, etc.) # in the output. -LATEX_HIDE_INDICES = NO +LATEX_HIDE_INDICES = YES #--------------------------------------------------------------------------- # configuration options related to the RTF output diff --git a/doc/libcaca.dox b/doc/libcaca.dox new file mode 100644 index 0000000..a56add5 --- /dev/null +++ b/doc/libcaca.dox @@ -0,0 +1,63 @@ +/* $Id$ */ + +/** \mainpage libcaca Developer Documentation + + \section intro Introduction + + \e libcaca is a graphics library that outputs text instead of pixels, + so that it can work on older video cards or text terminals. It is not + unlike the famous AAlib library. \e libcaca can use almost any virtual + terminal to work, thus it should work on all Unix systems (including + Mac OS X) using either the slang library or the ncurses library, on DOS + using the conio library, and on Windows systems using either slang or + ncurses (through Cygwin emulation) or conio. There is also a native X11 + driver, and an OpenGL driver (through freeglut) that does not require a + text terminal. For machines without a screen, the raw driver can be used + to send the output to another machine, using for instance cacaserver. + + \e libcaca is free software, released under the Do What The Fuck You + Want To Public License. This ensures that no one, not even the \e libcaca + developers, will ever have anything to say about what you do with the + software. It used to be licensed under the GNU Lesser General Public + License, but that was not free enough. + + \section api The libcaca API + + \e libcaca relies on a low-level, device independent library, called + \e libcucul. \e libcucul can be used alone as a simple ASCII and/or + Unicode compositing canvas. + + The complete \e libcucul and \e libcaca programming interface is + available from the cucul.h and caca.h headers. + + \section env Environment variables + + Some environment variables can be used to change the behaviour of + \e libcaca without having to modify the program which uses them. These + variables are: + + \li \b CACA_DRIVER: set the backend video driver. In order of preference: + - \c conio uses the DOS conio.h interface. + - \c ncurses uses the ncurses library. + - \c slang uses the S-Lang library. + - \c x11 uses the native X11 driver. + - \c gl uses freeglut and opengl libraries. + - \c raw outputs to the standard output instead of rendering the + canvas. This is can be used together with cacaserver. + + \li \b CACA_GEOMETRY: set the video display size. The format of this + variable must be XxY, with X and Y being integer values. This option + currently works with the network, X11 and GL drivers. + + \li \b CACA_FONT: set the rendered font. The format of this variable is + implementation dependent, but since it currently only works with the + X11 driver, an X11 font name such as "fixed" or "5x7" is expected. + + \section Misc + + - \subpage news + - \subpage authors + - \subpage thanks + - \subpage todo + +*/