-
Main
- add ACT camera world position for camera relative rendering
- add DefaultTextureManager and NullTexture for software fallbacks
- add PF_DEPTH32 and map it in GL3+
- add proper deprecation notes for legacy HardwareBufferLockGuard
- add SSE2NEON for NEON SIMD support
- Any - throw std::bad_cast instead of InvalidParametersException
- append "_d" in DynLib instead of getConfigFilePath
- assert instead of segfaulting if volume materials are unavailable
- CompositionTechnique - except if texture name is not unique
- Compositor - factor out resolveTexReference
- CompositorManager - stop using ptr to std::vector antipattern
- Compositor - reuse common methods of CompositorInstance & use uint
- correctly handle the case of identityView && cameraRelative
- correctly mark DebugRenderable for export
- define a common OGRE_TOKEN_PASTE macro for LINE concat
- DepthBuffer - make FSAA API consistent with RTT API
- _destroySceneNode - fix destroying last item in mSceneNodes
- disambiguate ResourceManager overloads
- drop deprecated RenderSystem API
- drop deprecations with low impact
- drop DIRECTXMATH support now that we have NEON everywhere
- drop RSC_CUBEMAPPING by bumping required D3D9 feature level to 9.1
- drop support for separateUV
- drop useless RSC_COMPLETE_TEXTURE_BINDING
- DynLib - fix WinRT build
- Entity - use vector based storage for child objects
- factor out OGRE_BUILD_* settings to OgreComponents.h
- factor out ShadowVolumeExtrudePrograms to filesystem
- FileSystemLayer - do not force the Ogre subdir upon consumers
- fix android build without Zip
- fix building without ZIP
- fix combinedUVW for separate images & deprecate separateUV setting
- fix default texture filtering value set to the value other than FO_NONE for TE_EXTERNAL_OES and TEX_TYPE_2D_RECT
- fix integer overflow when num threads and use a sane limit of 2
- fix segfault when set_texture_alias arguments are missing
- GpuProgramManager - provide default noop loadImpl
- HardwareBufferLockGuard - assert that buffer is not null
- hide OgreParticleEmitterCommands.h
- hide OgrePrefabFactory
- hide ShadowTextureManager
- HighLevelGpuProgram - fix #line directive filename refrencing
- HighLevelGpuProgram - unify preprocessor define parsing
- implement ACT_NORMAL_MATRIX
- install new OgreComponents.h
- introduce Vector4f and use it to store attenuation
- ManualObjectSection - factor out convertToSubMesh
- MaterialManager - fix leak of mDefaultSettings passes
- MaterialSerializer - fix writing texture_unit section + tests
- Math - factor out common makePerspectiveMatrix
- Matrix4 - make converting constructors explicit
- Mesh - make default constructor match createOrRetrieve
- MeshManager - load prefabs only on demand
- MeshManager - move ManualResourceLoader API into separate class
- move auto window creation logic from RenderSystem to Root
- move DisplayMode from Profiler to Overlays
- move more code from SceneManager to ShadowRenderer
- Node - deprecate getChildIterator
- Node - use PrefabFactory to create DebugRenderable
- OptimisedUtil - log ticks instead of requiring a breakpoint
- OptimizedUtil - fix compilation with DO_PROFILE
- parametrize TransformBase to make it universally usable
- ParticleEmitter - add asserts to catch invalid velocity values
- Pass - fix wrong assignment of attenuation parameters
- PixelFormat - move byte aliases to end to fix big endian build
- PlatformInformation - NEON does not depend on a specific CPU arch
- Profile - add remotery support
- Profile - avoid allocations for event names, fill swapBuffers hole
- Profiler - clear the whole hierarchy when enabled mid-frame
- Profiler - ignore mEnabled with Remotery
- Profiler - make Profile RAII helper inline
- Quaternion - inline several trivial member functions
- reduce private SceneManager API usage in ShadowRender
- RenderSystem - add back some deprecated internal API
- RenderSystem - drop advanced TextureUnit settings
- RenderSystem - drop obsolete hasAnisotropicMipMapFilter
- RenderSystem - fix _setProjectionMatrix fallback code
- RenderSystem - pass FFP params through GpuProgramParameters
- RenderTarget::writeContentsToTimestampedFile - use ISO 8601 order
- replace some useless comments by "override" keyword
- ResourceGroupManager - allow disabling throwing in openResource
- Root - fix auto creation of Window
- SceneManager - allow to disable throwing in getSceneNode
- SceneManager - also use fog_override values for auto fog_params
- SceneManager - convert _TYPE_MASK members to enum
- SceneManager - deprecate SceneType & fix some deprecation warnings
- SceneManager - deprecate shadow config iterator access
- SceneManager - fix finite and infinite extrusion params pointers
- ScriptCompiler - drop useless CE_UNSUPPORTEDBYRENDERSYSTEM
- ScriptCompiler - hide abstract bases from OverlayTranslator
- Script - fully deprecate single argument cubic_texture
- ScriptTranslator::getConstantType - catch unsupported types
- ShadowCameraSetup - add static create() to accommodate bindings
- ShadowRenderer - do not pool depth for PF_DEPTH
- simplify AxisAlignedBox
- slightly speed up TextureUnitState::recalcTextureMatrix
- String - fix doxygen inline comment
- SubEntity - move trivial getters to header to allow inlining
- SubMesh - store MaterialPtr instead of material name
- Texture - add native layer array support
- Texture - fix fallout from layer array refactor
- Texture::getBuffer - return by const ref
- Texture - slightly refactor code and avoid errors on corner cases
- TextureUnitState - deprecate isCubic() & is3D()
- TextureUnitState - drop useless binding types
- TextureUnitState - fix fallout after using NULL frame for blank
- TextureUnitState - refactor setAnimatedTextureName
- Timer - use fixed width uint64_t for time duration
- turn some #if OGRE_PROFILING into runtime options
- TUS - fix one more instance of NULL for blank & add tests
- use Matrix3x4f TransformBase typedef in InstancedEntity
- Vector3 - return IDENTITY in getRotationTo for zero-sized vectors (#1045)
- ZipArchive - improve zzip error messages
- Unify enum TextureUsage between v1.11 and v2.1 (TU_NOTSHADERRESOURCE => TU_NOT_SRV, +TU_UAV, +TU_UAV_NOT_SRV)
- use exception safe buffer unlocking everywhere
- move OgreUTFString to Overlay component, get rid of no longer needed OGRE_UNICODE_SUPPORT
- spare the Quaternion coversion when we only need a Matrix3
- stop using deprecated setCubicTexture internally
- Support PixelBox::getSubVolume with slice granularity for compressed textures - no need for relaxed checks
- Math: Matrix3 - Increase precision of SVD decomposition
- SceneManager: O(1) complexity for destroySceneNode()
- SceneManager: restore log(N) complexity for named node lookup
- SIMDHelper: drop unused __mm_rsqrt_nr_ps
- Ensure that requesting partial copy of compressed texture will lead to exception rather than silent data corruption. Partial copy is implemented in Ogre v2.1
- Fixed for Emscripten/Webassembly port to work again
- Fixed Matrix3::SingularValueDecomposition for bidiagonal matrices
- fix negative particle size when scale affector decrease size
- parse #include directive in GLSL shaders
- VTF instancing with HLSL (#1167)
- remove superficial OgreExport to fix MinGW build
-
Bites
- add workaround for swig crashing on ApplicationContext
- ApplicationContext - add fallback locations for RTSS media
- ApplicationContext - default to "Ogre3D" as appName
- ApplicationContext - update fallback internal media locations
- ApplicationContext - windows must be destroyed in reverse order
- correctly update director flags after ApplicationContext rename
- disable ConfigDialog on MinGW until we have resolved #1064
- extract ApplicationContextBase to allow multiple implementations
- generate Shaders for all registered RTSS schemes
- put RTShaderLib paths in resources.cfg instead of guessing them
- SWIG - correctly handle OgreComponents.h
- Trays - ensure window update on first call
- Trays - fix jumping Slider handle
- TraysManager - limit progress bar update rate to 4fps
-
SWIG
- add repr to Affine3
- fix MSVC builds of Python, Csharp and Java
- fix MSVC CI build
- fix wrapping of Billboard{Set, Chain} that also derive from MO
- make VectorBase* available for wrapepd Vector* classes
- Python: organize all modules in parent Ogre package
- Java: add install targets
-
CMake
- Bites - issue a warning if SDL2 was not found
- drop obsolete Android Toochain - we use the one shipped with NDK
- set CMP0068 and default CMAKE_OSX_ARCHITECTURES to x86_64
- silence warning about deprecated swig_add_module
- WinRT - drop support for WindowsPhone and old MSVC
- -Wno-inconsistent-missing-override, so we can incrementally add them
- Fix the CMAKE_MAKE_PROGRAM variable is not set in 3rd party libraries#
- FreeImageCodec: fix error message when FreeImage_LIBRARIES is empty
-
RTSS
- add FFPLib_AlphaTest.cg, accidentally dropped in refactoring
- add material serializer test
- add templated createSubRenderState overload
- allow manually triggering shader generation & add test for this
- allow using PSSM3 SRS for normal depth shadow mapping too
- Colour - drop useless stage flags to simplify code
- const correctness for updateGpuProgramsParams
- correct and simplify FunctionInvocation Operand comparison + test
- correctly apply specular normalisation before addition
- disable hardware PCF for now as it has issues on e.g. Intel
- drop deprecated functions
- drop deprecated functions
- drop SGX_TransformPosition and one SGX_TransformNormal overload
- drop specular mapping support in normalmapping SRS
- FFPRenderStateBuilder - just use constructor & destructor
- FFPTexturing - simplify setTextureUnit preconditions
- fix PSSM shader for GLSLES
- fix resolving params with autoConstantIntData != 0
- fix SGX_ModulateScalar fallout
- GLSL - factor out getGL3CompatDefines
- hide SGMaterialSerializerListener implementation
- Lighting - clean up internal API
- Lighting - drop unused uniform surface parameters
- Lighting - simplify code by using ACT_NORMAL_MATRIX
- Lighting - simplify shaders by using inout semantics
- Lighting - there will never be specular input for per pixel lights
- lighting - use the autoparam data source to feed data
- make code testable and add basic shadergen test
- make resolve* funcs never return NULL and drop respective checks
- merge per-pixel and normal-map lighting
- merge remaining parts of glsl & glsles RTShaderLib
- move acquirePrograms/ releasePrograms to TargetRenderState
- move bindUniformParameters to TargetRenderState
- move CPU program creation to TargetRenderState
- move example SRS shaders into Samples/Media
- move getCustomFFPSubState to FFPRenderStateBuilder
- move UserObjectBinding management to TargetRenderState
- Operand - delay null check until FunctionInvocation
- PerPixel - directional lights must not unset viewpos request
- properly use FunctionAtom base class
- PSSM3 - fix fallout in parameter resolve check
- PSSM3 - fix hardware PCF and auto enable it for PF_DEPTH
- PSSM3 - speed up shader code & use hardware PCF if available
- refactor NormalMapLighting
- RenderState - use std::unique_ptr for aggregation & slight cleanup
- replace FFP_FUNC_ADD/MODULATE/SUBTRACT by BinaryOpAtom
- ~SGTechnique - fix use after free
- ShaderGenerator - hide listener adapters
- ShaderGenerator - manage aggregated classes using std::unique_ptr
- simplify FFPRenderStateBuilder and default to per-pixel lighting
- simplify Operand::OpMask enum and use strict typing for it
- slightly simplify Lighting parameter resolution
- Texturing - mPSOutDiffuse always contains the "current" value
- Texturing - remove superficial assignment to temporary
- update PSSM3 split point documentation
- use dynamic_cast instead of getType() String comparison
- use Vector3i for lightCount
-
MeshLOD
- Let Lod0Stripifier use Mesh::getHardwareBufferManager() for buffer creation
- MeshLodGenerator: wrong assertions removed
-
Media
- drop the unused old instancing shaders
- factor out top level "core" Media folder
- fix mrttestfp_quad.glsl after stdquad refactoring
- inherit border attributes in SdkTrays.overlay
- merge GLSL / GLSL150 StdQuad_vp and dependent compositors
- merge some HLSL and Cg programs in HLSL_Cg
- unify DepthShadowmap* programs as GLSL120
- unify GLSLES and GLSL120 shaders as GLSL where possible
- unify SwizzleGP.glsl, fixing the GL2 version
- PSSM: unify shaders and assume window depth instead of NDC depth on GL
-
Overlay
- do not call _notifyViewport on adding elements
- fix crash when tasking out of full screen
- fix fallout introduced by the new ScriptTranslator
- hide OgreOverlayElementCommands.h
- Overlays - use "new" Script Compiler introduced in OGRE 1.6
- use shadowbuffer to avoid stall caused by VBO mapping (#1162)
-
Terrain
- force checkQuadIntersection inline and make it private
- MaterialGenerator - actually disable normal maps if requested
- move helper shader code to filesystem
- slightly clean up TerrainMaterialGeneratorA
- speed up calculateHeightDeltas
- TerrainGroup - add loadLegacyTerrain for 1.7 style terrain.cfg
- use #include directive to append TerrainHelpers
- use non-linear depth for depth shadows
-
GLSupport
- add "contentScalingFactor" option to scale Android 3D buffer (#1033)
- drop unused ErrorHandlerFunc abstraction
- GLX - drop broken window icon loading code
- move getPass*States override to GL
- move legacy EXT_geometry_shader4 functionality to GL
- OSX - eliminate confusing variable name
- unify implementations as GLDepthBufferCommon
- CPreprocessor: skip duplicate strlen call
-
D3D11:
- allow D3D11DeviceResource to create and destroy self or other D3D11DeviceResources in notifyDeviceLost/Restored handlers
- D3D11HardwarePixelBuffer: Create staging buffer with only single subresource
- D3D11VertexDeclaration - add useful information to exception
- Dead code removed (offset was always zero - the only reason why there were no cr
- Rename D3D11Texture::getTexture() => getSrvView()
- Restored the ability to differentiate between identically named adapters
- Reuse field declared in the base class (mLockBox => mLockedBox)
- We need to clean only one texture slot as there is only one depth texture (stored in mDSTResView) even for D3D11MultiRenderTarget
-
GL*
- simplify createMultiRenderTarget - only supported with FBOs
- Revert "GL*: do not needlessly bind zero texture"
- allow MRT with different formats if supported
- DepthBuffer - drop unused mMultiSampleQuality field
- fix FBO format logging
- GL3+/ GLES2: simplify RTT Manager as only FBOs are supported
- GLES2/ GL3+: disable separable programs by default
-
GLES2:
- EAGL2Window: derive from GLRenderTarget as required
- Fix crash when opening GLES2 Mali emulator
- auto insert precision qualifier into fragment shaders
-
GL3+
- bump minimal required OpenGL context to 3.3
- do not implicitly dispatch compute during _render
-
D3D9: Texture - remove unused mCubeFaceNames
-
GL
- actually throw on invalid outputOperationType
- do not cache programs containing geometry shaders
- fix GLArbGpuProgram::loadFromSource exception code & message
- fix warning flood with Copy & PBuffer RTT
-
FreeImageCodec/ STBICodec: make methods public (#1047)
-
Docs
- differentiate between the profiler instance and instrumentation
- fix ogre 1.12 refactoring warnings
- fix several doxygen warnings
- fix wrong auto param type in samples
- improve preprocessor_defines documentation
- improve "setup" Tutorial
- manual - improve shadows section
- port basictutorial3 to doxygen & adapt Terrain sample accordingly
- reorganize GLSL legacy feature documentation
- several fixes for 1.11 refactoring
- slight corrections for Compositor Scripts
- specify what "compatibility with older cards" exactly means
- update Entity documentation formatting and references
- update profiler documentation for remotery support
- update RTSS sequence diagrams and description
- use new Ogre logo
- Tip for install via MSVC without Visual Studio
-
Samples
- drop DualQuaternion_Common.hlsl
- Instancing - fix remaining HLSL techniques and merge with Cg
- Instancing - use RTSS instead of custom shader for ground plane
- NewInstancing - fix depth shadows on all RenderSystems
- Python - drop deprecated ApplicationContext parameter
- Terrain - use RTSS for depth shadows
- TexturedFog - fix errors with strict mode
-
Tests
- add Matrix3SVD test
- add SplitBaseFilename tests
- add TransformBaseArrayLoading test
- fix PlayPen_DepthShadowMap and port it to RTSS
- drop superficial calls to buildTangentVectors on knot.mesh
- fix PlayPen_ManualObject2D
- reset RTSS after each test to avoid state leaking
-
Tools: update MeshUpgrader and XMLSerializer for SubMesh changes