Skip to content

Releases: OGRECave/ogre

v1.11.6

01 May 12:09
Compare
Choose a tag to compare

  • Main
    • fix building without ZIP
    • fix combinedUVW for separate images & deprecate separateUV setting
    • fix default texture filtering value set to the value other than FO_NONE for TE_EXTERNAL_OES and TEX_TYPE_2D_RECT
    • fix integer overflow when num threads and use a sane limit of 2
    • fix segfault when set_texture_alias arguments are missing
    • Fixed Matrix3::SingularValueDecomposition for bidiagonal matrices
    • fix negative particle size when scale affector decrease size
    • MaterialManager - fix leak of mDefaultSettings passes
    • SceneManager - fix finite and infinite extrusion params pointers
    • add ACT camera world position for camera relative rendering
    • add PF_DEPTH32 and map it in GL3+
    • add proper deprecation notes for legacy HardwareBufferLockGuard
    • add SSE2NEON for NEON SIMD support
    • correctly handle the case of identityView && cameraRelative
    • correctly mark DebugRenderable for export
    • DepthBuffer - make FSAA API consistent with RTT API
    • disambiguate ResourceManager overloads
    • drop DIRECTXMATH support now that we have NEON everywhere
    • Mesh - make default constructor match createOrRetrieve
    • Node - deprecate getChildIterator
    • OptimisedUtil - log ticks instead of requiring a breakpoint
    • OptimizedUtil - fix compilation with DO_PROFILE
    • ParticleEmitter - add asserts to catch invalid velocity values
    • PixelFormat - move byte aliases to end to fix big endian build
    • PlatformInformation - NEON does not depend on a specific CPU arch
    • Quaternion - inline several trivial member functions
    • ResourceGroupManager - allow disabling throwing in openResource
    • SceneManager - allow to disable throwing in getSceneNode
    • SceneManager - deprecate shadow config iterator access
    • Script - fully deprecate single argument cubic_texture
    • ScriptTranslator::getConstantType - catch unsupported types
    • ShadowCameraSetup - add static create() to accommodate bindings
    • ShadowRenderer - do not pool depth for PF_DEPTH
    • simplify AxisAlignedBox
    • slightly speed up TextureUnitState::recalcTextureMatrix
    • Texture - add native layer array support
    • Texture - slightly refactor code and avoid errors on corner cases
    • TextureUnitState - deprecate isCubic() & is3D()
    • TextureUnitState - refactor setAnimatedTextureName
    • Vector3 - return IDENTITY in getRotationTo for zero-sized vectors (#1045)
    • ZipArchive - improve zzip error messages
    • Matrix3 - Increase precision of SVD decomposition
    • SceneManager: O(1) complexity for destroySceneNode()
    • SceneManager: restore log(N) complexity for named node lookup
    • SIMDHelper: drop unused __mm_rsqrt_nr_ps
    • spare the Quaternion coversion when we only need a Matrix3
    • stop using deprecated setCubicTexture internally
    • Support PixelBox::getSubVolume with slice granularity for compressed textures - no need for relaxed checks
    • VTF instancing with HLSL (#1167)
    • parse #include directive in GLSL shaders
  • CMake
    • Bites - issue a warning if SDL2 was not found
    • set CMP0068 and default CMAKE_OSX_ARCHITECTURES to x86_64
    • Fix the CMAKE_MAKE_PROGRAM variable is not set in 3rd party libraries
    • FreeImageCodec: fix error message when FreeImage_LIBRARIES is empty
  • Bites
    • disable ConfigDialog on MinGW until we have resolved #1064
    • generate Shaders for all registered RTSS schemes
    • Trays - ensure window update on first call
    • Trays - fix jumping Slider handle
    • TraysManager - limit progress bar update rate to 4fps
    • use exception safe buffer unlocking everywhere
    • Ensure that requesting partial copy of compressed texture will lead to exception rather than silent data corruption. Partial copy is implemented in Ogre v2.1
  • RTSS
    • add FFPLib_AlphaTest.cg, accidentally dropped in refactoring
    • add templated createSubRenderState overload
    • correctly apply specular normalisation before addition
    • fix resolving params with autoConstantIntData != 0
    • merge remaining parts of glsl & glsles RTShaderLib
    • ~SGTechnique - fix use after free
    • update PSSM3 split point documentation
  • Terrain
    • MaterialGenerator - actually disable normal maps if requested
    • TerrainGroup - add loadLegacyTerrain for 1.7 style terrain.cfg
  • SWIG
    • add repr to Affine3
    • fix MSVC builds of Python, Csharp and Java
    • fix MSVC CI build
    • fix wrapping of Billboard{Set, Chain} that also derive from MO
    • make VectorBase* available for wrapepd Vector* classes
    • Java: add install targets
  • Media: drop the unused old instancing shaders
  • Overlay: fix crash when tasking out of full screen
  • GLSupport
    • "contentScalingFactor" option to scale Android back buffer (#1033)
    • move getPass*States override to GL
    • CPreprocessor: skip duplicate strlen call
  • GLES2
    • EAGL2Window: derive from GLRenderTarget as required
    • Fix crash when opening GLES2 Mali emulator
  • GL*
    • allow MRT with different formats if supported
    • fix FBO format logging
    • Revert "GL*: do not needlessly bind zero texture"
  • GL
    • do not cache programs containing geometry shaders
    • fix GLArbGpuProgram::loadFromSource exception code & message
    • fix warning flood with Copy & PBuffer RTT
  • D3D11:
    • allow D3D11DeviceResource to create and destroy self or other D3D11DeviceResources in notifyDeviceLost/Restored handlers
    • D3D11HardwarePixelBuffer: Create staging buffer with only single subresource, ret immediately after usage
    • D3D11VertexDeclaration - add useful information to exception
    • Dead code removed (offset was always zero)
    • Restored the ability to differentiate between identically named adapters
    • Reuse field declared in the base class (mLockBox => mLockedBox)
    • We need to clean only one texture slot as there is only one depth texture (stored in mDSTResView) even for D3D11MultiRenderTarget
  • Docs
    • manual - improve shadows section
    • slight corrections for Compositor Scripts
  • Samples
    • Python - drop deprecated ApplicationContext parameter
    • TexturedFog - fix errors with strict mode
  • Tests
    • add Matrix3SVD test
    • VTests: drop superficial calls to buildTangentVectors on knot.mesh

v1.11.5

20 Dec 21:52
Compare
Choose a tag to compare

  • Main
    • AnimationStateControllerValue - add create() and addTime option
    • Controller - add static ::create() member to Function & Value
    • DeflateStream - Avoid assert when read is satisfied by cache
    • DeflateStream - call destroy[ZStream] in close()
    • Fixed memory leak in MemoryDataStream.
    • fix various warnings/ issues discovered by clang analyzer
    • GpuProgramParametersSharedPtr -> const GpuProgramParametersPtr&
    • handle empty resources - throw in RGM and return false in Archive
    • Math - deprecate intersects(.. list ..)
    • Math - move simple function definitions to header
    • Math - typedef RayTestResult and inline some ::intersect funcs
    • Node::DebugRenderable - draw over existing geometry
    • Plane - move all definitions to header to allow inlining
    • RESOURCE_GROUP_NAMEs should be the same regardless of STRICT_MODE
    • Root - fix shutdown() after oneTimePostWindowInit() was called
    • TextureUnitState::setBlank - restore pre 1.11 semantics
    • unify handling of blank textures
  • CMake
    • Dependencies - switch to upstream zzip
    • install swig interfaces for consumption by external modules
  • RTSS
    • add option to use energy preserving blinn-phong reflectance
    • ShaderProgram - allow preprocessor defines
  • Bites
    • ApplicationContext - add public getFSLayer
    • ApplicationContext - call Root::saveConfig() after shutdown()
    • CameraMan - add setPivotOffset for manual offset control
    • Input - corrected the SDLK_PAGEDOWN value (#989)
    • Input - forward MouseButtonEvent::clicks
    • OgreCameraMan - allow disabling fixed camera yaw
    • add hacky workaround for black window on OSX
  • Terrain
    • checkQuadIntersection - drop superficial normalization
    • speed up getHeightAtTerrainPosition
  • SWIG
    • add C# bindings component
    • wrap AnimationStateMap
    • wrap Ogre::TRect
    • wrap RaySceneQueryResult
    • wrap RenderTarget::FrameStats
  • Python: add version module version number
  • GL*: fix various issues discovered by clang analyzer
  • GLSupport: fix GLXWindow::resize for non-toplevel windows
  • D3D11: also use _getTextureBindFlags for 3D textures
  • GLES2: fix building with hlsl2glsl
  • D3D9
    • do not crash when moving window to the second screen
    • drop actually unsupported RSC_AUTOMIPMAP_COMPRESSED
    • we must use TU_DYNAMIC for mipmap generation on D3D9Ex
  • Docs: Manual - improve references/ formatting in Animation chapter
  • Samples
    • Android - merge both samples into single project/ directory
    • correct (lower) shader requirements of terrain related samples
    • InstancedViewports - fix GLSL using preprocessor defines

v1.11.4

30 Nov 21:27
Compare
Choose a tag to compare

  • 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
  • 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

24 Oct 23:57
Compare
Choose a tag to compare

  • 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

05 Aug 21:27
Compare
Choose a tag to compare
  • 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

08 Jun 22:23
Compare
Choose a tag to compare
  • CMake
    • check required OGRE_FIND_COMPONENTS and bail out if not found
    • clean up GLES2 discovery - we do not need FindGLES3
    • Fix Windows Overlay linking issue by disabling PNG for freetype. (#778)
    • OSX - use common FRAMEWORKS list for TestContext.app
    • Use HTTPS for freetype download URL (#761)
  • 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
  • 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

29 Apr 15:07
Compare
Choose a tag to compare

v1.10.12

27 Apr 12:31
Compare
Choose a tag to compare
  • 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

31 Dec 01:08
4bba03c
Compare
Choose a tag to compare
  • 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

01 Dec 22:21
93e1b05
Compare
Choose a tag to compare
  • 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