/* This file is part of Magnum. Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 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 { /** @mainpage Magnum * *Lightweight and modular C++11/C++14 graphics middleware to power your dreams.* Looking for an open-source library that gives you graphics abstraction and platform independence on major desktop, mobile and web platforms? Do you want it to have all the convenience utilities around yet stay small, powerful and not give up on flexibility? *Here it is.* And it's free to use, even for commercial purposes. - Project homepage --- http://magnum.graphics/ - Documentation --- http://doc.magnum.graphics/ - GitHub project page --- https://github.com/mosra/magnum @section mainpage-goals1 Beauty of simplicity Among Magnum essentials is a UTF-8-aware OS, filesystem and console abstraction, a feature-packed vector math library and a slim C++11 wrapper of OpenGL / WebGL family of APIs. Build on top of that or opt-in for more. [See all core features »](http://magnum.graphics/features/) @section mainpage-goals2 With batteries included Shaders and primitives for fast prototyping, algorithms, debugging and automatic testing, asset management, integration with popular windowing toolkits and a UI library. Everything fits together but you still have a choice. [List the extra features »](http://magnum.graphics/features/extras/) @section mainpage-goals3 Screws are not glued in There's always more than one way to do things. Enjoy the freedom of choice and integrate your own asset loader, texture compressor, font format or math library, if you feel the need. Or use any of the various plugins. [View extension points »](http://magnum.graphics/features/extensions/) * *Looking for more?* There's a [Showcase page](http://magnum.graphics/showcase/) right behind the corner with lots of WebGL demos. @section mainpage-platforms Supported platforms - **Linux** and embedded Linux - **Windows**, **Windows RT** (Store/Phone) - **macOS**, **iOS** - **Android** - **Web** ([asm.js](http://asmjs.org/) or [WebAssembly](http://webassembly.org/)), through [Emscripten](http://kripken.github.io/emscripten-site/) Graphics APIs: - **OpenGL** 2.1 through 4.5, core profile functionality and modern extensions - **OpenGL ES** 2.0, 3.0, 3.1 and extensions to match desktop OpenGL functionality - **WebGL** 1.0, 2.0 and extensions to match desktop OpenGL functionality See the [Build Status page](http://magnum.graphics/build-status/) on the project website for detailed per-platform build status. @section mainpage-building Building Magnum You can either use packaging scripts, which are stored in the `package/` subdirectory, or compile and install everything manually. A short guide is below, for complete documentation for all platforms head over to the @ref building page. @subsection mainpage-building-dependencies Minimal dependencies - C++ compiler with good C++11 support. Compilers which are tested to have everything needed are **GCC** >= 4.7, **Clang** >= 3.1 and **MSVC** >= 2015. On Windows you can also use **MinGW-w64**. - **CMake** >= 2.8.12 - **Corrade** - Plugin management and utility library. See how to get it at http://doc.magnum.graphics/corrade/. @subsection mainpage-building-compilation Compilation, installation The library (for example with support for SDL2 applications) can be built and installed using these commands: @code{.sh} git clone git://github.com/mosra/magnum && cd magnum mkdir -p build && cd build cmake .. \ -DCMAKE_INSTALL_PREFIX=/usr \ -DWITH_SDL2APPLICATION=ON make -j make install # sudo may be required @endcode @subsection mainpage-building-tests Building and running unit tests If you want to build also unit tests (which are not built by default), pass `-DBUILD_TESTS=ON` to CMake. Unit tests use Corrade's @ref Corrade::TestSuite "TestSuite" framework and can be run using @code{.sh} ctest --output-on-failure @endcode in build directory. Everything should pass ;) @subsection mainpage-building-doc Building documentation The documentation, which you are currently reading, is written using [Doxygen](https://doxygen.org). It can be build by running @code{.sh} doxygen @endcode in the root directory (i.e. where `Doxyfile` is). You may need to create the `build/` directory if it doesn't exist yet. Resulting HTML documentation will be in the `build/doc/` directory. @section mainpage-getting-started Getting started Read the thorough @ref getting-started "guide to download, build, install and start using Magnum" in your project. @section mainpage-contact Contact & support If you want to contribute to Magnum, if you spotted a bug, need a feature or have an awesome idea, you can get a copy of the sources from GitHub and start right away! There is the already mentioned guide about @ref building "how to download and build Magnum" and also a guide about @ref coding-style "coding style and best practices" which you should follow to keep the library as consistent and maintainable as possible. - Project homepage --- http://magnum.graphics/ - Documentation --- http://doc.magnum.graphics/ - GitHub project page --- https://github.com/mosra/magnum - Gitter community chat --- https://gitter.im/mosra/magnum - IRC --- join the #magnum-engine channel on freenode - Google Groups mailing list --- magnum-engine@googlegroups.com ([archive](https://groups.google.com/forum/#!forum/magnum-engine)) - Author's personal Twitter --- https://twitter.com/czmosra - Author's personal e-mail --- mosra@centrum.cz See also the [Contact & Support page](http://magnum.graphics/contact/) on the project website for further information. @section mainpage-license License Magnum is licensed under the MIT/Expat license: > > Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 > Vladimír Vondruš <mosra@centrum.cz> and contributors > > 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. > */ }