/* This file is part of Magnum. Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ namespace Magnum { /** @page file-formats File format support @brief Support tables for widely used image, scene, audio and font formats The @ref Trade::AnyImageImporter "AnyImageImporter", @ref Trade::AnySceneImporter "AnySceneImporter" and other `Any*` plugins can be used for generic loading of any of the recognized formats, they'll proxy the loading to a concrete plugin implementation. The following tables list the most widely used formats with alternative plugin implementations and known caveats for each. When one format is supported by more than one plugin, you can use @ref Corrade::PluginManager::AbstractManager::setPreferredPlugins() to prioritize a particular plugin implementation. @section file-formats-image-importers Image importers @m_class{m-row m-container-inflate} @parblock @m_class{m-fullwidth m-flat}
Format Generic plugin alias Plugin name Caveats Dependencies License
Basis Universal (`*.basis`) `BasisImporter` @ref Trade::BasisImporter "BasisImporter" @m_span{m-text m-dim} none @m_endspan external, tiny Apache-2.0
BMP
(`*.bmp`)
`BmpImporter` @ref Trade::StbImageImporter "StbImageImporter" @ref Trade-StbImageImporter-behavior-bmp "minor" bundled public domain
@ref Trade::DevIlImageImporter "DevIlImageImporter" unknown external LGPLv2.1
DirectDraw Surface
(`*.dds`)
`DdsImporter` @ref Trade::DdsImporter "DdsImporter" @ref Trade-DdsImporter-behavior "some" @m_span{m-text m-dim} none @m_endspan
@ref Trade::DevIlImageImporter "DevIlImageImporter" @ref Trade-DevIlImageImporter-behavior-dds "severe" external LGPLv2.1
GIF
(`*.gif`)
`GifImporter` @ref Trade::StbImageImporter "StbImageImporter" @ref Trade-StbImageImporter-behavior-animated-gifs "minor" bundled public domain
@ref Trade::DevIlImageImporter "DevIlImageImporter" @ref Trade-DevIlImageImporter-behavior-animated-gifs "severe" external LGPLv2.1
ICO
(`*.ico`, `*.cur`)
`IcoImporter` @ref Trade::IcoImporter "IcoImporter" @ref Trade-IcoImporter-behavior "some" @m_span{m-text m-dim} none @m_endspan
@ref Trade::DevIlImageImporter "DevIlImageImporter" @ref Trade-DevIlImageImporter-behavior-ico "severe" external LGPLv2.1
JPEG
(`*.jpg`, `*.jpe`, `*.jpeg`)
`JpegImporter` @ref Trade::JpegImporter "JpegImporter" @m_span{m-text m-dim} none @m_endspan external, tiny Libjpeg
@ref Trade::StbImageImporter "StbImageImporter" @ref Trade-StbImageImporter-behavior-arithmetic-jpeg "some" bundled public domain
@ref Trade::DevIlImageImporter "DevIlImageImporter" @m_span{m-text m-dim} none @m_endspan external LGPLv2.1
PNG
(`*.png`)
`PngImporter` @ref Trade::PngImporter "PngImporter" @ref Trade-PngImporter-behavior "minor" external, tiny libPNG
@ref Trade::StbImageImporter "StbImageImporter" @m_span{m-text m-dim} none @m_endspan bundled public domain
@ref Trade::DevIlImageImporter "DevIlImageImporter" @ref Trade-DevIlImageImporter-behavior-cgbi "some" external LGPLv2.1
Truevision TGA
(`*.tga`, `*.vda`, `*.icb`, `*.vst`)
`TgaImporter` @ref Trade::TgaImporter "TgaImporter" @ref Trade-TgaImporter-behavior "minor" @m_span{m-text m-dim} none @m_endspan
@ref Trade::StbImageImporter "StbImageImporter" @m_span{m-text m-dim} none @m_endspan bundled public domain
@ref Trade::DevIlImageImporter "DevIlImageImporter" unknown external LGPLv2.1
@endparblock In addition to the above, @ref Trade::DevIlImageImporter "DevIlImageImporter" and @ref Trade::StbImageImporter "StbImageImporter" support many more formats. @section file-formats-image-converters Image converters To be written. @section file-formats-scene-importers Scene importers @m_class{m-row m-container-inflate} @parblock @m_class{m-fullwidth m-flat}
Format Generic plugin alias Plugin name Caveats Dependencies License
COLLADA (`*.dae`) `ColladaImporter` @ref Trade::AssimpImporter "AssimpImporter" @ref Trade-AssimpImporter-behavior "severe" external BSD 3-clause
Autodesk FBX (`*.fbx`) `FbxImporter` @ref Trade::AssimpImporter "AssimpImporter" unknown external BSD 3-clause
OBJ
(`*.obj`)
`ObjImporter` @ref Trade::ObjImporter "ObjImporter" @ref Trade-ObjImporter-behavior "severe" @m_span{m-text m-dim} none @m_endspan
@ref Trade::AssimpImporter "AssimpImporter" @ref Trade-AssimpImporter-behavior "some" external BSD 3-clause
Open Game Engine Exchange
(`*.ogex`)
`OpenGexImporter` @ref Trade::OpenGexImporter "OpenGexImporter" @ref Trade-OpenGexImporter-behavior "some" @m_span{m-text m-dim} none @m_endspan
@ref Trade::AssimpImporter "AssimpImporter" unknown external BSD 3-clause
glTF
(`*.gltf`, `*.glb`)
`GltfImporter` @ref Trade::TinyGltfImporter "TinyGltfImporter" @ref Trade-TinyGltfImporter-behavior "some" bundled MIT
@ref Trade::AssimpImporter "AssimpImporter" @ref Trade-AssimpImporter-behavior "severe" external BSD 3-clause
Stanford PLY
(`*.ply`)
`StanfordImporter` @ref Trade::StanfordImporter "StanfordImporter" @ref Trade-StanfordImporter-behavior "some" @m_span{m-text m-dim} none @m_endspan
@ref Trade::AssimpImporter "AssimpImporter" @ref Trade-AssimpImporter-behavior "severe" external BSD 3-clause
STL
(`*.stl`)
`StlImporter` @ref Trade::StlImporter "StlImporter" @ref Trade-StlImporter-behavior "minor" @m_span{m-text m-dim} none @m_endspan
@ref Trade::AssimpImporter "AssimpImporter" unknown external BSD 3-clause
@endparblock In addition to the above, @ref Trade::AssimpImporter "AssimpImporter" supports many more formats. @section file-formats-scene-converters Scene converters To be written. @section file-formats-audio-importers Audio importers To be written. @section file-formats-fonts Fonts To be written. @section file-formats-font-converters Font converters To be written. */ }