SDL_gfxPrimitives

SDL graphics primitives - a collection of drawing routines for SDL.

Note

This package is deprecated - please use the compatible SDL_gfx library referenced on the Software Page.

DOWNLOAD

[ SDL_gfxPrimitives-1.5.tar.gz (88k)]

INTRO

Author: A. Schiffler, aschiffler@sympatico.ca to contact the author.
Licenced under the LGPL (or GPL, your choice), see the file LICENSE in the archive for details.

Have a look at the interface in SDL_gfxPrimitives.h to see the list of functions provided.

README



SDL_gfxPrimitives - SDL graphics primitives, a collection of drawing routines
======================================================================================

A. Schiffler, aschiffler@sympatico.ca to contact the author.
Licenced under the LGPL, see the file LICENSE for details. 

INTRO
-----

The SDL_gfxPrimitives library provides basic drawing routines such as lines, circles or 
polygons for SDL Surfaces. 

Care has been taken so that all routines are fully alpha-aware and can blend any 
primitive onto the target surface if ALPHA<255. Surface depth supported are 1,2,3 and 
4 bytes per pixel. Surface locking is implemented in each routine and the library 
should work well with hardware accelerated surfaces. 

Currently, The following Anti-Aliased primitives are available:
* AA-line
* AA-circle
* AA-ellipse

INTERFACE
---------

See SDL_gfxPrimitives.h for a list of functions provided.


CHANGES/VERSION
---------------

Ver 1.5 - Mon Jul  2 11:27:40 EDT 2001

* New alpha blending code for factor 4 speedups if a<255 on all functions.
* Modified include file for W32 DLL support.
* Added VC6 project files for DLL and static library building.
* Added simple AA-circle/-ellipse routine - quality needs improvement.
* Removed 32bit shift on 64bit number from aaline for better portability
  across platforms.
* Removed a couple more compiler warnings (i.e. purely cosmetic fix).

Ver 1.4 - Sun Jun  3 11:52:07 EDT 2001

* Fixed hline, vline and rectangle clipping and result codes.
* Fixed AA-line arithmetic (was alpha subtraction, should be alpha ratio).
* More caching on fonts for speedups.
* More pointer checks in several places.
* New special cases for ellipses for rx=0/ry=0.
* Same sanity checks for circles/ellipses.
* Same return code for polygon/filledpolygon.

Ver 1.3 - Thu May 31 12:41:35 EDT 2001

* Minor cleanups and fixes (gcc -Wall is your friend).

Ver 1.2 again - Thu Apr  5 07:50:57 EDT 2001

* Fixed lineRGBA and aalineRGBA calls (had coordinate-passing mixed up twice,
  thanks Lion for pointing this out)

Ver 1.2 - Wed Apr  4 08:32:42 EDT 2001

* Changed to a dual, you-have-the-choice(TM) licencing system 
  to accomodate GPL developments using SDL_gfxPrimitives.
* Some minor fixes (thanks Karl).
* All routines return proper result code now.
* Clipping for aaline, circle and ellipse.

Ver 1.1 - Thu Mar 22 15:28:27 EST 2001

* Added code for Alpha=255 pixel drawing through direct memory writes to all routines
resulting in a much faster performance (factor 5 to 20) for non transparent pixels.
* New test and benchmark program with better info and nicer look.
* More info in README. Proper licence file. Comment cleanup.

Ver 1.0 - Fri Mar 16 08:38:07 EST 2001

* Initial release



INSTALLATION AND TEST
---------------------

Run
	./autogen.sh
	./configure
	make

to compile the code and a test program.

Run
	./TestGfxPrimitives

for a demo and simple benchmark.

Unzip the file VisualC.zip for VC6 project files.


COMMENTS
--------

If you have any ideas on how to make this better looking, faster running, less
resource hungry, add MMX-optimized inline assembly, more state-of-the-art
algorithmes ... well, send me the changes for inclusion in the next release 
so that we all benefit. :-)

Code that would be nice to have in particular, are routines for:
- faster, higher euality anti-aliased circles and ellipses
- anti-aliased circles and ellipses filled
- anti-aliased filled polygons
- B-splines or other types of curves of that sort


CONTRIBUTORS
------------

* Non-alpha line drawing code adapted from routine 
  by Pete Shinners, pete@shinners.org - thanks Pete.
* More fixes by Karl Bartel, karlb@gmx.net - thanks Karl.
* Much testing and suggestions for fixes from Danny van Bruggen,
  danny@froukepc.dhs.org - thanks Danny.
* VC6 DLL and static library project files from Michael Chen, 
  machenmusik@home.com - thanks Michael.
* AA-circle/-ellipse code idea from Stephane Magnenat, 
  nct@wg0.ysagoon.com - thanks Stephane.
* Faster blending routines contributed by Anders Lindström,
  cal@swipnet.se - thanks Anders.