1/* 2 This file is part of Magnum. 3 4 Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 5 Vladimír Vondruš <mosra@centrum.cz> 6 7 Permission is hereby granted, free of charge, to any person obtaining a 8 copy of this software and associated documentation files (the "Software"), 9 to deal in the Software without restriction, including without limitation 10 the rights to use, copy, modify, merge, publish, distribute, sublicense, 11 and/or sell copies of the Software, and to permit persons to whom the 12 Software is furnished to do so, subject to the following conditions: 13 14 The above copyright notice and this permission notice shall be included 15 in all copies or substantial portions of the Software. 16 17 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 20 THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 22 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 DEALINGS IN THE SOFTWARE. 24*/ 25 26namespace Magnum { 27 28/** @page changelog-plugins Plugins 29 30@tableofcontents 31@m_footernavigation 32 33@anchor changelog-plugins-latest 34 35@section changelog-plugins-2019-10 2019.10 36 37Released 2019-10-24, tagged as 38[v2019.10](https://github.com/mosra/magnum-plugins/releases/tag/v2019.10). 39 40@subsection changelog-plugins-2019-10-dependencies Dependency changes 41 42- Minimal supported CMake version is now 3.4. Older versions are not 43 supported anymore and all workarounds for them were removed. Download a 44 prebuilt release of a newer version if you need to use Corrade on older 45 systems (such as Ubuntu 14.04 or Debian 8). This is a conservative change 46 that shouldn't affect any additional distribution compared to the CMake 3.1 47 requirement in 2019.01. 48 49@subsection changelog-plugins-2019-10-new New features 50 51- MSVC 2019 compatibility, following other Magnum projects 52- When using Magnum as a CMake subproject, it now puts all binaries into a 53 common directory to simplify `PATH` handling and dynamic plugin loading. 54 For more information see @ref cmake-plugins-subproject, 55 [mosra/magnum#357](https://github.com/mosra/magnum/issues/357) and 56 [mosra/magnum-plugins#63](https://github.com/mosra/magnum-plugins/issues/63). 57- New @ref Audio::DrMp3Importer "DrMp3AudioImporter" plugin for importing 58 MP3 files (see [mosra/magnum-plugins#60](https://github.com/mosra/magnum-plugins/pull/60)) 59- New @ref Trade::BasisImporter "BasisImporter" and 60 @ref Trade::BasisImageConverter "BasisImageConverter" plugin for importing 61 and converting Basis files, support for Basis-encoded textures in 62 @ref Trade::TinyGltfImporter "TinyGltfImporter" (see [mosra/magnum-plugins#62](https://github.com/mosra/magnum-plugins/pull/62), 63 [mosra/magnum-plugins#65](https://github.com/mosra/magnum-plugins/pull/65) 64 and [mosra/magnum-plugins#69](https://github.com/mosra/magnum-plugins/issues/69)) 65 66@subsection changelog-plugins-2019-10-changes Changes and improvements 67 68- Calling @ref Trade::AbstractImporter::image2D() "image2D()" in 69 @ref Trade::AssimpImporter "AssimpImporter", 70 @ref Trade::OpenGexImporter "OpenGexImporter" and 71 @ref Trade::TinyGltfImporter "TinyGltfImporter" now behaves consistently 72 in regards to file loading callbacks --- failing with an error if and only 73 if image is not embedded, the file is not opened from a filesystem and file 74 loading callbacks are not set. Previously it could errorneously assert even 75 when loading embedded images, try to look for images on the filesystem when 76 loading in-memory data or fail to open images when a file inside current 77 working directory was opened. 78- The @ref Trade::AssimpImporter "AssimpImporter" plugin now detects ambient 79 color set to @cpp 0xffffff_srgbf @ce and forces it back to 80 @cpp 0x000000_srgbf @ce. This is a bug in Assimp 4.1, causing all other 81 color information to get discarded. See also 82 [assimp/assimp#2059](https://github.com/assimp/assimp/issues/2059), 83 [assimp/assimp#2563](https://github.com/assimp/assimp/pull/2563) and 84 [mosra/magnum-plugins#64](https://github.com/mosra/magnum-plugins/pull/64). 85- The @ref Trade::AssimpImporter "AssimpImporter" plugin now trims trailing 86 space from image paths in order to deal better with OBJ meshes from hell 87 (see [mosra/magnum-plugins#58](https://github.com/mosra/magnum-plugins/pull/58)) 88- The @ref Trade::AssimpImporter "AssimpImporter" plugin now imports each 89 image just once in case a single image is shared by more than one texture 90- @ref Trade::JpegImporter "JpegImporter" now prints error info to 91 @ref Corrade::Utility::Error, allowing it to be redirected or suppressed 92 consistently to other plugin implementations (see 93 [mosra/magnum-plugins#53](https://github.com/mosra/magnum-plugins/pull/53)) 94- @ref Trade::PngImporter "PngImporter" and 95 @ref Trade::PngImageConverter "PngImageConverter" now print error and 96 warning info to @ref Corrade::Utility::Error and 97 @ref Corrade::Utility::Warning, allowing it to be redirected to suppressed 98 consistently to other plugin implementations 99- @ref Trade::DevIlImageImporter "DevIlImageImporter" now converts BGR data 100 to RGB instead of expanding them to RGBA 101- @ref Trade::DevIlImageImporter "DevIlImageImporter", 102 @ref Trade::JpegImporter "JpegImporter", 103 @ref Trade::PngImporter "PngImporter" and 104 @ref Trade::StbImageConverter "StbImageImporter" now properly report an 105 error message when opening an empty file 106- Switched @ref Trade::TinyGltfImporter "TinyGltfImporter" to use 107 @ref Corrade::Utility::Directory::read() instead of tiny_gltf's internal 108 APIs for loading external files, making it work correctly for UTF-8 paths 109 on Windows 110- Better diagnostics in @ref Trade::TinyGltfImporter "TinyGltfImporter" when 111 an external buffer file is not found or when a file loaded from memory 112 attempts to reference an external buffer without file callbacks being set 113- @ref Audio::DrFlacImporter "DrFlacAudioImporter", 114 @ref Audio::DrWavImporter "DrWavAudioImporter" and 115 @ref Audio::StbVorbisImporter "StbVorbisAudioImporter" plugins no longer 116 treat files with zero samples as errors, but give back an empty buffer 117 instead 118- Updated `dr_wav` for @ref Audio::DrWavImporter "DrWavAudioImporter" to 119 version 0.8.5 which supports a wider range of file types (see 120 [mosra/magnum-plugins#61](https://github.com/mosra/magnum-plugins/pull/61)) 121- Actually reporting errors from @ref Text::FreeTypeFont "FreeTypeFont" 122 instead of just failing without a message 123 124@subsection changelog-plugins-2019-10-buildsystem Build system 125 126- @ref building-plugins-packages-msys "MSYS2 packages" are now in official 127 repositories, installable directly via `pacman` 128- The @ref Trade::JpegImageConverter "JpegImageConverter" plugin was 129 mistakenly using the `JPEG_INCLUDE_DIRS` CMake variable which was not 130 present on versions before 3.12. The @ref Trade::JpegImporter "JpegImporter" 131 plugin is not affected by this. See also 132 [mosra/magnum-plugins#51](https://github.com/mosra/magnum-plugins/issues/51). 133- Upgraded @ref Trade::TinyGltfImporter "TinyGltfImporter" to use json.hpp 134 3.3.0, fixing a compile error on some Clang versions (see 135 [mosra/magnum-plugins#54](https://github.com/mosra/magnum-plugins/issues/54)) 136- Fixed `FindMagnumPlugins.cmake` to behave correctly when both a debug and 137 a release version of libjpeg is found 138- Fixed `FindMagnumPlugins.cmake` to correctly handle the `AssimpImporter`, 139 and `JpegImageConverter` components 140- `FindMagnumPlugins.cmake` now correctly finds debug versions of statically 141 built plugins when using Vcpkg 142- Fixed `FindMagnumPlugins.cmake` to correctly link to zlib also when both 143 a debug and a release version of libpng is found 144- `FindAssimp.cmake` now can optionally link to the IrrXML library (needed 145 for static builds on Vcpkg) 146- Emscripten builds now have the `-fPIC` option disabled by default as it 147 causes linker errors related to `__memory_base` on 1.38.36 (see also 148 [emscripten-core/emscripten#8761](https://github.com/emscripten-core/emscripten/issues/8761)) 149 150@subsection changelog-plugins-2019-10-bugfixes Bug fixes 151 152- @ref Trade::AssimpImporter "AssimpImporter" was returning a random value 153 for material shininess with STL models, now it correctly returns 154 @cpp 0.0f @ce when the shininess value is not present. 155- For files that had multiple textures, 156 @ref Trade::AssimpImporter "AssimpImporter" was incorrectly importing only 157 the first image, multiple times. Fixed independently also by 158 [mosra/magnum-plugins#66](https://github.com/mosra/magnum-plugins/pull/66) 159 which got submitted three minutes after the change was pushed to `master`. 160- @ref Trade::StbImageImporter "StbImageImporter" was not correctly handling 161 image import failures, randomly hitting unreachable code assertions 162- Fixed @ref Trade::DevIlImageImporter "DevIlImageImporter" BGR(A)-to-RGB(A) 163 conversion to not return random memory 164- @ref Trade::PngImporter "PngImporter" now handles too short files 165 gracefully instead of aborting on an assertion 166- @ref Trade::PngImporter "PngImporter" now handles paletted images and 167 images with tRNS alpha mask correctly 168- Fixed memory leaks in @ref Trade::PngImporter "PngImporter" error handling 169- Fixed `FindMagnumPlugins.cmake` to correctly look for the `Assimp` package 170- Fixed handling of corrupted / incomplete data in 171 @ref Text::StbTrueTypeFont "StbTrueTypeFont" (see 172 [mosra/magnum-plugins#29](https://github.com/mosra/magnum-plugins/issues/29)) 173 174@subsection changelog-plugins-2019-10-compatibility Potential compatibility breakages, removed APIs 175 176- Removed the `ColladaImporter` plugin, deprecated since 2018.10, because it 177 was based on an outdated toolkit and, due to the complexity of the COLLADA 178 format and poor conformance of various exporters, it was not feasible to 179 maintain a builtin importer anymore. 180 181@section changelog-plugins-2019-01 2019.01 182 183Released 2019-02-04, tagged as 184[v2019.01](https://github.com/mosra/magnum-plugins/releases/tag/v2019.01). 185 186@subsection changelog-plugins-2019-01-dependencies Dependency changes 187 188- Minimal supported GCC version is now 4.8.1, GCC 4.7 is not supported 189 anymore. Minimal Clang version is now 3.3, since that's the first version 190 with a complete C++11 support. See also 191 [mosra/magnum#274](https://github.com/mosra/magnum/issues/274). 192- Minimal supported CMake version is now 3.1. Older versions are not 193 supported anymore and all workarounds for them were removed. Download a 194 prebuilt release of a newer version if you need to use Corrade on older 195 systems (such as Ubuntu 14.04 or Debian 8). See also 196 [mosra/magnum#274](https://github.com/mosra/magnum/issues/274). 197 198@subsection changelog-plugins-2019-01-new New features 199 200- New @ref Audio::Faad2Importer "Faad2AudioImporter" plugin for importing 201 AAC files using [FAAD2](https://www.audiocoding.com/faad2.html) 202 203@subsection changelog-plugins-2019-01-changes Changes and improvements 204 205- Fixed compatibility of the @ref OpenDdl library with Emscripten 1.38.10 206 and newer, which defines @ref std::size_t as @cpp unsigned long @ce instead 207 of @cpp unsigned int @ce used previously (it's still a four-byte type, 208 though) 209 210@subsection changelog-plugins-2019-01-buildsystem Build system 211 212- The `package/msys` directory now contains `PKGBUILD`s for 213 [MSYS2](https://www.msys2.org/). See @ref building-plugins-packages-msys 214 for more information. See also [mosra/magnum-plugins#50](https://github.com/mosra/magnum-plugins/pull/50). 215- The bundled `FindAssimp.cmake` module now works under MinGW as well. 216 217@subsection changelog-plugins-2019-01-compatibility Potential compatibility breakages, removed APIs 218 219- Removed `MAGNUMPLUGINS_*_LIBRARIES` and `MAGNUMPLUGINS_*_INCLUDE_DIRS` 220 CMake variables, which were deprecated in favor of `MagnumPlugins::*` 221 imported targets in February 2016. 222 223@section changelog-plugins-2018-10 2018.10 224 225Released 2018-10-23, tagged as 226[v2018.10](https://github.com/mosra/magnum-plugins/releases/tag/v2018.10). 227 228@subsection changelog-plugins-2018-10-new New features 229 230- Support for object transformation animation import in 231 @ref Trade::TinyGltfImporter "TinyGltfImporter" (see 232 [mosra/magnum-plugins#46](https://github.com/mosra/magnum-plugins/pull/46)) 233- New @ref Trade::JpegImageConverter plugin for writing JPEG files (see 234 [mosra/magnum-plugins#26](https://github.com/mosra/magnum-plugins/pull/26)) 235- Minimal support for the [KHR_materials_pbrSpecularGlossiness](https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_pbrSpecularGlossiness) 236 extension in @ref Trade::TinyGltfImporter "TinyGltfImporter" 237- The top-level `tinygltf::Model` structure is now exposed through 238 @ref Trade::TinyGltfImporter::importerState() for easier access to extra 239 data, exposing also @ref Trade::SceneData::importerState() and 240 @ref Trade::TextureData::importerState() 241- @ref Trade::TinyGltfImporter "TinyGltfImporter" now implements mapping 242 between names and IDs for all currently imported data 243- @ref Trade::TinyGltfImporter "TinyGltfImporter" now imports alpha mode, 244 alpha mask and double sided material properties 245- @ref Trade::TinyGltfImporter "TinyGltfImporter" now imports all camera 246 properties together with type and aspect ratio / projection size 247- @ref Trade::AssimpImporter "AssimpImporter", @ref Trade::OpenGexImporter "OpenGexImporter" 248 and @ref Trade::TinyGltfImporter "TinyGltfImporter" now support 249 @ref Trade::AbstractImporter::Feature::FileCallback for specifying custom 250 callbacks to load extra files 251- @ref Trade::StbImageConverter "StbImageConverter" was updated with a new 252 version of `stb_image_write`, supporting also JPEG export now (see 253 [mosra/magnum-plugins#26](https://github.com/mosra/magnum-plugins/pull/26)) 254- @ref Text::StbTrueTypeFont "StbTrueTypeFont" was updated with a new version 255 of `stb_truetype`, supporting also OpenType fonts now 256- @ref Text::FreeTypeFont "FreeTypeFont", @ref Text::HarfBuzzFont "HarfBuzzFont" 257 and @ref Text::StbTrueTypeFont "StbTrueTypeFont" plugins can now be loaded 258 also using the `OpenTypeFont` alias, in addition to `TrueTypeFont 259- @ref Trade::OpenGexImporter "OpenGexImporter" now supports 260 @ref Trade::AbstractImporter::Feature::FileCallback for specifying custom 261 callbacks to load extra files (see 262 [mosra/magnum-plugins#47](https://github.com/mosra/magnum-plugins/pull/47)) 263 264@subsection changelog-plugins-2018-10-changes Changes and improvements 265 266- Texture coordinate, color vertex attribute and base object color import in 267 @ref Trade::TinyGltfImporter "TinyGltfImporter" 268 (see [mosra/magnum-plugins#41](https://github.com/mosra/magnum-plugins/pull/41), 269 [mosra/magnum-plugins#43](https://github.com/mosra/magnum-plugins/pull/43)) 270- Mesh name and complete multi-primitive mesh loading in 271 @ref Trade::TinyGltfImporter "TinyGltfImporter" (see 272 [mosra/magnum-plugins#48](https://github.com/mosra/magnum-plugins/issues/48)) 273- @ref Trade::OpenGexImporter "OpenGexImporter" and 274 @ref Trade::TinyGltfImporter "TinyGltfImporter" now properly import alpha 275 for @ref Trade::PhongMaterialData 276- @ref Trade::TinyGltfImporter "TinyGltfImporter" now exposes the 277 translation/rotation/scaling properties of @ref Trade::ObjectData3D 278 separately if they are separate in the source file 279- @ref Text::HarfBuzzFont "HarfBuzzFont" is now providing `TrueTypeFont`, 280 similarly to other plugins supporting TTF fonts 281- @ref Trade::StbImageImporter "StbImageImporter" now properly supports Apple 282 proprietary [CgBI PNGs](http://iphonedevwiki.net/index.php/CgBI_file_format). 283 Stock `libPNG` doesn't support that but there are forks that can do it, 284 updated documentation of @ref Trade::PngImporter "PngImporter" to mention 285 that. 286- @ref Trade::StbImageConverter "StbImageConverter" no longer requires input 287 data to be tightly packed, allowing to export image subrectangles 288- @ref Trade::StbImageConverter "StbImageConverter" now prints warnings when 289 channels are lost on output due to limitations of the output format (such 290 as alpha channel for JPEGs) 291- @ref Trade::TinyGltfImporter::defaultScene() now returns the first scene 292 if no default scene is present in the file 293- New @ref Trade::TinyGltfImporter::TinyGltfImporter(PluginManager::Manager<Trade::AbstractImporter>&) 294 constructor for easier usage of statically-built plugins 295- Cleaned up some unnecessary memory copies and reallocations in the 296 @ref Trade::TinyGltfImporter "TinyGltfImporter" implementation 297- Upstreamed local patches to `tiny_gltf` (see 298 [mosra/magnum-plugins#45](https://github.com/mosra/magnum-plugins/pull/45)) 299 300@subsection changelog-plugins-2018-10-buildsystem Build system 301 302- There's now a PPA for Ubuntu packages. See @ref building-plugins-packages-deb 303 for more information. See also 304 [mosra/magnum-plugins#44](https://github.com/mosra/magnum-plugins/pull/44). 305- TinyGLTF headers are now installed alongside the plugin for easier access 306 to importer state. See @ref Trade-TinyGltfImporter-state for more 307 information. 308- @ref Trade::TinyGltfImporter "TinyGltfImporter" no longer depends on 309 @ref Trade::StbImageImporter "StbImageImporter" to import images embedded 310 in buffers or data URIs. Instead it proxies the loading to 311 @ref Trade::AnyImageImporter "AnyImageImporter", the same way as was 312 already done for external files. 313 314@subsection changelog-plugins-2018-10-bugfixes Bug fixes 315 316- Fixed a @ref Trade::TinyGltfImporter "TinyGltfImporter" crash on materials 317 without a PBR extension (see [mosra/magnum-plugins#41](https://github.com/mosra/magnum-plugins/pull/41)) 318- Fixed improper order of applying translation/rotation/scaling node 319 transformations in @ref Trade::TinyGltfImporter "TinyGltfImporter" 320- @ref Trade::TinyGltfImporter "TinyGltfImporter" now loads external images 321 from `*.glb` files and images embedded as URI data properly 322- @ref Trade::TinyGltfImporter "TinyGltfImporter" now properly imports 323 non-indexed meshes and meshes without the normal attribute 324- Fixed quite a few critical issues with @ref Trade::TinyGltfImporter "TinyGltfImporter" 325 mesh data import (see [mosra/magnum-plugins#42](https://github.com/mosra/magnum-plugins/issues/42)) 326- Updated `stb_image` to fix `undefined symbol: __cpu_model` error when 327 compiling @ref Trade::StbImageImporter "StbImageImporter" on GCC 5 328- @ref Trade::AssimpImporter "AssimpImporter" now properly prints out an 329 message on file opening error instead of failing silently 330- @ref Trade::AssimpImporter "AssimpImporter" incorrectly imported object 331 transformation matrices transposed 332- @ref Trade::AssimpImporter "AssimpImporter" incorrectly imported the scene 333 twice, once as a scene and once as a object that all other objects were 334 parented to. However, in presence of postprocessing flags such as 335 `PreTransformVertices` Assimp collapses all nodes into one and then the 336 node is imported as a single object. 337- @ref Text::FreeTypeFont "FreeTypeFont" was not handling subsequent calls 338 to @ref Text::FreeTypeFont::initialize() properly (see 339 [mosra/magnum-plugins#49](https://github.com/mosra/magnum-plugins/pull/49)) 340 341@subsection corrade-changelog-2018-10-deprecated Deprecated APIs 342 343- `ColladaImporter` is deprecated because it's based on an outdated toolkit. 344 Moreover, due to the complexity of the COLLADA format and poor conformance 345 of various exporters it's not feasible to maintain a builtin importer 346 anymore and thus this plugin is scheduled for removal in a future release. 347 Please consider either using @ref Trade::AssimpImporter "AssimpImporter" 348 for COLLADA import or switching to simpler and better supported formats 349 such as glTF or OpenGEX using @ref Trade::TinyGltfImporter "TinyGltfImporter" 350 or @ref Trade::OpenGexImporter "OpenGexImporter". There's also the official 351 [COLLADA2GLTF](https://github.com/KhronosGroup/COLLADA2GLTF) converter. 352 353@section changelog-plugins-2018-04 2018.04 354 355Released 2018-05-01, tagged as 356[v2018.04](https://github.com/mosra/magnum-plugins/releases/tag/v2018.04). 357 358@subsection changelog-plugins-2018-04-dependencies Dependency changes 359 360- Building for Android now requires CMake 3.7 with builtin Android 361 crosscompilation support, the old toolchains were removed. Only the Clang 362 and libc++ toolchain is now supported, support for GCC and libstdc++ was 363 dropped, as it was still missing some important C++11 functionality. See 364 @ref building-cross-android for more information. 365 366@subsection changelog-plugins-2018-04-new New features 367 368- New @ref Trade::TinyGltfImporter "TinyGltfImporter" plugin for importing 369 glTF and binary glTF files (see [mosra/magnum-plugins#40](https://github.com/mosra/magnum-plugins/pull/40)) 370- The @ref Trade-AssimpImporter-configuration "AssimpImporter" plugin now 371 supports external configuration for postprocessing 372 373@subsection changelog-plugins-2018-04-changes Changes and improvements 374 375- The @ref Trade::DdsImporter "DdsImporter" plugin now imports images with 376 the generic @ref PixelFormat / @ref CompressedPixelFormat instead of the 377 GL-specific @ref GL::PixelFormat / @ref GL::PixelType or 378 @ref GL::CompressedPixelFormat 379- The @ref Trade::DevIlImageImporter "DevIlImageImporter", 380 @ref Trade::JpegImporter "JpegImporter", @ref Trade::PngImporter "PngImporter", 381 @ref Trade::StbImageImporter "StbImageImporter" plugins now import images 382 with the generic @ref PixelFormat instead of the GL-specific 383 @ref GL::PixelFormat / @ref GL::PixelType 384- The @ref Trade::MiniExrImageConverter "MiniExrImageConverter", 385 @ref Trade::PngImageConverter "PngImageConverter" and 386 @ref Trade::StbImageConverter "StbImageConverter" plugins now accept the 387 generic @ref PixelFormat instead of GL-specific formats 388 389@subsection changelog-plugins-2018-04-buildsystem Build system 390 391- The @ref Audio::AnyImporter "AnyAudioImporter", @ref Trade::AnyImageConverter "AnyImageConverter", 392 @ref Trade::AnyImageImporter "AnyImageImporter" and @ref Trade::AnySceneImporter "AnySceneImporter" 393 plugins were moved to the core Magnum repository. If you are using them 394 statically via CMake, you need to update your copies of `FindMagnum.cmake` 395 and `FindMagnumPlugins.cmake` modules. See @ref building and @ref cmake for 396 more information. 397- Plugins now provide an automatic means of static plugin import via CMake 398 targets, no need to call @ref CORRADE_PLUGIN_IMPORT() implicitly anymore. 399 See @ref plugins-static for more information. 400- The @ref OpenDdl parser is now available as a separate library, which means 401 you no longer need to build the @ref Trade::OpenGexImporter plugin as 402 static in order to use it. See @ref building-plugins-features for more 403 information. 404- Stable version of Magnum Plugins is now available as a binary package in 405 the ArchLinux `[community]` repo 406- Homebrew macOS packages were updated to install the stable version by 407 default 408- Fixed the Debian package to not include a revision. While just a warning on 409 Ubuntu, it's a hard error on Debian. (See [mosra/corrade#44](https://github.com/mosra/corrade/issues/44).) 410 411@subsection changelog-plugins-2018-04-bugfixes Bug fixes 412 413- Unloading the @ref Text::HarfBuzzFont "HarfBuzzFont" plugin also implictly 414 unloaded the FreeType library, making the @ref Text::FreeTypeFont "FreeTypeFont" 415 plugin unusable after. 416- @ref Trade::TinyGltfImporter "TinyGltfImporter" was improperly loading 417 @ref Trade::TextureData::minificationFilter(), 418 @ref Trade::TextureData::mipmapFilter() and 419 @ref Trade::TextureData::wrapping() properties 420 421@subsection changelog-plugins-2018-04-deprecated Deprecated APIs 422 423- @ref OpenDdl headers in `MagnumPlugins/OpenGexImporter/OpenDdl` are 424 deprecated, include them from the `Magnum/OpenDdl` directory instead. 425 426@subsection changelog-plugins-2018-04-compatibility Potential compatibility breakages 427 428- The @ref Trade::DdsImporter "DdsImporter" plugin no longer recognizes depth 429 image formats. This may be re-added again in the future. 430- The @ref Trade::MiniExrImageConverter "MiniExrImageConverter", 431 @ref Trade::PngImageConverter "PngImageConverter", 432 @ref Trade::StbImageConverter "StbImageConverter" plugins no longer accept 433 GL-specific @ref GL::PixelFormat / @ref GL::PixelType formats --- use the 434 generic @ref PixelFormat instead 435- Renamed the `BUILD_STATIC` CMake option to `BUILD_PLUGINS_STATIC` for 436 consistency with the core Magnum library and possibility to control the 437 static build better when using subprojects. The `BUILD_STATIC` option now 438 controls just building of extra libraries exposing internal plugin state. 439 See @ref building-plugins-features for more information. 440 441@section changelog-plugins-2018-02 2018.02 442 443Released 2018-02-15, tagged as 444[v2018.02](https://github.com/mosra/magnum-plugins/releases/tag/v2018.02). See 445the [release announcement](https://blog.magnum.graphics/announcements/2018.02/) 446for a high-level overview. 447 448@subsection changelog-plugins-2018-02-dependencies Dependency changes 449 450- Completely removed NaCl support (see https://blog.chromium.org/2017/05/goodbye-pnacl-hello-webassembly.html) 451- Dropped support for the old MinGW32 (only MinGW-w64 is supported now) 452- Bumped minimal CMake version to 2.8.12 453- Removed support for macOS 10.8 and older 454- Dropped the `compatibility` branch and all support for MSVC 2013 and GCC < 455 4.7 456 457@subsection changelog-plugins-2018-02-new New features 458 459- MSVC 2015 and MSVC 2017 support in `master` branch (see 460 [mosra/magnum-plugins#32](https://github.com/mosra/magnum-plugins/issues/32), 461 [mosra/magnum-plugins#33](https://github.com/mosra/magnum-plugins/pull/33)) 462- ANGLE ES2/ES3 support, ability to create desktop GLES contexts on Windows 463- Windows Phone/Store support via ANGLE 464- iOS support 465- WebAssembly support when building for Emscripten 466- WebGL 2.0 support 467- New plugins: 468 - @ref Trade::AnyImageConverter "AnyImageConverter" 469 - @ref Audio::AnyImporter "AnyAudioImporter" 470 - @ref Trade::AssimpImporter "AssimpImporter" (see 471 [mosra/magnum-plugins#31](https://github.com/mosra/magnum-plugins/pull/31), 472 [mosra/magnum-plugins#35](https://github.com/mosra/magnum-plugins/pull/35), 473 [mosra/magnum-plugins#37](https://github.com/mosra/magnum-plugins/pull/37), 474 [mosra/magnum-plugins#39](https://github.com/mosra/magnum-plugins/issues/39)) 475 - @ref Trade::DdsImporter "DdsImporter" (see 476 [mosra/magnum-plugins#7](https://github.com/mosra/magnum-plugins/pull/7), 477 [mosra/magnum-plugins#34](https://github.com/mosra/magnum-plugins/pull/34)) 478 - @ref Audio::StbVorbisImporter "StbVorbisAudioImporter" (see 479 [mosra/magnum-plugins#8](https://github.com/mosra/magnum-plugins/pull/8), 480 [mosra/magnum-plugins#22](https://github.com/mosra/magnum-plugins/pull/22)) 481 - @ref Trade::MiniExrImageConverter "MiniExrImageConverter" 482 - @ref Trade::PngImageConverter "PngImageConverter" 483 - @ref Text::StbTrueTypeFont "StbTrueTypeFont" (see 484 [mosra/magnum-plugins#12](https://github.com/mosra/magnum-plugins/pull/12)) 485 - @ref Audio::DrFlacImporter "DrFlacAudioImporter" (see 486 [mosra/magnum-plugins#18](https://github.com/mosra/magnum-plugins/pull/18), 487 [mosra/magnum-plugins#19](https://github.com/mosra/magnum-plugins/pull/19), 488 [mosra/magnum-plugins#20](https://github.com/mosra/magnum-plugins/pull/20)) 489 - @ref Audio::DrWavImporter "DrWavAudioImporter" (see 490 [mosra/magnum-plugins#21](https://github.com/mosra/magnum-plugins/pull/21)) 491 - @ref Trade::DevIlImageImporter "DevIlImageImporter" (see 492 [mosra/magnum-plugins#23](https://github.com/mosra/magnum-plugins/pull/23)) 493- Camera and light data import in @ref Trade::OpenGexImporter "OpenGexImporter" 494- Support for OpenGEX extensions in @ref Trade::OpenGexImporter "OpenGexImporter" 495 using `importerState()` getters 496 497@subsection changelog-plugins-2018-02-changes Changes and improvements 498 499- @ref Trade::OpenGexImporter "OpenGexImporter" is working on Android now 500 (see [mosra/magnum#95](https://github.com/mosra/magnum/issues/95)) 501- @ref Trade::PngImporter "PngImporter" and @ref Trade::JpegImporter "JpegImporter" 502 always import images with rows aligned to four bytes 503- @ref Trade::StbImageImporter "StbImageImporter" properly specifies 504 @ref PixelStorage alignment for imported images 505- @ref Trade::PngImporter "PngImporter" properly handles endianness in 16bpp 506 images 507- @ref Text::FreeTypeFont "FreeTypeFont" and @ref Text::HarfBuzzFont "HarfBuzzFont" 508 report font ascent and descent properties now 509- Usage of @ref Double in @ref Trade::OpenGexImporter "OpenGexImporter" is 510 not restricted to desktop GL anymore 511- @ref Trade::OpenGexImporter "OpenGexImporter" presents only an unique list 512 of images, instead of duplicating them per texture 513- @ref Trade::PngImporter "PngImporter" and @ref Trade::PngImageConverter "PngImageConverter" 514 now gracefully handle library version mismatches (see 515 [mosra/magnum#215](https://github.com/mosra/magnum/issues/215)) 516- Various code modernization improvements (see 517 [mosra/magnum-plugins#30](https://github.com/mosra/magnum-plugins/pull/30)) 518- @ref Trade::StbImageConverter "StbImageConverter" now supports BMP, HDR and 519 TGA output in addition to PNG 520 521@subsection changelog-plugins-2018-02-buildsystem Build system 522 523- Continuous testing for Linux, macOS, Windows MSVC, Windows MinGW, Windows RT, 524 iOS, Android and Emscripten on [Travis CI](https://travis-ci.org/mosra/magnum-plugins) 525 and [AppVeyor CI](https://ci.appveyor.com/project/mosra/magnum-plugins), 526 with code coverage on [codecov.io](https://codecov.io/gh/mosra/magnum-plugins); 527 replacing the unmaintained and outdated Jenkins configuration (see 528 [mosra/magnum-plugins#15](https://github.com/mosra/magnum-plugins/pull/15)) 529- Support for CMake subprojects. You can now clone Magnum Plugins into a 530 subdirectory in your project and add it using @cmake add_subdirectory() @ce. 531 The @cmake find_package() @ce command will then use the CMake subproject 532 instead of looking for it in system-wide locations. 533- Reworked CMake buildsystem to use the new imported target workflow, see 534 @ref cmake-plugins for more information 535- CMake targets are now organized in folders for better development 536 experience in IDEs such as Visual Studio or Xcode 537- Added a @ref building-plugins-packages-brew "Homebrew package" 538- Ability to build OpenGL tests also on Windows and macOS (see `BUILD_GL_TESTS` 539 @ref building-plugins "CMake option") 540- `MACOSX_RPATH` is now enabled by default on CMake 3.0+ 541- Enabling only C++ in CMake @cmake project() @ce call, if possible, to speed 542 up initial CMake run 543- Removed our copy of `FindFreetype.cmake` which attempted to link to all 544 dependencies of FreeType if it discovered that it's built as static. But 545 it got out of sync with upstream and the detection was broken on MSVC. See 546 [mosra/magnum-plugins#13](https://github.com/mosra/magnum-plugins/pull/13), 547 [mosra/magnum-plugins#36](https://github.com/mosra/magnum-plugins/issues/36). 548- Fixed discovery of audio importer plugins from `FindMagnumPlugins.cmake` 549 (see [mosra/magnum-plugins#10](https://github.com/mosra/magnum-plugins/pull/10)) 550- Unconditionally exporting symbols of all plugins to make them usable as 551 dependencies 552- `FindMagnumPlugins.cmake` now correctly handles cases where both debug and 553 release libraries of libPNG or FreeType are available 554- Updated the Debian package to depend on current version of libPNG (see 555 [mosra/magnum-plugins#38](https://github.com/mosra/magnum-plugins/issues/38)) 556- Various fixes to `FindMagnumPlugins.cmake` (see 557 [mosra/magnum-plugins#11](https://github.com/mosra/magnum-plugins/pull/11)) 558 559@subsection changelog-plugins-2018-02-bugfixes Bug fixes 560 561- @ref Trade::OpenGexImporter "OpenGexImporter" crashed on file ending 562 unexpectedly after array comma (see 563 [mosra/magnum#144](https://github.com/mosra/magnum/issues/144)) 564- Fixed @ref Trade::OpenGexImporter "OpenGexImporter" light import (see 565 [mosra/magnum-plugins#16](https://github.com/mosra/magnum-plugins/pull/16)) 566- @ref Trade::StanfordImporter "StanfordImporter" had string-to-number 567 conversion broken on Android 568- Plugged huge data leaks in @ref Trade::StbImageImporter "StbImageImporter" 569 and @ref Trade::StbImageConverter "StbImageConverter" 570- Various compilation fixes (see 571 [mosra/magnum-examples#9](https://github.com/mosra/magnum-examples/issues/9)) 572 573@subsection changelog-plugins-2018-02-compatibility Potential compatibility breakages 574 575- `StbPngImageConverter` was renamed to @ref Trade::StbImageConverter "StbImageConverter", 576 supporting more than just PNG now. Loading it via `StbPngImageConverter` 577 continues to work. See [mosra/magnum-plugins#24](https://github.com/mosra/magnum-plugins/issues/24). 578 579@subsection changelog-plugins-2018-02-documentation Documentation 580 581- New documentation theme powered by [m.css](http://mcss.mosra.cz) and 582 related massive updates of *everything* 583- The @ref building-examples documentation now prefers package installation 584 instead of manual build 585 586Changelogs for previous versions are available in 587@ref changelog-plugins-old "Archived plugin changelogs". 588 589*/ 590 591} 592