History: GhadamonNotes
Source of version: 37 (current)
Copy to clipboard
Welcome to the ChangeLog and Porting Notes for __OGRE 1.9.0 "Ghadamon"__. {QUOTE(replyto="H.P. Lovecraft")}Ghadamon. A Seed of Azathoth. A bluish-brown, slimy monstrosity riddled with holes, and an occasional malformed head.{QUOTE} {maketoc} !!ChangeLog __Core Improvements__ *OgreMain **Extract the overlays from OgreMain and transform it into a own overlay component **Progressive Mesh improvements and new Mesh LOD sample. **Loads of documentation updates **Added Mesh::mergeAdjacentTexcoords to collapse two adjacent texcoords into one (i.e. float2 texcoord0 & float2 texcoord1 become float4 texcoord0) **According to the documentation, the default SceneManager ambient light should be black, which is wasn't though. **SceneManager: updateSceneGraph should happen BEFORE prepareShadowTextures. **AtomicScalar operators should be returning their value. Only affects using GCC or Clang. **New class ProgressiveMeshGenerator to degenerate mesh detail at runtime. **Bug fix for Sphere::merge. Inaccurate results can occur if one sphere does not fully encompass the other. **New LOD strategies 'distance_box' and 'screen_ratio_pixel_count'. Details, see Ogre Manual. **SharedPtr moved to use atomics (related API change see below in the porting notes). **SubMesh has a new method: clone(const String& newName, Mesh *parentMesh) to perform deep copies of SubMesh objects. The second parameter is optional and can be used to reparent a SubMesh. **Removed Configfile::load(const String& filename, const String& resourceGroup, const String& separators, bool trimWhitespace) because it can easily be ambiguous. If you wish to load from a resource group, use the existing function loadFromResourceSystem. The arguments are identical to the removed function. See OGRE-175. *New Volume Rendering component with LOD. See [SoC2012+Volume+Rendering+with+LOD+aimed+at+terrain|GSoC 2012 Volume Rendering] *Many Terrain improvements.See [SoC2012+Improve+and+Demo+the+Terrain+System|GSoC 2012 Terrain Improvements] *RTSS **Changed error handling of RTSS sub-render state parameter creation. Sub-render state now throws exception on errors **Added 2 new demo samples: multiple lights and textured fog * CgProgramManager ** Added support for high-level output profiles glslv/glslf/glslg and hlslv/hlslf (glslg not fully working yet) __Platform Support__ *Android Port **Remove eclipse based android port **CMake based build support **Create find Ant / NDK packages (currently Ant and the NDK must be in the global path) **Generate android make files for the sample browser **Use android tool chain to compile OGRE as static lib **Cleanup RTSS (Remove OgreStringSerialiser) **Improve platform integration ***Add Android log listener into OgreRoot ***Disable Filesystem- / Zip- / EmbeddedZip- Archives on android ***Resource system improvements ***OgreAPKFileSystemArchive to handle file access inside the APK ***OgreAPKZipArchive so we can handle zip files inside the APK (APK is also compressed using zip) **Improve EGL support ***Create concrete subclasses of EGL-Support/Window/Context ***Handle context creation / configs inside OGRE ***Resource recreation / Handle it like DX device lost / restore ****Add managed resource class which every resource derive from (only active on Android - handled via macros) ****Recreation of Texture, Shader, HardwareVertexBuffer **ETC1 texture codec ***PKM support **Sample browser ***Add touch input support ***Build a APK file via CMake command line ***Add rotation support ***Fix / Enable more samples ****Compositor not working **Improve CPU/ vendor detection **Add how to build it on Linux / OSX / Win32 **Provide pre-compiled dependencies **Fix our dependencies so the can compile against the android tool chain *Windows Metro style application (WinRT) **Add support as a new platform (named WinRT). **Create a WinRT project for the sample browser. **Create a how to compile file. **Get all existing samples to work with the D3D11 render system. ***Multi monitor\device support. *Windows Phone 8 port. *OS X **Add a helper function to get a sandbox friendly temp file name for iOS and OS X. **Other fixes to file handling in response to App Store rules. **Support for building with libc++ on OS X. **Proper example of DisplayLink usage in the SampleBrowser. **Plugins and components are now built as frameworks. **Add escape key as a shortcut for Cancel. Fix crash when hitting cancel as well. __RenderSystems__ *DirectX 11 **Improvements from GSoC project. **Add tessellation shaders support. **Add tessellation sample. **Add dynamic linking support. *DirectX 9Ex support *Added OpenGL 3+ RenderSystem. Still marked as experimental and under heavy development. *OpenGL ES **GLES 2 terrain support. **OpenGL ES state and uniform caches. **Rewrote PVRTC codec, adding cube map, 3D and mipmap support. Only files created with PVRTexTool are supported now, not Apple's texturetool utility. **Experimental OpenGL ES 3.0 support. *GL RenderSystem **GLEW updated to 1.9.0. **Remove restriction that all GLSL programs have the same matrix order when linking. **GLSL binary shader cache now works properly (OGRE-251) __JIRA Tickets__ *Numerous other bug fixes, documentation fixes and updates and general code improvements including, but not limited to the following list: __''To see the complete list, check out this JIRA filter, since we stopped adding the closed tickets here after number #217:''__ [https://ogre3d.atlassian.net/issues/?jql=fixVersion%20in%20%28%221.9.0%22%2C%20%221.9.0%20RC1%22%2C%20%221.9.0%20RC2%22%29%20AND%20status%20in%20%28Resolved%2C%20Closed%29%20ORDER%20BY%20key%20DESC|JIRA - Ogre3D 1.9 fixed issue filter] **[https://ogre3d.atlassian.net/browse/OGRE-2|OGRE-2] - OverlayComponent break linux build **[https://ogre3d.atlassian.net/browse/OGRE-5|OGRE-5] - Hardware gamma corrected textures are not working with Nvidia cards (Windows) **[https://ogre3d.atlassian.net/browse/OGRE-8|OGRE-8] - StringConverter localisation issues **[https://ogre3d.atlassian.net/browse/OGRE-9|OGRE-9] - DFREEIMAGE_LIB prevents dynamic linking to FreeImage **[https://ogre3d.atlassian.net/browse/OGRE-12|OGRE-12] - Lots of PixelFormat are missing corresponding DXGI_FORMAT in D3D10Mappings **[https://ogre3d.atlassian.net/browse/OGRE-14|OGRE-14] - Bad image data for single-channel opacity maps **[https://ogre3d.atlassian.net/browse/OGRE-16|OGRE-16] - Material alpha effect error **[https://ogre3d.atlassian.net/browse/OGRE-18|OGRE-18] - Colurmap image file must have mipmaps to produce colourmap. **[https://ogre3d.atlassian.net/browse/OGRE-19|OGRE-19] - Alternate behavior for DDS cubemap loading **[https://ogre3d.atlassian.net/browse/OGRE-21|OGRE-21] - RenderSystemCapabilitiesCreated event needs to be added to all render systems **[https://ogre3d.atlassian.net/browse/OGRE-28|OGRE-28] - [Papercut] Missing array versions of some light auto parameters **[https://ogre3d.atlassian.net/browse/OGRE-32|OGRE-32] - Bloom + Wireframe Issue **[https://ogre3d.atlassian.net/browse/OGRE-34|OGRE-34] - [Papercut] Website links to dependency package **[https://ogre3d.atlassian.net/browse/OGRE-37|OGRE-37] - shadow_receiver_vertex_program_ref in a material corrupts shadow behaviour for other materials **[https://ogre3d.atlassian.net/browse/OGRE-40|OGRE-40] - Ogre fails to build with TBB on Linux **[https://ogre3d.atlassian.net/browse/OGRE-44|OGRE-44] - Race condition **[https://ogre3d.atlassian.net/browse/OGRE-45|OGRE-45] - Issues with building OGRE from src **[https://ogre3d.atlassian.net/browse/OGRE-46|OGRE-46] - Cubemap with combinedUVW is sampled improperly (ogre 1.8, OpenGL ES 2.0, iOS4.3.3 iPod4) **[https://ogre3d.atlassian.net/browse/OGRE-50|OGRE-50] - Problem with stencil shadows issued from a directional light **[https://ogre3d.atlassian.net/browse/OGRE-53|OGRE-53] - FrameListener and Root::renderOneFrame() confusion **[https://ogre3d.atlassian.net/browse/OGRE-54|OGRE-54] - In D3D9RenderSystem when lost device can not clear viewport. **[https://ogre3d.atlassian.net/browse/OGRE-56|OGRE-56] - MeshSerializerImpl::calcGeometrySize returns incorrect value **[https://ogre3d.atlassian.net/browse/OGRE-59|OGRE-59] - Debian packaging: using system's TinyXML before resorting to in-source copy **[https://ogre3d.atlassian.net/browse/OGRE-60|OGRE-60] - Debian packaging: Allow several versions of OGRE installed at the same time **[https://ogre3d.atlassian.net/browse/OGRE-61|OGRE-61] - Terrain sample, setShadowTextureCasterMaterial is misleading **[https://ogre3d.atlassian.net/browse/OGRE-64|OGRE-64] - Isometric surface sample broken for Mac OpenGL target **[https://ogre3d.atlassian.net/browse/OGRE-65|OGRE-65] - Compositors interact poorly with uses of scene manager visibility flags **[https://ogre3d.atlassian.net/browse/OGRE-67|OGRE-67] - Water sample causes buffer leaks on configuration change **[https://ogre3d.atlassian.net/browse/OGRE-69|OGRE-69] - Scaled SceneNode's getWorldBoundingSphere() incorrect since 1.7 **[https://ogre3d.atlassian.net/browse/OGRE-70|OGRE-70] - OS X: CMake install does not install framework, FindOGRE fails **[https://ogre3d.atlassian.net/browse/OGRE-74|OGRE-74] - Microcode caching broken when using GLSL shaders **[https://ogre3d.atlassian.net/browse/OGRE-75|OGRE-75] - Render system config window crash on linux. **[https://ogre3d.atlassian.net/browse/OGRE-76|OGRE-76] - Please consider using another font for samples **[https://ogre3d.atlassian.net/browse/OGRE-78|OGRE-78] - "receive_shadows off" doesn't work with custom pixel and vertex shaders. **[https://ogre3d.atlassian.net/browse/OGRE-80|OGRE-80] - Setting Pixel Format PF_BYTE_BGRA has no effect in OGRE 1.8.1 **[https://ogre3d.atlassian.net/browse/OGRE-84|OGRE-84] - Make iOS build simulator/device libs to separate locations **[https://ogre3d.atlassian.net/browse/OGRE-87|OGRE-87] - Example framework updates for Overlay Component **[https://ogre3d.atlassian.net/browse/OGRE-88|OGRE-88] - Applications not rendered on android 4.1 (asus eee pad) after system upgrade **[https://ogre3d.atlassian.net/browse/OGRE-90|OGRE-90] - HTML.cfg.in does not handle spaces in directory name (also OUTPUT directory) **[https://ogre3d.atlassian.net/browse/OGRE-91|OGRE-91] - Stack overflow in SceneManager::destroySceneNode **[https://ogre3d.atlassian.net/browse/OGRE-93|OGRE-93] - GCC warning **[https://ogre3d.atlassian.net/browse/OGRE-96|OGRE-96] - Direct3D9 RenderSystem cannot be built when Win8-SDK (or Visual Studio 2012) is installed. **[https://ogre3d.atlassian.net/browse/OGRE-99|OGRE-99] - Little bug in SceneManager::_renderScene **[https://ogre3d.atlassian.net/browse/OGRE-100|OGRE-100] - Switching render systems while a sample is still active crashes the application **[https://ogre3d.atlassian.net/browse/OGRE-101|OGRE-101] - Hitting ESC in the BSP sample does not show the menu **[https://ogre3d.atlassian.net/browse/OGRE-103|OGRE-103] - Some Compositor samples not working with OpenGL **[https://ogre3d.atlassian.net/browse/OGRE-104|OGRE-104] - SSAO Sample doesn't work correctly in OpenGL **[https://ogre3d.atlassian.net/browse/OGRE-105|OGRE-105] - Shader System Sample: Switching to PSSM3 shadows crashes the application **[https://ogre3d.atlassian.net/browse/OGRE-106|OGRE-106] - Multi Light Sample doesn't start because of incorrect assumptions about render device **[https://ogre3d.atlassian.net/browse/OGRE-107|OGRE-107] - Shadows Sample: Crash when switching to LiSPSM **[https://ogre3d.atlassian.net/browse/OGRE-110|OGRE-110] - Material::getReceiveShadows() is ignored **[https://ogre3d.atlassian.net/browse/OGRE-111|OGRE-111] - RenderQueueGroupMap sorting is broken **[https://ogre3d.atlassian.net/browse/OGRE-112|OGRE-112] - Multi Light Sample do not work without CG plugin **[https://ogre3d.atlassian.net/browse/OGRE-117|OGRE-117] - Debug builds of unit tests and samples do not use debug versions of libs **[https://ogre3d.atlassian.net/browse/OGRE-119|OGRE-119] - [Papercut] TBB is broken in VS 2012 **[https://ogre3d.atlassian.net/browse/OGRE-120|OGRE-120] - DirectX9 make fails due changes in include path **[https://ogre3d.atlassian.net/browse/OGRE-121|OGRE-121] - SampleBrowser_d crashes due to uninitialized GpuProgramManager singleton **[https://ogre3d.atlassian.net/browse/OGRE-122|OGRE-122] - Broken compile: OgreWindowEventUtilities.h uses unknown type: RenderWindowList **[https://ogre3d.atlassian.net/browse/OGRE-124|OGRE-124] - Matrix3::QDUDecomposition returns wrong value **[https://ogre3d.atlassian.net/browse/OGRE-125|OGRE-125] - OGRE Root should take absolute paths as well. **[https://ogre3d.atlassian.net/browse/OGRE-128|OGRE-128] - Direct3D9 rendersystem crash on WindowsXP **[https://ogre3d.atlassian.net/browse/OGRE-129|OGRE-129] - Cannot build Ogre using clang with -stdlib=libc++ option on OS X **[https://ogre3d.atlassian.net/browse/OGRE-130|OGRE-130] - Incorrect handling of mip map dimensions in uncompressed DDS **[https://ogre3d.atlassian.net/browse/OGRE-131|OGRE-131] - Compiling error with POCO with thread support 2 on Ubuntu 12.04 **[https://ogre3d.atlassian.net/browse/OGRE-132|OGRE-132] - Missing OgreCommon.h include in 1.9 **[https://ogre3d.atlassian.net/browse/OGRE-133|OGRE-133] - Render subsystem GL3Plus is missing in FindOGRE.cmake **[https://ogre3d.atlassian.net/browse/OGRE-137|OGRE-137] - Letters damage in TextArea with center alignment while font material has no filtering **[https://ogre3d.atlassian.net/browse/OGRE-138|OGRE-138] - Change ResourceManager::getNextHandle() to be lock-free by using atomic counter **[https://ogre3d.atlassian.net/browse/OGRE-139|OGRE-139] - Cannot compile D3D11: Missing simultaneous render target count **[https://ogre3d.atlassian.net/browse/OGRE-140|OGRE-140] - Material errors in SampleBrowser **[https://ogre3d.atlassian.net/browse/OGRE-142|OGRE-142] - OgreHardwareVertexBuffer and many other places use 32-bit floats even when OGRE built to use 64-bit floats **[https://ogre3d.atlassian.net/browse/OGRE-144|OGRE-144] - Mercurial Windows configuration **[https://ogre3d.atlassian.net/browse/OGRE-148|OGRE-148] - Build error in OgreD3D11Texture.h using MinGW **[https://ogre3d.atlassian.net/browse/OGRE-151|OGRE-151] - Startup Crash when using GL3+ on Windows **[https://ogre3d.atlassian.net/browse/OGRE-156|OGRE-156] - ManualObject does not log an error message if the material specified is invalid **[https://ogre3d.atlassian.net/browse/OGRE-162|OGRE-162] - RTSS crashes on update after removing cloned material **[https://ogre3d.atlassian.net/browse/OGRE-167|OGRE-167] - Undeclared variable at OgreGLSLESProgramPipeline.cpp **[https://ogre3d.atlassian.net/browse/OGRE-168|OGRE-168] - Debian packaging: using system's GLEW before resorting to in-source copy **[https://ogre3d.atlassian.net/browse/OGRE-171|OGRE-171] - OpenGL OgreWin32Window.cpp has a dangling pointer **[https://ogre3d.atlassian.net/browse/OGRE-172|OGRE-172] - Optimization suggestion for MinTextureStateChangeHashFunc **[https://ogre3d.atlassian.net/browse/OGRE-174|OGRE-174] - ZLib default dependency on OS X makefile build **[https://ogre3d.atlassian.net/browse/OGRE-177|OGRE-177] - ResourceGroupManager::ResourceGroup public/protected mismatch **[https://ogre3d.atlassian.net/browse/OGRE-179|OGRE-179] - ResourceGroupManager::ResourceGroup::removeFromIndex --- function have bug **[https://ogre3d.atlassian.net/browse/OGRE-180|OGRE-180] - OgreD3D9Plugin.cpp typo in MingW header **[https://ogre3d.atlassian.net/browse/OGRE-181|OGRE-181] - On Linux you can't run SampleBrowser from install dir. **[https://ogre3d.atlassian.net/browse/OGRE-182|OGRE-182] - Resource manager memory budget feature has no effect **[https://ogre3d.atlassian.net/browse/OGRE-184|OGRE-184] - [Papercut] Rename DistanceLodStrategy::getReferenceViewEnabled to isReferenceViewEnabled **[https://ogre3d.atlassian.net/browse/OGRE-185|OGRE-185] - [Papercut] List of inaccuracies and bugs of documentation **[https://ogre3d.atlassian.net/browse/OGRE-186|OGRE-186] - [Papercut] Rename Codec::code to Codec::encode **[https://ogre3d.atlassian.net/browse/OGRE-187|OGRE-187] - [Papercut] Need some more explanations that means "Reference view" in DistanceLodStrategy **[https://ogre3d.atlassian.net/browse/OGRE-190|OGRE-190] - EAGL2Context leaked on iOS **[https://ogre3d.atlassian.net/browse/OGRE-193|OGRE-193] - Unity OpenGL3 Build Fails on Linux **[https://ogre3d.atlassian.net/browse/OGRE-195|OGRE-195] - loadImage for GLES2 Rendersystem changes underlying Image format **[https://ogre3d.atlassian.net/browse/OGRE-196|OGRE-196] - Missing header in DX11 render system **[https://ogre3d.atlassian.net/browse/OGRE-197|OGRE-197] - Terrain component generates wrong number of blend textures **[https://ogre3d.atlassian.net/browse/OGRE-199|OGRE-199] - SampleBrowser segfaults Linux unloading Sample_Volume* **[https://ogre3d.atlassian.net/browse/OGRE-204|OGRE-204] - Improve material LOD distance strategy for flat objects **[https://ogre3d.atlassian.net/browse/OGRE-210|OGRE-210] - [WIN] Linking debug and release version of boost **[https://ogre3d.atlassian.net/browse/OGRE-211|OGRE-211] - Migrate SharedPtr to atomics **[https://ogre3d.atlassian.net/browse/OGRE-212|OGRE-212] - OgreGLES2RenderSystem.cpp compile error on Android/iOS **[https://ogre3d.atlassian.net/browse/OGRE-213|OGRE-213] - GLRenderSystem::_createDepthBufferFor may crash if it needs separate depth and stencil buffers **[https://ogre3d.atlassian.net/browse/OGRE-214|OGRE-214] - Black screen: no shaders are compiled when "Separate shader objects: yes" **[https://ogre3d.atlassian.net/browse/OGRE-216|OGRE-216] - VS: Specify Precompiled Header Memory Allocation Limit **[https://ogre3d.atlassian.net/browse/OGRE-217|OGRE-217] - Missing PixelFormatDescription entries in _pixelFormats in OgrePixelFormat.cpp causing crash !!Porting Notes *GPU_ATI has been renamed to GPU_AMD *Rectangle class has been removed. It was only used in OverlayElement. RealRect already included the same functionality and can be used as a replacement. *Minimum OS X version is now 10.6 *For debug mode, Ogre now uses "Plugins_d.cfg" instead of "Plugins.cfg" *ProgressiveMesh class has been removed. Use ProgressiveMeshGenerator instead. *ShaderGenerator::finalize has been renamed to ShaderGenerator::destroy. *On iOS when using GL ES 2 and an external view controller, Ogre will not add the view to your window or call makeKeyAndVisible(). You must perform both those steps in your own code. * OgreBites::SdkTrayManager constructor changed. To pass mouse and keyboard the following lines are now needed: {CODE(wrap="1", colors="c#")}OgreBites::InputContext inputContext; inputContext.mMouse = m_pMouse; inputContext.mKeyboard = m_pKeyboard; OgreBites::SdkTrayManager* pTrayMgr = new OgreBites::SdkTrayManager("TrayMgr", m_pRenderWnd, inputContext, this);{CODE} * As OgreOverlay is now its own component, you need to manually initialize it, with the following two lines of code (m_pSceneMgr is a pointer to your current Ogre::SceneManager): {CODE(wrap="1", colors="c++")}Ogre::OverlaySystem* pOverlaySystem = new Ogre::OverlaySystem(); m_pSceneMgr->addRenderQueueListener(pOverlaySystem);{CODE} * Ogre::RenderSystem::set/getWaitForVerticalBlank() was removed due to redundancy, since Ogre::RenderWindow already had VSync settings. !!Known Issues n/a !!Annotated Roadmap * Android Port (Owner: [http://www.ogre3d.org/forums/memberlist.php?mode=viewprofile&u=6949|Wolfmanfx]) ** Remove eclipse based android port __[[done]__ ** CMake based build support *** Create find Ant / NDK packages (currently Ant and the NDK must be in the global path) *** Generate android make files for the sample browser __[[done]__ *** Use android tool chain to compile OGRE as static lib __[[done]__ ** Cleanup RTSS (Remove OgreStringSerialiser) __[[done]__ ** Improve platform integration *** Add Android log listener into OgreRoot __[[done]__ *** Disable Filesystem- / Zip- / EmbeddedZip- Archives on android __[[done]__ *** Resource system improvements **** OgreAPKFileSystemArchive to handle file access inside the APK __[[done]__ **** OgreAPKZipArchive so we can handle zip files inside the APK (APK is also compressed using zip) __[[done]__ ** Improve EGL support *** Create concrete subclasses of EGL-Support/Window/Context __[[done]__ *** Handle context creation / configs inside OGRE __[[done]__ *** Resource recreation / Handle it like DX device lost / restore **** Add managed resource class which every resource derive from (only active on Android - handled via macros) __[[done]__ **** Recreation of Texture, Shader, HardwareVertexBuffer __[[done]__ **** Recreation of FBO's (not working atm) ** ETC1 texture codec *** PKM support __[[done]__ *** KTX support ** Sample browser *** Add touch input support __[[done]__ *** Build a APK file via CMake command line __[[done]__ *** Add rotation support __[[done]__ *** Fix / Enable more samples **** Compositor not working ** Improve CPU/ vendor detection __[[done]__ ** Add how to build it on Linux / OSX / Win32 __[[in progress]__ ** Provide pre-compiled dependencies __[[done]__ ** Fix our dependencies so the can compile against the android tool chain __[[done]__ * OgreMain ** Extract the overlays from OgreMain and transform it into a own overlay component __[[done]__ * RTSS ** Changed error handling of RTSS sub-render state parameter creation. Sub-render state now throws exception on errors __[[done]__ ** Added 2 new demo samples: multiple lights and textured fog __[[done]__ * DirectX 11 render system ** Add tessellation shaders support. __[[done]__ ** Add tessellation sample. __[[done]__ ** Add dynamic linking support. __[[done]__ * Windows Metro style application (WinRT) ** Add support as a new platform (named WinRT). __[[done]__ ** Create a WinRT project for the sample browser. __[[done]__ ** Create a how to compile file. __[[done]__ ** Get all existing samples to work with the D3D11 render system. ** Multi monitor\device support. * OpenGL render system ** Add tessellation shaders support. * Windows Phone 8 port - __[[done]__ !!Discussions about it * [http://www.ogre3d.org/forums/viewtopic.php?f=4&t=70522|Roadmap to 1.9 and 2.0 (forum thread)]