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.
 
 
 
 
 
Vladimír Vondruš 3dacceb248 doc: update minimal CMake version. 8 years ago
doc doc: update minimal CMake version. 8 years ago
modules modules: FindGLFW.cmake should prefer absolute includes. 8 years ago
package package/ci: verify also compilation of the documentation image generators. 8 years ago
src modules: FindGLFW.cmake should prefer absolute includes. 8 years ago
toolchains@12407edb4a Updated toolchains submodule. 9 years ago
.gitignore Added Debian packaging temporaries to .gitignore. 11 years ago
.gitmodules Added toolchains submodule. 14 years ago
.travis.yml package/ci: initial Travis CI configuration. 11 years ago
CMakeLists.txt Updated copyright year. 8 years ago
CONTRIBUTING.md Updated copyright year. 8 years ago
COPYING Updated copyright year. 8 years ago
CREDITS.md Consistently use macOS instead of OSX. 9 years ago
Doxyfile Add new m.css commands to Doxyfile. 8 years ago
Doxyfile-mcss Use nofollow links to the archived documentation. 8 years ago
Doxyfile-public Use nofollow links to the archived documentation. 8 years ago
README.md Update the one-line description to be less vague. 8 years ago

README.md

Magnum — Lightweight and modular C++11/C++14 graphics middleware for games and data visualization

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.

Join the chat at https://gitter.im/mosra/magnum Build Status Build Status Coverage Status MIT License

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

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

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


Looking for more? There's a Showcase page right behind the corner with lots of WebGL demos.

SUPPORTED PLATFORMS

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 for detailed per-platform build status.

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 better introduction it's advised to read through the Getting Started Guide in the documentation. Complete building documentation covering all platforms and feature sets is in the Downloading and building page.

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. You can get it at https://github.com/mosra/corrade.

Compilation, installation

The library (for example with support for SDL2 applications) can be built and installed using these commands:

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

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 TestSuite framework and can be run using

ctest --output-on-failure

in build directory. Everything should pass ;)

Building documentation

The documentation is written using Doxygen. It can be build by running

doxygen

in the root directory (i.e. where Doxyfile is). You might need to create the build/ directory if it doesn't exist yet. Resulting HTML documentation will be in the build/doc/ directory. Snapshot of the documentation is also available for online viewing.

GETTING STARTED

The best way to get started is to read the thorough download, build, install and start using Magnum in your project. After that, there are various tutorials and examples and a complete feature guide explaining all aspects of the library.

RELATED PROJECTS

The engine itself is kept as small as possible with only a few dependencies. Additional functionality, often depending on external libraries, is provided in separate repositories.

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 how to download and build Magnum and also a guide about coding style and best practices which you should follow to keep the library as consistent and maintainable as possible.

See also the Magnum Project Contact & Support page for further information.

CREDITS

See the CREDITS.md file for details. Big thanks to everyone involved!

LICENSE

Magnum is licensed under the MIT/Expat license, see the COPYING file for details.