| *NEW*  M3blitTexture16( ):
- Accepted texture dimensions that require no stretching are: 64, 128, 256, 512 and 1024.
- Optimized stretching and pure blitting: up to 25% performance saving. |
| _MX3renderEx( ) and all other rendering functions:
These functions are now able to detect Sprites. Returned data, when possible, include Mesh, Material and Integer distance between Sprite and Camera (not the z data as described in Rendering documentation).
Note: Have a look at the New Functions for Sprite detection. |
| M3textureGetType( ), M3textureSetType( ), M3textureSetGeneralDefaultType( ), M3textureGetGeneralDefaultType( ) and M3createTexture( ):
All these functions now accept texture distance filtering parameters ranging from 0 to 3 (instead of values 0 - in fact 1 - or 2).
Note: For upward compatibility, open the Dms/3d/C3d3/C3d3EngineExtension and modify the '0' parameter of the first function to '1'.
Note: M3filter( ), which is applied on Bitmaps, hasn't been updated regarding this kind of OpenGL hardware filter.
Note: Basic texture filtering, i.e. M3createTexture( ), accepts a new additional 'On' filter, with n ranging from 0 to3 being the OpenGL texture distance filtering. |
| For VM developers only: I introduced a ZBLG_ObjSpr class and modified many functions to implement clickable Sprites. Have a look at the _blg.txt file related to the ZooEngine (3D) API. |
| _Surface2Surface( ): Optimized. 10% performance saving. |
| *NEW*  Implementation of Windows Registry Access functions:
General notes:
- Registry access is limited to HKEY_LOCAL_MACHINE\SOFTWARE\Scol-Technologies\ and below.
- All access paths are relative to this registry key.
- Note that management of Values is accepted directly at the above Scol root Key (relative path coded as "").
But we recommend you to create your own personal/application SubKeys and to work with your own Values in these SubKeys.
- For Windows compatibility issues, we recommend to limit the size of Key or Value names to 255 characters, and the content of Values to 2048 characters. This last limit is hardcoded. As explained in MSDN, bigger content should be stored in files and the file names stored in the registry.
- Most new functions return a I value: 0 if the action was successful, NIL otherwise.
_winreg_createkey [S] I:
parameters: Key name
example: _winreg_createkey "Kyrien\\Scol-Voyager\\Infos\\ToDel\\SubKey";
_winreg_deletekey [S] I:
parameters: Key name
example: _winreg_deletekey "Kyrien\\Scol-Voyager\\Infos\\ToDel";
_winreg_setvalue [S S I S] I:
parameters: Key name, Value name and then Value content (I or S, other one set to NIL)
example: _winreg_setvalue "Kyrien\\Scol-Voyager\\Infos" "INT" 0xffff00 nil;
example: _winreg_setvalue "Kyrien\\Scol-Voyager\\Infos" "STR" nil "0xffffff";
_winreg_getvalue [S S] [I S]:
parameters: Key name, Value name
returns: Tuple if successful, NIL otherwise. The tuple contains the content of the Value (I or S, other tuple member set to NIL)
example: let _winreg_getvalue "Kyrien\\Scol-Voyager\\Infos" "INT" -> val in let val -> [int str] in ...
_winreg_delvalue [S S] I:
parameters: Key name, Value name
example: _winreg_delvalue "Kyrien\\Scol-Voyager\\Infos" "STR";
|
| *NEW*  _isCacheActivated [] I: Returns 1 if Cache is activated, 0 if not. |
| *NEW*  _gettimerscapabilities [] [I I]: Retrieves the minimum and maximum periods accepted by the client system. |
| *NEW*  _settimerperiod [Timer I] I: Dynamically updates a Timer's period. Returns 0 or NIL if problem occured. |
| *NEW*  ftoa5d [F] S, ftoa4d [F] S, ftoa3d [F] S, ftoa2d [F] S and ftoa1d [F] S: As ftoa( ) but with chosen precision (number of digits behind '.') and no rounding up for last digit. |
| _fooId [I] S: As _fooI( ) but with decimal output. The output is limited to 9 characters (not including '-' sign) as for other _foo( ) functions. |
| *NEW*  M3setSpriteClickability[S3d H3d I] I: Sets Sprite clickability: 0 if not clickable (default status), 1 (or any other value different from 0) if clickable. |
| *NEW*  M3getSpriteClickability[S3d H3d] I: Returns 0 if the Sprite isn't clickable, 1 if it is. |
| *NEW*  M3isExtensionSupported[S] I: Allows you to check if an OpenGL Extension is available or not on client. Returns 0 or 1 if the extension is available. |
| M3getTextureSize[S3d HTx3d] [I I]: Returns the dimensions of a stored texture (not the ones from the original bitmap). |
| _BlendBitmap2Surface[ObjSurface I I ObjBitmap I I I I I I] ObjSurface: As _Bitmap2Surface, but a transparency factor (Last and added parameter: 0-255) is applied to the blitted bitmap. Note: The "former" (100%) transparency color parameter is applied too. |
| _BlendSurface2Surface[ObjSurface I I ObjSurface I I I I I I] ObjSurface: As _Surface2Surface, but a transparency factor (Last and added parameter: 0-255) is applied to the blitted surface. Note: The "former" (100%) transparency color parameter is applied too. |
| M3blitSurface2Texture[S3d HTx3d ObjSurface] I: As _Surface2Bitmap( ) followed by M3blitTexture16( ). Performance saving isn't really significant. |
| _CRforcedSurface[Chn I I] ObjSurface: As _CRsurface but without control for existing fullscreen surface. |
| _CRforcedFullscreenSurface[Chn I I] ObjSurface: As _CRfullscreenSurface but without control for existing windowed surfaces. |
| Note: These two functions were adapted for specific and concurrent use, for example with _BlendSurface2Surface( ) in fullscreen mode. Both of them can only be used in hardware rendering mode. However, this seems to bring some rendering problems on different configurations. To use with care or on tested PCs. |