{mosimage}Yes, the stable ‘Eihort’ branch of OGRE has had another maintenance release today, in the form of version 1.4.5. As usual there are a number of non-interface breaking changes and bugfixes an all users of the stable version are advised to upgrade as soon as possible. Full details of the precise fixes included are made available in the full detail of this post.

Of particular interest in this release is a change to the Mac OS X build structure, both in the source release and the SDK. We no longer require you to install any frameworks in /Library/Frameworks and indeed our samples now embed dependencies inside the .app structure, to allow the applications to be deployed as a drag & drop solution as is more common on OS X. If you’re on OS X please take note of these changes and remove Ogre.framework any of our dependency frameworks from your /Library/Frameworks folder. If you’re using the source release, there is a new dependencies download for OS X so please ensure you download that for use with the 1.4.5 source release.

Head over to the downloads area to get the release.

Changes since 1.4.4:

  • D3D:
    • Fix checking of capabilities in D3D when selecting non-default device
    • Fix HLSL preprocessor_defines in edge cases such as ending string with a ‘;’ and empty clauses
  • GL:
    • Ensure that GL RTTs generate a unique render target name in all cases, don’t make it deterministic based on the texture name. This resolves an issue when if you removed a RTT but did not cause it to be destroyed, then created a new RTT with the same name, the render targets would have the same name and there would be issues with destroying them.
    • Fix isFullScreen reporting in GLXWindow (was using own member variable)
  • OS X:
    • Frameworks reorganisation – now we default to embedding all frameworks in the .app to support drag & drop install of applications in the traditional OS X way
    • No longer expect frameworks in /Library/Frameworks, and don’t copy Ogre.framework there after building – link dependency frameworks from Dependencies/ now (deps archive reorganised)
    • After building all samples, symlink all frameworks into Foo.app/Contents/Frameworks. This means we don’t have to duplicate them but the app is still self-contained. Real apps would genuinely copy of course.
    • Enable stripping on release builds to see if that makes them smaller
    • Fix SDK sample project so it only tries to build the included architecture.
    • Specify a local PCH directory rather than the default shared directory, which causes problems if you use multiple branches of the same project.
  • Linux:
    • Fix "make distclean" problems
  • Fix for random crashing in some cases when using /fp:fast and certain combinations of renderer / debug & release settings
  • Prevent an std::advance overrun in SceneManager::renderSingleObject when using start_light, and max_simultaneous_lights would run off the end of the light list.
  • When using additive stencil shadows, the ‘only for light type’ pass iteration option was not being respected. Every iteration once_per_light pass was being executed no matter what.
  • Fix problem with light_direction_object_space when using non-uniform scaling.
  • All light_direction_* auto params now have 0 in the w component to make them safe to transform in shaders by 4×4 matrices with translations
  • In focused texture shadow camera setups (e.g. uniform focused or LiSPSM), truncate the scene AABB by the plane formed by the shadow far distance. This allows much tighter focus regions and thus better shadow quality in sprawling scenes.
  • Fix a minor bug where the shadow camera lists were not updated in some variants of destroyCamera
  • Compositor scripts: fix grammar bug that prevented multiple techniques from being defined.
  • Fix to Plane::projectVector in some cases
  • Use std::istringstream in StringConverter::parseUnsignedInt for direct correlation with toString and std::ostringstream outputs. Could cause some problems in other locales with non-symmetric behaviour.
  • Grass demo shader – make grass waving based on UV not absolute Y so people can move the grass if they want
  • Fix segfault when logging a FreeImage error that returns null for FreeImage_GetFormatFromFIF
  • Root::initialisePlugins should iterate in forward order of plugins, not reverse (looks like bad copy & paste from shutdownPlugins)
  • Fix ResourceGroupManager potential deadlock
  • Fix FileHandleDataStream::read, was returning incorrect counts (and is never used in core OGRE, hence why missed)
  • Fixed build when memory manager is turned on (default is off now)
  • Documentation updates