Skip to content

Releases: OGRECave/ogre

v13.1.1

16 Oct 01:04
Compare
Choose a tag to compare

What's Changed

  • D3D11: drop superfluous ColourValue mapping
  • GL3Plus: fix usage of glObjectLabel
  • GLES2: clean-up glLabelObjectEXT usage
  • GLSLang
    • add local copy of gl_types.h as Vulkan SDK lacks it on Windows
    • allow compiling on Android
    • allow compiling on Windows

Development is funded by your contributions

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

v13.1.0

09 Oct 20:15
Compare
Choose a tag to compare

What's Changed

  • Main
    • add factory for Rectangle2D to allow auto memory management
    • add Rectangle2D to Ogre.h
    • Deprecated - drop duplicate definition of aligned_vector
    • ensure manual Textures have correct Resource load state
    • Entity - handle srcbuf == dstbuf in finalisePoseNormals
    • FactoryObj - provide default destroyInstance
    • HighLevelGpuProgram - make entry_point a common property
    • HighLevelGpuProgram - _resolveIncludes fix off-by-one #line number
    • MeshSerializer - simplify colour conversion logic
    • ParticleSystem::_expire - use idiomatic remove-erase
    • ParticleSystem - properly initialise bursting emitted emitters
    • ParticleSystem - we can assume emitters are not NULL
    • RenderSystem - factour out flipFrontFace
    • RenderWindow - provide default isClosed() implementation
    • SceneManagerFactory - provide default destroyInstance
    • SceneManager - inline aliases for destroyMovableObject
    • fix some warnings messages in android ndk r23 compilation
  • CMake
    • allow to control resource paths (#2199)
    • Allow to configure docs path
    • Fixed missing include in FindOpenGLES2.cmake
    • Enable OBJC and OBJCXX for apple build
  • RTSS
    • Fix implicit cast in shader (#2201)
    • implement two-sided lighting
    • PSSM - make PCF kernel configurable & fix reversed-z
    • PSSM - properly respect shadow far distance
  • Bites: Use Qt 6 for OgreBitesQt if present
  • UnifiedShader
    • add texture2DArray support and refactor respective sample
    • initial support for glslang
  • Overlay
    • BorderPanelOverlayElement - fix crash on device lost
    • fix compilation with imgui on mingw
  • D3D11: Sampler - fix mipFilter=FO_NONE translation
  • D3D9: Texture - do not recreate unloaded buffers
  • Metal: drop uneeded Discard and Staging buffer stubs
  • GL3Plus & GLES2: improve GL error logging
  • GLSupport: Fix build issue with libglvnd 1.3.4 (#2221)
  • GLSLang
    • fix parsing of UBO members and define VULKAN as appropriate
    • handle includes and defines
    • enable standard params & add vulkan support
  • Samples: fix build without terrain component
  • Docs: Particles - fix emitting emitter description and improve layout

Development is funded by your contributions

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

v13.0.1

04 Sep 10:12
Compare
Choose a tag to compare
  • Fix compiling errors with OGRE_CONFIG_DOUBLE
  • Main: FileSystemLayer - add missing include for OSX
  • Overlay: also link against zlib, when using freetype
  • Samples: EndlessWorld - fix AutoLOD toggle

Development is funded by your contributions
If your company uses Ogre, consider supporting its development in return:

v13.0.0

14 Aug 14:07
Compare
Choose a tag to compare

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
  • 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 sto...
Read more

v1.12.13

14 Aug 13:13
Compare
Choose a tag to compare
  • Main
    • Instances Make sure cloned vertex data is deleted.
    • add API for exporting scene hierarchy + dotscene implementation
    • catch empty GpuProgram sourceFile
    • CompositorChain - correct clearBuffers value for "input previous"
    • Compositor - fix auto clear colour and use it in "scene previous"
    • DDSCodec - disable mips instead of decompressing
    • DefaultDebugDrawer -Skip bounding boxes that are infinite.
    • Disable vptr checks for Singleton constructor (#2032)
    • Export ScriptTranslatorManager (#2031)
    • FileSystemLayer - also look relative to lib for configs on Linux
    • FileSystemLayer - do not change paths already pointing inside snap
    • fix StaticGeometry not casting shadows
    • InstanceManager - unshare LODs as well (#2000)
    • make log of RSC_AUTOMIPMAP_COMPRESSED descriptive
    • MaterialSerializer - do not export RTSS techniques by default
    • ParticleEmitter - new take on burst mode
    • PixelFormat - inline alias functions and improve docs
    • Root - catch bad config options in restoreConfig
    • SceneManager::createLight - add convenience param to specify Type
    • ScriptTranslator - catch invalid material references in compositor
    • ShadowRenderer - also consider lightmask in shadow visibilitymask
    • ShadowRenderer - ensure shadow caster material is not a receiver
    • Skeleton - fix addLinkedSkeletonAnimationSource
    • StaticGeometry - assert that we get an indexBuffer
    • StaticGeometry - use more robust prepareForShadowVolume
    • TextureManager - add removeAllNamedSamplers
    • TRect - add asserts to merge & intersect
    • TRect - clarify that rects extend downwards.
    • Viewport - disable clearBuffers if clearEveryFrame is off
  • Bites: ApplicationContext - skip resource location check on emscripten
  • Overlay: Font - Texture must be removed to allow reloading
  • CMake: proper fix for building SampleBrowser bundle
  • RTSS
    • be greedy about lights to avoid shader trashing
    • fix use of non-unit light direction when scaling is present
    • Shadows - use shadow2D instead of texture for HLSL compatibility
  • SWIG
    • add %template for CameraMap
    • enable director for OverlayElementFactory
    • Python: dont try to use strings as sequences
  • Terrain
    • Delete plane when shutting down.
    • fix dynamic shadows not working in LOD1
    • Return early if rect doesn't match node.
  • DotScene
    • DotScene - fix DTD and add test
    • implement export
  • D3D11: HLSLProgram - avoid leaking mSerStrings
  • GL*: GLSL - warn if there is a default value, that we would overwrite
  • 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
  • Docs
    • fix ColourInterpolator Affector formatting
    • improve _createRenderWindow miscParam docs
    • improve & regroup Compositor script docs
    • 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: DeferredShading - disable RTSS lights if we dont need them

Development is funded by your contributions
If your company uses Ogre, consider supporting its development in return:

v1.12.12

21 Apr 19:18
be8c2a2
Compare
Choose a tag to compare

highlight: node animation support in DotScene Plugin

  • Main
    • add SceneNode::loadChildren
    • ArchiveManager - use consistent wording in messages
    • CompositionPass - avoid compiling material twice
    • Compositor
      • allow creating cubemaps
      • allow overriding camera in render_scene
      • allow referencing specific cubemap slices
    • DDSCodec - make DDS constants static
    • deprecate unused includeOverlays parameter in _renderScene
    • Exception - avoid referencing dangling strings
    • FileSystemLayer
      • also look in XDG_DATA_HOME for configs
      • also look relative to dll for configs on Windows
      • also look relative to dylib for configs on OSX
      • simplify getConfigFilePath
    • Frustum - fix description of getNearClipDistance (#1901)
    • HardwareBufferManager - assert that this is the correct manager
    • InstanceManager - fixed invalid EdgeData after unshareVertices
    • Log - replace setLogDetail by setMinLogLevel
    • make resource lookup robust to reloaction on Linux
    • move shared FOURCC macro to internal header
    • ResourceGroupListener - drop unused worldGeometryPrepare* methods
    • Root - use actual stack instead of mSceneManagerStack
    • SceneManager - improve error messages at compositor resolution
    • SceneManager - preserve the previous material scheme
    • ScriptCompiler - allow abstract compositor target sections
    • ScriptCompiler - simplify toggling AST debug output
    • slightly simplify SceneManager::_renderScene
    • TangentSpaceCalc - prevent leaking buffer lock
    • UnifiedProgram - forward compile errors & handle res not found
    • build fix on NetBSD: remove #ifdef FreeBSD (#1911)
  • Bites
    • add OGRE_BITES_STATIC_PLUGINS CMake option to skip plugins.cfg
    • Android - fix crash on surface recreation
    • Android - properly parse RenderSystem ConfigOptions
    • print which resources.cfg is being parsed
    • warn about non-existant locations in resources.cfg
  • RTSS
    • fix AlphaTest shaders for GLES2
    • GLSL - explicitly bind output buffer location if possible
    • handle BuildDstTechnique flag inside SGTechnique
    • log program names when caching to disk to aid debugging
    • ProgramWriter - the only program we ever write is main
    • PSSM - avoid scalar swizzling for compatibility
    • simplify handling of HLSL targets
    • Texturing - also override texture type for cubic reflection
  • Overlay:
    • add setVisible to OgreOverlay and OgreOverlayElement
    • Element - inline trivial accessors
    • improve BorderPanelOverlayElement documentation
    • Revert "[OGRE-155] TextAreaOverlayElement: fix for mSpaceWidth field getting stuck with wrong value in certain cases."
  • Terrain
    • add SWIG bindings for CSharp
    • TerrainGroup - deprecate getTerrainIterator
  • SWIG
    • allow iterating over SceneNodes
    • Fixed output params of suggestTangengtVectorBuildParams (#1928)
    • instantiate GpuProgramParametersPtr
    • instantiate SplitPointList (#1927)
    • wrap MovableObjectMap
  • Csharp: forward operator overloads on Vector for convenience
  • Python
    • weakly link libpython to allow relocation
    • add build system for python wheels
  • CMake
    • also install dependencies on OSX
    • Dependencies - update SDL2 to 2.0.14
    • fix Framework linking with recent CMake & Xcode
    • fix PrecompiledHeader.cmake for old CMake versions (#1942)
    • make InstallDependencies available on all platforms
    • make OGRE_BIN_DIRECTORY configurable
    • respect user CMAKE_INSTALL_RPATH
    • use relative paths in resources.cfg on OSX
    • Revert "allow/ fix static build of python component"
  • Plugins: export Plugin classes for direct linkage
  • DotSceneLoader
    • correct angle parsing (#1902)
    • Add DotScene usage scenarios (#1892)
  • ParticleFX: TextureAnimator - fix speed calculation
  • D3D9
    • fix auto HardwareBuffer management
    • fix wrong cast in createBuffer
    • HardwareBuffer - fix comparison that turned into assignment
    • reduce dependance on d3d9x
  • GL
    • disable unused GLU include
    • HardwareBuffer - fix readData and destruction
  • GLSupport
    • EGL - catch client extension failure on android
    • EGL - Emscripten does not support PBuffers
    • EGL - export "Content Scaling Factor" on Android
    • fix wrong VERSION value on OSX/GL3+
    • OSX - only contentScaling 1 and 2 is supported
  • Tools: MeshUpgrader
    • Fix some formatting regarding console output (#1946)
    • Fix some input prompts and logname (#1940)
    • set log file path (#1948)
    • Throw an exception if the material name is empty (#1934)
    • Tidy up whitespaces (#1938)
  • Docs:
    • correct documentation of OgreOverlayElement
    • 1.12 Notes - add noteworthy post 1.12.0 additions
    • Add section about empty Material Names (#1944)
    • BuildingOgre - fix target names for OSX which is case-sensitive
    • document "Content Scaling Factor" RenderSystem Option
    • fix typo in InstanceManager (#1906)
    • format corrections in "iteration" section (#1897)
    • improve PixelBuffer and Texture parts
    • Light - correct some erroneous wording and apply consistency. (#1909)
    • RenderQueueListener fix formatting
    • small typo in the description of setStencilBufferParams (#1904)
    • improve override documentation
  • Samples
    • add Java sample
    • Android - fix TextureOES sample
    • Compositor - update blacklist
    • CSM - correct capabilities check
    • CubeMap - port to new compositor functionality
    • Deferred - drop unused "profiles" parameter
    • enable LightShafts for GLES2
    • factor out requireMaterial/ use it to check compatibility
    • Fresnel - port to compositors
    • PBR - allow shader upgrading on GL3+/OSX
    • Python - simplify bootstrap sample

Development is funded by your contributions
If your company uses Ogre, consider supporting its development in return:

v1.12.11

13 Feb 01:56
Compare
Choose a tag to compare

highlights: new Software RenderSystem and headless mode on Linux

  • Main
    • DefaultHardwareVertexBuffer - correctly set used BufferMgr
    • fix getCastsShadows when inherting from MovableObject + Renderable
    • fix inconsistently named PF_RG8
    • fix warning in RenderQueueGroup::merge
    • ShadowRenderer - fix culling not propagated to RTSS passes
    • Image - fix getData() const overload
    • add Ogre::to_string(..) alias for unified access to such functions
    • add simplified Material::clone overload
    • AutoConstantEntry - clean up storage type
    • Camera - allow to sort by depth and not by distance
    • Compositor - allow referencing global textures again
    • DDSCodec - implement writing PF_FLOAT16_R
    • GpuProgramParams - only set variability if requestedSize > 0
    • GpuProgramParams - simplify two-param AutoConst overloads
    • GpuProgramParams - use templated _writeRawConstant & update docs
    • GpuProgramParams - use templates instead of copy & paste
    • HardwareBuffer - allow acting as facade for real implementation
    • HardwarePixelBuffer - consider depth in size computatiuon
    • minor code cleanup around _getProgramByName
    • Node - inline some trivial setter overloads
    • Particle - implement sprite sheet texture animation
    • ParticleSystem - fix autoupdate of AABB
    • ParticleSystem - fix setMaterialName lookup
    • ParticleSystem - forward shadow casting flag to renderer
    • ParticleSystem - logError instead of assert on null material
    • RenderSystem - add "VSync Interval" as common option
    • RenderSystem - do not require validateConfigOptions
    • RenderSystem - provide default *TexelOffset implementations
    • RenderSystem - unified derived depth bias update
    • use RenderWindow::resize to react to size change instead of querying
    • replace "depth" by "distance" to match the computations
    • ScriptTranslator - avoid multiple lookups for translateProgramRef
    • ScriptTranslator - flag unexpected parameter
    • ShadowCameraFocused - receiverBB should be intersected with
    • unify fsaaHint documentation
    • unify null material logging
    • unify PixelBuffer locking between rendersystems
    • Animation - deprecate IteratorWrapper based access
    • deprecate RenderTarget::Impl
    • RenderQueueGroup - deprecate getIterator
    • GpuProgramParams - deprecate setConstantFromTime
    • fix spelling errors reported by lintian
  • CMake
    • allow/ fix static build of python component
    • clean-up feature summary
    • GL* - prevent exporting OgreGLSupport for linking
    • use OGRE_LIB_DIRECTORY when determining OGRE_PLUGIN_PATH for OGREConfig.cmake
    • use PATH_VARS in configure_package_config_file
    • Bites - only add D3D include_directories when needed
  • RTSS
    • assert that we have a sceneManager in synchronizeWithLightSettings
    • provide overloads taking material directly instead of by name
    • PSSM3 - cast shadows on "lighting_enabled false" surfaces
    • ShaderGenerator - do not index SceneManagers by name
  • Overlay
    • OverlayContainer - drop wrong cast
    • OverlayElement - warn if we are about to change the material
    • TextArea - ensure glyphinfo is loaded/ avoid superfluos lookups
  • Bites
    • ApplicationContextBase - catch if no RenderSystems are available
    • Input - add Gamepad support
    • make GLXConfigDialog optional, relaxing the Xaw dependency
    • StaticPluginLoader - add Assimp and TinyRenderSystem
  • SWIG
    • add Vector.setitem and missing NodeObjectMap
    • wrap ParticleSystemRenderer
    • Python - enable implicit conversion from float to Radian
  • Volume: TextureSource - skip GPU round-trip and allow different formats
  • Assimp: respect resource group when creating material
  • STBICodec: encodeToFile - improve error message
  • UnifiedShader: add texture2DLod
  • Tiny: implement Software Renderer
  • D3D*
    • drop superfluous MinGWSupport headers
    • fix braindead CSAA naming and mode selection
  • GL*
    • clean up display frequency configOption handling
    • immediately parse vendor instead of caching string
  • D3D11: turn D3D11_CREATE_DEVICE_DEBUG into runtime option
  • GL3Plus: turn GL_DEBUG_OUTPUT into runtime option and improve msg format
  • D3D9
    • port to delegate buffer API
    • RenderSystem - remove fields duplicated from RenderWindow
    • use staging buffer instead of downgrading all manual textures
  • GL
    • gl.h and glext.h are unused (#1841)
    • port to delegate buffer API
  • GLSupport
    • correctly request 3.0+ core context
    • EGL - also query client extensions
    • EGL - provide PBuffer based Window for transparent fallback
    • EGL - Window do not require methods only used on X11
    • resurrect EGLRenderTexture
    • X11EGLWindow - fix shadowing warnings
    • GLX - recover from more XRandR failure cases
  • Docs
    • add missing copyright statements
    • add grouping to BillboardSet documentation
    • Bites - fix doxygen grouping
    • CodingStandards - add SPDX-License-Identifier
    • describe the camera coordinate system
    • drop references to AGP memory
    • improve Scripts part
    • improve WinRT build instructions
    • Manual - improve SceneManager overview
    • manual - unify GPU Program docs below Scripts
    • slightly overhaul basictutorials
    • Tutorial3 - reference texture splatting wikipedia article
    • unify ParticleFX and particle script docs
    • update and reference RenderSystem::setConfigOption
    • update RTSS docs
  • Samples
    • Emscripten - fix build
    • fix reference to a non existing object in filament.material
    • Python - fix crash at shutdown
    • VolumeTerrain - store data as half-float to reduce SDK size
  • PlayPenTests
    • fix missing BSP scene manager RTSS registration
    • fix Overlay material warning
    • port some tests to UnifiedShader

v1.12.10

13 Dec 23:13
Compare
Choose a tag to compare

highlight: native GLES2 support on Windows via WGL

  • Main
    • add & improve error messages on missing materials
    • add OGRE_MIN_VERSION convenience macro
    • Any - deprecate operator<<
    • deprecate dummy operator<< that only exist due to Ogre::Any deficiency
    • move handling of missing RSC_POINT_SPRITES support to RTSS
    • BillboardSet - fix removeBillboard
    • BillboardSet - refactor vertex generation
    • BillboardSet - simplify ActiveBillboards handling
    • ParticleEmitter - ensure uniform distribution of emitter direction
    • ColourValue - add conversion for native-endian byte formats
    • ColourValue - inline comparison operators
    • DefaultDebugDrawer - fix Frustum drawing
    • DefaultSphereSceneQuery - use scaled & cached WorldBoundingSphere
    • drop wrong PFF_HASALPHA for PF_DXT1
    • Entity - make SchemeHardwareAnimMap a vector
    • HighLevelGpuProgram - set lineFilename support explicitly
    • make Image class more versatile
    • Image - add casting getData
    • Image - add create for 2-phase allocation
    • Image - only re-allocate buffer if needed
    • Image - simplify combineTwoImagesAsRGBA
    • Image - simplify encoding paths
    • Image - simplify resize & scale using create
    • Image::FILTER_LINEAR/ BILINEAR is identical
    • inline several hot methods
    • MovableObject - factor out getBoundingRadiusScaled
    • MovableObject - make getVisibilityFlags getQueryFlags virtual
    • MovablePlane - use static BOX_NULL
    • ParticleSystem - tell renderer about bounding box
    • BillboardParticleRenderer - export setTextureStacksAndSlices
    • Pass - inhibit _dirtyHash if being deleted
    • Pass - inhibit recompile if being deleted
    • PixelUtil - bulkPixelConversion use production assert
    • PSSM Camera Setup - skip custom culling frustum (#1781)
    • RadixSort - add iterator based overload
    • RenderSystem - backport RSC_DEPTH_CLAMP from next
    • RenderSystem - document setConfigOption
    • RenderSystem - provide default thread registration functions
    • SceneLoaderManager - forward groupName to Codec implementations
    • SceneManager - do not cull texture shadow casting lights
    • SceneManager - fix crash in manualRender(Renderable*)
    • ShadowRenderer - assert that a custom caster material has passes
    • ShadowRenderer - simplify visibility test
    • simplify several AABB computations
    • StringConverter::parse - keep value unchanged on error
    • unify baseVertexPointerToElement into templated implementation
    • VertexBufferBinding - inline hasInstanceData
    • VES - alias DIFFUSE/ SPECULAR to COLOUR1/2
    • enable AutoParams for RenderToVertexBuffer shaders
    • fix build with OGRE_CONFIG_DOUBLE
    • Math - float is always sufficient for trigonometric functions
    • Quaternion - always use float storage
    • deprecate obsolete compute_group_dimensions
    • drop usage of deprecated RenderSystemCapabilities
    • deprecate getDisplayMonitorCount
    • deprecate RSC_INFINITE_FAR_PLANE
    • deprecate RSC_VERTEX_FORMAT_UBYTE4
    • drop remains of Symbian OS detection
  • CMake
    • Dependencies - always use static build, if we build our own deps
    • DirectX11 - fix discovery when using MINGW and having W10SDK
  • RTSS
    • correctly handle SPS_BLEND_INDICES & drop workaround
    • implement FFPRenderStateBuilder as TargetRenderState::link
    • move resolveColourStageFlags fixup method to TargetRenderState
    • Program - add convenience resolveParameter overload
    • RenderState - add stringvector link overload
    • RenderState - drop template in generic funcs
    • ShaderFunction - refactor resolve*Parameter
    • SubRenderState - add generic setParameter
    • swap resolveLocalParameter arguments for consistency
    • transfer TargetRenderState ownership to Pass
  • Bites
    • OSXConfigDialog - use new ogre logo and a tighter layout
    • Trays - fix broken mouse-wheel handling & update SampleBrowser
  • UnifiedShader: inital metal support
  • ParticleFX: simplify colour related computations
  • Overlay
    • update imgui to 1.79
    • ImGuiOverlay - avoid recreating buffers at every draw call
    • ImGuiOverlay - fix off-by-one in strncpy
    • Font - implement simple writing to BillboardSet
    • Font - fix tight glyph packing. Obsoleting character_spacer cfg
    • suppress warnings in imgui
  • SWIG
    • Add cast from OverlayElement to PanelOverlayElement and TextAreaOverlayElement (#1741)
    • Added cast from OverlayElement to OverlayContainer
  • AssimpCodec
    • fixes for getScale function
    • add support for point- and line-list meshes
  • DotSceneLoader: attach loaded TerrainGroup to rootNode as UserAny
  • D3D11
    • drop unused mSceneAlpha* members
    • fix HBL_DISCARDed HBU_GPU_ONLY buffers not being updated
    • fix reinterpretGSForStreamOut
    • fully disable rasterization with streamout
    • HardwarePixelBuffer - correct HBU check
    • log selected device feature level
    • fix RenderTargetView for Texture3D
  • D3D*: use common Ogre implementation for #include handling
  • GL3+: drop unused scratch buffer implementation
  • GL
    • GLSLLinkProgram::activate - drop pre-use glGetError
    • TextureBuffer::blit - disable HW FBO blit again to fix PG Impostors
  • GLSupport
    • GLX - simplify context creation and re-enable fallback
    • Win32 - use CreateContextAttribs
  • Metal:
    • add alpha to coverage support
    • enable runtime #include support through Ogre
    • Hardware*Buffer - also update shadow buffer in copyData
    • implement _setPolygonMode
  • Terrain
    • factor out TerrainTransforms.glsl
    • improve getPointTransform API
    • LayerBlendMap - use Image for storage
    • move uv multiplication from vertex into fragment shader
    • replace more raw malloc calls by Ogre::Image
    • use Image for CPU staging buffers
    • use RTSS shaders for depth shadows
    • use RTSS shaders for Fog & Lighting
    • QuadTreeNode - deprecate getAABB
    • QuadTreeNode - use private inheritance instead of aggregation
  • Docs
    • improve building instructions
    • improve PixelFormat documentation
    • make sure Assimp and FreeImage show up in Plugins
    • Manual - clean up Particle System Attributes
    • Manual - improve introduction
    • Terrain - add method grouping
  • Samples
    • CSM - add back required Cg caster program
    • Instancing - fix VTF techniques after TerrainHelpers refactor
    • ParticleGS - finish D3D11 implementation
    • ParticleGS - refactor display shaders to use VS radius
    • ParticleGS - simplify Generate material
    • ParticleGS - fix HLSL shader
    • Python - slight cleanup
    • RTSS - drop superfluous checks after resolve*Parameter
    • update terrain sample and tutorial
    • Water - render "circles" using BillboardSet
  • Tests
    • add Image.Resize test
    • avoid loading plugins
    • add BillboardText test

v1.12.9

20 Sep 12:58
Compare
Choose a tag to compare

highlight: merge ogre-assimp as Codec_Assimp and OgreAssimpConverter Tool

  • Main
    • Any - enable implicit conversion constructor following std::any
    • Billboard - inline trivial getters & setters
    • BillboardParticleRenderer - inline facade methods
    • BillboardSet - avoid segfault if MaterialPtr is NULL
    • BillboardSet - inline and devirtualise trivial getters/ setters
    • BillboardSet - simplify per Billboard property handling
    • cleaned definition to fix build for macOS on ARM64
    • clean-up/ refactor HBU flags
    • Codec - refactor API to make it generally usable
    • Camera - use inherited mManager property instead of duplicating
    • deprecate ParticleVisualData
    • deprecate Root::convertColourValue
    • deprecate SceneLoaderManager API in favor of new Codec API
    • HighLevelGpuProgramManager::isLanguageSupported - add const
    • ManualObject - allow using transparent pass with detached MO
    • Mesh - introduce MeshCodec indirection to allow different formats
    • MovableObjectFactory - provide default destroyInstance impl
    • ParticleEmitter - use inherited Particle pos
    • ParticleSystem::clear - do not leak emitters into free list
    • ParticleSystem - set owner on creation instead of status change
    • ScriptTranslator - allow multi-language programs
    • Serializer - const correctness
    • ShadowRenderer - fix FT_MIP setting being overwritten
    • StringUtil.normalizeFilePath - properly handle absolute unix paths
    • Swig - extend PixelBox by method returning data as void pointer (#1674)
    • UnifiedShader - add texture1D alias for HLSL
    • use new HBU flags for code appearing in docs
    • Make resource paths relative to resources.cfg-location
    • use mesh provided HardwareBufferManager to create hardware buffers
    • unify debug drawing in the DefaultDebugDrawer class
  • Bites
    • use new logo in GLX config dialog
    • use new logo in Win32 config dialog
    • Add OGRE_CONFIG_DIR envvar
  • RTSS: AlphaTest - pass is a reserved keyword in HLSL
  • Overlay
    • Font - improve freetype related error messages
    • update imgui to 1.77
  • SWIG
    • enable imgui with C# and Java as well
    • export LogListener
    • Overlay - add workaround for setting DisplayString parameters
  • Terrain
    • simplify - blendmap format is always PF_BYTE_RGBA
    • use OgreUnifiedShader for shader generation
  • GL*: properly translate HBU setting
  • D3D11
    • HardwarePixelBuffer - properly use staging buffers
    • properly use HBU setting instead of abusing systemMemory flag
    • re-use shadow buffer for temporary staging
  • D3D9
    • auto-disable FFP fog, when fragment shader is present
    • drop D3DPOOL_MANAGED for buffers & discard HBU_DETAIL_DISCARDABLE
    • properly respect HBU_CPU_ONLY setting
  • Emscripten
    • avoid needless switchFullScreen call
    • load RenderSystem settings from ogre.cfg
    • Fixes issue preventing use of latest emscripten versions (#1698)
  • Docs
    • make sure per-component docs are correctly picked up by doxygen
    • manual - bring hardware buffer section up to date
    • merge cpp and manual docs of VertexData
    • RTSS - add note about automatic shader re-generation
  • Samples
    • ImGui - fix "NewFrameSanityChecks(): Assertion" again
    • merge GLSL150 and GLSLES shaders that all were GLSL100
    • PBS - use OgreUnifiedShader to make it HLSL compatible
    • redeclare Cg shaders as HLSL
    • SdkSample - use unique_ptr to manage mControls
  • Tests: allow RTSS to pass TextureShadowsTransparentCaster VTest
  • Tools: XMLConverter - createOrRetrieve Material

v1.12.8

26 Jul 11:41
Compare
Choose a tag to compare
  • Main
    • update ShadowTextureConfig with actually chosen texture format
    • add RSC_TEXTURE_2D_ARRAY and fix array texture detection/ handling
    • add OgreUnifiedShader.h and unify ShadowVolume shaders
    • HighLevelGpuProgram - correctly resolve #include in #include
    • pass native shader version to shaders as e.g. OGRE_HLSL=4
    • ShadowRenderer - improve default caster material for PF_DEPTH use
    • ShadowRenderer - handle dynamically changing RTSS caster materials
    • ASTCCodec - fix typo in validating blockDims
    • deprecate shadow_receiver_*_program_ref
    • document the current lighting and material model
    • fix RENDER_QUEUE_MAX being treated as RENDER_QUEUE_COUNT
    • HardwareBuffer - guard lock usage with runtime asserts
    • MaterialSerializer - escape special chars in material attributes
    • Material - turn isManual notice into warning
    • Pass - hard deprecate setShadow*Program
    • unify and deprecate RenderSystem::_createRenderWindows
    • unify RenderSystem::_createRenderWindow checks & log output
  • RTSS
    • include OgreUnifiedShader.h unconditionally
    • always write GLSL types - will be handled by UnifiedShader defines
    • HLSL - support Shadow & Array samplers
    • PSSM - slightly refactor shader invocation
    • PSSM - use 4 taps for HW PCF too, configurable split count
    • TextureAtlas - GLSLES compatibility
    • unify ShaderLib as GLSL and improve OgreUnifiedShader.h
    • use #include based dependency resolution for GLSLES as well
  • Bites: respect selected monitor, when creating SDL window
  • Overlay: use cmake to download imgui instead of git submodule
  • SWIG: add read access to elements of Matrix4 (#1608)
  • DotSceneLoader: appease unique_ptr destructor when building w/o Terrain
  • Tools: simplify argument parsing & use logError for error reporting
  • Python
    • allow using buffer types instead of raw pointers
    • allow using sequences instead of Vector and ColourValaue
  • D3D11 & D3D9
    • use sane fallback if no "target" is set
    • use sane fallback format for PF_DEPTH*
  • D3D11
    • fix HRESULT formatting in exception description
    • fix wrong d3dcompiler version, when compiled with MinGW 9.3
    • introduce OGRE_CHECK_DX_ERROR macro to reduce boilerplate code
    • PF_DEPTH texture support
    • reversed-depth fixes
  • Docs
    • add citation for Terrain LOD algorithm
    • disable inlining inherited members
    • fix Pass references in ACT_SURFACE_ALPHA_REJECTION_VALUE docstring
    • fix warnings uncovered by doxygen v1.8.17
    • hide friend compounds
    • hide ogre internal defines from function signatures
    • Manual - MeshUpgrades does LOD, not XMLConverter
    • move ComPtr to D3D11 module
    • specify unit of "rotate" in material scripts
    • use named member groups to improve readability
  • Emscripten
    • implement graceful degradation from WebGL2 to WebGL1
    • CMake: precompiled headers do not work on emscripten
  • GL*: use sane fallback format for PF_DEPTH*
  • GLES2
    • enable PF_DEPTH16 with WebGL2
    • ignore GL_OES_vertex_array_object on emscripten
  • GLSupport
    • make __VERSION__ available in preprocessor
    • CPreprocessor: forbid numerical defines
  • Samples
    • Browser - do not add Trays UI to Unit Tests
    • clean up Bumpmapping sample
    • Csharp - add Windows.Forms integration sample
    • Emscripten - add PSSM/shadow_caster material
    • LightShafts - port from Cg to OgreUnifiedShader
    • request PF_DEPTH for shadow mapping, where possible
    • ShaderSystem - fix LayeredBlending controls
  • Tests: clean up TextureShadowsTransparentCaster VTest