Version History
SceneLib Version 2.405 (01.08.01)
- Bug fixed, that caused a crash when a SceneLib window with SL_BITMAP_BUFFER
got minimized.
- Dutch translation of the SceneLib dialogs (thanks to Ralf Schneider)
- New prize list with EURO currency
SceneLib Version 2.404 (22.12.00)
- Alternative bitmap copy function within the print routine should fix the
problem with older or incomplete printer device drivers (thanks to Ralf
Schneider).
- Performance tuning for writing JPG files in the ImageLib (thanks to Luke
Tomasello).
SceneLib Version 2.403 (9.9.00)
- More detailed error messages when base OpenGL setup routines fail during
printer initialisation.
- Final callback of the registered callback function after the last node has
been rendered. See smCallbackNode
for more info.
- The SceneLib DLL is now compiled with MS VC6 with the linker option /LINK50COMPAT.
This should guarantee backward compatibility with older MS VC++
compilers.
- New SceneLib Source Code
License
SceneLib Version 2.402 (24.8.00)
- New French and Italian resources. Thanks to Emidio Marchese who did the
Italian translation and to Jean-Louis Abraham who provided the French
translation.
- Bug fix in the scene destructor which caused some times an exception in
the seOnDestroy event handler.
- The scene in the page preview dialog is now a static bitmap and not
anymore a rendered scene.
SceneLib Version 2.401 (20.8.00)
- New German language resources for popup menu and all dialogs.
- New function smSetLanguage
allows to set the language from within an application
- No more cancel button the page setup dialog.
- New parameter flag in the function smPrintDialog
allows to pass Win32 flags to the print dialog function.
SceneLib Version 2.400 (15.8.00)
- New printing feature allows to produce scene images in a screen
independent, higher resolution, only depending on your printer's resolution
and available memory. The new page setup dialog offers page preview with
many setting possibilities for the page layout.
- New callback registration functions smCallbackNode
and smCallbackScene
allow to
register callback functions that are called by SceneLib before the rendering
of each node or once before the scene. A node callback function can be used e.g. for
a progress bar in a very large scene that is not anymore renderable in real-time.
A scene callback function can be used to receive information about the
current viewpoint.
- New function smSaveAsDialog
for calling the SaveAs menu feature from within an application.
- No more warning and abort if the graphics card is set to less than 16 bit
color depth (65535 colors).
- New switch SL_FRICTION that allows to turn off the continuous rotation of
the scene after releasing the left mouse button. This switch can be
turned on and off with the functions smEnable
and smDisable.
- No more 3D extruded or bitmapped font creation. The 3D data lists are now
directly generated and hold by the 3D font nodes snTextBMP
and snTextEXT.
Now only the used letters are generated and not anymore a range of letters.
- No more automatic scene refresh after smTranslation,
smRotation,
smLookAt
and smProjectionMode.
Please use smRefreshScene
for a repaint of the scene.
- Texture sizes are again restricted to a size of power of two. This because
I a few users where not happy with the automatically resized textures. Now
you have to resize all texture images before in a image processing
application to a size of power of two, which is the condition of OpenGL.
- Bug fix in View Setting Dialog. The Cancel button works now properly and
resets the previous view settings.
SceneLib Version 2.301 (1.4.00)
- Because my internet provider bought a new server I had to rename my
homepage. I took occasion to register my own domain for marcus software. The SceneLib homepage is
now not anymore under http://www.datacomm.ch/marcus
but http://www.marcus-software.ch/scenelib.
There will be a redirection until August 2000. Sorry for this inconvenience.
- The snAxis
node sets after its drawing the color to white and no anymore to the color
that was active before the snAxis node. On several graphic cards this lead
to a false coloring.
- Bug fix in exMFC and exWin32MDI:
Child windows class registration have now the CS_OWNDC attribute. SceneLib
windows always need their own device context.
SceneLib Version 2.300 (5.12.99)
- New Viewpoint Interpolation for
animated viewpoint changes. Try it in the examples exElevationGrid,
exIndexFaceSet or exColorCube.
A new function smViewpointInt
allows to set mode and frame rate within the program.
- New 2D Coordinate Transformation functions: snTranslate2D,
snRotate2D, snScale2D,
snPushMatrix2D, snPopMatrix2D,
snGroup2D, snGroupEnd2D,
snUse2D.
These functions implement the analogous functionality as you have it in the 3D
scene base on OpenGL. See also the new example ex2DWorldTransform.
- For consistency reason the function smDelGDIObj2D
got renamed into "smDelGDIObj2D"
- Bug fixed in snBitmap2D. A
non-resizable bitmap can now be smaller than the original size.
- Bug fixed in 3D selection mode: SceneLib crashed
when more than one scene uses selection.
- All SceneLib menu IDs are now declared in the
SceneLib.h header file.
- For consistency
reason the functions smLightDialog,
smViewDialog
and smFogDialog
do not the parameter scene anymore. As all other 3D scene manipulation
function they are applied on the current scene.
- The function smUseDisplayList has been removed.
The performance gain was minimal and there were to many problems in
understanding the sense and the consequences of this function.
SceneLib Version 2.201 (10.9.99)
- smCreateTexture
accept now image file that have a size which is not a power of 2.
- The clip near parameter in smProjectionMode
can not be set to zero anymore.
- Bug fix for error messages in SceneLib Window
applications.
- Bug fixed in selection mode when
used together with bitmap rendering.
SceneLib Version 2.200 (1.9.99)
- New Bitmap Rendering Option
allows to render a 3D scene without performance penalty into a device
independent bitmap instead of an OpenGL rendering context. With bitmap
rendering no more flickering will occur when a 3D scene is combined with 2D
(GDI) graphic objects (used in the example ex2DFunctions).
The new option can be applied with the functions swCreateScene
or seOnCreate.
- New Fog
Dialog and function smFog
for comfortable fog setting.
- New snElevationGrid
node with texture mapping. See also the new ElevationGrid
example.
- New snIndexedFaceSet
node with texture mapping. See also the new IndexedFaceSet
example.
- Node selection (object picking) for event driven
applications with event the handler function seOnLButtonDown
that returns a pointer to a sSTATUS struct.
- Projection mode added in the View
Setting Dialog and in the smViewpointAdd
function.
- New event handler function seOnActivate.
- New function smActionSettings
for the modification of keyboard and mouse parameters of the different
action modes.
- New secure credit card order processing with DigiBuy.
- New root class cObject below cNode.
- A more precise exception handling for functions
that expect a window, scene, or texture pointer.
- New Bugs and
Problems page.
- Bug fix
in smLightDialog and smViewDialog.
- Bug fix (memory leak) in snIndexedFaceSet.
- Bug fix (memory leak) in SaveAs BMP.
- Bug fix
in orthogonal projection together with action mode FLY.
SceneLib Version 2.110 (9.7.99)
- New online documentation in the
new Microsoft HTML Help standard. The documentation is not anymore delivered
as a set of a few hundred HTML pages and image files but only as one file:
SceneLib.chm. MS HTML Help starts up a faster than the browsers and provides
index and powerful full text search.
- SceneLib applications do not use the HTML help
anymore but provide a small help for the keyboard mapping, the view and
light dialog. This allows distribution without any additional files beside
the SceneLib DLLs.
- The SceneLib DLL does not require the ImageLib
DLL anymore. All functions that work with bitmaps require a handle to a DIB
(Devise Independent Bitmap). Therefore the the texture creation function
smCreateTexture needs the first parameter a DIB handle and not anymore the
image file name.
- No more GIF support within the ImageLib. Due to
a patent conflict with Unisys Inc. I am not allowed to provide any routines
that include LZW compression algorithms (developed at a university!).
- Corrections in the view setting and light
setting dialog.
- New parameters in smCreateFontEXT
and smCreateFontBMP
for smaller font creation.
- New C++Builder
Component example with a component provided by Juergen Terpe.
- New MFC
example with MDI.
SceneLib Version 2.101 (6.6.99)
- New function smCreateTexture
for texture creation.
- New Sphere
node with partial slice and stack drawing and texture mapping.
- New Cylinder
node with partial slice drawing and texture mapping.
- New Tetragon
node with texture mapping.
- The snDisk node got removed because it was
obsolete. A disk is a cylinder with height=0 and top radius=0 and can be
created with a Cylinder
node.
- New face
mode for face culling with the scene node function snFaceMode
and the scene manipulation function smFaceMode.
This mode is also available in the context menu.
- New buffer
mode for switching between double buffering (drawing to the back buffer
and then swap) and single buffering (drawing only to the front buffer). This
mode is also available in the context menu.
- All other modes are now also available as scene
node functions (snDrawMode,
snShadeMode)
to enable different mode settings for the visible objects (e.g. one sphere
in line draw mode and another in fill draw mode).
- New functions smEnable
and smDisable
replace the snEnable and snDisable. A new constant allows to enable and
disable any submenu in the SceneLib popup menu.
- SceneLib 2.1 contains only one DLL version.
There is no more Borland version. The SceneLib DLL is named SceneLib2v.dll
and is compiled on MSVC++ 5.0 with __stdcall calling convention and a DEF
file. It allows to generate the LIB files for other compilers directly from
the SceneLib2v.dll. The LIB files for Borland compilers (BC++ and C++
Builder) where generated with the Borland tool Implib.exe and are included
in the package.
- All Image functions are now provided in a
separate library called ImageLib:
- The DLL name is ImageLib2v.dll with import
the file ImageLib2v.lib for MS VC++ compiler and ImageLib2b.lib for
Borland compiler (BC++ and C++ Builder).
- The function dibRead
reads now BMP, GIF and new also JPG files.
- The function dibConvertDepth(tINT
from, tINT to, tHANDLE hDIB) replaces the dibXToY color
depth change functions
- The functions dibIsBMPFile and dibIsGIFFile
are obsolete.
- The selection mode is now also available for in
Win32 API applications. The scene event function seOnLButtonDown
returns a pointer to the internal status struct which contains information
on the current view situation and on the selected node.
- With the new function smSelectableNode
you can define a visible 3D node as selectable when the selection mode was
enabled before with smEnable. If a node is defined as selectable a pointing
hand cursor is shown.
- Minor changes and Bug fixes
- Several new graphics to explain 3D
transformations.
- Bug fix
in smLookAt. It works now also for MFC and WinAPI applications.
- Bug fix
in seOnDestroy. It does not call anymore PostQuitMessage that ended the
application.
- Bug fix
in registration for users without registration privilege.
- Precise frames per second (fps) rate.
- Memory leak fixed in snIndexedFaceSet and
snElevationGrid.
SceneLib Version 2.002 26.3.99
- Bug fix in node snCylinder.
SceneLib Version 2.001 3.3.99
SceneLib Version 2.000 1.3.99
- New SceneLib Event functions allows the creation
of windows applications.
- New examples with Win32API, Borland C++ Builder
and Delphi
- New structure of library. Function names with
prefix.
- Restructured online help.
- Function smAddNode replaces SendMGIMsg for
custom node generation
MGI Version 1.630, 17.11.98
- New node ElevationGrid
- IndexedFaceSet with smooth edge algorithm
MGI Version 1.622, 11.10.98
- Bug fix WaitForSceneLib.
- MGI DLL for Borland compilers uses cw3220mt.dll
instead of cw3220.dll.
MGI Version 1.621, 18.9.98
- Bug fix in the GetEvent function.
MGI Version 1.620, 13.9.98
- New Viewpoint features allow to set user defined
viewpoints
- Modification within the action mode ROTATE for
intuitive interaction.
- New functions GetEvent and EventExists to
retrieve Events from the MGI window.
MGI Version 1.606, 28.8.98
- The WALK mode is now also available on the
keyboard
- Smoother FLY mode
- Action Mode can be set now also in the View
Setting Dialog
MGI Version 1.605, 23.8.98
- The function CreateFontEXT got modified and
return a new struct of type sFONT3D
- The function TextEXT creates now a text node of
a specified width and height
- Bug fix
in the Scale node.
- Bug fix
in LookAt function: The rotations where cumulative.
MGI Version 1.604, 20.8.98
- Version number in DLLs is now correct
(mgiv16.dll, mgib16.dll)
- Bug in Setup.exe fixed.
- Bug in Borland resources fixed (menu bugs).
- Function ResetPos does not anymore automatically
refresh the scene.
- Some bugs in the documentation fixed.
- English instead of German error messages in the
Bitmap Function Set
- Additional #defines in mgi.h due to incorrect
gl.h of Borland.
#define GL_BGR_EXT 0x80E0
#define GL_BGRA_EXT 0x80E1
MGI Version 1.603, 10.8.98
- New shareware dialog. No more 60 days limit for
evaluation period.
- The dialog has an progress bar that slows down a
second every 10 days
- Bug fix
in ActionMode FLY.
- Menu item Cull Face got obsolete and removed.
- Optional menu for MGI window is obsolete because
all items are now always available in the context menu (right mouse button).
MGI Version 1.601, 4.8.98
- New Bitmap Objects Bitmap2D and Bitmap.
- New Bitmap Functions Set
- New SaveAs Bitmap feature.
- New Window Style Parameter.
MGI Version 1.51, 10.7.98
- Bug fix that removed flickering in some 2D
applications.
- Function SizeWind sets MGI Window not anymore to
a topmost window.
- Bug in Register Dialog fixed. (20.6.98)
- Bug fixed witch caused to much CPU consumption
(10.7.98)
MGI Version 1.50, 2.6.98
- New MGI Scene Graph.
- Insert 2D and 3D Object.
- Modify Existing 2D and 3D Object at Runtime.
- Using Existing 3D Objects.
- New mode Face Culling.
- New Positioning Function LookAt.
- New Selection Mode returns the pointer of the
selected node.
- New 3D Rotation Mode for mouse and keyboard
interaction.
- New 3D Fly Mode.
- New Functions Enable and Disable.
- New 3D Object IndexedFaceSet.
- New Mode for Drawing 2D Objects Relative to
Current Position.
- New 2D Object PolyBezier2D.
- New 2D Mode ForeMix2D.
- New MGI INI-File.
- New Parameter for MGI Windows to create windows
that are not resizable.
MGI Version 1.06, 16.12.97
- Important bug fix within the
initialization of the MGI thread.
- Additional functions arcs and
pies in the 2D sector.
- Additional function
WaitForEvents
- Bug fix
in function StatusText (28.12.98)
- Bug fix
in function Polygon (15.1.98)
- Bug fix
in function ShowWind and Rectangle2D (25.1.98)
- Polygon2D and Polyline2D store
the point arrays internally (25.1.98)
- Bug fix
in ClearWind2D and ClearWind function (15.2.98)
MGI Version 1.05, 24.11.97
- New registering possibility
within an MGI application.
- New SizeWind function for
resizing an MGI window.
- The Borland DLL cw3220mt.dll
is for Builder C++ users is included in the package.
MGI Version 1.04, 27.10.97
- New HTML manual layout with
frames.
- New 2D node function
Polygon2D.
- New commercial, royalty free
license.
- Bug fix in the paint routine
of the MGI thread causing less CPU consumption.
- Smoother mouse interaction.
MGI Version 1.03, 29.8.97
- Documentation corrections.
MGI Version 1.02, 29.8.97
- A 3D extruded font function
was added.
MGI Version 1.01, 1.8.97
- New 60 Days Try Version.
- Bug fix within the console
commands (Win95).
- Bug fix for correct cursors.
- Rear and front clipping plane
settings in the ViewSetting dialog.
- Some corrections in the
manual.
MGI Version 1.00, 1.5.97