MiniGL V2.5 preliminary documentation -------------------------------- MiniGL is a 3D API which is compatible to OpenGL(tm). It implements a subset of that API and was designed for speed, therefore it directly interfaces with Warp3D. This also means that there is currently no software mode. This release is the second release of MiniGL as a set of shared libraries. There are two such libraries: minigl.library, which is the GL part, and mglut.library, which implements some of the GLUT API. The new shared library interface drops a lot of the original functions (mgl*) in favor of GLUT. Unfortunately, no documentation exists yet. Refer to the glut source code and src/context.c to get an idea on how it works. Installing the Developer files ------------------------------ Simply copy the contents of the SDK directory into SDK:. IMPORTANT: Anyone with MiniGL 1.5.1 or lower developer files in their SDK *must* delete the old files from their SDK first. These can be found in the local/clib2 and local/newlib directories. In particular, delete the header files contained within these directories. Changes in V2.5 --------------- - Fixed the graphics corruption problems introduced in V2.4 - LodePaint's momentary freezes eliminated Changes in V2.4 --------------- - Implemented a faster square-root function using the frsqrte (get faster performance in some cases) - Implemented a reciprocal square-root using the frsqrte assembly code (another small performance boost) - A few other optimizations Changes in V2.3 --------------- - Fixed a bug in display lists for draw elements (cause trouble with the Blender Game Engine) - Line drawing with shade mode GL_FLAT was ignoring the colours. Fixed. - Fixed a bug that would reset GL_TEXTURE_ENV_MODE to GL_MODULATE when a new texture is created and bound (caused trouble for Torque Game Engine) - Fixed a bug in GL_POLYGON rendering that occurred when polygon offset fill was enabled - The MiniGL Watchdog thread now only uses 16 KiB stack (or whatever is set as the minimum in DOS prefs) instead of the same amount of stack that the main process has - The read-buffer was set to GL_FRONT every time, whereas it should be GL_BACK for double-buffered displays Changes in V2.2 --------------- - Added support for 1D textures - Added cel-shading demo (NeHe lesson 37) as a demo of 1D texture use - Implemented spotlights support - Added spots demo (demonstrates spotlights) - Added glGetPointerv() - Add improved support for applications that want to provide their own bitmaps for rendering to, incuding the option of callback function to allow the app to know when the display needs updating - Fix alignment loop bug in displaylists where the number of elements was odd and data type was GL_UNSIGNED_BYTE - Fix to infinite loop bug in select mode and DrawTriangles - Added AltiVec support to vertex transformation and matrix multiplication AltiVec pipeline can be disable by setting ENV:MiniGl/UseVectorUnit to '0' or 'off' - GlCopyPixels() has a special fast routine when depth-testing is disabled and no colour scaling/bias is being used - Fixed a deadlock condition in glCopyPixels() - It was still possible to overflow the vertex buffer; fixed. - Fixed a bug in glRasterPos##() that occurred when w != 1.0 - GlutMotionFunc() hook wasn't called when the mouse was close to the right and bottom borders of the window; fixed. - Fixed possible deadlock conditions with the smartlock. - Fixed a bug in quad rendering code that caused missing polygons - Fixed a GL selection bug; rendering of triangle primitives would result in triangles being rendered instead of being added to the selection list - Added a stack cookie to the trim demo so that it no longer crashes if the default stack size is too small - GlBitmap() was ignoring GL_UNPACK_ROW_LENGTH; fixed. - Fixed the lighting bug that caused planet tinting in Celestia when text overlay was enabled (e.g., when labels were enabled)' - Fixed the issues with altivec code and non-altivec machines - More bug fixes Changes in V2.1 --------------- - Fixed the bug in the MiniGL watchdog task. GL screensavers should no longer freeze. - Fixed a problem that occurred when vertex arrays were included in a display list - Fixed a bug in rendering huge vertex arrays - Fixed rendering of line strips and line loops. No more spurious extra lines (e.g. Celestia, GLBoxed blanker and the Dr. Fungi demo) - Lots of other bug fixes - Added pop up requesters informing users of problems (e.g., wrong MiniGL.library version) - Added stack cookies to demos using GLU NURBS functions in order to ensure that they have enough stack - GLUT now only requests a stencil buffer when applications ask for one - No longer need -DMINIGL defined when compiling OpenGL apps Changes in V2.0 --------------- - Added support for evaluators (glMap*, glEvalCoord*, glMapGrid*, glEvalMesh*, glEvalPoint*) - Added selection support (glListBase(), glNewList(), glInitNames(), glLoadName(), glPushName(), glPopName(), glSelectBuffer(), and glRenderMode()) - Added gluPickMatrix() - Added gluProject()/gluUnProject() - Added glGetDoublev() - Added glIsTexture() - Added glGetTexEnviv() - Added glGetLight*() functions - Added GL_PROXY_TEXTURE support - Fixed some rendering bugs (e.g., a bug causing incorrect lighting for clipped primitives) - Added const qualifiers to improve OpenGL compliance - Mglut.library now has glutKeyboardUpFunc(), glutSpecialUpFunc(), and glutIgnoreKeyRepeat() - Added text functions to Mglut.library (glutBitmap*(), glutStroke*()) - Added glPushClientAttrib()/glPopClientAttrib() - Added glDrawPixels() - Added game mode to mglut.library - Added glutDeviceGet(), glutLayerGet(), glutGetModifiers(), glutSetOptions() and expanded the number of attributes supported by glutGet() - Added glut geometry rendering functions including the teapot functions - Added glut overlay function stubs for completeness (overlay is not actually supported) - Added glGetMaterial*() - Added the complete set of glNormal*() functions - Added glGetTexImage - Added full set of glPixelStore modes, as well as glPixelTransfer - Added glutTimerFunc(), glutCloseFunc(), glutWMCloseFunc() - Added glutWarpPointer() - Added glutExtensionSupported(), glutIgnoreKeyRepeat(), glutSetKeyRepeat(), glutKeyUp(), glutSpecialUp(), and glutForceJoystickFunc() (note: no joystick support yet) - Added stubs for glutSetColor(), glutGetColor(), and glutCopyColormap() (note: these functions really don't make sense