OGRE3D just released version 1.11. OGRE (Object Oriented Rendering Engine) is an open source rendering framework written in C++. The 1.11 release codenamed “Rhagorthua” was heavily focused on cleaning up the underlying code base to improve future development. This includes tasks like switching to C++11 STL containers when possible, reduced memory consumption and a new scene loading API, SceneLoaderManager. You can download OGRE 1.11 here.
Full details of this release from the changelog:
- Main
- RenderTexture: complete and fix PF_DEPTH usage
- Support bulk convert and get sub volume of a slice of a compressed texture
- Add errors for too many or too litle braces in scripts Closes #701.
- Adds KTX (ETCCodec) support for loading mipmapped textures
- Adds support for PVRTC pixel format in KTX containers
- clang-tidy: fix performance-faster-string-find
- clang-tidy: fix performance-type-promotion-in-math-fn
- Fixed crash in RenderSystem::shutdown due to the notifications being sent to already destructed render targets
- fix several gcc8/ clang7/ MSVC warnings
- DataStream::readLine – fix out of bounds read (ret = 0)
- generate a deprecation warning on “lod_distances” usage
- Image – undeprecate 2D loading overloads
- improve ResourceGroupManager documentation
- ParticleSystem::fastForward – use round to avoid float iteration
- Root – skip FrameListeners that are removed during event dispatch
- SceneManager – explicitly disable mip filtering for depth map
- SceneManager – flag GPV_GLOBAL on setAmbientLight
- ScriptCompiler – improve error messages
- SubEntity – add quotes to name strings
- MeshLodGenerator: fix wrong stream eof() usage
- InstancedEntity: Take scale into account when culling objects.
- [Win32] Register Ogre log files to be collected by Windows Error Reporting and eventually passed to developer (would not happen under debugger)
- Main: StringConverter – use empty newlocale on MinGW
- Bites
- ApplicationContext – fix reading shader cache and log on failure
- ApplicationContext – forward fullscreen option to SDL (#658)
- CMake
- allow overriding OGRE_WARNING_FLAGS
- Dependencies – propagate CMAKE_GENERATOR_PLATFORM
- specify minimal required SWIG version
- update dependencies
- warn on deprecated true/ false settings
- EXRCodec: Fix VS2017 error C2872: ‘FLOAT’: ambiguous symbol. (#723)
- D3D11: D3D11Mappings – map DXGI_FORMAT_R8_UNORM to PF_R8
- D3D9: fix compilation with MinGW
- GL*:
- log shader compile errors output as LML_CRITICAL
- Fix for VAO leakage in ~GLVertexArrayObject
- removed mRenderTargets destruction from ~GLxxxRenderSystem() as it’s already done in RenderSystem::shutdown() method
- do not force-enable shader cache
- GL3+
- FBOs are not shared between contexts, should be used and destroyed on the proper one
- Fixed bugs on attempt to download non-zero miplevel; support for depth > 1
- fix loading monolithic program from cache and log on failure
- GL3PlusTextureBuffer: Ability to download to the non-consecutive PixelBox, useful for tiled rendering of very large images, atlasing, etc. GL RS already could do this
- gl3w – update get_proc for APPLE from upstream
- GLSLShader – workaround gl_ClipDistance on Intel Windows Driver
- auto upgrade shaders to version 150 on OSX
- Do not unbind VAO at the end of _render() to significantly increase performance of multi-pass rendering, at least on OSX
- fixed GL_MAP_UNSYNCHRONIZED_BIT usage
- Exclude glsl130 and glsl140 profiles unsupported in OSX Core profile
- GL3+/ GLES2
- enable primitive restart when available
- GLxxxFBORenderTexture,GLxxxFBOMultiRenderTarget::getCustomAttribute() should return GL context to switch to before rendering
- Optionally recreate FBO in GLXxxFrameBufferObject::bind(bool recreateIfNeeded) if unusable with current context
- GLES2
- do not automatically activate, as no other RS does this
- If VAOs are supported: do not unbind VAO at the end of render(), do not clear scratch VAO #0 if not corrupted, explicitly bind scratch VAO #0 when required. Caching removed as it is not VAO ready, and will always miss in current usage scenario.
- GL: drop OSX Mavericks HBL_DISCARD workaround
- GLSupport:
- do not attempt to set external windows full-screen
- fix layout qualifier parsing
- GLX – implement minBufferSize
- GLX – support creating core 4.6 context
- OSX – make sure contextProfile is correctly forwarded
- Fix crash when embedding OgreOSXCocoaWindow in external window
- RTShaderSystem: fix compile error when using double precision (#622)
- Overlay
- Scripts – add support for ogrescript syntax
- warn about incompatibility with new script compiler
- Accept opening ‘{‘ on the same line as the Overlay definition in a .overlay script
- Samples
- Browser – avoid double free on OSX
- PBR – precision statement should in GLSLES only
- python – update raw sample to deprecation-less API
- Sample – const correctness
- shadows.glsl enable upgrading to GLSL150
- Terrain – use “General” resource group instead of “Terrain”
- Tests:
- General – do not try loading shared plugins in static build
- Terrain – actually test something
- Docs
- describe how to use the fixed-function Pass options in shaders
- Overlay/ Fontdef – improve parameter formatting
- update css for Doxygen 1.8.13
- update Overlays section and update GUI library references