Releases: OGRECave/ogre
Releases · OGRECave/ogre
v1.10.7
- Main
- typedef Hardware*BufferSharedPtr instead of inheriting
- MeshManager: Allow vertex blend weights to be stored in various formats
- Mesh: Add getHardwareBufferManager/setHardwareBufferManager to be able to have software only meshes that could be cloned and loaded
- STBICodec: save one memcpy during loading
- Fix StringUtil::match method doesn't work correctly in some cases.
- RenderSystemCapabilities: add RSC_MAPBUFFER for GLES2 mode
- Correctly calculate ETC compressed image memory size
- DDSCodec: Added support for more dds formats
- fixed memory leaks in FreeImageCodec::decode() when it throws an exception
- hide memory allocations behind MemoryDataStream
- various -Wshorten-64-to-32 fixes
- deprecate UserObjectBindings::getEmptyUserAny
- OgrePixelFormat: deprecate isValidExtent (unused)
- deprecate DistanceLodStrategy alias
- DX9/ DX11:
- added mappings for normalized vertex formats (valid only for vertex shaders >= 2.0)
- GLSupport
- add GLTextureCommon::getMaxMipmaps
- merge OgreGLUniformCache implementations
- merge GLSL[ES]ProgramManager::parseGLSLUniform
- merge StateCacheManager implementations
- GLXWindow - correctly set mVisible
- GL*
- Store per-context StateCacheManager in context rather than in auxiliary map.
- StateCacheManager - fix setEnabled condition
- disable caching of glBlendFunc for now
- fix reusing renderbuffers
- add normalized VertexElementTypes
- use StateCacheManager to cache alphaToCoverage value
- Remove GLSupport::mStateCacheManager reference, obtain it directly from GL3PlusRenderSystem. Reduce GLSupport omnipresence.
- Avoid potential crash due to the Ogre hardware resources outlives last OpenGL context during shutdown
- GL & GLES2: StateCacheManager - delete should also drop unbound buffers
- GL & GLES2: fix setting passIterationUniform
- GL3+ & GLES2: Fixed usage of glFlushMappedBufferRange - The specified subrange to flush is relative to the start of the currently mapped range of the buffer
- GL3Plus
- VAOs represent VertexDeclarations not a ShaderPrograms
- bound attributes should be cached per VAO and not at the RS
- GLES2
- do not send PolygonMode through StateCache. There is only GL_FILL
- GLES2RenderSystem::mScissor is not state cache, it is request from scene manager. Should be set to GL context unconditionally, and may be further cached there
- GLES2: make UniformCache per Shader to support seperable programs
- glesw - parse context version in a GLES2 compatible way
- Revert "use the same matrix transpositon logic as GL & GL3Plus"
- move mDiscardBuffers from StateCacheManager to EAGLES2Context
- unset RSC_MAPBUFFER for Mali chipsets when GLES2 is not available
- viewport should be cached per-context, not in render system
- Restore ability to compile shader as both GLSL and GLSL ES via predefined macro GL_ES
- make UniformCache per Shader to support seperable programs
- GL
- avoid significant performance penalty on Apple multithread renderer due to the glGetXxx calls - cache GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
- RTSS
- add support for custom BlendWeightsBaseElementTypes
- GLSL - fix DQ Skinning Shadow shaders for 1, 3 and 4 weights
- HLMS:
- hide SubStringRef inside HlmsShaderGenerator
- HlmsShaderGenerator: fix size_t conversion on MSVC 2013
- use normal preprocessor instead of HLMS for GLES detection
- HLMS: drop some unused DefaultProperties
- Python:
- add OgreNumpy bridge
- correctly wrap Hardware*Buffers
- call find_package(PythonInterp) first to get the currently active Python version by default with a consistent version of PYTHON_LIBRARIES.
- allow using python3 on Ubuntu 14.04
- Remove GCC flags for MSVC building
- Bites:
- assert instead of crashing if DEFAULT_RESOURCE_GROUP is empty
- CameraMan - initialise mStyle
- Trays - various -Wshorten-64-to-32 fixes
- fix wrong clamp condition in SelectMenu::setItems
- fix linking static SDL2 on windows
- Docs:
- HLMS - we only have Datablocks in 1.10
- RenderSystem::preExtraThreadsStarted - improve formatting
- Setup - reference RenderSystem extension API
- BuildingOgre: update Dependencies part and general cleanup
- Samples
- Bootstrap - use complete main method
- Browser - copy gestureDetector from ndk_helper
- SinbadCharacterController - initialise m*AnimID
- EndlessWorld - fix use after free
- CMake
- Android: only link against android_native_app_glue when needed
- clarify OGRE_CONFIG_THREADS and deprecate options 1 and 2
- CMakeConfig: explicitly link against dl in static build
- Dependencies - specify --config to get right build_type on MSVC
- use the same directory layout on Windows as on Linux
- windows: make sure that all required DLLS are copied
- Tests:
- correctly set MSAA and VSync. Disable VSync by default.
- RadixSort - use correct integer limits
- regression test for StringUtil::match
- use MODULATIVE shadows in tests so they are still useful
- Android
- cleanup AndroidManifest.xml
- export ANativeActivity_onCreate instead of calling app_dummy()
- CI: update android NDK to 15b
- iOS
- added EAGL2Window::setHidden() implementation
- Allow to build Ogre+EAGL2 with ARC enabled
- avoid flood of XCode warnings about unused property - reasons against Thumb on armv6 are not actual for Thumb2 on arm7 (available since iPhone 3GS, that is prerequisite for GLES2 too)
- Avoid OpenGL driver whining on EAGLES2Context::destroyFramebuffer() when there are no any.
- Avoid resizing of the just created window on retina devices, caused by mixing pixels and viewpoints.
- Create all EAGLES2Context in one sharegroup, so that GL resources could be shared
- distinguish parameters measured in view points and pixels
- Implement endCurrent()
- Prevent multiple gleswInit() invocations
- OSX
- Don`t crash if client passed miscParams without "contextProfile" specified
- Fixed double retain for UIWindow
- GL*: flush on context switching to ensure that gl resources queued for creation in the current context would be visible after switching
v1.10.6
- Bugfixes
- LOD strategy: consider derived scale of the object
- PlatformInformation: Android - fix detecting NEON on x86
- CMake
- stop installing FindOGRE.cmake
- fix generating XCode project for static targets
- GL3Plus: Added state cache manager
- GLES2
- Android - recreate GLSLESProgramPipeline on context loss
- use the same matrix transpositon logic as GL & GL3Plus
- RTSS
- add bool to GLSLES basic types
- make FFP_Alpha_Test available on non Windows & non D3D11 platforms
- Samples
- drop unused jaiquaDualQuatTest material
- drop unused, old style, Blur/ Bloom scripts
- DualQuaternion - fix GLSL & Cg and drop GLSL150 shaders
- merge GLSL150 and GLSL shaders as GLSL120
- move skinning shaders to common GLSL120 folder
- TestContext: enable MSAA to test alpha to coverage and MSAA resolve
v1.10.5
- OgreMain
- SceneManager should not destroy well known shared materials, that could still be in use by another scene manager.
- restored the ability to resolve conflict by preferring existing resource
- ManualObject: fix initial allocation in resizeTemp*BufferIfNeeded
- Technique::getGPUDeviceNameRules: Fixed memory corruption caused by returning another copy of array by each invocation of getter
- Fixed resource leak, when resource is unloaded while other resource group is performing batch load or unload
- fixed shadow volumes rendering when scene has a renderable with alpha rejection in its material
- Restore documented behaviour of ResourceGroupManager::openResource(...,groupName, searchGroupsIfNotFound = true,...)
- ShadowTextureManager: query the actual PF instead assuming the requested
- Components
- RTSS: workaround for TextureUnit referencing a possibly deleted Frustum
- Bites: AdvancedRenderControls - take down DetailsPanel on destruction
- Python: set INSTALL_RPATH so Ogre libs are autodiscovered
- RenderSystems
- D3D9: respect mNumRequestedMipmaps also when TU_AUTOMIPMAP is set
- D3D11: Add the ability to create multisampled rendertexture on FL9.1 hardware by promising that it is would not be used as shader resource
- GL: set YY_NEVER_INTERACTIVE to avoid using isatty (warning on msvc)
- GL: add missing include
- GL*: do not use glDrawRangeElements
- GL*: change library order to correctly link against libGL
- GL3Plus: do not offset vertex data twice by using baseVertex
- GLES2: emscripten - not even WebGL2 has mapbuffer
- GLES2: skip GL_ prefix for WEBGL_ extensions
- GLES2: allow parsing GLSL300 shaders with GLES2
- Platforms
- support Win10 1607 very long file names
- CI: build GLRenderSystem on Windows
- EGLSupport: emscripten does not support EGL_CONTEXT_CLIENT_VERSION = 3
- ios.toolchain.xcode: use 64bit arch for simulator and add it to iOS build
- CMake: fix native IOS build
- MSVC: avoid build errors due to the stricmp & strnicmp being deprecated in MSVC CRT
- MSVC: avoid C4800 warnings "forcing value to bool 'true' or 'false' (performance warning)" by using native explicit operator bool
- MSVC: Restore OgreHeaderPrefix/Suffix.h headers pair to suppress enormous amount (>40000) of warnings
- GLContext::barrier() - to ensure that gl resources created in the current context would be visible after context switching; also fixes related crash on Apple multithreaded GL implementation enabled by kCGLCEMPEngine
- Docs
- create a working sample out of setup tutorial
- disable HTML timestamps for reproducibility
- Samples
- drop CEGUI/ OIS based Compositor Demo leftovers
- Fresnel - prevent reflection textures from changing the Aspect
- VolumeTex - update correct technique when RTSS is used
v1.10.4
- Dependencies: build SDL2 on Windows for convenience
- API
- add FileSystemLayer::resolveBundlePath
- Bites: ApplicationContext - const correctness
- MovableObject - devirtualise methods not meant to be overridden
- OgreArchive: make accessor methods const - they dont change the archive
- OgreRenderable - devirtualise methods not meant to be overridden
- HLMS: fix typos and add const correctness and mark it BETA
- OgreMain: update stb image to 2.15
- Docs
- manual - merge enums with headers
- port Volume tutorial from wiki
- various Doxygen related fixes
- BuildingOgre: update dependency lists and fix formatting
- OgreRenderSystem: reorder and add missing miscParams
- Bugfixes
- OgreStreamSerialiser: switch back to SuperFastHash
- OgreStringConverter: fix parseSizeT for MSVC
- StringConverter: fix typo in parseInt and improve respective test
- fix clang 3.9 undefined-var-template warnings
- GLSLPreprocessor: workaround for macro expansion
- GLSupport: catch possible exception in ~EGLContext
- GLES2: fix MSAA discovery and propagation to RTT when RTT has no MSAA
- GLES2: multi-sampled FBO requires GLES3 at compile time for now
- GL3+ Fixed: incorrect GL internal format for PF_A2B10G10R10.
- GL: correctly check for NV_gpu_program4 instead of the doc extensions
- OGREConfig.cmake: do not add SDL2 libs/ include if they are -NOTFOUND
- CMake: ios.toolchain - silence warnings with newer CMake versions
- CMake: freeimage already handles EXR, so disable the plugin
- CMake: use absolute paths for downloading deps
- CMake: OGREConfig - collect all libraries for static build
- Python: install Bites and Overlay component bindings
- Python: clean up CMake and do not wrap C++98 compatibility symbol
- CI:
- run unit tests on Windows
- update to xcode 8.3
- Samples:
- fix ParticleGS with non GLSL RenderSystems
- Emscripten - fix for strict mode
- Tools: drop legacy blender exporters
- VTests: remove broken parsing of individual test results
- swig: wrap ParameterList
v1.10.3
- Core changes
- OgreFont: default to ASCII instead of Latin1
- OgreMain: deprecate getErrorDescription
- OgrePixelFormat: deprecate PF_A4L4
- SceneManager: except if trying use FFP technique on RS without support
- GpuProgramManager: add strict mode
- OgreSharedPtr: replace staticCast usages by static_pointer_cast
- RenderSystemCapabilities: introduce CAPS_CATEGORY_COMMON_3
- ResourceGroupListener: do not require implementing any methods
- Bugfixes
- CompositorInstance: fix crash when MRT constructor failed
- Correction of EXP and LOG operations on Quaternions.
- SceneManager: clean up own shadow materials on destruction
- SimpleRenderable: respect mRenderQueuePriority
- OgreD3D9Texture: also generate mipmaps for NPOT textures
- OgreQuaternion: Norm should take the square root
- All GL Render Systems:
- consistent handling of PF_DEPTH
- consistently print all extensions on a single line
- fix swizzling for luminance formats
- generate mipmaps after blitting level 0 and remove software path
- introduce RSC_DEBUG to simplify checks
- map GL_RGB8 to PF_R8G8B8 instead of PF_X8R8G8B8 to be consistent
- GL3Plus
- add glsl450 shader profile
- disable PBOs for texture uploading (performance warning)
- explicitly mark unsupported formats to get warnings for misses
- fix glDebugMessageInsert usage and spam by beginProfileEvent
- fix GL_DEBUG_OUTPUT mode
- update gl3w to latest upstream using pre 4.5 GL/glcorearb.h
- GLES2:
- allow compressed 3D textures also when using the extension
- allow enabling of array texture support at runtime
- allow pure depth/ stencil FBOs on Android
- declare glsl300es/ glsl310es/ glsl320es shader profiles
- do no exclude classes from compilation in GLES2 mode
- drop gles2w as GLES3 is backward compatible
- except if unimplemented path is used
- explicitly mark unsupported formats to get warnings for misses
- glLabelObjectEXT must be called after glBindBuffer
- HardwarePixelBuffer - unify GLES2/3 upload paths
- iOS - guard SSO RSC declaration instead of every usage site
- remove unused header
- replace EXT by gl3core functions at runtime
- skip unprefixed extensions on emscripten for consistency
- support GL_ANGLE_instanced_arrays
- use RSC_VERTEX_BUFFER_INSTANCE_DATA instead of ext string
- fix PF_BYTE_LA
- fix loading compressed DDS mipmaps
- RTSS
- add strict mode
- assert that FunctionInvocation parameters are not NULL
- deprecate looking up materials by name to speed up things
- listen for Material removed events and remove according techniques
- Samples
- SampleBrowser: do not drop all RTShader techniques on sample unload. This broke loading any RTSS using sample.
- AndroidJNI - port to ApplicationContext
- DeferredShading - make it compatible with the RTSS
- Emscripten - allow using STRICT_MODE
- Terrain - check for capability instead of RS name
- use gles300es profile instead of compile option for checking
- move android JNI sample to Samples dir
- Python: allow simple sample to run with RTSS
- Tests
- add Quaternion::Norm test
- update for FFP usage exceptions
- stop using SharedPtr to std containers. They are managed already
- PlayPen_BlitSubTextures: allocate matching format so GLES2 can pass
- Other Changes:
- Bites: ApplicationContext - do not require android_native_app_glue
- HLMS: stop using StringVectorPtr [minor API break]
- D3D9: replace getErrorDescription by DXGetErrorDescription
- CI
- Android - build JNI sample
- update to visual studio 2017
- CMake
- detect all required headers in one run
- factor out copy_assets_to_android_proj
- remove OGRE_USE_BOOST option
- Docs
- changelog - use more markdown for formatting and add 1.10 stub
- port Deferred Shading Tutorial to Doxygen
- update 1.10 Notes
v1.10.2
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
v1.10.1
- CMake: replace Ogre*Prerequisites.h by according generate_export_headers
- CMake: respect QUIET flag
- GLES2: fix HW mipmaping with GLES3
- GLSLProgram: Fixed parsing of define strings like "..;DEFINEWITHOUTVALUE"
- GLSupport: add unified GLSLProgramCommon
- merge OgreConfig.h and OgreBuildSettings.h
- OgreBites: factored out InputListener interface from AppContext [API break]
- OgreBites: factor out AdvancedRenderControls from SdkSample
- OgreBuildSettings.h.in: simplify by using #cmakedefine01
- OgreIdString: replace NDEBUG usage by OGRE_DEBUG_MODE
- OgreSharedPtr: extend API to be compatible with std::shared_ptr
- Plugins: EXRCodec - fix cmake discovery and dll exports
- ResourceManager: const correct remove(const ResourcePtr&)
- Samples: Compositor - correctly unregister Listener (fixes SEGV)
- Samples: Deferred Shading - fix item identity exceptions