What's New in Version 0.25b
Compatibility Changes:
- getRGB16Color changed to:
getColor (In all appropriate places)
ushort (as color reference) changed to TColor
These changes are the base for a possible future move to
32 bit rendering.
- Mesh building is done through the MeshBuilder interface.
newMesh() function is obsolete.
- The world management libraries have changed part of their
API.
Most object constructors have changed, dropping unneeded
parameters.
Rendering is done with a View class or its derivatives.
- Visual C++ 4 versions are no longer supported. This is
due to the fact that MS does not support DirectX Media in
VC 4.
Added Features:
- Added 3D Fog
- Added Gamma control
- Added multiple type lights with dynamic settings.
- Textures are drawable objects, allowing dynamic textures.
- Added AVI Playing into any drawable. This can be
used to display video on any 2D surface or use the
texture drawable objects to display video on any 3D
object.
- Added generic audio file playing, using DirectX Media
streaming.
MP3 Included!
Corrected Bugs
What's New in Version 0.21b
- Loading bitmaps can now use 24 bit BMP files (not
converted) and it works directly from the stream.
- 3D Mesh can have a texture per material.
- 3D Mesh inherits its 3D World orientation methods from Transformable.
- 3D Rendering surface can be cleared to any color for
background.
Corrected Bugs
- bug causing systems without any 3D hardware to fail
initialization of the 3D subsystem.
- The fix for that includes allowing using 2D acceleration
with NoAccel=0, and having 3D fall back to software.
- Creating bitmaps wider than the screen with NoAccel=0
crashes the program.
- .X files are now loaded more correctly.
- Frame time mechanizm fixed for Alt-Tab situations.
What's New in Version 0.20b
This is a major release, with so many things changed, that it's
almost like a new package.
Most of the code written for it is compatible, but some changes
have to be made.
- DLL Interface was changed from exported classes to
abstract classes with creation functions.
Check section 10 of
the manual for details.
- Some name changes: Object3D -> Mesh
World3DObject -> Object3D
- Added access to the internal structures:
- Drawable's device context for GDI drawing.
- Drawable's DirectDraw surface for creating
special effects.
- Direct3D device for creating 3D special effects.
- Calculation of the fraction which represents frame
advances is now embedded in the DLL.
- Math3D, a new header file containing everything needed to
write vector computations.
- A new rawCopy was added to Drawable to allow a faster, no
clipping, blit.
- setVolume is available for each sound buffer.
- 3D Parameters of a sound buffer can be changed.
- streamWaveFile was added to play a large wave file (not a
clip)
- Added diagnostics to check interface allocation memory
leaks.
- Added a default resource stream to allow using it without
passing a stream as a variable.
- Added a getConsole function to get the console pointer
from anywhere.
- Creating a new interface (Bitmap, SoundClip, etc.) doesn't
require pointer to screen or sound.
- Scale, Rotate (any angle) of bitmaps, using hardware if
available, or software if not.
- Added possibility to change transparency feature in every
bitmap.
- Added override for transparency in the copy methods.
- Added support for billboards in 3D.
- Lots of improvements of internal code.
What's New in Version 0.13b
- Changed interface to polygon normal calculation to fit
the standard interface as in polygon reduction.
- Added control over position of bitmaps (Video or System
memory)
- Added a global function CON_Reactivated that can
be called to detect reactivation of the application. This
is useful, since video memory bitmaps lose their contents
if the application is reactivated.
- Added an optimization on direct buffer access for
Drawable objects.
A lookup table of the line addresses can be calculated
upon locking the object, and is useful if more than a few
drawings will be made.
- Added a method to get the current transparent color of a
Drawable object.
- Added integrated compression of resources. Compression is
activated by calling setCompression before putting
in resources. Decompression is automatic, if necessary.
- Added option to let a sound clip continue until
completion detached from any object.
- Added method to query if a sound is playing. isPlaying
- Setting a bitmap to the mouse pointer does not release
this bitmap automatically, but rather copies its contents.
The user must delete the bitmap after setting the pointer
manually.
- Due to added features, resource files created using
previous versions must be recreated.
Corrected Bugs
- When full screen program terminates, the task bar is not
restored to normal.
- Textures appear incorrectly when using no acceleration.
- Mouse pointer is not released. Harmless, but still.
- Copying a bitmap using a copy constructor doesn't copy
bitmap contents correctly.
Also, it doesn't set the transparent color correctly.
- Reactivation was not handled correctly. (i.e. Alt-Tab
handling)
- Clearing a drawable ignores the clipping restrictions
- Copying using copy missed the last line and column of the
copy.
- Cards with pixel format of 1555 had dim outputs due to
alpha=0
- Back buffer wasn't destroyed on exiting windowed
application. (Harmless, but yet)
- .X file loader had problems loading objects built from
several meshes, placed using frame matrix
What's New in Version 0.12b
- Libraries and Source Code for World Management have been
released.
- Utility library for iostream filters has been released.
It includes compression and encryption.
- The 3D modeler has lots of new features.
It can now import from .X .3DS .3D2 files.
Other features are described below.
- 3D Model allows exporting its internal data (Vertices,
Indices, Materials)
- An automated normal calculation for 3D models that have
no normal information.
This is supported in the 3D Modeler to allow offline
fixing of models.
- A polygon reduction algorithm to create different levels
of detail.
This is supported in the 3D Modeler to allow offline LOD
creation.
- A new abstract ProgressMonitor class has been added to
allow monitoring of offline algorithms that take a while.
- A Streaming audio class has been added. It gets its data
from a generic binary istream object.
Corrected Bugs
- The clear method was removed from Bitmap, giving way to
its inherited clear from Drawable.
- Removed dependance on libDS in both ResourceStream and
TextureCache.
This changed the name parameter in some functions from
String to char*
- ResourceStream now returns NULL on file not found,
instead of stream of an empty file.
Whats New in Version 0.11b
- The initConsole function, now returns int, which is zero
for ok, and non-zero to terminate.
- loadXFile now expects a TextureCache object (which can be
NULL)
- A new manual was added to help
learn the usage of the library.
- Loading .WAV files, directly.
- Although texture mapping was supported internally, now
the API is ready for it.
- New bitmap copy interface, to allow any kind of copy (source,
destination and size)
- Ambient Light can now be changed too.
- Version can be retrieved by calling the static Console::getVersion()
- Bitmap transparent color can be changed from its default.
- RGB color/format operations were moved to drawable, and
are available for bitmap as well.
- Mouse pointer can be set to any bitmap.
- ResourceStream supports using direct disk files (for
development process)
- Control of whether a sound buffer is for 3D or not.
Corrected Bugs
- Bitmap copy from the screen was fixed.
- loadXFile now supports .X files provided with the DirectX
SDK, which have some quirks in them (Multiple Meshes, Non-Triangle
Polygons, Insufficient Material Data)