WARNING!  This software is Copyright 1996 by Paul DuBois, with all rights
reserved.  You can use this software in any manner EXCEPT using it
in whole or in part for the creation of any type of commercial Sprite Engine,
or commercial animation package.   All I am saying is that you can use this
software for free to create applications that have animation, 
but not to produce a commercial animation-tools application.

*** Summary ***
These SOURCE files will give you the ability to easily create animation
using Borland C++ 4.5 and OWL.  It encompasses the whole process of
using Window's graphics capabilities, encapsulating it ALL into OWL
compatible C++ classes.  It covers using the palette, WinG,
DIBs, Bitmaps, Off screen buffers, Transparancy, and a lot of other 
cool stuff.

If you want to do serious animation, or just want to learn some things
about Windows graphics, this is for you.  You can't beat the price,
because it is FREE!  All I ask for are some leads to part-time
Windows programming work.  I currently work as a Unix/COBOL
programmer, and am trying to get into Windows Programming.

Please download this code, and ENJOY!

*** Credits ***
This source code is not all my work, and I must give credit where credit is
due.  The impitus of this work was the OWL encapsulation of the WinG by
Mark Salsbery.  It is in the Borland C++ Libraries.  He gave his source away
freely, and that is why I pass it on the same way. He wrote the source for:
	 palette.cpp
	 wingdc.cpp
	 animwind.cpp (I modified this heaviliy)
	 dibcopy.obj  (contains the _ASM_TransCopyDIBBits() function)

*** FILES ***

WinG files:
If you don't already have the WinG SDK then you'll
need to MOVE (not copy!!) the following files to the
windows\system directory to run the sample app successfully:
	DVA.386
	WING.DLL
	WING32.DLL
	WINGDE.DLL
	WINGDIB.DRV
	WINGPAL.WND

CREATING AN EXECUTABLE:
You should be able to create a new project using the file engine.ide.
The target needs to be 16 bit.  This is due to the dibcopy.obj file.  It
was written for 16 bit, and I don't have the source, as Mark didn't
include it.  If you can write your own 32 bit dibcopy function, you can
target win32 with no modifications to the source.

If for some reason you can't use the engine.ide file, create a new project,
and add the following files to it:
	 sample.cpp
	 spritwin.cpp
	 animwind.cpp
	 palette.cpp
	 wingdc.cpp
	 buffer.cpp
	 sprite.cpp
	 dibcopy.obj
	 graph1.cpp
	 engine.rc


*** Known Bugs ***
It is possible you may experience an exception error when closing the window
while the animation is in progress.  If so, you will need to move the line:

	 pClientDC->RestorePalette();

from the CleanupWindow func in animwind.cpp to the destructor.

*** Documentation ***

The code is pretty well documented. I add the following to give you an idea
of the hiearchy of the classes.

The supporting files for animation are:

	 dibcopy.obj    contains the transparent bit copy function
	 graph1.cpp     contains code for graphics special effects
	 wingdc.cpp     Encapsulates loading and calling the WinG functions
	 sprite.cpp     Encapsulates basic sprite functionality
	 buffer.cpp     Encapsulates an off screen buffer
	 palette.cpp    Encapsulates all the nasty palette stuff
	 animwind.cpp   Derived from TFrameWindow, it brings all the 
                        above stuff together

The following are needed for the sample application:

	 spritwin.cpp   Derives a specialized class from animwind.  This is where
						 you create your own animation

	 sample.cpp     This holds the TApplication class.
         engine.rc      Hold the background and dots bitmaps



Please contact me with any questions or suggestions you may have.

I am currently seeking part time employment as a Windows programmer.
I currently work as a Unix/COBOL programmer with accounting software, and am
trying to move into the windows arena.  Any leads are appreciated.

Have Fun! (I am sure they did when they designed the Windows GDI : )

Paul DuBois

Compuserve 102463,1535


