@paroj paroj released this Oct 31, 2017 · 1086 commits to master since this release

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