SCOL/ZooSCOL.cpp: ***************** v4.6a1 050529: M3filter(): Multiple fixes (Full size filtering, misc. filters fixes). 050529: Surface2Bitmap(): Fixed a bug about the offset compute (32Bytes Surface data packs handling). 050626: M3filter(): Modified some filters again. Although this is not coherent regarding the language documentation, this brings the proper result regarding former implementations. Main problem is color implementation: bgr instead of rgb, mainly because this is how the ColorMap API handles colors and that this API is used multiple times in modules, like in C3D3... 050803: M3shiftTextureXY(): Removed verification of X & Y values so that they no more be compared to NIL (which is defined as -1). Values of -1 are thus now usable with this function. Note: using nil values in the function will produce same effect as -1 values. Note: There's no need to modify M3shiftTextureXYF() as this function uses OpenGL values (range 0.0 -> 1.0). And values like -1.0 thus represent unuseful 100% shifts. 050820: _BlendBitmap2Surface(): As _Bitmap2Surface, but a transparency factor is applied to the blitted bitmap. _BlendBitmap2Surface surface xs ys bitmap xb yb wb hb transparency_color transparency_factor 050821: _CRforcedSurface(): As _CRsurface but without control for _CRfullscreenSurface. 050821: _CRforcedFullscreenSurface(): As _CRfullscreenSurface but without control for _CRsurface. 050821: _BlendSurface2Surface(): As _Surface2Surface but a transparency factor is applied to the blitted surface. _BlendSurface2Surface surfaceD xd yd surfaceS xs ys ws hs transparency_color transparency_factor 050822: M3getTextureSize(): Returns the current size of the texture (potentially stretched, not necessarily the original bitmap size) M3getTextureSize session texture 050825: M3blitSurface2Texture(): Unfortunately, this function doesn't prove to bring some performance improvement compared to _Surface2Bitmap & M3blitTexture16. M3blitSurface2Texture session texture surface v4.6a2 050911: M3textureGetType(): Modified OpenGL filter: TF_NONE, TF_LINEAR, TF_BILINEAR, TF_TRILINEAR M3textureSetType(): Modified OpenGL filter. M3textureSetGeneralDefaultType(): Modified OpenGL filter. M3textureGetGeneralDefaultType(): M3textureGetGeneralDefaultType session 050912: M3isExtensionSupported(): M3isExtensionSupported[S] I Parameter: OpenGL extension Returns: 0 or 1 if extension is available. 050913: M3filter(): Counter increment for "O'n'" filter. cf ZooTexture.cpp 050917: M3blitTexture16() Fixed a bug about the offset compute (32Bytes Bitmap data packs handling). 050917: _BlendBitmap2Surface(): The function has been modified and now includes a new parameter which allow you to set a transparency factor (0->255) to the transparency color. Note that, as with many other Scol functions, the transparency color is in BGR format. _BlendBitmap2Surface surface xs ys bitmap xb yb wb hb transparency_color transparency_color_factor transparency_factor 050917: _BlendSurface2Surface(): The function has been modified and now includes a new parameter which allow you to set a transparency factor (0->255) to the transparency color. Note that, as with many other Scol functions, the transparency color is in BGR format. _BlendBitmap2Surface surface xs ys bitmap xb yb wb hb transparency_color transparency_color_factor transparency_factor 050924: _MX3renderEx() and all other rendering functions Modified for clickable Sprites. In case of clicked Sprite, returns H3d, HMat3d & Integer distance between camera and object (not z) 050924: M3setSpriteClickability() Sets the clickable property of a Sprite. flag = 0: Not clickable (Défault value) Other flag value: Clickable M3setSpriteClickability s3d h3d flag 050924: M3getSpriteClickability() Returns the current clickable property of a Sprite: 0 if not clickable, 1 if clickable M3getSpriteClickability s3d h3d v4.6a4 051120: M3blitTexture16() Math part of the Blit has been translated & optimized in Assembler. Performance gain (with StretchImageModif) is 25%: with a 2021x255 texture -> 1024x256. Acceptable texture sizes have been limited (min 64 as per OpenGL 1.4) and increased to 1024. v4.6a5 070209: M3filter() Modified function to ensure 32bits bitmap data alignment (thus avoiding some crashes). 070213: M3shiftTextureBisXY() M3shiftTextureBisXYF() New functions. Same as M3shiftTextureXY() and M3shiftTextureXYF(), but working on TextureBis. v5.21 $MS Shininess M3setMaterialShininess() Params: S3d HMat3d I (0-100) Return: I Always 0 M3getMaterialShininess() Params: S3d HMat3d Return: I (0-100) $MS Anti-aliasing M3multiSamplingSupported() Check if multisampling is supported Params: S3d Return: [I I] (0-Not Supported, 1-Supported) (Number of passes) M3enableMultiSampling() Params: S3d Return: I 0-Error, 1-OK M3disableMultiSampling() Params: S3d Return: I 0-Error, 1-OK $MS Bones - These functions are subject to changes M3loadAnimationWithSKL() Loads and attach an anim to a skeleton Params: S3d S(filepath) H3d(SKL) Return: I Always 0 M3attachMeshWithSKL() Attach mesh to skeleton (Main bone is currently brother of mesh) Params: S3d H3d(Mesh) H3d(SKL) Return: I Always 0 M3setSKLAnimKey() Set skeleton's anim key Params: S3d H3d(SKL) H3d(Mesh) I(Frame) Return: I Always 0 M3shaderIsEnable() Check if avatars' shader can be enabled or not Params: S3d Return: I 0-No, 1-Yes $MS M3getH3dType() Retrieves an H3d object type Params: S3d H3d Return: I Object type 0 - OBJ_TYP_ID Mesh 1 - CAM_TYP_ID Camera 2 - LGH_TYP_ID Light 3 - SHL_TYP_ID Shell 4 - COL_TYP_ID Collision (OBB) 5 - SPR_TYP_ID Sprite 6 - ANI_TYP_ID Animation 7 - PCL_TYP_ID Particle 8 - SND_TYP_ID Sound 9 - BON_TYP_ID Bone 10 - MAX_NODE_SCENE v5.23 080402: M3topoScale() Fixed a crashing bug. v5.24 080406: CreateWinInfoTest() & CreateMainContext() Fixed Pixel Format choice. 080406: _SDRAWtext() Modified (no more functional) function so that it works again properly, taking into account new Pixel Format setting as well as TrueType fonts. 080406: _SDRAWcircle(), _SDRAWline(), _SDRAWpoly(), _SDRAWrectangle() Fixed all functions. All _SDRAWxxx functions use RGB color format, per as _SDRAWtext(), the sole former function that could be used before the fixes. v5.2.06 080429: _SDRAWtext() Fixed scaling problem. v5.3.01 080610: _SDRAWpoint() New function. Draws a point on surface. fun [ObjSurface I I I] ObjSurface Params: Surface x y rgbColor Return: Surface 080617: _SDRAWcircle() Optimized. x4 performance gain. 080617: _SDRAWcircle(), _SDRAWline(), _SDRAWpoly(), _SDRAWrectangle() Fixed all functions for their DRAW_INVISIBLE capabilities. 080617: Bitmap2Surface(), BlendBitmap2Surface(), Surface2Bitmap(), Surface2Surface(), BlendSurface2Surface() Fixed wrong offset computation for out of window blitted surface. Datas/ZooTexture.cpp: ********************* v4.6a1 050626: CreateModifiedImg(): Applying filters to textures 'A' filter: same modifications than M3filter v4.6a2 050912: SetTextureFilter(): Modified OpenGL filter: TF_NONE, TF_LINEAR, TF_BILINEAR, TF_TRILINEAR 050913: CreateModifiedImg(): Added "O'n'" filter, for OpenGL filter Note: This is not implemented in M3Filter(), although there is some counter increment if this code is encountered. 050915: BLG_SetTextureFilter() & BLG_SetupTexture() [Modifications in Datas/ZooTexture.h too] Compatibility between OpenGL filters and Scol filters. 050917: StretchImageModif() Textures' dimensions set to OpenGLv1.4 Slight optimization. 051120: StretchImageModif() Math part of the Stretch has been translated & optimized in Assembler. Performance gain (with M3blitTexture16) is 25%: with a 2021x255 texture -> 1024x256. Acceptable texture sizes have been limited (min 64 as per OpenGL 1.4) and increased to 1024. v4.6a5 061113: StretchImage() Textures' dimensions set to OpenGLv1.4, when the textures are initially created. Basic/ZooWorld.h: ***************** v4.6a2 050921: BLG_GetAmbientLight() declaration cf .cpp file below v4.6a3 051016: BLG_GetAmbientLight(). Removed. Brought more problems than solutions, especially with ColorLights. Basic/ZooWorld.cpp: ******************* v4.6a2 050921: BLG_GetAmbientLght() added (This is not a Scol function) 050921: RenderObjectPassTransp() Function has been modified to handle LT material simultaneous properties. This may require to fix existing T parameters to higher values. This works only for ambient lights. 050924: ZBLG_ObjSpr() & ~ZBLG_ObjSpr() Constructor & Destructor for ZBLG_ObjSpr class, used to allow Objects and Sprites detection (Only Objects were detected before that) BLG_TestSprObject() As TestObject(), but dedicated to Sprites detection SelectionTest() Function modified to allow Objects as well as Sprites detection. Note: For all these points, Basic/ZooWorld.h has been modified too. The ZBLG_ObjSpr class is described in this file. v4.6a3 051016: RenderObjectPassTransp() Removed changes from v4.6a2. Brought more problems than solutions, especially with ColorLights. Basic/ZooScene.cpp: ******************* v4.6a2 050924: DisplayInfos() Modified for clickable Sprites 050924: Getinfo() Modified for clickable Sprites ZooScene.h modified too Scene Graph/ZooSprite.cpp: ************************** v4.6a2 050924: ZSprite class constructor modified to allow Sprites detection in 3D. ZooSprite.h (ZSprite class) has been modified accordingly. Scene Graph/ZooParticle.cpp: **************************** v4.6a5 060215: ZEmitter::Render() Removed one(2) code line (Mul x NULL matrix): 5% CPU sparing ZEmitter::RenderAdditive Removed some lines here too Basic/ZooDetect.cpp ******************* v5.21 $MS ZDetector::WGLisExtensionSupported() Added Retrieves the list of supported GL extensions. $MS ZDetector::GetOSVersion() Modified Disables anti-aliasing on Vista Loaders/M3D/ZooM3D.cpp ********************** v5.21 $MS M3Dloadvrt() Modified Added possibility to read bone ID and associated weight (bon name is present but is not read) $MS M3DrecursObj() Modified Added skeletbone and bone items $MS M3DloadBone() Added $MS M3DloadSkelet() Added Will be modified $MS GetBoneByID() Added Scene Graph/ZooAnim.cpp *********************** v5.21 $MS putAnimBoneKey() Added Same as putAnimKey, but applied to Bones Scene Graph/ZooBone.cpp *********************** v5.21 $MS new file Bone class Datas/ZooMaterial.cpp ********************* v5.21 $MS ZMaterial::SetShininess() Added Scene Graph/ZooObject.cpp ************************* v5.21 $MS ZObject::SetskinningShader() Added Activates the avatars' shader ZObject::DestroySkinningShader() Added ZObject::ShaderPass() Added Will be renamed as ZObject::ShaderSkinningPass()