Skip to content

v14.2.0

Compare
Choose a tag to compare
@paroj paroj released this 25 Feb 22:56
· 52 commits to master since this release

Highlights

  • Bites: added ImGui based config dialog
  • Tools: expose vertex cache optimizer in MeshUpgrader
  • various bugfixes and performance optimizations

What's Changed

  • Main
    • add SceneNode destroyChildAndObject etc convenience methods (#2963)
    • ControllerManager - use std::vector for ControllerList
    • copyMatchingNamedConstantsFrom - switch to release assert
    • deprecate RSC_POINT_EXTENDED_PARAMETERS
    • fix spelling error in MOT_FRUSTRUM (#2943)
    • GpuProgramManager - improve missing shared_params error message
    • GpuProgramParameters - fix edge cases for params of invalid logicalIndex or single float size
    • GpuProgramTranslator - skip params on programs that failed to load
    • inline Math::UnitRandom as it is on the hot path for particle emission
    • Log - use put_time for timestamp formatting
    • ParticleSystem - add profiling instrumentation
    • ProfileInstance - simplify logResults
    • ResourceManager::remove - check whether we created the resource
    • RSC - domain and hull programs always come together
    • SceneManager - add Static Geometry collection access (#2987)
    • SceneManager - dont bind compute programs. They are dispatched differently
    • ScriptTranslator - unify ID to GpuProgramType translation
    • SimpleSpline - make coeffs static and simplify constructor
    • simplify ParticleSystemTranslator
    • SubEntity - provide correct bone matrices for binding pose
    • Technique
      • also check RSC_WIDE_LINES for compatibility
      • check RSC_POINT_SPRITES availability
      • do not add superfluous newline to compileErrors
      • try to catch user missing a program type early on
      • also check TEX_TYPE compatibility in programmable passes
    • VertexCacheProfiler - add average cache miss ratio metric
    • workaround any_cast on iOS by using strcmp
    • WorkQueue - move WorkerThreadCount to interface
    • fix compilation with double
    • fix emscripten build on apple
    • removed unecssary null ptr checks + changed NULL to nullptr
  • CMake
    • bump required version to 3.13
    • check for pugixml before enabling dependent options
    • fix ios toolchain for cmake 3.28
    • let CMake decide on the xcode attributes
  • Dependencies
    • update Assimp to version 5.3.1
    • update freetype to version 2.13.2
    • update pugixml to version 1.14
    • update SDL2 to 2.28.5
    • update imgui to 1.90.4
    • update zlib and switch to github mirror (#3031)
    • update bundled stb_truetype to version 1.26
  • SWIG
    • fix building with swig 4.2.0
    • ignore some deprecated functions
    • use argument_fail for consistent type error reporting
  • RTSS
    • also check if the src technique is supported
    • cloneShaderBasedTechniques - ensure src material is loaded
    • GLSLProgramWriter - skip gl_PointSize in Fragment Shader
    • remove empty function stubs
    • unify writeProgramDependencies
    • use same variable name for vs out and ps in
  • Overlay
    • add workaround for whitespace advance when using stbtt
    • Container - update children first as notifyParent may call initialise on them
    • Font
      • drop obsolete character_spacer StringInterface
      • use antialias_colour by default and deprecate the off state
    • FontManager - drop unimplemented methods
    • ImGui
      • also clean font texture and material
      • implement renderer configuration dialog
      • wrap PlotHistogram, PlotLines for python
      • improve error message in addFont
    • ProfileSessionListener - fix crash in finializeSession
    • store zorder as ushort instead of ulong
    • use runtime assert to check zorder range
  • Bites
    • allow force disabling native ConfigDialog
    • ApplicationContext
      • add convenience functions to bring up ImGui
      • add runRenderingSettingsDialog
      • const correct getFSLayer
      • deprecate ApplicationContext::reconfigure
    • ImGuiInputListener - silently ignore events if context dissapeared
    • InputListenerChain - forward frameRendered events and add empty() method
    • range loop refactoring (#3013)
  • MeshLOD
    • fix not using CacheList when we should
    • LodOutputProviderMesh - correctly assign indexStart
    • range loop refactoring (#3016, #3024, #3037, #3014)
  • Bullet: add basic documentation
  • Assimp: fix version printing. revision is the git hash
  • RsImageCodec: fix build with latest Rust toolchain
  • GLSLang
    • check that a valid UBO name is used
    • compile as std17, to allow using recent Vulkan SDKs
  • D3D11
    • do not set any PointSize related RSC as it is unsupported
    • HLSL - drop logical indexing as it makes no sense
    • HLSL - give up on custom alignment logic
    • range loop refactoring (#2972)
    • Texture - src image attributes should not be overwritten
  • D3D9: drop unused _setSrcAttributes
  • GLSupport
    • add leading whitespace to FSAA options
    • const correct GLSLPreprocessor
    • range loop refactoring (#2968)
  • GL3Plus
    • alias CS UBO to VS UBO as both wont be present at the same time
    • do not crash if nonexistant shared_params are referenced
  • GL: const correctness for ps_1_4 testCompile
  • Vulkan: correctly check for RSC_POINT_SPRITES
  • GLES2: turn on normalization for VET_INT_10_10_10_2_NORM
  • Tools: MeshUpgrader
    • add optvtxcache flag to optimize vertex cache
    • more robust argument number check
  • Docs
    • actually link to the last two API references
    • fix copydoc usage in material-scripts.md
    • fix formatting of Changelog
    • list mesh tool parameters in manual
    • slightly improve the Shadow Mapping tutorial
    • update 14-Notes
    • update required compilers
  • Samples
    • Browser
      • use InputListenerChain
      • use ImGui based renderer config dialog
    • Sample/ SdkSample
      • do not duplicate FrameListener API
      • remove superfluous boilerplate methods
      • drop unused WindowEventListener methods
      • register input directly with context
      • expose ApplicationContext to Samples
      • take care of trays internally
      • use InputListenerChain for clear input propagation
      • move input related stuff to SdkSample
    • range loop refactoring (#2993)
    • PNTriangles - use requireMaterial
  • Tests
    • convert BillboardTextureCoords VTest to Unit Test
    • TestContext - port to runRenderingSettingsDialog

Development is funded by your contributions

If your company uses Ogre, consider supporting its development in return: