Full details of the contents of the release can be found in the changelog, which is reproduced after the jump. Enjoy!
- OS X
- Fixed skewed screenshots on OS X for windows with odd width
- FreeImage 3.9 – 3.11.0 interoperability fix; detect when FreeImage uses big-endian even on Intel Macs & use the data correctly
- Fix uninitialised mFullScreen in Cocoa window, and expose WINDOW and VIEW custom params as with Carbon
- OpenGL
- GLSL: gracefully handle a link error during binding of parameters, so that we do not abort the render
- OpenGL pixel buffer: download the buffer when lock mode is anything but HBL_DISCARD, and ignore whether the buffer was created as WRITE_ONLY. For consistency with other rendersystems, WRITE_ONLY should only be a hint, and should not prevent the user reading the contents if they choose to. Previously the read buffer would always contain garbage on GL unless you removed the WRITE_ONLY, which was easy to miss because TU_DEFAULT includes it.
- Prevent deletion of an external GL context when using currentGLContext.
- GLSLLinkProgram::activate should not access the vertex program (for attribute mapping) without checking it exists.
- Fixed parentWindowHandle usage for GLX
- Disabling hardware mipmap generation on ATI/Linux as reported faulty
- Enable/disable GL_VERTEX_PROGRAM_POINT_SIZE for point size attenuation when vertex programs available
- Workaround for broken hardware mipmap generation on Intel 915G’s (at least – for the moment disable for all Intel chipsets)
- Identify SiS chipsets and apply same GL automip workaround as for Intel chipsets
- Direct3D
- Fix an edge-case in D3D9 where if _canDynamicTextures returned false, the default pool would still be used even though D3DUSAGE_DYNAMIC wasn’t specified, which doesn’t allow locking. If D3DUSAGE_DYNAMIC could not be specified, then use the managed pool in all cases.
- Safety check before rebinding D3D9 textures after a device restore where user has destroyed render target but not texture.
- D3D9 render texture classes had the wrong update() signature so were not protecting against device lost conditions
- Visual Studio
- Fix for Runtime Check Failures with VC 2003 SP1 with alpha_op_ex
- Allow OGRE to build with VC 2010, use TR1
- Added missing OgreShadowCameraSetupPSSM.h/.cpp in VC 2003 project file
- ILImageCodec segfault fix (for those who choose to use it)
- Fix calculation of bounding radius from AABB in some places
- Fix McGuire style dark cap incompatible with multiple edge groups (stencil shadows)
- Make getCameraPosition, getCameraPositionObjectSpace and LOD camera equivalents consistent with other parameters when using camera relative rendering
- Fix dark cap clipping in stencil shadows in a few edge case conditions
- Fix the use of 2 scene managers with different settings on finite / infinite stencil shadow extrusion
- Fix Light::_getFrustumClipVolumes(…) numerical instability if infinite camera’s far clip plane is used, causing light flickering if light is near camera’s side frustum plane.
- Should propagate material scheme from primary viewport to shadow viewports so that caster/receiver materials are consistent with materials chosen for main view
- SceneManager should restore mCurrentViewport after rendering the shadow textures
- ConvexBody: only process finite AABBs (ignore null & infinite)
- Fix AABB when using BillboardSet with world coordinates and a transformed parent node
- Fix 2 typos in scripts where vertex_program should be fragment_program
- Fixed a few warnings
- GpuProgramUsage::setProgramName – check the type of the program assigned matches the type of usage it’s assigned to (make copy/paste errors in scripts easier to diagnose)
- Don’t pull the AABB out of an unloaded or half-loaded Mesh – if the Mesh is being background loaded, it’s possible the AABB could be half-populated and invalid.
- AnimableValue should handle DEGREE and RADIAN types (gcc warned about this)
- Early-out optimisations to setMaterialName methods, to reduce their cost if the same material name is used
- Fix blended scene animation (previously, only one animation would successfully apply, now they can be blended)
- Fix write overflow in GPU parameters when using a (physically) 3×4 matrix – this could occur even if the param was declared as 4×4 but cast to 3×3.
- TextureUnit’s rarely-used constructor wasn’t initialising everything
- Fixed calling Root::loadPlugin twice for the same plugin caused a crash at shutdown (and also double-calling of init function)
- Return default value properly from ConfigFile::getSetting
- Fix license statement on Fresnel demo code – all samples are supposed to be public domain / free use.
- SceneManager should destroy its own shadow textures on destruction
Fix problems with gui sample files schema validation when using Xerces Fix to fog_override parsing when using options other than ‘none’