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