mirror of https://github.com/mosra/magnum.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
199 lines
8.0 KiB
199 lines
8.0 KiB
/* |
|
This file is part of Magnum. |
|
|
|
Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 |
|
Vladimír Vondruš <mosra@centrum.cz> |
|
|
|
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 <tt>#magnum-engine</tt> 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. |
|
> |
|
|
|
*/ |
|
}
|
|
|