Another six months have passed, and it’s time for another maintenance release to the 1.7 stable branch (codenamed ‘Cthugha’). You can find a list of all the bug fixes after the jump. As usual there are no feature changes or API breakage in this release – we save those for the unstable development branch – which of course you can grab from Mercurial if you want to join us on the bleeding edge.

So far the source releases are ready for download for 1.7.3, the SDK releases are coming soon. If you don’t want to wait, give the source release a try 🙂

Changes since 1.7.2:

  • iOS: Remove the animation timer. Since DisplayLink is used by default now, this only hurts performance of things like input.
  • Some small changes to ensure that the terrain and paging libs are added to linker flags for SDK sample builds.
  • Consider weight when scaling in AnimationTracks
  • Only allow to set custom render capabilities before RenderSystem is fully created
  • iOS: Fix to prevent absolute paths from being inserted into resources.cfg for iOS to fix running the sample browser on devices.
  • OS X: The Cocoa view has no use inside the main library. Moving into the GL Rendersystem where it is actually used.
  • OS X: Disabling CoreGraphics error checking by default
  • OS X: 64 bit Cocoa support. New dependencies are also available to download. Fixed a few uninitialized variables along the way. Also updated GLEW to the same version as in default, the older version had some Apple specific bugs that needed to be resolved.
  • Several fixes for the Xcode templates such as: file permissions for the installer, iOS device orientation.
  • Adding Cocoa window event handling. Plus several other fixes for parameter parsing and other things. Thanks to jdiogo for finding the bugs.
  • OS X: Build fix when targeting 10.5 or earlier.
  • OS X: A few fixes for Cocoa windowing. Now plays nicer with externally created windows.
  • Clean up several warnings(hidden local variables, unused functions)
  • iOS: Fix orientation change support. Use UISupportedInterfaceOrientations in your apps info property list to restrict which orientations are supported by your application.
  • Fix a couple comment typos
  • GLES: Disable ENABLE_GL_CHECK, again.
  • GLES: Fix for images with custom mipmaps. The dimensions were never being reduced for each mipmap level. As a side effect, memory usage is also reduced.
  • iOS: IOKit isn’t needed at all and causes link errors with iOS 4.2.
  • Separate out all the OS X and iOS specific code from SampleBrowser.cpp. It was getting a bit unruly and difficult to maintain
  • iOS: Improve orientation support. Separate EAGLView into its own files.
  • iOS: Several fixes to the Xcode templates regarding viewport orientation and some cleanup for readability.
  • Patch 3116577: Plane equality operators. Also cleaned up some documentation.
  • Fix a catch-22 that prevented OGRE_BUILD_PLATFORM_IPHONE from showing up in CMake-Gui.
  • Fixed an incorrect error message in the Terrain component.
  • Do not offer the Carbon API option in 64-bit Mac builds and default to Cocoa
  • Allow the retrieval of NSOpenGLContext and NSOpenGLPixelFormat easily in OSXCocoaWindow
  • Specify the NSOpenGLFPAScreenMask to resolve ambiguity in the pixel format on multiple display systems
  • In OSXCocoaWindow::createWindowFromExternal, don’t force the window to be made key and ordered in front. As an external window, the calling application should have full control over window behaviour.
  • When creating an external window in Cocoa, don’t centre the window (app should be in charge of that)
    Also don’t mess with the first responder.
  • Fix using multiple Cocoa windows with Ogre.
    Previously the window delegate was incorrectly listening in on the events of *every* window, not just the one containing Ogre. This meant if the application had more than one window (Ogre or otherwise), the Ogre windows would get confused with all the events from different windows.
    Fix this by making sure each delegate only attaches to the NSNotifications of the specific window it’s concerned with.
  • Support getCustomAttribute() on Texture, only GL extracts anything interesting so far but more can be added
    This is pretty much essential if you want to get to internal API data for resource sharing without down-casting, which itself requires otherwise unnecessary linking to plugins. It’s why we’ve offered this for RenderWindow etc in the past, I’m not sure why it’s never been done for Texture.
    Also support retrieving the FBO ids directly from render targets on GL (already allowed retrieval of FBO struct but again that requires linking)
  • Added support for spotlight_viewproj_matrix_array GPU parameter
  • Changed DataStream::getAsString and MemoryDataStream constructors to deal with streams of unknown size
  • [Papercut] Add destroyRenderTarget function to Ogre::Root
  • Fix a problem with using some of the lower-level renderable callbacks such as RenderObjectListener to alter shader parameter state – mGpuParamsDirty would not be updated to reflect this and as such things like manual param variances within light iteration loops would not be propagated.
    Allow user to mark GPU params dirty themselves to resolve this.
  • iOS: Rework some of the sample browser code to shut down properly on iOS
  • GLES: Use the correct GL type for BGRA textures
  • OS X: Use correct pixel format attribute name for specifying FSAA in Carbon windows.
  • GL: Only bind up to the max supported number of render targets since not all implementations support 8. This prevents a few OpenGL errors.
  • iOS: Clean up the FSAA/framebuffer code in swapBuffers. This should resolve issues on iOS 4.1 that have been reported. Bug #384
  • iOS: Don’t search for X11 if building for iOS. I’m surprised that this hasn’t been found until now. Apparently most devs have the X11 package installed.
  • iOS: 2 fixes. The compiler should be g++ instead of gcc and switching the architecture to build for both armv6 and armv7.
  • OS X: A few CMake fixes to ease building for universal libraries. Upping the minimum OS to 10.5(it’s required for x86_64). Also updating the list of Boost versions to be current.
  • Don’t apply visibility settings to statically built samples. Fixes linking problems with Xcode 4 and iOS. (Backporting to 1.7)
  • Remove a GL ES 2 reference in the 1.7 branch
  • iOS: The meaning of ARCHS_UNIVERSAL_IPHONE_OS changed in Xcode at some point to just armv7. Changing it to Standard will compile for both armv6 and armv7.
  • OS X: A few small tweaks for Cocoa windows. Clearing the framebuffer right away, fixing multisampling for example
  • iOS: Let’s pretend that the iOS simulator doesn’t have SSE. (Works around a Xcode 4 bug)
  • OS X: Add support for 8 FSAA samples
  • Update the boost versions to look for.
  • Patch 3153910 – Fix a typo in MovableObject::setRenderQueueGroupAndPriority. Render queue priority should be set to the priority argument, not the queue ID.
  • Patch 3221772 – iOS: Fixed bug in setting up the viewport if the lower-left corner is not 0,0.
  • RTSS: Fix the “Disco” effect in the Shader Sample on OS X. Thanks to Wolfmanfx!
  • Fix a documentation spelling error in 2 places
  • Patch 3046729 – Improvements on previous ProgressiveMesh patch. “Sometimes it seems to be actually desired to list itself as neighbor, so instead of denying this, we rather make the loop in ProgressiveMesh::PMTriangle::notifyRemoved more robust to these edge conditions.”
  • GLES: Fix using PVR textures
  • OS X: Fix a crash when switching between windowed and full screen when using the Cocoa interface.
  • Bug #397: Fix the build with some versions of GCC.
  • [Papercut] Image getColourAt parameters should be type size_t, not int
  • 373 – [Papercut] Image has getColourAt but not setColourAt
  • Bug 409 – System freezes in GLPixelUtil::getMaxMipmaps when width or height is 0. Bug was reported for GL but could affect GL ES as well.
  • Reformat a little text in an exception so that it follows the format used elsewhere.
  • Bug 374 – [Papercut] PixelBox should have getColourAt and setColourAt
  • Bug 365 – [Papercut] void BillBoardSet::setMaterial (const MaterialPtr &material) is missing
  • Bug 340 – Viewport::clear() saves and re-sets the previous Viewport, even if that Viewport has since been deleted
  • Bug 344 – Add utility functions to enable/disable skybox/dome/planes instead of destroying and recreating.
  • Bug 423 – Fix for looking up for texture definitions in very complex compositor setups in getSourceForTex and getTargetForTex
  • iOS: Explicitly specify the release lib paths so that libraries are always installed to the correct places. This fixes the problem of duplicate, single architecture libraries in SDK builds.
  • iOS: Remove -fno-regmove flag to keep Clang from complaining about it.
  • Update the SDK CMakeList template
  • Several updates and fixes for the OS X and iOS SDK build scripts
  • OS X: Fix a long standing issue that often prevented 3 situations: Building with Clang, 64 bit debug builds and linking with Xcode 4.
  • OS X: Add macAPI option to the config dialog
  • Added Gentoo install location for Cg to the FindCg.cmake script
  • Fixed a comment in OgrePixelFormat.h
  • Modified FindTBB.cmake to cope with TBB 3 paths
  • Fixed a build error with GCC 4.6
  • Xcode 4 templates and installer files
  • iOS: Normalize the case of the word Media in scripts. Simplifies a little scripting.