Browse Source

* Added AUTHORS, THANKS, NEWS and TODO to the Doxygen documentation. Moved the main

documentation page from caca.h to a separate file.
tags/v0.99.beta14
Sam Hocevar sam 19 years ago
parent
commit
421d168382
8 changed files with 212 additions and 218 deletions
  1. +9
    -8
      AUTHORS
  2. +49
    -57
      NEWS
  3. +20
    -18
      THANKS
  4. +57
    -68
      TODO
  5. +0
    -54
      caca/caca.h
  6. +1
    -1
      doc/Makefile.am
  7. +13
    -12
      doc/doxygen.cfg.in
  8. +63
    -0
      doc/libcaca.dox

+ 9
- 8
AUTHORS View File

@@ -1,15 +1,16 @@
$Id$
/* $Id$ */ /** \page authors Authors

Sam Hocevar <sam@zoy.org>
o main programmer
- main programmer

Jean-Yves Lamoureux <jylam@lnxscene.org>
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 <beppu@lbox.org>
o Term::Caca Perl wrapper
- Term::Caca Perl wrapper

*/

+ 49
- 57
NEWS View File

@@ -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

*/

+ 20
- 18
THANKS View File

@@ -1,21 +1,23 @@
$Id$
/* $Id$ */ /** \page thanks Thanks

Bugfixes and improvements
=========================
Gildas Bazin <gbazin@netcourrier.com> - win32 driver improvements
Jari Komppa <jari.komppa at gmail> - win32 speed improvements
\section thanks1 Bugfixes and improvements

Reused code
===========
Jan Hubicka <hubicka@freesoft.cz> - aafire
Michele Bini <mibin@tin.it> - original SDL plasma
Free Software Foundation, Inc. - multiboot.S
- Gildas Bazin <gbazin@netcourrier.com> - win32 driver improvements
- Jari Komppa <jari.komppa at gmail> - win32 speed improvements

Porters and packagers
=====================
Derk-Jan Hartman <thedj@users.sourceforge.net> - Gentoo ebuild file
Ladislav Hagara <hgr@vabo.cz> - Source Mage spell
Philip Balinov - Slackware package
Richard Zidlicky <rz@linux-m68k.org> - rpm specfile
Thomas Klausner <wiz@NetBSD.org> - NetBSD port maintainer
Vincent Tantardini <vinc@FreeBSD-fr.org> - FreeBSD port maintainer
\section thanks2 Reused code

- Jan Hubicka <hubicka@freesoft.cz> - aafire
- Michele Bini <mibin@tin.it> - original SDL plasma
- Free Software Foundation, Inc. - multiboot.S

\section thanks3 Porters and packagers

- Derk-Jan Hartman <thedj@users.sourceforge.net> - Gentoo ebuild file
- Ladislav Hagara <hgr@vabo.cz> - Source Mage spell
- Philip Balinov - Slackware package
- Richard Zidlicky <rz@linux-m68k.org> - rpm specfile
- Thomas Klausner <wiz@NetBSD.org> - NetBSD port maintainer
- Vincent Tantardini <vinc@FreeBSD-fr.org> - FreeBSD port maintainer

*/

+ 57
- 68
TODO View File

@@ -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

*/

+ 0
- 54
caca/caca.h View File

@@ -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__



+ 1
- 1
doc/Makefile.am View File

@@ -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



+ 13
- 12
doc/doxygen.cfg.in View File

@@ -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


+ 63
- 0
doc/libcaca.dox View File

@@ -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

*/

Loading…
Cancel
Save