Releases: OGRECave/ogre
Releases · OGRECave/ogre
v1.11.4
- Main:
- add top level aliases for resource groups e.g. RGN_DEFAULT
- add two-argument OGRE_EXCEPT using
__FUNCTION__
as src - CompositionPass - allow specifying the type at creation
- CompositorManager - const correctness and method naming updates
- deprecate RenderSystem::_makeProjectionMatrix method family
- fix loading PF_BYTE_LA - add correct masks and shifts
- GpuProgramManager - clean up Microcode Cache API
- PassTranslator - auto assign inline defined GpuPrograms
- properly use std:: math overloads instead of casting to Real
- RenderSystem - drop commented out methods
- ResourceManager - prevent creation of "" named resources
- SceneManager - fireRenderSingleObject after updating light lists
- SceneManager - let AutoParamDataSource handle the world matrices
- ScriptLexer - print error instead of throwing on syntax errors
- ScriptTranslator - also special case targets property
- ScriptTranslator - use atom->id to parse CompositionPass::PassType
- ShadowVolumeExtrudeProgram - use cg as backwards compatible hlsl
- Texture & RenderTarget - add simplified getCustomAttribute
- Texture - unify loading between all rendersystems
- TextureUnitState - fix wrong type check in setTexture
- use Matrix4::CLIPSPACE2DTOIMAGESPACE in AutoParamDataSource
- add TEX_TYPE_EXTERNAL_OES and android sample of its usage (#914)
- use source code instead of program names as microcode cache key
- fix Wconversion warnings in public headers
- DataStream: clear access mode on close, avoid repetitive compression by DeflateStream when close is called explicitly and then implicitly in .dtor
- DeflateStream: allow to specify required stream wrapping among supported by ZLib - mostly for GZip variation. Default is ZLib for backward compatibility.
- use Math::calculateBasicFaceNormal instead of ad-hoc solutions
- APKFileSystemArchive - only erase elements that existed in the map
- CMake:
- fill version info from project() instead of parsing header
- Use system freetype library if found
- Fixed the inconsistency use of CMAKE_BINARY_DIR and CMAKE_SOURCE_DIR in some cases. Instead, they are replaced by PROJECT_BINARY_DIR and PROJECT_SOURCE_DIR correspondingly.
- Bites:
- Android - return created render window/ native window pair instead of null values (#964)
- ApplicationContext - shader cache was truncated with no changes
- RTSS
- New "Next Gen" API
- introduce FunctionStageRef for simplified function invocation
- add resolve{Input,Output}Parameter by content only overload
- automatically create parameters if content is not found
- allow resolving input parameters by ParameterPtr
- add resolveParameter overload for simple autoconstants
- add SampleTextureAtom to remove FFP_SampleTexture() indirection
- track unused parameters and skip binding them
- ShaderFunction - deprecate static getParameter* API
- replace g_AutoParameters by AutoConstantDictionary from Main
- merge Cg and HLSL program writers
- use shared HLSL_Cg shader lib based on Cg variants
- skip binding samplers on HLSL and Cg
- merge FFP Lighting and SGX PerPixelLighting
- add FFP_Lerp(vec3, vec3, vec3) as needed by BLEND_DIFFUSE_COLOUR
- use AutoParamDataSource for lights and merge update methods
- Cg - clamp lighting values as well
- clean up resolveLocalParameter functions
- do not special case HLSL4 semantics as we use the compat profile
- do not transform normal if it is not needed
- fix renaming of custom uniform input parameters
- GLSL
- add compatibility defines for sampling function names
- also redefine texture1D() as texture()
- consistently clamp per-pixel and ffp lighting
- ShaderGLSLProgramWriter - allow MRT output from fragment shader
- GLSLES
- add support for GL_OES_EGL_image_external
- write forward declarations to resolve dependencies
- avoid emitting texture1D code instead of filtering it
- hardware skinning - do not generate unused local world position
- SampleTextureAtom - move out argument to end for consistency
- ShaderGenerator - add overloads for known source technique
- Texturing - fixes for BLEND_DIFFUSE_ALPHA and BLEND_DIFFUSE_COLOUR
- TriplanarTexturing - correctly resolve input params
- SegmentedLights - use fmod which is supported by hlsl and cg
- ShaderExNormalMapLighting - clamp supported lights to 8
- New "Next Gen" API
- Overlay: make error message more useful if component is not a container
- PageManager: call Camera::removeListener on destruction (#922)
- Terrain: use Cg shadergen for HLSL as well
- Java: use proper java 1.5+ enums
- MeshLod:
- collapseVertex() can erase more then one vertex from mCollapseCostHeap, therefore we must ask size each time. Fortunately, it's constant time operation.
- consequently use uint16 leveraging the new Math::uint16Cast
- LodData structures layout optimization
- D3D11:
- only support loading DDS using Ogre Codecs
- Texture - do not overload/ use loadImage internally
- use a better heuristic for naming the rendertextures
- D3D9: use Ogre Codecs instead of D3D9X to load DDS files
- GL3+/GLES2: drop areFixedFunctionLightsInViewSpace as there is no FFP
- GLSupport
- GLX - correctly handle windowMovedOrResized with parent win
- Fixed incorrect EGL config id return as EGL config
- introduce internal GLRenderTarget & GLFBOCommon interfaces
- Added support for assigning custom windowProc
- AndroidEGLWindow: handle the parameter "externalGLControl" in when create (#963)
- remove dependency on legacy libGL.so
- Docs
- correctly use ScriptTranslator in TextureSource UML
- document "windowProc" _createRenderWindow parameter
- make explicit that top level Overlay components must be containers
- Resource Management - add sequence diagram and fix declaration part
- Resource Management - group information on a single manual page
- RTSS - document "fog_stage" attribute
- update RTSS documentation for latest features
- use short RGN_DEFAULT alias
- Texture & RenderTarget - document getCustomAttribute keys
- Samples
- Emscripten - do not trap on integer overflow in WASM
- Ocean - refactor to use unified programs
- Tests
- make ONLY_COMMON_GL_TESTS an environment variable
- PlayPen_SkeletonAnimationOptimise use modulative shadowing
v1.11.3
- Main
- unify Vector classes using a template with configurable type
- Vector - add explicit converting constructor and define Vector2/3i
- add StringUtil::format and replace various usages of sprintf
- TextureUnitState: factor out Sampler class
- RenderSystem: implement _setSampler in all RenderSystems
- implement "compute" compositor pass
- Compositor - allow RTSS to pick up render_quad materials
- factor out ColourBlendState and make it the preferred codepath
- respect create() returning null as per resourceCollision handler
- unify Texture::mSurfaceList across RenderSystems
- ResourceManager - mention resource type in item identity exception
- CompositorInstance - do not set DepthBufferPool for depth textures
- GpuProgramParams - drop remains of boolean parameter storage
- GpuProgramParams - merge int and uint storage
- refactor GpuProgramParams to avoid duplicate code
- MurmurHash3 - fix fallthrough warnings
- PF_DEPTH16 is an integer format
- PixelFormat - depth formats are accessible nowadays
- prevent compositor instances from having empty render targets
- RenderSystem - do not use Textures where load is failing
- RenderSystem - make W-Buffer a RenderSystemCapability
- SceneManager::_destroySceneNode - fix segfault in error path
- slightly clean up compositors code
- TextureUnitState - reduce verbosity of logged error message
- unify TextureManager::isHardwareFilteringSupported
- update Texture::createShaderAccessPoint interface
- PixelBox - initialize data pointer to avoid invalid memory access
- adjust shadows extrusion distance for non-uniformly scaled objects that casts non-uniformly scaled shadows
- Avoid McGuire dark caps generations if angular size of object is too high, causing interpolated points extruded not far enough, and became potentially visible even for well tesselated mesh
- Script: do not treat single '$' as variables and print var name on error
- Script: add sampler and sampler_ref to define and reference samplers
- Script: allow using PF_BYTE_RGB[A] in scripts
- ScriptCompiler: formatErrorCode - handle CE_OBJECTBASENOTFOUND
- ScriptCompiler: introduce CE_DEPRECAEDSYMBOL warning level
- ScriptTranslator: declaring an unsupported GpuProgram is not an error
- ScriptTranslator: add unknown parameter values to error messages
- deprecate complex StringConverter::toString for integer types
- deprecate SceneNode::getAttachedObjectIterator
- Script: deprecate compare_func keyword
- RenderSystem - deprecate FFP clip plane API
- deprecate PixelUtil::getBNFExpressionOfPixelFormats
- CMake
- forward CMAKE_FIND_ROOT_PATH so Dependencies see each other
- use the ZLIB imported target
- do install dependencies for Emscripten too.
- fixed OgreTargets to take different configurations into account
- install DeferredShading resources on android
- Emscripten
- use emscripten_set_canvas_element_size (#865)
- properly handle canvas resize events
- GLES2: enable glTexStorage for WebGL2
- GLES2: PRIMITIVE_RESTART_FIXED_INDEX is on unconditionally on WebGL2
- GL*
- do not needlessly bind zero texture
- do not switch back to GL_TEXTURE0 which would prevent state caching
- fix isHardwareFilteringSupported for floating point textures
- implement TextureUnitCompareFunction
- make sure StateCache is fully disabled when not explicitly enabled
- D3D11 & GL3+: factor out dispatchCompute method
- D3D11
- Fixed stencil for texture render targets
- unify pixelformat fallback path for luminance formats
- GL3+/ ES2: consistently use PixelUtil::isDepth for depth format checking
- GL3+ use glSampler objects for backing Ogre::Sampler if possible
- GLES2: make sure that we use PF_BYTE_RGBA for copyContentsToMemory
- GL: implement PF_DEPTH16 format for FBOs
- Terrain: really reduce requirements to GLSL120
- RTSS
- fixed shader generation for (additive) illumination passes
- normal map lighting - port to Sampler & deprecate old style usage
- SGX_ConstructTBNMatrix - fix binormal direction
- BSPSceneManager
- clean up logging to avoid trivial message spam
- use StringUtil::splitBaseFilename to avoid segfault
- Cg: exclude mat arrays from definition renaming with glsl profile
- Docs
- ResourceLoadingListener: document resourceCollision parameters
- FileSystemLayer: document getConfigFilePath/ getWritablePath lookup
- basictutorial1 - clean up cfg files and drop unused media.cfg
- CompositorScript - improve texture directive description
- document compare_test and comp_func texture unit properties
- improve documentation on resource groups
- manual - improve referencing in Shadows chapter
- manual - merge MaterialManager docs with API description
- manual - update "Mesh Tools" section
- restructure compositor script section
- RTSS - improve debugging tips
- update Material formatting & references
- update Trays tutorial for common pitfalls and up to date API
- update descriptions of Shadow options
- update deferred tutorial wording
- Samples
- BumpMapping/MultiLight - drop wrong shaders in decal pass
- BumpMapping - only require GLSL120
- clean up Fresnel materials - only require GLSL120
- fix GLSLES BumpMapping shaders
- Fresnel & CubeMap - use visibility masks instead of listeners
- simplify Compute Sample using the new compute compositor pass
- SSAO/Post - let RTSS handle simple shaders
- Character - use FocusedShadowCameraSetup
- DynTex - use blitFromMemory to allow pixel format conversion
- Media
- Cg - drop arb?p1 profiles and make sure GLSL is used instead
- Cg - use common DualQuaternion shadow shaders from RTShaderLib
- Tests
- test ResourceLoading::CollsionUseExisting
- modify MaterialSerializer test to still work without RenderSystem
v1.11.2
- Main:
- add OGRE_NODISCARD macro and annotate source code as applicable
- add RSC_WIDE_LINES & line_width support for materials
- move the adjacency flag to render operation where it belongs
- AxisAlignedBox - fix wrong index in getAllCorners (#802)
- correctly initialize mBoneWorldMatrices
- do not use Real for colour values which are always stored as float
- extend colour writing to be enabled/disabled per channel (#811)
- GpuProgramManager - use StreamSerialiser for storing shader cache
- GpuProgramParams - use BaseConstantType to define GpuConstantType
- introduce PF_DEPTH16 as an explicit alias for PF_DEPTH
- ManualObject - take float instead of Real as we never store double
- move ConfigOptionMap and common initConfigOptions to RenderSystem
- PrefabFactory - drop superficial calls to _setBoundingSphereRadius
- refactor StringConverter to make it more versatile
- ScriptCompiler - do not override named objects by index
- ScriptTranslator - add helper for parsing single arg properties
- ScriptTranslator - drop 1D Texture fallback, does not belong there
- ScriptTranslator - extend single arg properties helper to enums
- ScriptTranslator - use getColour for specular as well
- simplify some getSquaredViewDepth computations
- slightly clean up ColourValue
- SceneManager: also set uniform parameters in compute shaders
- SceneManager: set the ambient (scene) colour in renderObjects
- ScriptTranslator: error if custom property is unsupported by GpuProgram
- ScriptTranslator: print the undefined reference on the respective error
- ScriptTranslator: refactor gpu parameter translation
- Pass: correctly initialise and copy lineWidth
- Pass: drop auto naming by index. Overriding by index is not supported
- OgreMatrix4.h: add ctor that takes pointer to 16 floats (#809)
- CompositorChain: removeCompositor - fix using index == LAST
- drop MSC_VER workarounds for MSVC version that we no longer support
- GpuProgramParams: warn if a matched shared param cannot be copied
- deprecations
- StringConverter - deprecate parse*Long functions
- deprecate PreciseReal
- CompositorChain: deprecate OgreIterator based API
- RenderSystem - deprecate _setTextureCoordSet
- Bites
- ApplicationContext - deprecate openAPKFile
- StaticPluginLoader - fix licensing header
- CMake
- Android - always select first (and possibly only) target
- correctly disable respective Components when SWIG is unavailable
- correctly set CMAKE_FIND_ROOT_PATH when cross compiling
- drop OGRE_FULL_RPATH in favor of CMAKE_SKIP_RPATH
- drop unused Doxygen settings
- fix FindOpenGLES2 lib detection on Emscripten
- OGREConfig - add missing Codec Plugins
- RTSS: simplify texcoord calculations by separating texture matrix
- GL3Plus
- do not swallow shared parameter binding errors
- shared params always GPV_GLOBAL - avoid redundant binding
- GLES2
- do not advertise 1D textures, they are not supported
- [iOS] Fixed window size updating - call to window->resize(..) does not work for views in presented view controllers, and is ideologically wrong for external views
- GL*
- fold GLSupport classes into GLRenderSystems
- move hasMinGLVersion to GLRenderSystemCommon
- validateConfigOptions is a noop everywhere
- GLSupport
- EGL - allow "sRGB Gamma Conversion" in ogre.cfg
- EGL/X11 fix some warnings
- fix crash in Win32Window::create (#816)
- unify ConfigOption processing in GLRenderSystemCommon
- EGL - only delete X11 window if it is toplevel
- SWIG (Python & Java)
- update ignore patterns of deprecated API
- update interface file
- wrap overloaded ResourceManager methods
- fix compilation of Java Component and correct outpath for Android
- Tests
- Android - remove spurious -Wl,-pie
- make unsigned parsing tests more useful
- MaterialSerializer - set exportDefaults=true
- implement BitwiseTests.Half
- Docs
- add manual mesh creation tutorial
- improve external texture source tutorial
- manual - improve indentation in script chapter using @par/ @param
- Pass - merge manual section and code comments
- TextureUnitState - merge manual section and code comments
- Samples
- Character - fix NUM_ANIMS definition and handling
- OffsetMappingShadows also works fine with legacy GL
- Python - fix segfaults on shutdown
- Python - update raw sample to 1.11 API
- SSAO - no need to re-add compositor on uniform changes
- VolumeTex - fix bounds computations
- VolumeTex - fix segfaults
- PNTriangles: fixed exception in light setup
v1.11.1
- CMake
- Main
- Apple - do not export internal functions
- deprecate RSC_COMPLETE_TEXTURE_BINDING
- deprecate TextureUnitState::BindingType
- Exception - reflect that ITEM_NOT_FOUND == DUPLICATE_ITEM in enum
- only use decorator pattern for DefaultHardwareBufferManager
- OSX - use normal plugin path resolution
- Rectangle2D::setUVs - assert instead of silently doing nothing
- Root - resolve relative plugin path with regards to configfile
- Singleton - use throwing assertion in constructor
- RTSS: GLSL - manually load source code to avoid preprocessing it twice
- Bites
- consider OGRE_BUILD_SUFFIX when resolving plugins.cfg
- Fix linking X11 on Linux/*BSD
- RenderSystems
- D3D11
- bind textures to all current shaders regardless of binding_type
- correctly bind textures to geometry shaders
- fix compilation with MinGW
- D3D11Texture - do no duplicate Texture loading output
- D3D9: fix "invalid target" log message
- GL*: always compile shaders at load time
- GL3Plus
- drop Adreno GLSLES workaround
- Fix linking libdl on Unixes
- set mTriedToLinkAndFailed for all shader types
- do not print warnings as errors at separable program loading
- avoid using varying when redeclaring SSO interface blocks
- GLSLMonolithicProgram - check shader existence before attaching
- GLES2:
- enforce we have a shadow buffer to restore resources from
- fix underlinking with --as-needed
- make Qualcomm specific workaround actually Qualcomm specific
- iOS: avoid skipping layout for UIDeviceOrientationFaceUp/FaceDown. All orientation effects since iOS8 are already in UIScreen.bounds, remapping code was already deleted ~7 month ago.
- GLSupport
- OSX - add informative text to size asserts in CocoaWindow
- OSX - silence cast-qual warning
- D3D11
- Python: OgreNumpy.view - raise an exception for unknown types
- Docs:
- add "Working with NumPy" tutorial
- improve wording and fix some doxygen warnings
- include BuildingOgre.md in the doxygen documentation
- move RTSS + HLMS to manual as a new "Runtime Shader" section
- README.md - update to point to latest docs
- update BuildingOgre.md
- VTests: TestContext - correctly resolve test plugins in bundles
- Samples
- comparison operators should be const callable (C++17)
- fix some broken GL3+ shaders
- ShaderSystem - do not require the Cg plugin
- DynTex - can be handled by RTSS, no need for custom shaders
v1.11.0
v1.10.12
- Main
- RenderTexture: complete and fix PF_DEPTH usage
- Support bulk convert and get sub volume of a slice of a compressed texture
- Add errors for too many or too litle braces in scripts Closes #701.
- Adds KTX (ETCCodec) support for loading mipmapped textures
- Adds support for PVRTC pixel format in KTX containers
- clang-tidy: fix performance-faster-string-find
- clang-tidy: fix performance-type-promotion-in-math-fn
- Fixed crash in RenderSystem::shutdown due to the notifications being sent to already destructed render targets
- fix several gcc8/ clang7/ MSVC warnings
- DataStream::readLine - fix out of bounds read (ret = 0)
- generate a deprecation warning on "lod_distances" usage
- Image - undeprecate 2D loading overloads
- improve ResourceGroupManager documentation
- ParticleSystem::fastForward - use round to avoid float iteration
- Root - skip FrameListeners that are removed during event dispatch
- SceneManager - explicitly disable mip filtering for depth map
- SceneManager - flag GPV_GLOBAL on setAmbientLight
- ScriptCompiler - improve error messages
- SubEntity - add quotes to name strings
- MeshLodGenerator: fix wrong stream eof() usage
- InstancedEntity: Take scale into account when culling objects.
- [Win32] Register Ogre log files to be collected by Windows Error Reporting and eventually passed to developer (would not happen under debugger)
- Main: StringConverter - use empty newlocale on MinGW
- Bites
- ApplicationContext - fix reading shader cache and log on failure
- ApplicationContext - forward fullscreen option to SDL (#658)
- CMake
- allow overriding OGRE_WARNING_FLAGS
- Dependencies - propagate CMAKE_GENERATOR_PLATFORM
- specify minimal required SWIG version
- update dependencies
- warn on deprecated true/ false settings
- EXRCodec: Fix VS2017 error C2872: 'FLOAT': ambiguous symbol. (#723)
- D3D11: D3D11Mappings - map DXGI_FORMAT_R8_UNORM to PF_R8
- D3D9: fix compilation with MinGW
- GL*:
- log shader compile errors output as LML_CRITICAL
- Fix for VAO leakage in ~GLVertexArrayObject
- removed mRenderTargets destruction from ~GLxxxRenderSystem() as it's already done in RenderSystem::shutdown() method
- do not force-enable shader cache
- GL3+
- FBOs are not shared between contexts, should be used and destroyed on the proper one
- Fixed bugs on attempt to download non-zero miplevel; support for depth > 1
- fix loading monolithic program from cache and log on failure
- GL3PlusTextureBuffer: Ability to download to the non-consecutive PixelBox, useful for tiled rendering of very large images, atlasing, etc. GL RS already could do this
- gl3w - update get_proc for APPLE from upstream
- GLSLShader - workaround gl_ClipDistance on Intel Windows Driver
- auto upgrade shaders to version 150 on OSX
- Do not unbind VAO at the end of _render() to significantly increase performance of multi-pass rendering, at least on OSX
- fixed GL_MAP_UNSYNCHRONIZED_BIT usage
- Exclude glsl130 and glsl140 profiles unsupported in OSX Core profile
- GL3+/ GLES2
- enable primitive restart when available
- GLxxxFBORenderTexture,GLxxxFBOMultiRenderTarget::getCustomAttribute() should return GL context to switch to before rendering
- Optionally recreate FBO in GLXxxFrameBufferObject::bind(bool recreateIfNeeded) if unusable with current context
- GLES2
- do not automatically activate, as no other RS does this
- If VAOs are supported: do not unbind VAO at the end of render(), do not clear scratch VAO #0 if not corrupted, explicitly bind scratch VAO #0 when required. Caching removed as it is not VAO ready, and will always miss in current usage scenario.
- GL: drop OSX Mavericks HBL_DISCARD workaround
- GLSupport:
- do not attempt to set external windows full-screen
- fix layout qualifier parsing
- GLX - implement minBufferSize
- GLX - support creating core 4.6 context
- OSX - make sure contextProfile is correctly forwarded
- Fix crash when embedding OgreOSXCocoaWindow in external window
- RTShaderSystem: fix compile error when using double precision (#622)
- Overlay
- Scripts - add support for ogrescript syntax
- warn about incompatibility with new script compiler
- Accept opening '{' on the same line as the Overlay definition in a .overlay script
- Samples
- Browser - avoid double free on OSX
- PBR - precision statement should in GLSLES only
- python - update raw sample to deprecation-less API
- Sample - const correctness
- shadows.glsl enable upgrading to GLSL150
- Terrain - use "General" resource group instead of "Terrain"
- Tests:
- General - do not try loading shared plugins in static build
- Terrain - actually test something
- Docs
- describe how to use the fixed-function Pass options in shaders
- Overlay/ Fontdef - improve parameter formatting
- update css for Doxygen 1.8.13
- update Overlays section and update GUI library references
v1.10.11
- Main
- allow creating camera without a RenderSystem
- allow passing point size & attenuation via AutoParamDataSource
- VertexPoseKeyFrame: fix typo in iterator that broke exporting
- Fix OgreBillboardChain element counting (#607)
- forward useShadowBuffer setting in VertexData::reorganiseBuffers
- Log - add LML_WARNING and color output if on xterm
- use new logging facilities for better output
- reset TextureProjector on destroyShadowTextures
- SkyBox - avoid index by using triangle strip
- Unified Program - log if we are delegating to wrong program type
- HardwareBuffer: _updateFromShadow - use HBL_WRITE_ONLY
- do not register duplicate resource that supposed to be ignored
- Use std::unordered_xxx #if OGRE_USE_STD11
- Since VC++ 10.0 aka 2010 std::hash is made available in tr1 namespace via using-declaration, we can use it directly without ABI breakage
- Since VC++ 11.0 aka 2012 std::unordered_xxx are made available in tr1 namespace via using-declaration, we can use them directly without ABI breakage
- deprecate CompositionTargetPass::PassIterator
- deprecate HardwareBuffer::UploadOptions
- RenderSystem - deprecate legacy FFP PointSprite API
- CompositionTechnique: deprecate TargetPass & TextureDefinition
- KeyFrame - deprecate getPoseReferenceIteratorIterators
- generate deprecation warning on using Any::isEmpty
- CMake
- Add Win10 SDKs to DX11 search script
- Android Build SampleBrowser library using CMake instead of android makefiles
- Bugfix: FindDirectX11 would fail to detect old DX SDK June 2010 + MSVC 2008 + Windows 8. Other combinations may also not be working.
- enable ETC and disable FreeImage by default
- Do not use the new DX SDKs when building for MSVC 2008.
- FindDirectX11: Try harder to find DX11 SDK as part of Modern SDK, use version passed by CMake or highest available, search in standard and obtaines from registry location, restored support for ARM and ARM64 library archs.
- Fix feature summary
- the debug/ release split is a win32 thing and annoying elsewhere. Remove on other platforms.
- Bites
- ApplicationContext - query Cg availability at runtime
- CameraMan - try to replicate the camera configuration
- RTSS:
- add AssignmentAtom for simple "a = b;" statements
- avoid sorting function atoms by using a map of groups - deprecate obsolete internalOrder parameter
- decide isProgrammable per pass and not per technique
- FFPTexturing - implement texturing of point sprites
- FFPTransform - set the point size in shader
- GLESProgramWriter - fix call to StringUtil::replaceAll
- GLSL - directly rename params instead of using a rename map
- GLSL - factor out writeFunctionDeclaration
- GLSL - globally forbid assignment to "in" and remove local hacks
- GLSLProgramWriter - reuse the normal swizzling path
- GLSLProgramWriter - skip parameter names in forward declarations
- GLSLProgramWriter - small refactoring of writeMainSourceCode
- port FFPColour and FFPLighting to addAtomAssign
- SampleLib_ReflectionMap - drop now obsolete flip for GL
- ShaderGLSLESProgramWriter - remove unused FunctionVectorIterator
- ShaderParameter always include decimal point for float values
- use overloading to create const parameters. Deprecate old way.
- deprecate FFP_FUNC_ASSIGN
- derive GLSLES program writer from GLSL writer to share code
- NormalMapLighting - derive from PerPixelLighting to share code
- Java: generate Ogre jar
- GL: remove arbitrary point attenuation factor
- GL3Plus
- correctly handle reading from HBU_WRITE_ONLY buffers
- Hardware*Buffer::copyData - also update ShadowBuffer
- HardwareBuffer - drop superficial glFlushMappedBufferRange
- respect useShadowBuffer setting - fixes bboxes with HW skinning
- GLES2
- enable RSC_MAPBUFFER for GLES3 at runtime
- hardware based locking requires EXT_map_buffer_range
- HardwareBuffer - drop superficial glFlushMappedBufferRange
- prevent crash on shutdown
- GLSLESProgram: fix overloaded-virtual
- GL*
- simplify reading/ writing to shadow buffers
- slightly clean up EGL/WIN32
- update EGL implementation for Win32
- D3D11: Use DXGI_SWAP_EFFECT_FLIP_DISCARD if all stars are aligned: Win10 SDK && Win10 runtime && useFlipMode = true
- D3D9:
- compatibility with USE_STD11 and THREADS=3
- fix wrong operator precedence in _canAutoGenMipmaps
- Terrain
- properly handle loading in synchronous mode
- Do not remove terrain instance if it's being processed in the background thread. (#587)
- HLMS
- correctly set blendFactor & set to replace by default
- not finding template (parts) is an error
- XMLConverter: fix errors in the DTD
- Samples
- add PBR demo based on the glTF2.0 reference implementation
- force strip SampleBrowser library on android
- ShaderSystem - correctly enable reflection map SRS on GL
- Shadows - fix wrong material name for MAT_DEPTH_FLOAT
- Shadows - simplify material script and code
- SkeletalAnimation - make sure vertex buffers are readable
- Media: upgrade meshes to latest format to silence warning
- Tests
- extend MeshSerializer tests to pose animations
- add DTD validation tool for XMLConverter output and run it on CI
- convert SceneQuery VTests to unit tests
- correct case for UniqueModel skeleton in strict mode
- fix building on old MSVC
- gtest - silence tr1 deprecation warning for VS2017
- improve MeshLodTests.LodConfigSerializer test
- PlayPen_PointSprites - correctly configre pass
- RootWithoutRenderSystemFixture - HBM must be deleted after Root
- PlayPen_PointSprites: adapt point size parameter again
- PlayPen_StencilShadows*: use modulative shadows
- VTests: allow test to pass if SSIM > 0.999
- VTests: more tests work on all GL RS by now
- PlayPen_TransparencyMipMaps - use correct pass for second TU
- Docs
- fix duplicate labels and override typo
- fix parsing of GLSupport/GLSL and GLES2 classes
- further improve the RTSS tutorial (referencing examples)
- improve RTSS and HLMS tutorials
- OgreShadows - use actual code and drop obsolete tex file
- port "Shadow Mapping in Ogre" to doxygen
- RTSS - document all currently available material attributes
- RTSS - reference normal_map_space descriptions
- Bites: document all keys handled by AdvancedRenderControls
v1.10.10
- Main
- HardwarePixelBuffer: allow easy and efficient full buffer reads/ writes
- Bugfix: Mesh::destroySubMesh leaks.
- InstanceManager: Fixed issue with indices.
- InstanceManager using invalid render operation when all batches removed (#580)
- do not use BLANKSTRING for initialization and String::empty() checks
- doxygen: generate a tagfile so external projects can link to us
- MemoryDataStream: const correct DataStreamPtr constructor
- PixelBox::getColourAt: const correctness
- reduce usage of C-level memory functions
- OgreScriptParser: add missing break (fixes OGRE-585)
- Compiler warning fixes for Visual Studio 2010 (#571)
- Specify that constants are ULL.
- RenderSystemCapabilities is not meant to be inherited from
- RenderSystemCapabilities: add numVertexAttributes
- RenderSystemCapabilities: deprecate numWorldMatrices
- GPUVendor - fix doxygen comments and deprecate old vendors
- OgreAny: generate a deprecation warning when using ::destroy()
- Build
- CMake: print file extensions that codecs are supporting
- CMake: replace hardcoded cmake by ${CMAKE_COMMAND}
- Install all cmake files in same directory.
- Python / Java
- OSX - ensure that libc++ is picked
- blacklist HardwarePixelBuffer::lock for all Java targets
- Android: do not add soname to shared modules
- Bites
- rename ApplicationContext::setupInput to setWindowGrab and disable it by default
- CameraMan - allow camera to go over the top and bottom of target
- CameraMan - assert that target is set before using it
- CameraMan - use second mouse button for dragging instead of zoom
- FileSystemLayer::fileExists is unimplemented on Emscripten
- ApplicationContext: forward gamma setting from config to RenderSystem
- CgPlugin
- do not spam the logs if the program is not supported
- fix wrong condition for creating high-level delegates
- allow loading on GL3Plus
- also take down high level delegate on unload
- only dump generated high level source code in debug mode
- Terrain
- Create materials into proper terrain group.
- GLSLES - fix compilation errors in generateFpDynamicShadows
- merge GLSL and GLSLES Shader Helpers
- Overlay: OverlayElement - allow setting Material by MaterialPtr
- RTSS: prefer GLSL to Cg if both are available and enable Cg via GLSL
- GLSupport
- correctly check SRGB framebuffer support
- GLX - HW Gamma was not being correctly requested
- isAttributeValid is only used in RenderSystemGL now
- small cleanup for GLSLProgramCommon
- OSX - CocoaWindow: honor "hidden" window creation param, otherwise NSPersistentUIRestorationSupport could start tweaking visibility behind our back
- iOS - Support scenario when 3D view is created and pre-rendered while not yet inserted into the window, and then added to view hierarchy with animation
- GL*
- fix shader reloading by correctly destroying associated programs
- GLSLProgramManagerCommon - unify mPrograms in GLSupport
- TextureBuffer - pass parent pointer instead of individual params
- TextureBuffer - use computed size & format instead of querying GL
- TextureBuffer - use hardware scaling also for luminance formats
- blitFromMemory - use normal Texture class for HW trilinear scaling
- blitFromTexture - use normal Texture class for tempTex
- GL3+/ GLES2: Do not delete mGLProgramHandle twice
- GL3+/ GLES2: use getNumVertexAttributes
- GL3Plus
- correctly reset linked status on unload
- GL3PlusDepthBuffer: add missing break
- merge separable and monolithic program managers
- Texture - store queried origin format
- GLES2:
- Emscripten - do not use GLES3 features that are drafts in WebGL2
- Emscripten - properly zero init FBORenderTexture::mProps
- fix shader reloading by correctly destroying associated programs
- merge pipeline and link program managers
- switch to tight attribute layout when we have less then 16 vattrs
- GL
- GLSLLinkProgram shadows the mUniformRefsBuilt of GLSLProgramCommon
- fixed GLSLLinkProgram::isAttributeValid() - support for legacy built in vertex attributes like gl_Vertex, gl_Normal etc.
- Samples
- Character - make scrolling cause a noticeable camera change
- Emscripten - update to new Bites API
- move addTextureDebugOverlay to SdkSample for shadow debugging
- use Orbit camera in samples where it is applicable
- Avoid collision with "uint" on older compilers.
- Tests
- add HardwareScaleBlit test
- enable Cg only tests for GL3+ using Cg-GLSL profile
v1.10.9
- OgreMain
- vector based storage: do not try to remove anonymous nodes by name
- InstanceBatch::_updateBounds: Make sure parent node is marked as dirty.
- Fix setDirection when mYawFixed is true and the parent transform should be inherited.
- PF_BC4_UNORM and PF_BC7_UNORM should account for depth in PixelUtil::getMemorySize
- Fix warnings from PVS-Studio Static Analyzer
- V595 Pointers had been dereferenced before they were verified against nullptr.
- V535 The variable is being used for this loop and for the outer loop.
- V579 The memset function receives the pointer and its size as arguments.
- V501 There are identical sub-expressions to the left and to the right of the '!=' operator.
- V734 ScriptTranslator did not correctly parse uint
- Backport ASTC support from v2-1
- PixelUtil::packColour: add PF_A2B10G10R10 support
- StringInterface: drop the description field from ParameterDef
- drop dysfunct support for wide character strings
- OgrePixelFormat: deprecate PF_BC7_UNORM_SRGB
- deprecate v2-1 style Threads API - we already got too many of these
- SceneManager: deprecate setting Caster/Receiver Material by name
- Root: deprecate createSceneManager(SceneTypeMask) in favor of typeName
- AutoParamDataSource: reduce usage of mutable members
- needlessly virtual functions
- AutoParamDataSource: make class non-virtual as it is never derived from
- Frustum: use Rect for extents and devirtualise most of its API
- Texture: devirtualise trivial getters and setters
- SceneManager: devirtualise methods not meant to be overridden
- StringInterface: should not have any virtual methods besides destructor
- GpuProgram: devirtualise final methods
- Resource: deprecate useless methods and devirtualise final ones
- Platforms:
- [OSX,iOS] correctly use Availability.h
- OgrePlatform: drop _OGRE_SIMD_ALIGN which is defined in SIMDHelpers.h
- [OSX,iOS] Fixed crashes caused by wrong OpenGL context during windowing operations
- [OSX] Update content scale factor when window moved
- [OSX] Fixed build on OSX with SDK less than 10.12
- [iOS] bind FBO for EAGL window target immediately before actual render, as RenderTarget::_beginUpdate() is too early
- [iOS] Fixed layout in split screen mode, when for example screen of iPad in landscape mode is split between 2 apps, each of them having height > width. Doing nothing does the trick.
- [iOS] Stencil support: use GL_DEPTH24_STENCIL8_OES if available. It is mandatory format in GLES3, and available since PowerVR SGX GPUs (iPhone 3GS+), as documented here
- [iOS] Use POOL_NO_DEPTH for EAGL2Window
- [iOS] Do not discard color buffer content in non-multisampled case, see "Discard Unneeded" Renderbuffers section
- [Win32] Added #ifdef _OGRE_FILESYSTEM_ARCHIVE_UNICODE (base path and resources subpathes expected to be in UTF-8 and wchar_t file IO routines are used)
- [Win32] Fixed compilation for Windows ARM64
- [Linux] GLXWindow: parentWindowHandle - make sure the correct drawable is used
- [Linux] GLSupport: we must link against libGL to get GLX
- [Android] do not terminate EGL if we are preserving the context
- [EGL] drop effectively commented "RTT Preferred Mode" option
- [MinGW] CMake - consistently set _WIN32_WINNT to WinXP (0x0501)
- Docs
- Basic Tutorial 1 - Porting from wiki (#512)
- Basic Tutorial 2 - Porting from wiki (#523)
- merge Bootstrap into Tutorials and slightly clean up structure
- improve cross referencing using @ref and add GLSL notes
- improve HLMS tutorial
- make renderOneFrame more prominent
- PixelFormat - clarify PF_BYTE_ format rules
- setup - reference the Java & Python version + slight reformatting
- CMake: add Wundef and Wmissing-declarations
- fix Wmissing-declarations warnings
- FreeImageCodec: fix Wmissing-declarations
- workaround for Wundef in zzip/conf.h
- Bites
- ApplicationContext - allow creating additional windows
- ApplicationContext - handle windowMovedOrResized on Android
- fall back to install location for plugins.cfg and resources.cfg
- HLMS
- pass strings by const& to avoid copies
- store members by value instead of allocating them
- Other Components
- RTSS: GLSLESProgramWriter - avoid needless copy for considerable speedup
- Property: workaround Wundef with boost
- Overlay: workaround for Wundef in freetype
- deprecate Property component
- Swig: workaround directors for Java without breaking Python traces
- Swig: wrap RenderSystemList
- GL*:
- drop getClosestGLInternalFormat in favour of getNativeFormat
- HardwarePixelBuffer - use InternalFormat to check format support
- PixelBuffer - do not allocate temp buffer when it is not needed
- unify warning texture generation in TextureManager
- use depth buffer as stencil buffer pointer for packed formats
- use getTopLeftFrontPixelPtr() instead of GL_UNPACK_SKIP_PIXELS
- RenderTexture - prefer native endian byte formats
- PixelUtil: use a format table instead of multiple switch/ cases
- GLHardwarePixelBufferCommon: do not needlessly download buffer contents
- GL3Plus:
- _completeDeferredVaoDestruction => _completeDeferredVaoFboDestruction
- fix gl_PointCoord.xy always zero with nVidia drivers
- fix PBO upload path by explicitly doing a bulkPixelConversion
- GLSL - correctly parse #version and support unversioned SSO
- respect versionPos when inserting SSO block prior to GLSL150
- speed up upload of reversed formats and remove bad endian check
- unify HardwareBuffer implementations by aggregating real buffer
- GLES2:
- blitFromMemory - remove needless bulkPixelConversion
- detect Transform Feedback and Uniform Buffers at runtime
- enable FBO multisampling at runtime
- enable MRT support at runtime
- FBO - only check format support at detection time
- fix BlitSubTextures
- fixed non-Apple builds
- fix pixel conversions when format is not supported
- GLES2FBOManager - GL_BGRA_EXT is not color-renderable
- Hardware*Buffer::copyData - also update ShadowBuffer
- PixelFormat::getClosestOGREFormat drop unused dataType parameter
- xelUtil: use a format table instead of multiple switch/ cases
- switch to sized texture formats at runtime
- unify HardwareBuffer implementations by aggregating real buffer
- use dlsym instead of eglGetProcAddress
- fixed formatting in debug output - show field as hex rather than dec
- [FBO] recreate FBO on attempt to use from wrong context - usage flexibility
- [FBO] FBOs are not shared between contexts, should be used and destroyed on the proper one
- D3D11: enable SM2_0 HLSL Shader support by default
- Samples:
- SampleBrowser_Android: pause rendering when we lose focus
- Samples: BSP - ensure Q3Shader parser is correctly registered
- Samples/ Tests: do not re-implement camera auto aspect ratio
- Samples: VolumeTex - use native endian PF_BYTE_RGBA
- Python: update example to latest changes in Bites
- Tests
- PlayPen_RaySceneQuery - do not set unrelated ShowOctree
- TestContext: do not needlessly create dummyscene
v1.10.8
- Main:
- Node: store children as vector instead of map to optimize for iteration
- allow direct access to children
- allow unnamed SceneNodes
- add removeAndDestroyChild(SceneNode*)
- Frustum: add setMaterial to change appearance of debug display mesh
- DistanceLodBoxStrategy: fix LOD computation
- add
OGRE_USE_STD11
option- use
std::shared_ptr
when set
- alias OgreAtomic to
std::atomic
- implement
SPFM_NONE
forstd::shared_ptr
- use
- AtomicScalar: improve compatibility with std::atomic & deprecate old API
- STBICodec: disable writing to file on Emscripten
- STBICodec: correctly write RGB and BGR formats
- Root: allow calling shutdown() manually
- SubEntity: de-virtualize all members as it is not meant to be inherited
- VertexBufferBinding: devirtualise as it is never inherited from
- Added VertexDeclaration::notifyChanged()
- deprecations
- Image::Box and Image::Rect
- RenderSystem::{setVertexDeclaration, setVertexBufferBinding}
- OgreAtomicObject
- Light: deprecate node-less positioning
- SimpleRenderable::setMaterial(String)
- RenderSystem::_setWorldMatrices
- Node: store children as vector instead of map to optimize for iteration
- Swig:
- add Java component
- typemap output arguments of getFrustumExtents
- use anonymous template instantiation to avoid namespace clutter
- CMake:
- add option to control the node storage
- introduce OGRE_THREAD_SUPPORT == 3 option
- Fix OGRE_LIB_SUFFIX for upper case build type This fixes the build when using an upper case build type such as "Debug"
- fix pdb installation on win32
- Overlay: fix destruction sequence of OverlayManager
- Bites
- AdvancedRenderControls - also handle Profiler and Screenshots
- ApplicationContext - allow overriding window name
- Android: allow context loss to be signalled through the OgreMain API
- OSX:
- Add option for NSOpenGLCPSurfaceOrder
- createRenderWindow(): "border" on macOS
- Fix failed assertion on macOS
- add includes for locale_t when using make on macOS
- D3D11Texture: Allow freeInternalResources > setWidth/Height > createInternalResources sequence, used by CEGUI, #490
- D3D9: Potential fix for OGRE-574 Crash on texture loading on old ATI / AMD card with DirectX9 (non power of 2)
- GL*:
- do not select packed depth-stencil if stencil is unavailable
- drop GLSLProgramCommon::getAttributeIndex
- Ignore additional texture usage bits when translating to GL usage
- Translate all usage combinations into meaningfull OpenGL usage hints, fixed assert for
TU_RENDERTARGET
in GLES3 - refactor VertexArrayObject binding to share more code in GLSupport
- simplify bindVertexElementToGpu
- GLSupport:
- refactor createWindow -> parseOptions
- unify duplicated removeDuplicates function
- validateConfig() is unsupported on all platforms
- check that glx extension functions are found (#507)
- Properly set FSAA and gamma setting in OgreGLXWindow when using external GL context
- GL3Plus/ GLES2:
- finish VertexArrayObject implementation
- Infrastructure for creation/binding/destruction VAOs in owning context (VAOs are not shared between contexts)
- Create VAOs lazy, recreate on attempt to use in wrong context
- Notify VAOs about context destruction, to clear dangling pointer
- drop GL*Program::_useProgram API
- Use directly GLSurfaceDesc, GLRenderTexture, GLRTTManager; eliminate unused GL*CopyingRTTManager
- use fixed AttributeIndex like GL
- finish VertexArrayObject implementation
- GL3Plus:
- avoid redundant calls to GLSLProgram::activate
- move glTransformFeedbackVaryings call to GLSLProgram
- StateCacheManager - do not overwrite GL_ELEMENT_ARRAY_BUFFER
- GLES2:
- Android - invalidate VAOs on context loss
- Fixed GLES3 path in GLES2TextureBuffer::download, missing glGetTexImage call to transfer pixels tex=>ppack, glGetTexImage is unavailable in GLES3
- Fixed packed depth/stencil format detection in GLES3 mode, don`t clear stencilBuffer var so that it would be eventually bound to pipeline
- Fixed usage of glLabelObjectEXT, call it after binding to avoid GL_INVALID_OPERATION on iOS
- remove Mali-T628 workaround. Ogre was unmapping the wrong buffer.
- update StateCacheManager for VAO usage
- Docs:
- add profiler tutorial
- add sequence diagram for renderOneFrame
- high-level-programs - explain basic usage before advanced feats
- material-scripts - formatting
- move External Texture Sources from manual to tutorials
- move High-level-Programs to top-level of manual
- umldocs - recreate diagrams using plantuml
- VertexElementType - deprecation comment was referencing wrong elem
- Samples:
- port AndroidJNI to Java bindings
- VolumeTex - drop unused variable that conflicted with xtimec.h
- HLMS: cubemap - use cubescene instead of huge SaintPetersBasilica
- Tests:
- add
Root::shutdown
regression test - add test for
SceneNode::removeAndDestroyAllChildren
- PlayPen_ManualLOD: update scene s.t. we actually see the effect of LOD
- add