Ogre 3D v1.12.4 Release Notes

Release Date: 2019-12-23 // over 1 year ago
  • โ†ช Note: imgui is not included - workaround

    • Main

      • Compile Remotery.c as cpp-file
      • Fixed wrong material name in ManualObjectSection
      • InstanceBatch: Initialize frame number in constructor.
      • Revert "OgreResourceBackgroundQueue: disable when OGRE_THREAD_SUPPORT == 3"
      • remaining fixes for OGRE_CONFIG_DOUBLE
      • add converting constructors to Matrix4 and Affine3 + Test
      • AutoParamDataSource - use Vector4f, when float precision is enough
      • Camera - add #ifdef NODELESS_POSITIONING
      • Camera - simplify with nodeless positioning enabled
      • deprecate AtomicScalar
      • deprecate OgreVector2.h, OgreVector3.h and OgreVector4.h
      • fixed inability to properly parse 'import "longQuotedFilename"'
      • further reorder fields to reduce padding
      • GpuProgram - add safePrepare to account for throwing overloads
      • GpuProgram - move reading from file to prepare
      • GpuProgramParams - use typed overloads for Vector4 float & double
      • Lexer - do not repeat the filename in each ScriptToken
      • Light - add #ifdef NODELESS_POSITIONING
      • make sure directional lights are always sorted in front
      • make TransfromBase compatible when T is not Real
      • merge HighLevelGpuProgram::loadHighLevel with GpuProgram::loadImpl
      • move CmdPreprocessorDefines to HighLevelGpuProgram
      • replace in memory spot_shadow_fade.png by on disk .dds file
      • Resource::calculateSize - use sizeof(*this)
      • SceneManager - move destroyShadowTextures to clearScene
      • ScriptCompiler - avoid vector of SharedPtr
      • ScriptCompiler - deprecate unused internal API
      • ScriptCompiler - throw error on invalid import statements
      • ScriptLexer - get rid of Ptr to vector antipattern
      • ScriptLexer - only record lexeme when type is not sufficient
      • ScriptParser - factor out unquoted function
      • ScriptTranslator - unify GpuProgram translation
      • ShadowRenderer - bind shadow texture to correct Pass with RTSS
      • ShadowRenderer - fix spot shadow fade with the RTSS
      • slightly refactor shadowrenderer
      • switch internal HighLevelGpuProgramFactory API to GpuProgram*
      • TextureManager - assert that total texture size is not zero
      • UnifiedHighLevelProgram - allow delegating to low-level programs
      • Node - make getLocalAxes more numerically stable
      • Matrix3 - make several functions inline for re-use and refactor
    • Bites

      • add keypad key support for Dear ImGui.
      • map Dear ImGui to SDL_TEXTINPUT for correct text character processing.
      • Move check for Xaw to Bites.
    • CMake

      • expose OGRE_NODELESS_POSITIONING
      • disable imgui, if it is not found out and add nodeless to summary
      • Make OGRE_BUILD_TESTS depend on Ogre Bites.
      • RTTS - drop separation between core and ext shaders
    • Overlays

      • imgui - correctly handle RGB > BGR conversion for D3D9
      • restore script loading hack to allow re-loading groups
    • RTSS

      • FFPLib - add missing FFP_Transform variant
      • fix linear skinning shaders and replace existing sample by them
      • HarwareSkinning - only include light calculations when needed
      • LinearSkinning - add missing normal transformation
      • make hardware skinning work with GLES3+
      • properly handle uniform arrays of non square matrices
      • Texturing - switch back to inspecting srcPass
      • Texturing - use ACT_TEXTURE_VIEWPROJ_MATRIX for projection matrix
      • use the RTSS to generate Hardware Skinning shadow caster shaders
      • use uint4 for BLENDINDICES for HLSL4 compatibility
    • D3D9/ D3D11: allow background shader compilation in prepare()

    • D3D11

      • HLSL - drop shared_ptr juggling and remove according hack in Main
      • make sure PF_RGB correctly falls back to PF_XRGB instead of RGBA
      • Switched ID3D11DeviceContext::ClearState and ID3D11DeviceContext::Flush as recommend by Microsoft.
    • D3D9: retain monitorIndex of the "Rendering Device" config option

    • GL*

      • delete background contexts before destroying the HBM
      • fix uploading sampler array uniforms
      • Non-square matrices are always row-major in Ogre with no
        conversion, so force off transposition.
    • GL

      • explicitly convert matrices to float for OGRE_CONFIG_DOUBLE
      • fix crash & error due to type mismatch
      • get rid of GLSLGpuProgram and consolidate GLSL code in GLSupport
    • ๐Ÿ‘ GLSupport

      • add the 'externalGLControl' option to Cocoa render windows
      • factor out common GLWindow class
      • move background context registration to GLRenderSystemCommon
    • ๐Ÿ“„ Docs: add background resource loading tutorial

      • Basic Tutorial 2 - use additive lighting
      • improve VTF section
      • manual - improve GPU Program documentation
      • Manual - slightly improve Shadows section
      • Manual: document GLSL non-square matrix translation behavior
      • RTSS - add hardware_skinning section
      • update License.md - added pugixml, dropped nedmalloc
    • Samples

      • add clarifying comment when using the ImGuiOverlay() in custom apps (#1333)
      • Do not build demo installer when SampleBrowser is disabled
      • BumpMapping - use HLSL instead of Cg
      • clean up Shadows sample
      • do not build imgui sample, if it is disabled
      • drop obsolete HadwareSkinning materials & shaders
      • enable Fresnel Sample for D3D11 by using HLSL instead of Cg
      • fix depth shadow caster for HLSL4
      • OffsetMapping - finalize cleanup and fix multilight setting
      • OffsetMapping - use HLSL instead of Cg and simplify material
      • Browser - improve UI layout on Mobile
    • โœ… Tests

      • PlayPen - port to nodeless positioning by using helper class
      • unify glow shaders