DirectX Toolkit V1.2
--------------------

Introduction
------------
There are alot of people out there that has the ambition to create games and 
other graphical applications, but the hazel of getting started often, 
unfortunately, seems to take the ambition away.

Ok, I want to make a game, that is for sure! But where do I start ?

My best advise is to buy a book of game programming, or search the net for 
articles on the subject.

But the code is still missing, the time to create an own library can be very 
long and tedious,especially if you are new in the area (I know that:). Clearly 
the fastest way to get started is to get components that are ready, use and 
learn from them, while you directly start programming your game or graphical 
application.

The DirectX Toolkit is a source library that will get you started immediately 
with your project, one of our goals was to keep the price on the toolkit as low as 
possible so that induviduals can afford it.

The price for the source code is only 30 USD! You will recieve the toolkit 
(0.6MB) in your email within 24 hours from the your order.




DirectX Toolkit
---------------
This library helps the developer to get started with DirectX 7.0, 
it simplifies the DirectX 7.0 API by adapting an easy-to-use interface. 
This is a brilliant solution for users who wants to get started quick 
and learn about DirectX.

Classes included in the package are DirectDraw, DirectSound, DirectInput, 
Sprite, Sound, Bitmap, Wave, Mouse, Window and Debug. Also included is an 
example of how to use the different components.


What is needed to use the toolkit
---------------------------------
- DirectX 7.0 SDK (can be found at www.microsoft.com)
- Since the toolkit is entirely object oriented skills in C++ are needed,
- A computer running with Windows 95/98/2000 OS.
- A c++ compiler (Microsofts Visual Stuido 6.0 was for developing the toolkit)
- Recommended is some general knowledge of game programming.


Advantages of the toolkit
-------------------------
- Easy to use
- Fast
- General
- Get started quickly


How easy can DirectX get ?
--------------------------
This is an example of how DirectDraw is set up with the toolkit. The 
DirectInput and DirectSound objects are as simple to set up.

- DirectDraw directDraw;
- directDraw.initAll(_windowHandle, 640, 480, 16);

These two rows creates an full screen DirectDraw application, with the 
resulution 640 * 480, 16 bit colors. It also creates a primary and secondary
surface that is used for double buffering. For more information on primary,
secondary surfaces and double buffering a refer to the DirectX 7.0 Help or 
a book of game programming. For more information of how the toolkit is used
I refer to the example provided with the toolkit - clickhit (see bottom of
file).


There really are no restrictions
--------------------------------
The DirectX toolkit is very simple to use. It provides the user with the most
common operations that can be done with DirectX. A simplyfied system is
generally more restricted then a complex system. But the DirectX toolkit opens 
doors to those who want to go behind the general toolkit interface and use the 
real DirectX object directly. This is done by retrieving the real IDirectX 
interface that is encapsulated within the toolkits interfaces. This is done 
with the operation get(). 

For example to get the real DirectDraw object hidden within the toolkit the 
following code is used:

- IDirectDrawX* dd = directDraw.get();

So by other words, this toolkit is an easy-to-use adapter to Microsofts DirectX
model, but still the Microsofts directX can be used directly in cooperation with 
the toolkit.




A breif description of the classes
----------------------------------


DirectDraw
----------
This class encapsulates the Microsofts DirectDraw interface and instead adapts an
easy-to-use interface.

DirectSound
-----------
This class encapsulates the Microsofts DirectSound interface and instead adapts an
easy-to-use interface.

DirectInput
-----------
This class encapsulates the Microsofts DirectInput interface and instead adapts an
easy-to-use interface.

Sprite 
------
The sprite class is an all around class it has many diffrent applications.
A sprite can be any 2D object, everything from a space ship to a meny button.
This class enabled the developer to use animated sprites easily. For the 
animation purpose the animation should be in a square pattern with equally 
big squares.

Sound
-----
This class can be seen as a sound. It has fundermental operations that can
be done on a sound such as load, play and stop. It supports the .wav format.

Bitmap
------
This class loads a bitmap to a memory or a directX surface. It will keep 
information about the bitmap. It supports, 8, 16 and 24 bit .bmp files.

Wave
----
This class provides an interface for loading .wav files. it loads a file and 
keeps the information about the sound in private members. The can be reached 
by asking the public interface. 

Mouse
-----
This class handle the mouse. It draws the icon and keeps it updated when the
mouse is moved. It uses a DirectInput object to get the mouse postions. '
Basically the mouse is a Sprite.


Window
------
This class creates a simple window. It can be done in either fullscreen or with
a size. It takes care of the main window initiation and it does also encapsulate 
the message control. This class is only ment to be a helper class for a quick and 
dirty window setup, that is if you for example want to make a directX fullscreen 
application, where the window is almost insignificant.

Debug
-----
This is a simple debug class with the << operator. It writes the output to an
ostream, defined by the user. 



Don't hesitate to send us feedback, questions or comments.

Sureshot Software