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.

200 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
15 years ago
* *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
14 years ago
9 years ago
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.
15 years ago
@section mainpage-license License
Magnum is licensed under the MIT/Expat license:
>
> Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017
> Vladimír Vondruš &lt;mosra@centrum.cz&gt; 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.
>
15 years ago
*/
}