Skip to content

Releases: OGRECave/ogre

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

v1.10.9

31 Oct 15:03
Compare
Choose a tag to compare
  • 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

31 Aug 13:59
Compare
Choose a tag to compare
  • 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 for std::shared_ptr
    • 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
  • 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
  • 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

v1.10.7

30 Jul 23:05
Compare
Choose a tag to compare
  • Main
    • typedef Hardware*BufferSharedPtr instead of inheriting
    • MeshManager: Allow vertex blend weights to be stored in various formats
    • Mesh: Add getHardwareBufferManager/setHardwareBufferManager to be able to have software only meshes that could be cloned and loaded
    • STBICodec: save one memcpy during loading
    • Fix StringUtil::match method doesn't work correctly in some cases.
    • RenderSystemCapabilities: add RSC_MAPBUFFER for GLES2 mode
    • Correctly calculate ETC compressed image memory size
    • DDSCodec: Added support for more dds formats
    • fixed memory leaks in FreeImageCodec::decode() when it throws an exception
    • hide memory allocations behind MemoryDataStream
    • various -Wshorten-64-to-32 fixes
    • deprecate UserObjectBindings::getEmptyUserAny
    • OgrePixelFormat: deprecate isValidExtent (unused)
    • deprecate DistanceLodStrategy alias
  • DX9/ DX11:
    • added mappings for normalized vertex formats (valid only for vertex shaders >= 2.0)
  • GLSupport
    • add GLTextureCommon::getMaxMipmaps
    • merge OgreGLUniformCache implementations
    • merge GLSL[ES]ProgramManager::parseGLSLUniform
    • merge StateCacheManager implementations
    • GLXWindow - correctly set mVisible
  • GL*
    • Store per-context StateCacheManager in context rather than in auxiliary map.
    • StateCacheManager - fix setEnabled condition
    • disable caching of glBlendFunc for now
    • fix reusing renderbuffers
    • add normalized VertexElementTypes
    • use StateCacheManager to cache alphaToCoverage value
    • Remove GLSupport::mStateCacheManager reference, obtain it directly from GL3PlusRenderSystem. Reduce GLSupport omnipresence.
    • Avoid potential crash due to the Ogre hardware resources outlives last OpenGL context during shutdown
    • GL & GLES2: StateCacheManager - delete should also drop unbound buffers
    • GL & GLES2: fix setting passIterationUniform
    • GL3+ & GLES2: Fixed usage of glFlushMappedBufferRange - The specified subrange to flush is relative to the start of the currently mapped range of the buffer
  • GL3Plus
    • VAOs represent VertexDeclarations not a ShaderPrograms
    • bound attributes should be cached per VAO and not at the RS
  • GLES2
    • do not send PolygonMode through StateCache. There is only GL_FILL
    • GLES2RenderSystem::mScissor is not state cache, it is request from scene manager. Should be set to GL context unconditionally, and may be further cached there
    • GLES2: make UniformCache per Shader to support seperable programs
    • glesw - parse context version in a GLES2 compatible way
    • Revert "use the same matrix transpositon logic as GL & GL3Plus"
    • move mDiscardBuffers from StateCacheManager to EAGLES2Context
    • unset RSC_MAPBUFFER for Mali chipsets when GLES2 is not available
    • viewport should be cached per-context, not in render system
    • Restore ability to compile shader as both GLSL and GLSL ES via predefined macro GL_ES
    • make UniformCache per Shader to support seperable programs
  • GL
    • avoid significant performance penalty on Apple multithread renderer due to the glGetXxx calls - cache GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
  • RTSS
    • add support for custom BlendWeightsBaseElementTypes
    • GLSL - fix DQ Skinning Shadow shaders for 1, 3 and 4 weights
  • HLMS:
    • hide SubStringRef inside HlmsShaderGenerator
    • HlmsShaderGenerator: fix size_t conversion on MSVC 2013
    • use normal preprocessor instead of HLMS for GLES detection
    • HLMS: drop some unused DefaultProperties
  • Python:
    • add OgreNumpy bridge
    • correctly wrap Hardware*Buffers
    • call find_package(PythonInterp) first to get the currently active Python version by default with a consistent version of PYTHON_LIBRARIES.
    • allow using python3 on Ubuntu 14.04
    • Remove GCC flags for MSVC building
  • Bites:
    • assert instead of crashing if DEFAULT_RESOURCE_GROUP is empty
    • CameraMan - initialise mStyle
    • Trays - various -Wshorten-64-to-32 fixes
    • fix wrong clamp condition in SelectMenu::setItems
    • fix linking static SDL2 on windows
  • Docs:
    • HLMS - we only have Datablocks in 1.10
    • RenderSystem::preExtraThreadsStarted - improve formatting
    • Setup - reference RenderSystem extension API
    • BuildingOgre: update Dependencies part and general cleanup
  • Samples
    • Bootstrap - use complete main method
    • Browser - copy gestureDetector from ndk_helper
    • SinbadCharacterController - initialise m*AnimID
    • EndlessWorld - fix use after free
  • CMake
    • Android: only link against android_native_app_glue when needed
    • clarify OGRE_CONFIG_THREADS and deprecate options 1 and 2
    • CMakeConfig: explicitly link against dl in static build
    • Dependencies - specify --config to get right build_type on MSVC
    • use the same directory layout on Windows as on Linux
    • windows: make sure that all required DLLS are copied
  • Tests:
    • correctly set MSAA and VSync. Disable VSync by default.
    • RadixSort - use correct integer limits
    • regression test for StringUtil::match
    • use MODULATIVE shadows in tests so they are still useful
  • Android
    • cleanup AndroidManifest.xml
    • export ANativeActivity_onCreate instead of calling app_dummy()
    • CI: update android NDK to 15b
  • iOS
    • added EAGL2Window::setHidden() implementation
    • Allow to build Ogre+EAGL2 with ARC enabled
    • avoid flood of XCode warnings about unused property - reasons against Thumb on armv6 are not actual for Thumb2 on arm7 (available since iPhone 3GS, that is prerequisite for GLES2 too)
    • Avoid OpenGL driver whining on EAGLES2Context::destroyFramebuffer() when there are no any.
    • Avoid resizing of the just created window on retina devices, caused by mixing pixels and viewpoints.
    • Create all EAGLES2Context in one sharegroup, so that GL resources could be shared
    • distinguish parameters measured in view points and pixels
    • Implement endCurrent()
    • Prevent multiple gleswInit() invocations
  • OSX
    • Don`t crash if client passed miscParams without "contextProfile" specified
    • Fixed double retain for UIWindow
    • GL*: flush on context switching to ensure that gl resources queued for creation in the current context would be visible after switching

v1.10.6

28 Jun 13:12
Compare
Choose a tag to compare
  • Bugfixes
    • LOD strategy: consider derived scale of the object
    • PlatformInformation: Android - fix detecting NEON on x86
  • CMake
    • stop installing FindOGRE.cmake
    • fix generating XCode project for static targets
  • GL3Plus: Added state cache manager
  • GLES2
    • Android - recreate GLSLESProgramPipeline on context loss
    • use the same matrix transpositon logic as GL & GL3Plus
  • RTSS
    • add bool to GLSLES basic types
    • make FFP_Alpha_Test available on non Windows & non D3D11 platforms
  • Samples
    • drop unused jaiquaDualQuatTest material
    • drop unused, old style, Blur/ Bloom scripts
    • DualQuaternion - fix GLSL & Cg and drop GLSL150 shaders
    • merge GLSL150 and GLSL shaders as GLSL120
    • move skinning shaders to common GLSL120 folder
  • TestContext: enable MSAA to test alpha to coverage and MSAA resolve

v1.10.5

31 May 15:22
Compare
Choose a tag to compare
  • OgreMain
    • SceneManager should not destroy well known shared materials, that could still be in use by another scene manager.
    • restored the ability to resolve conflict by preferring existing resource
    • ManualObject: fix initial allocation in resizeTemp*BufferIfNeeded
    • Technique::getGPUDeviceNameRules: Fixed memory corruption caused by returning another copy of array by each invocation of getter
    • Fixed resource leak, when resource is unloaded while other resource group is performing batch load or unload
    • fixed shadow volumes rendering when scene has a renderable with alpha rejection in its material
    • Restore documented behaviour of ResourceGroupManager::openResource(...,groupName, searchGroupsIfNotFound = true,...)
    • ShadowTextureManager: query the actual PF instead assuming the requested
  • Components
    • RTSS: workaround for TextureUnit referencing a possibly deleted Frustum
    • Bites: AdvancedRenderControls - take down DetailsPanel on destruction
    • Python: set INSTALL_RPATH so Ogre libs are autodiscovered
  • RenderSystems
    • D3D9: respect mNumRequestedMipmaps also when TU_AUTOMIPMAP is set
    • D3D11: Add the ability to create multisampled rendertexture on FL9.1 hardware by promising that it is would not be used as shader resource
    • GL: set YY_NEVER_INTERACTIVE to avoid using isatty (warning on msvc)
    • GL: add missing include
    • GL*: do not use glDrawRangeElements
    • GL*: change library order to correctly link against libGL
    • GL3Plus: do not offset vertex data twice by using baseVertex
    • GLES2: emscripten - not even WebGL2 has mapbuffer
    • GLES2: skip GL_ prefix for WEBGL_ extensions
    • GLES2: allow parsing GLSL300 shaders with GLES2
  • Platforms
    • support Win10 1607 very long file names
    • CI: build GLRenderSystem on Windows
    • EGLSupport: emscripten does not support EGL_CONTEXT_CLIENT_VERSION = 3
    • ios.toolchain.xcode: use 64bit arch for simulator and add it to iOS build
    • CMake: fix native IOS build
    • MSVC: avoid build errors due to the stricmp & strnicmp being deprecated in MSVC CRT
    • MSVC: avoid C4800 warnings "forcing value to bool 'true' or 'false' (performance warning)" by using native explicit operator bool
    • MSVC: Restore OgreHeaderPrefix/Suffix.h headers pair to suppress enormous amount (>40000) of warnings
    • GLContext::barrier() - to ensure that gl resources created in the current context would be visible after context switching; also fixes related crash on Apple multithreaded GL implementation enabled by kCGLCEMPEngine
  • Docs
    • create a working sample out of setup tutorial
    • disable HTML timestamps for reproducibility
  • Samples
    • drop CEGUI/ OIS based Compositor Demo leftovers
    • Fresnel - prevent reflection textures from changing the Aspect
    • VolumeTex - update correct technique when RTSS is used