Skip to content

Releases: OGRECave/ogre

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

v1.10.4

23 Apr 23:51
Compare
Choose a tag to compare
  • Dependencies: build SDL2 on Windows for convenience
  • API
    • add FileSystemLayer::resolveBundlePath
    • Bites: ApplicationContext - const correctness
    • MovableObject - devirtualise methods not meant to be overridden
    • OgreArchive: make accessor methods const - they dont change the archive
    • OgreRenderable - devirtualise methods not meant to be overridden
    • HLMS: fix typos and add const correctness and mark it BETA
    • OgreMain: update stb image to 2.15
  • Docs
    • manual - merge enums with headers
    • port Volume tutorial from wiki
    • various Doxygen related fixes
    • BuildingOgre: update dependency lists and fix formatting
    • OgreRenderSystem: reorder and add missing miscParams
  • Bugfixes
    • OgreStreamSerialiser: switch back to SuperFastHash
    • OgreStringConverter: fix parseSizeT for MSVC
    • StringConverter: fix typo in parseInt and improve respective test
    • fix clang 3.9 undefined-var-template warnings
    • GLSLPreprocessor: workaround for macro expansion
    • GLSupport: catch possible exception in ~EGLContext
    • GLES2: fix MSAA discovery and propagation to RTT when RTT has no MSAA
    • GLES2: multi-sampled FBO requires GLES3 at compile time for now
    • GL3+ Fixed: incorrect GL internal format for PF_A2B10G10R10.
    • GL: correctly check for NV_gpu_program4 instead of the doc extensions
    • OGREConfig.cmake: do not add SDL2 libs/ include if they are -NOTFOUND
    • CMake: ios.toolchain - silence warnings with newer CMake versions
    • CMake: freeimage already handles EXR, so disable the plugin
    • CMake: use absolute paths for downloading deps
    • CMake: OGREConfig - collect all libraries for static build
    • Python: install Bites and Overlay component bindings
    • Python: clean up CMake and do not wrap C++98 compatibility symbol
  • CI:
    • run unit tests on Windows
    • update to xcode 8.3
  • Samples:
    • fix ParticleGS with non GLSL RenderSystems
    • Emscripten - fix for strict mode
  • Tools: drop legacy blender exporters
  • VTests: remove broken parsing of individual test results
  • swig: wrap ParameterList

v1.10.3

28 Mar 23:20
Compare
Choose a tag to compare
v1.10.3 Pre-release
Pre-release
  • Core changes
    • OgreFont: default to ASCII instead of Latin1
    • OgreMain: deprecate getErrorDescription
    • OgrePixelFormat: deprecate PF_A4L4
    • SceneManager: except if trying use FFP technique on RS without support
    • GpuProgramManager: add strict mode
    • OgreSharedPtr: replace staticCast usages by static_pointer_cast
    • RenderSystemCapabilities: introduce CAPS_CATEGORY_COMMON_3
    • ResourceGroupListener: do not require implementing any methods
  • Bugfixes
    • CompositorInstance: fix crash when MRT constructor failed
    • Correction of EXP and LOG operations on Quaternions.
    • SceneManager: clean up own shadow materials on destruction
    • SimpleRenderable: respect mRenderQueuePriority
    • OgreD3D9Texture: also generate mipmaps for NPOT textures
    • OgreQuaternion: Norm should take the square root
  • All GL Render Systems:
    • consistent handling of PF_DEPTH
    • consistently print all extensions on a single line
    • fix swizzling for luminance formats
    • generate mipmaps after blitting level 0 and remove software path
    • introduce RSC_DEBUG to simplify checks
    • map GL_RGB8 to PF_R8G8B8 instead of PF_X8R8G8B8 to be consistent
  • GL3Plus
    • add glsl450 shader profile
    • disable PBOs for texture uploading (performance warning)
    • explicitly mark unsupported formats to get warnings for misses
    • fix glDebugMessageInsert usage and spam by beginProfileEvent
    • fix GL_DEBUG_OUTPUT mode
    • update gl3w to latest upstream using pre 4.5 GL/glcorearb.h
  • GLES2:
    • allow compressed 3D textures also when using the extension
    • allow enabling of array texture support at runtime
    • allow pure depth/ stencil FBOs on Android
    • declare glsl300es/ glsl310es/ glsl320es shader profiles
    • do no exclude classes from compilation in GLES2 mode
    • drop gles2w as GLES3 is backward compatible
    • except if unimplemented path is used
    • explicitly mark unsupported formats to get warnings for misses
    • glLabelObjectEXT must be called after glBindBuffer
    • HardwarePixelBuffer - unify GLES2/3 upload paths
    • iOS - guard SSO RSC declaration instead of every usage site
    • remove unused header
    • replace EXT by gl3core functions at runtime
    • skip unprefixed extensions on emscripten for consistency
    • support GL_ANGLE_instanced_arrays
    • use RSC_VERTEX_BUFFER_INSTANCE_DATA instead of ext string
    • fix PF_BYTE_LA
    • fix loading compressed DDS mipmaps
  • RTSS
    • add strict mode
    • assert that FunctionInvocation parameters are not NULL
    • deprecate looking up materials by name to speed up things
    • listen for Material removed events and remove according techniques
  • Samples
    • SampleBrowser: do not drop all RTShader techniques on sample unload. This broke loading any RTSS using sample.
    • AndroidJNI - port to ApplicationContext
    • DeferredShading - make it compatible with the RTSS
    • Emscripten - allow using STRICT_MODE
    • Terrain - check for capability instead of RS name
    • use gles300es profile instead of compile option for checking
    • move android JNI sample to Samples dir
    • Python: allow simple sample to run with RTSS
  • Tests
    • add Quaternion::Norm test
    • update for FFP usage exceptions
    • stop using SharedPtr to std containers. They are managed already
    • PlayPen_BlitSubTextures: allocate matching format so GLES2 can pass
  • Other Changes:
    • Bites: ApplicationContext - do not require android_native_app_glue
    • HLMS: stop using StringVectorPtr [minor API break]
    • D3D9: replace getErrorDescription by DXGetErrorDescription
    • CI
      • Android - build JNI sample
      • update to visual studio 2017
    • CMake
      • detect all required headers in one run
      • factor out copy_assets_to_android_proj
      • remove OGRE_USE_BOOST option
    • Docs
      • changelog - use more markdown for formatting and add 1.10 stub
      • port Deferred Shading Tutorial to Doxygen
      • update 1.10 Notes

v1.10.2

12 Feb 16:05
Compare
Choose a tag to compare
v1.10.2 Pre-release
Pre-release

No longer a fork merged with bitbucket and removed custom branding.

As this involved a rebase, here is the proper diff to 1.10.1.

  • New API
    • GLSupport: export necessary AndroidEGLWindow API
    • the RTSS shaders can be dumped at runtime using ApplicationContext::setRTSSWriteShadersToDisk(true)
    • add MaterialManager::getDefaultMaterial() to avoid hard-coding BaseWhite
    • OgreAny: extend API to be compatible with std::any
    • introduce OgreAssertDbg macro that only fires in debug mode
  • Faster Strings:
    • StringConverter: drop locale support for faster parsing (always uses "C" locale)
    • StringUtil: use strn(i)cmp for startsWith endsWith
  • MurmurHash3 everywhere:
    • RTSS: ShaderProgramManager - use MurmurHash3 instead of ad-hoc solution
    • FastHash: use MurmurHash3_x86_32 internally instead of SuperFastHash
    • OgrePass: clean up HashFuncs and default to MinGpuProgramChangeHashFunc
  • OGRE_RESOURCEMANAGER_STRICT - makes ResourceManager strict for faster and easier operation:
    • resource names are case sensitive
    • only indexed resources are found
    • resource groups correspond to namespaces by default now
    • many Ogre functions now require the group argument to remove ambiguity
    • no unpredictable fallbacks to the global resource pool
    • Samples/ Tests: run with OGRE_RESOURCEMANAGER_STRICT
    • add Ogre prefix to Internal and Autodetect group names
  • deprecate OgreIteratorRange and Ogre*iterator
    • access the vector directly using e.g. Mesh::getSubMeshes() instead of Mesh::getSubMeshIterator
    • see the deprecation list for details
  • Platforms
    • Fixed WinRT build - let SDL2 handle events
    • fix compilation with MinGW
    • OSX: autodetection instead of explicit macAPICocoaUseNSView parameter
  • Bugfixes:
    • OgreInstanceBatch: correct bounding radius calculations and material LOD
    • OgreInstancedEntity scaling behavior should match OgreEntity scaling
    • Bites: correct ifdef in AdvancedRenderControls
    • OgreTechnique: do not crash if _compile called without a RenderSystem
    • Dependencies.cmake: update zlib to 1.2.10 as zlib 1.2.8 is gone
    • CMake: set CMAKE_BUILD_TYPE more robustly and remove obsolete checks
    • Backported Display Refresh Rate bugfixes from from 2.1
    • GLSL Preprocessor: fix incorrect Macro functions expansion with braces
    • OgreMain: Hash/MurmurHash3.h -> OgreMurmurHash3.h to be consistent
    • New Instancing: fix broken shadows in Sample
    • ShadowVolumeExtrudeProgram: correctly set stencil shadow params for GLSL
    • [D3D11] Fixed crash on rendering to texture due to the unsupported FSAA level
    • GLES2: allow multisampled FBOs if supported
    • OgreZip: throw on error to be consistent with FileSystemArchive
    • Samples: reset frame statistics between sample runs
    • OgrePass: clean up HashFuncs and default to MinGpuProgramChangeHashFunc
  • Better Testing:
    • Tests: port to gtest
    • Tests: add regression test for InstancingEntity bounds
    • Tests: allow building and running on android (see NDK docs how)
    • Tests: use FileSystemLayer to resolve data and thus are distributable now
    • Tests: fix startup on OSX
    • Tests: add regression tests for GLSupport/ CPreprocessor
    • Tests: correct mesh exporting and do not leave temporary files behind
  • Other Changes:
    • Sample Media is now in "General" group instead of "Popular"
    • throw on OgreAssert in Release builds by default
    • Node - devirtualise methods not meant to be overridden
    • SceneNode: devirtualise methods not meant to be overridden
    • devirtualise internal only and final objects
    • Changed allocation policies to use noalias & restrict optimizations
    • OgreMath: replace slow and mostly unused asm_math.h by inline function calls
    • ResourceGroupManager: avoid searching the same groups multiple times
    • ResourceGroupManager: remove duplicate locks
    • GLES2: drop GpuProgram indirection
    • MSVC: remove obsolete Wd and pragma warning directives
    • OgreMain: drop OgreHeaderPrefix/ Suffix
    • OgreMain: use Ogre::String in PixelFormatDescriptions to avoid copy
    • GL/GLES2: simplify StateCacheManager structure
    • OgreScriptTranslator: print actual error description
    • OgreArchiveManager: raise an error if readOnly flag does not match
    • devirtualise internal only and final objects

v1.10.1

30 Dec 23:24
Compare
Choose a tag to compare
v1.10.1 Pre-release
Pre-release
  • CMake: replace Ogre*Prerequisites.h by according generate_export_headers
  • CMake: respect QUIET flag
  • GLES2: fix HW mipmaping with GLES3
  • GLSLProgram: Fixed parsing of define strings like "..;DEFINEWITHOUTVALUE"
  • GLSupport: add unified GLSLProgramCommon
  • merge OgreConfig.h and OgreBuildSettings.h
  • OgreBites: factored out InputListener interface from AppContext [API break]
  • OgreBites: factor out AdvancedRenderControls from SdkSample
  • OgreBuildSettings.h.in: simplify by using #cmakedefine01
  • OgreIdString: replace NDEBUG usage by OGRE_DEBUG_MODE
  • OgreSharedPtr: extend API to be compatible with std::shared_ptr
  • Plugins: EXRCodec - fix cmake discovery and dll exports
  • ResourceManager: const correct remove(const ResourcePtr&)
  • Samples: Compositor - correctly unregister Listener (fixes SEGV)
  • Samples: Deferred Shading - fix item identity exceptions

v1.10.0

22 Dec 00:59
Compare
Choose a tag to compare
v1.10.0 Pre-release
Pre-release

v1.9.1

24 Nov 13:31
Compare
Choose a tag to compare