v1.10.2
Pre-release
Pre-release
No longer a fork merged with bitbucket and removed custom branding.
As this involved a rebase, here is the proper diff to 1.10.1.
- New API
- GLSupport: export necessary AndroidEGLWindow API
- the RTSS shaders can be dumped at runtime using
ApplicationContext::setRTSSWriteShadersToDisk(true)
- add
MaterialManager::getDefaultMaterial()
to avoid hard-coding BaseWhite - OgreAny: extend API to be compatible with std::any
- introduce
OgreAssertDbg
macro that only fires in debug mode
- Faster Strings:
- StringConverter: drop locale support for faster parsing (always uses "C" locale)
- StringUtil: use strn(i)cmp for startsWith endsWith
- MurmurHash3 everywhere:
- RTSS: ShaderProgramManager - use MurmurHash3 instead of ad-hoc solution
- FastHash: use MurmurHash3_x86_32 internally instead of SuperFastHash
- OgrePass: clean up HashFuncs and default to MinGpuProgramChangeHashFunc
OGRE_RESOURCEMANAGER_STRICT
- makes ResourceManager strict for faster and easier operation:- resource names are case sensitive
- only indexed resources are found
- resource groups correspond to namespaces by default now
- many Ogre functions now require the group argument to remove ambiguity
- no unpredictable fallbacks to the global resource pool
- Samples/ Tests: run with
OGRE_RESOURCEMANAGER_STRICT
- add Ogre prefix to Internal and Autodetect group names
- deprecate OgreIteratorRange and Ogre*iterator
- access the vector directly using e.g.
Mesh::getSubMeshes()
instead ofMesh::getSubMeshIterator
- see the deprecation list for details
- access the vector directly using e.g.
- Platforms
- Fixed WinRT build - let SDL2 handle events
- fix compilation with MinGW
- OSX: autodetection instead of explicit macAPICocoaUseNSView parameter
- Bugfixes:
- OgreInstanceBatch: correct bounding radius calculations and material LOD
- OgreInstancedEntity scaling behavior should match OgreEntity scaling
- Bites: correct ifdef in AdvancedRenderControls
- OgreTechnique: do not crash if _compile called without a RenderSystem
- Dependencies.cmake: update zlib to 1.2.10 as zlib 1.2.8 is gone
- CMake: set CMAKE_BUILD_TYPE more robustly and remove obsolete checks
- Backported Display Refresh Rate bugfixes from from 2.1
- GLSL Preprocessor: fix incorrect Macro functions expansion with braces
- OgreMain: Hash/MurmurHash3.h -> OgreMurmurHash3.h to be consistent
- New Instancing: fix broken shadows in Sample
- ShadowVolumeExtrudeProgram: correctly set stencil shadow params for GLSL
- [D3D11] Fixed crash on rendering to texture due to the unsupported FSAA level
- GLES2: allow multisampled FBOs if supported
- OgreZip: throw on error to be consistent with FileSystemArchive
- Samples: reset frame statistics between sample runs
- OgrePass: clean up HashFuncs and default to MinGpuProgramChangeHashFunc
- Better Testing:
- Tests: port to gtest
- Tests: add regression test for InstancingEntity bounds
- Tests: allow building and running on android (see NDK docs how)
- Tests: use FileSystemLayer to resolve data and thus are distributable now
- Tests: fix startup on OSX
- Tests: add regression tests for GLSupport/ CPreprocessor
- Tests: correct mesh exporting and do not leave temporary files behind
- Other Changes:
- Sample Media is now in "General" group instead of "Popular"
- throw on
OgreAssert
in Release builds by default - Node - devirtualise methods not meant to be overridden
- SceneNode: devirtualise methods not meant to be overridden
- devirtualise internal only and final objects
- Changed allocation policies to use noalias & restrict optimizations
- OgreMath: replace slow and mostly unused asm_math.h by inline function calls
- ResourceGroupManager: avoid searching the same groups multiple times
- ResourceGroupManager: remove duplicate locks
- GLES2: drop GpuProgram indirection
- MSVC: remove obsolete Wd and pragma warning directives
- OgreMain: drop OgreHeaderPrefix/ Suffix
- OgreMain: use Ogre::String in PixelFormatDescriptions to avoid copy
- GL/GLES2: simplify StateCacheManager structure
- OgreScriptTranslator: print actual error description
- OgreArchiveManager: raise an error if readOnly flag does not match
- devirtualise internal only and final objects