The versioning scheme changed with this release. This is the successor to Ogre 1.12 and the porting efforts are comparable with porting from 1.11 to 1.12.
- Main
- move
- deprecated std wrappers into OgreDeprecated.h
- SceneType enum to OgreDeprecated.h
- StaticCache to Deflate, which is the only consumer
- StaticFaceGroup to BSP plugin
- hide
- implementations of built-in image codecs
- macros of OgreDynLib.h
- OGRE_LOG_THRESHOLD
- OgreMeshFileFormat.h
- OgreSearchOps.h
- ParamCommand classes
- private parts
- RadixSort
- stroto*_l internal aliases
- drop
- "Custom Render Queues" support
- deprecated SceneLoader API
- identifiers for compilers gone long ago
- long-standing hard deprecations
- most of texture_alias API
- ParticleIterator
- some deprecated functions with low impact
- _StringBase & _StringStreamBase indirection
- subroutine API in favor of specialization constants
- support for TEX_TYPE_2D_RECT
- Compositor
- avoid evaluating Techniques twice
- CompositorChain - correct clearBuffers value for "input previous"
- drop read_back_as_texture option
- fix auto clear colour and use it in "scene previous"
- improve error reporting
- throw on compositor not found
- CompositorPass - group data by type
- simplify RSStencilOperation
- SceneManager
- createLight - add convenience param to specify Type
- default to PF_BYTE_RGBA for shadow textures
- factor out ShadowTextureListener
- getDebugDrawer should be const
- SceneNode - drop deprecated WireBox field
- change SceneNode::setDirection TS_LOCAL > TS_PARENT
- StaticGeometry
- allow swapping material at runtime
- assert that we get an indexBuffer
- minor code cleanup
- use more robust prepareForShadowVolume
- use the entity material and not the mesh one
- fix StaticGeometry not casting shadows
- InstanceManager
- assert that technique is supported
- unshare LODs as well (#2000)
- Make sure cloned vertex data is deleted.
- ShadowRenderer
- also consider lightmask in shadow visibilitymask
- check whether pass is actually programmable
- drop unused fields
- ensure shadow caster material is not a receiver
- handle dynamically changing receivers
- Root
- catch bad config options in restoreConfig
- drop createRenderWindows
- Image
- consistently use uint32 for dimensions
- drop unsupported Filter enum values
- TRect
- add asserts to merge & intersect
- clarify that rects extend downwards.
- Particle & Billboard
- store packed colour to safe memory
- reduce memory footprint
- ParticleEmitter
- provide default _getEmissionCount
- add burst mode
- UnifiedGpuProgram
- add final annotation
- drop priorisation support
- GpuProgramParams
- drop RenderSystemData
- use unified constant storage
- GpuSharedParameters
- batched up & download
- drop unused fields
- use sized int for version field
- FileSystemLayer
- do not change paths already pointing inside snap
- also look relative to lib for configs on Linux
- add API for exporting scene hierarchy + dotscene implementation
- add copy of miniz/ zip
- alias deprecated caps to RSC_VERTEX_PROGRAM
- always use MovableObjectFactory::destroyInstance
- Capabilities - drop deprecated and generally supported caps
- catch empty GpuProgram sourceFile
- Codec - drop deprecated parts and move the rest to ImageCodec
- consistently use float for depth and uint16 for stencil values
- convert guarded ERR_INVALIDPARAMS to OgreAssert
- DDSCodec - disable mips instead of decompressing
- DefaultDebugDrawer -Skip bounding boxes that are infinite.
- DepthBuffer - simplify API
- Disable vptr checks for Singleton constructor (#2032)
- Export ScriptTranslatorManager (#2031)
- factor out GLSL_GL3Support include and use it in RTSS
- fix texture_unit name setting
- Frustum - stop inheriting from Renderable
- GpuNamedConstants - drop generateConstantDefinitionArrayEntries
- GpuProgram - const correctness fixes
- HardwareBufferManager - stop superfluos Buffer tracking
- HardwarePixelBuffer - unify SliceTRT handling
- HL GpuProgram - make populateParameterNames final
- Log::Stream should only be movable as per STL streams
- make custom int types forward to stdint.h
- make HighLevelGpuProgramPtr an alias for GpuProgramPtr
- make log of RSC_AUTOMIPMAP_COMPRESSED descriptive
- make remaining createImpl overrides private
- make STL usage more specific, by slimming down OgreStdHeaders.h
- Material - drop needless pointer indirection
- MaterialSerializer - do not export RTSS techniques by default
- Math - add missing limits include (#2051)
- Math - Use Möller-Trumbore ray-triangle intersection algorithm
- merge HighLevel & GpuProgramManager
- Node - drop DebugRenderable
- OgreAssert - behave like standard assert and print expression
- ParticleSystem - use vector instead of list to collect Particles
- Particle - always use own dimensions
- Pass - drop shadow_*_program_ref API
- Pass - inline trivial accessors & use float for storage
- PixelFormat - inline alias functions and improve docs
- Prefabs - drop no longer needed Prefab_Axes
- Rect - use int32 as base type for MSVC/ GCC consistency
- RenderQueueGroup - drop unused argument from constructor
- RenderSystem - make setStencilState the primary stencil API
- RenderTarget - drop ColourDepth property
- RenderTarget - drop unused StatFlags enum
- RenderWindow - setFullscreen & reposition are optional
- replace HardwareUniformBuffer by plain HardwareBuffer
- replace zzip & libz with zip/ miniz
- ResourceBackgroundQueue - hide details
- Resource - clarify unprepareImpl documentation
- ResourceGroupManager - replace WorldGeometry by CustomStage
- ResourceManager - const correctness
- ResourceManager - fix compilation in legacy mode
- ScriptTranslator - catch invalid material references in compositor
- ScriptTranslator - fix applyTextureAliases fallback
- ShadowCameraSetupFocused - make some members private
- ShadowCaster - simplify getShadowVolumeRenderableList API
- Simplify DefaultHardwareBuffer creation
- simplify & inline getElement(N) helper functions
- Skeleton - fix addLinkedSkeletonAnimationSource
- Skeleton - make mAnimationsList available to derived classes
- slightly clean up TextureUnitState
- slightly refactor FocusedShadowCameraSetup
- StreamSerialiser - improve error reporting with OgreAssert
- StringInterface - add SimpleParamCommand template
- StringInterface - directly use name instead of ParameterDef
- StringUtil::normalizeFilePath - default to keep case
- Texture - allow manually overriding image mips
- TextureManager - add removeAllNamedSamplers
- unify ShadowRenderable implementations
- unify SharedPtr typedef names as Ptr
- use int in TextureUnitState::getTextureDimensions
- use typed enums and update field order to reduce padding
- use unnamed SceneNodes as possible
- UtilSSE - assert correct stride in softwareVertexMorph
- VertexElementType - make VET_COLOUR* an alias for VET_UBYTE4_NORM
- Viewport - disable clearBuffers if clearEveryFrame is off
- reduce availability of iteratorwrapper by using forward declarations
- rename Media/ShadowVolume to Media/Main
- Mark public shader functions with @public-api
- move
- Bites
- ApplicationContext - drop platform shader discovery heuristics
- ApplicationContext - skip resource location check on emscripten
- Trays - ensure Font is loaded before using it
- Trays - ensure glyph info is loaded
- RTSS
- add WBOIT SRS and extend Transparency Sample
- allow injecting data via local variables (PSSM, Lighting, Texture)
- allow passing SPC_TANGENT_OBJECT_SPACE to FS
- auto param data can only be float/ uint32
- be greedy about lights to avoid shader trashing
- decouple normal-mapping from lighting stage
- drop Cg support
- drop deprecated functions
- FFPFog - use autoconstants
- fix use of non-unit light direction when scaling is present
- Fog - follow the preAddToRenderState protocol
- GLSL - check that sampler is used before binding
- GLSL - dont flag optimized away texture samplers
- hide default shader writers and processors
- hide FFP SRS that can be used with generic API only
- hide HardwareSkinning implementations
- hide lighting renderstates
- make shader libs and entry-points private
- merge FFPLib_Texturing
- move TextureAtlas SRS to samples
- move unrelated shaders to Samples
- ProgramManager - drop superfluous cast
- PSSM3 - add support for colour shadows
- remove unused iterator leftovers
- ShaderProgram - only support one "main" function
- Shadows - use shadow2D instead of texture for HLSL compatibility
- slightly refactor Operand writing
- Texturing - only sample texture if necessary
- UniformParameter::bind - paramsPtr cannot be null
- UniformParameter - do not duplicate GpuConstantDefinition queries
- UniformParameter - uint8 is sufficient to store elementsize
- SWIG
- add %template for CameraMap
- consistently name containers _type_List and _type_Map
- enable director for OverlayElementFactory
- fix compilation with SWIG4.0
- stdi.i is needed after recent sized int typdef changes
- Python: dont try to use strings as sequences
- Terrain
- Delete plane when shutting down.
- fix dynamic shadows not working in LOD1
- make waitForDerivedProcesses public
- MaterialGenerator - drop description field
- QuadTreeNode - drop unused quadrant field
- Return early if rect doesn't match node.
- RTSS Transform - take advantage that Material is Terrain local
- use RTSS to generate LOD1 technique
- use uint for coordinates that must not be < 0
- Overlay
- Font
- remove Texture to allow reloading
- position glyphs using bearing and advance instead of width
- ImGui
- move into separate SWIG module
- update to 1.83
- hide builtin Element factories
- hide ParamCommand classes
- remove separation between templates and elements
- typedef DisplayString to String and replace UTFString
- use stb_truetype if freetype is not found
- Font
- ParticleFX
- hide all factory classes
- ScaleAffector - add scale_range parameter
- DotScene
- export visibility for light & entity
- implement export of entity local material
- Add instancing support
- fix DTD and add test
- add GLSLang shader compiler plugin
- Assimp: blacklist bsp loader found in recent versions
- STBICodec: update stb image to 2.27
- PCZSceneManager: register as listener instead of using inheritance
- HLMS: drop the component
- CI
- run vtests on GL3+ for full RTSS coverage
- run VTests using headless EGL
- CMake
- bump required version to 3.10
- clean up dependencies discovery
- default to OGRE_ASSERT_MODE 2
- dont install additional find scripts
- dont put patch in sovesion in accordance to semver
- drop vcproj_userfile - not needed any more
- proper fix for building SampleBrowser bundle
- stop installing sample code
- RenderSystems: make parentWindowHandle an alias to externalWindowHandle on all platforms
- D3D*: drop unused "Backbuffer Count" option
- D3D11
- also support "OgreUniforms" as default cbuffer
- drop non-standard HLSL defines
- drop _renderUsingReadBackAsTexture
- drop unused "Floating-point mode" option
- HLSLProgram - align buffer memory & update params with one memcpy
- HLSLProgram - avoid leaking mSerStrings
- HLSLProgram - minor code cleanups
- implement hardware shared_params
- introduce CHECK_DEVICE_ERROR macro
- reduce mSerStrings usage
- D3D9
- properly register assembly language support
- rename "Multi device memory hint" > "Auto buffer management"
- GL*
- GLSL - warn if there is a default value, that we would overwrite
- use getResourceLogName for better error reporting
- GLSupport
- Android - use finaliseWindow as well
- CPreprocessor - add basic concatenation support
- EGL - search maximal supported context version like GLX
- EGL - try harder to find a suitable default display
- fix compilation with Android NDK 20+
- GLX - select maximal supported context version
- OSX - drop "hidden" global RS option
- GL3+ & GLES2: simplify GLSLProgramFactory
- GL3Plus
- enable "Separate Shader Objects" by default
- fix usage of UBOs for default params
- implement UBO storage for non shared params
- drop ABO support - SSBOs do the same with a less esoteric API
- rename "spirv" to "gl_spirv" as it is indeed a different syntax
- GLES2: Fixing warning in a deprecated String::toString case (#2054)
- Metal: Program - fix physical index retrieval
- Docs
- add hardware shared_params section
- fix ColourInterpolator Affector formatting
- improve _createRenderWindow miscParam docs
- improve & regroup Compositor script docs
- improve stencil shadow algorithm documentation
- Manual - add cross-platform shaders section and restructure RTSS
- port static geometry tutorial from wiki
- RTSS - mention shader generation control & update init sample code
- setColourOperationEx note no longer applies to D3D9+
- StencilState - improve & unify compositor script reference
- use RenderDoc images in Deferred Tutorial
- Samples
- AndoidJNI - update sample to show Input Event handling
- Browser - use getRenderWindowDescription
- clean-up Grass (static-geometry) sample
- DeferredShading - disable RTSS lights if we dont need them
- DeferredShading - exclusively use the RTSS for GBuffer shaders
- fix B&W compositor for HLSL
- move RTSS materials to sample media
- simplify DeferredShading Demo
- Tests
- fix geometry shader test after resource lookup changes
- move ogretestmap.zip to BSP resources
- Terrain - extend to test (de)serialization
- TextureShadowsCustomReceiverMat - use FFP API to avoid Cg
- TextureShadows - use FFP API to avoid Cg
- MeshUpgrader - clean up CLI options after colour simplification
- VRMLConverter: fix warning messages about shadowing 'end' variable with std::ios::end stl variable (#2057)
- VTests: also consider -rs option on initial run
- VTests: fix StaticGeometry tests
Development is funded by your contributions
If your company uses Ogre, consider supporting its development in return: