{mosimage}Yes, it's that time again for another maintenance release for those using the stable Dagon (OGRE v1.2) branch. You can find the detailed changelog in the complete version of this post, apart from the usual source updates users of Softimage XSI v5.x should note that an updated exporter is available. Head over to the Downloads Area to grab the new version.
We'll carry on doing these bugfixing releases until the official release of the next major stable branch (Eihort, OGRE v1.4) which is still scheduled for the end of the year. As usual, if you're an experienced developer we encourage you to try out the CVS version (although probably not for production use unless you're feeling brave) if you want to see what you'll be getting, although not officially stable or finished yet it's generally very usable.
Changes since v1.2.3:
- DirectX9:
- Eliminated setting of texture transform to D3D device if
texture transforms are disabled, since D3D texture coordinate
processing will ignore it - If "Full Screen" or "Video Mode" configuration
option missing when creating an auto D3D window, should throw
exception correctly - D3D9RenderSystem::setVertexBufferBinding now dealing with gaps in vertex
buffer bindings correctly, could manifest iteself as problems if
entities created before shadow type picked (generally not recommended
anyway) - Correctly report support for non-POW2 textures in D3D9, and
also detect 'limited' support option which many cards have (no
mips etc). Flag was not used in Ogre since POW2 issues are dealt with
another way but external apps might be checking it. - Fix divide by zero when locking DXT compressed textures
- OpenGL:
- Buffers which had temporary blend copies were not forcibly
destroying those buffer copies when the original was destroyed, leading
to wasted memory that was only recovered when using more general shutdown methods - Full screen antialiasing (FSAA) now supported for Win32/GL even if in 16bpp display mode
- GLSL now correctly populating GL_SAMPLER_2D_RECT and GL_SAMPLER_2D_RECT_SHADOW type uniforms
- Detect FBO depth/stencil formats a little more robustly
- Ensure GLSL programs are properly unbound when the next program bound is a different type
- Check for existence of wglSwapIntervalEXT before trying to use it, fixes crash on very old drivers
- Hardware pixel buffer locking fix – was only downloading
the buffer when locked read-only, now downloads provided the discard
lock option isn't used and the texture was not created write-only - Hardware pixel buffer unlocking optimisation – don't upload the buffer if the original lock mode was read only
- Shadows:
- Should disable fogging explicitly for shadow
receiver pass if using additive texture shadows, since fogging state
might otherwise leak from a previous modulative mode - Fix memory
growth issue with stencil shadows when destroying and recreating
entities – EntityShadowRenderable was creating vertex buffer binding
and vertex declarations itself when they were already being created by VertexData - Materials:
- Material::getNumLodLevels should fall back on first scheme if scheme is not defined for this material
- Fixed incorrect auto gpu program parameters:
inverse_transpose_view_matrix, inverse_transpose_world_matrix
and inverse_transpose_worldview_matrix - Node: Fix missing calls to Node::Listener if user causes transformation derivation to happen earlier than regular Node::update()
- Fix reinitialisation of auto windows after Root::shutdown
- BillboardChain::clearChain should notify index dirty and update bounds.
- RibbonTrail:
- setMaxChainElements, setNumberOfChains should reset all trails to initial state if there have tracked node.
- setNumberOfChains should not allow changing the number of chains to less than number of tracking nodes.
- Overridden clearChain to reset trail to initial state if it has a tracked node.
- Mesh:
- Fixed an assert that would be raised when trying
to lock an already locked buffer when buildTangentVectors is
called on a skeleton animated mesh with no edge list built. - Overlay:
- Fix copying of nested overlay container elements from template
- Fix incorrect static_cast<unsigned> instances in BorderPanelOverlayElement which caused problems with some metrics
- On destruction of a root overlay container, remove from parent overlay to avoid dangling bad reference
- Quaternion: Fixed shortest path slerp bug, also use
lerp rather than just return first quaternion in case two quaternions
are very close. - OctreeSceneManager: detect mOctree deletion during
shutdown if callbacks from nodes being destroyed hit
OctreeSceneManager methods, fixes some rare shutdown issues - TerrainSceneManager: Fix terrain reloading problems (setWorldGeometry called more than once)
- Pass: dirty pass hashes immediately on change rather than on
load. If pass is loaded on demand as part of queueing an object
for rendering, and the pass had previously been rendered, the pass
hash would be dirtied too late for it to be corrected (since the hash
is recalculated when the queue is cleared, which has already
happened), leading to a hash discrepancy - Fix small memory growth issue when destroying and recreating StaticGeometry and ManualObject
- PixelFormat: PF_UNKNOWN should be marked as inaccessible from PixelUtil::isAccessible
- Removed MemoryManager::instance() from MemoryManager methods being used inside non-static MemoryManager methods
- Profiler: Init hierarchicalLvl earlier so that it is valid when used by intermediate code
- BillboardSet::mBoundingRadius now initialised correctly
- Normalise result of Vector3::getRotationTo to protect against variations in extreme cases
- MaterialSerializer: Serialise number of mips and alpha-only option on texture_unit 'texture' attributes
- AnimationTrack: Ensure the result for zero-weight and trackless animations is the same, caused incorrect blending if mixed
- HDR compositor scene HDR rendering pass should use "input
none", and suppressed warning that attempt to render queue 5
before 96. - Entity:
- shareSkeletonInstanceWith should not delete sharing prepared temp blend buffers
- Stop sharing skeleton instance during entity destroy and there is only one entity sharing the skeleton
- Don't re-prepare temp blend buffers when stopping sharing skeleton instance, it's unnecessary in this case
- Fix Camera::getCameraToViewportRay so that it deals with custom view / projection matrices properly
- XSI Exporter: Fix a pose animation bug where the start of
a pose animation was truncated to fit to a later animation and
incorrectly indexed - Code::Blocks:
- allow MinGW to use mem pipe instead of temp files to speedup build process
- added missing Demo_Ocean project file for CB + MinGW
- Documentation updates