Pages
-
Getting started Get started with Magnum using a bootstrap project.
- Downloading and building Guide how to download and build Magnum on different platforms.
- Downloading and building plugins Guide how to download and build plugins for the Magnum engine.
- Downloading and building integration libraries Guide how to download and build integration libraries for the Magnum engine.
- Downloading and building extras Guide how to download and build extras for Magnum engine.
- Downloading and building examples Guide how to download and build examples for the Magnum engine.
- Usage with CMake Guide how to find and use Magnum with the CMake buildsystem.
- Plugin usage with CMake Guide how to find and use static Magnum plugins with CMake build system.
- Integration library usage with CMake Guide how to find and use Magnum integration libraries with CMake build system.
- Extras library usage with CMake Guide how to find and use Magnum Extras with CMake build system.
- Single-header libraries Magnum functionality exposed in easy-to-integrate single-header libraries.
- Using Magnum with custom buildsystems Guide and troubleshooting when you don't want to use CMake.
-
Feature guide High-level introduction to design of the Magnum library and basic building blocks.
- Platform support Integration into windowing toolkits and creation of windowless contexts.
- Math type system Type aliases, naming and compatibility with OpenGL, Vulkan and GLSL types.
- Operations with matrices and vectors Introduction to essential classes of the graphics pipeline.
- 2D and 3D transformations Introduction to essential operations on vectors and points.
- Keyframe-based animation Layered framework for authoring, loading, optimizing and playing back animations.
- Loading and using plugins Extending Magnum with additional functionality.
- File format support Support tables for widely used image, scene, audio and font formats.
- OpenGL wrapping layer Overview of the base OpenGL wrapper API.
- Vulkan wrapping layer new in Git master Overview of the base Vulkan wrapper API.
- Builtin shaders Overview and basic usage of builtin shaders.
- Mesh processing tools Overview of algorithms and utilities in the MeshTools namespace.
- Using the scene graph Overview of scene management capabilities.
- Debugging helpers Convenience classes to help you during development.
- UI library Basic overview of the Magnum::
Ui library.
-
Platform-specific guides General information, tips and troubleshooting for particular platforms.
- Vulkan platforms Information common for all platforms with Vulkan support.
- OpenGL and OpenGL ES platforms Information common for all platforms that support OpenGL and OpenGL ES.
- Linux Tips and tricks for Linux platforms.
- Windows Tips and tricks for Windows platforms.
- macOS Tips and tricks for macOS.
- iOS Building, testing and deploying apps for Apple iOS platforms.
- Android Building and deploying Android projects.
- JavaScript, HTML5 and WebGL Building, testing and deploying HTML5 and WebGL projects.
- Debugger support new in Git master Pretty-printers for Magnum types and other debugging aids.
-
Examples and tutorials Learn by example to get quickly up to speed.
- Your First Triangle Basic rendering with builtin shaders.
- Textured Quad Indexed meshes, importing image data, texturing and custom shaders.
- Primitives Importing mesh data, 3D transformations and input handling.
- Model Viewer Scene graph, resource management and model importing.
- Triangle using plain GLFW Shows how to use Magnum with custom platform integration APIs.
- Triangle using sokol_gfx Shows how to use custom renderers with Magnum.
- Area Lights Basic real-time area lights.
- Audio Shows how to play spatialized audio with Magnum.
- Leap Motion Integration of the LeapMotion SDK into Magnum.
- Bullet Physics Integration of Bullet Physics into Magnum.
- DART Physics new in 2019.10 Integration of DART Physics into Magnum.
- Box2D A simple example using the Box2D physics library.
- 2D Fluid Simulation new in 2020.06 2D fluid simulation using the APIC method.
- 3D Fluid Simulation new in 2020.06 SPH fluid simulation with a dynamic boundary.
- Ray Tracing new in 2020.06 Simple iterative CPU ray tracing.
- Octree new in 2020.06 Loose octree for accelerating collision detection.
- ArcBall Camera new in 2020.06 Intuitive camera control with smooth navigation.
- Mouse Interaction Advanced depth-aware mouse interaction for navigating a scene.
- ImGui Integration of Dear ImGui into Magnum.
- Animated GIF new in 2020.06 Playing back an animated GIF. On the GPU or in a terminal.
- Motion blur Accumulates multiple frames together to create a motion blur effect.
- Cube Map Demonstrates usage of cube map textures and texture blending.
- Shadow map Showcases the Parallel Split / Cascade shadow mapping technique.
- Object Picking Usage of multiple framebuffer attachments to implement object picking.
- Text rendering Showcase of Magnum distance-field text rendering.
- Triangle using Vulkan Using Vulkan with SPIR-V assembly to produce a triangle offscreen.
- Textured triangle using Vulkan Showcases Vulkan descriptor sets and SPIR-V assembly.
- Oculus VR Integration of the Oculus SDK into Magnum.
- WebXR new in 2020.06 Basic WebXR application.
-
Tips and tricks Hints for better productivity and performance.
- Method chaining Little feature helping to reduce typing and encourage best practices.
- Writing portable applications How to support different platforms and different OpenGL capabilities within one codebase.
- Speeding up compilation Techniques for reducing compilation times used by Magnum itself and recommended for application code as well.
- Troubleshooting Various tricks and solutions to common pitfalls.
-
Utilities Utilities for system information, data conversion, multimedia apps.
- Magnum Player Advanced app for loading and playing back scene and image files.
- Magnum::Ui Gallery Showcases widgets and features provided by Magnum::
Ui. - Magnum GL Info Displays information about Magnum engine OpenGL capabilities.
- Magnum Vulkan Info new in Git master Displays information about Magnum engine Vulkan capabilities.
- Magnum OpenAL Info Displays information about Magnum OpenAL capabilities.
- Distance Field conversion utility Converts red channel of an image to distance field representation.
- Font conversion utility Converts font to raster one of given atlas size.
- Image conversion utility Converts images of different formats.
- Scene conversion utility new in 2020.06 Converts scenes of different formats.
- Shader conversion utility new in Git master Converts, compiles, optimizes and links shaders of different formats.
-
Vulkan new in Git master State of Vulkan support, version and extension requirements.
- API mapping new in Git master List of Vulkan handles, functions, enums and structures corresponding to particular Magnum APIs.
- Support state new in Git master List of (un)supported Vulkan features and extensions.
- Driver workarounds new in Git master List of Vulkan driver workarounds used by Magnum.
- Functionality requiring Vulkan 1.1 new in Git master
- Functionality requiring Vulkan 1.2 new in Git master
- Functionality requiring a specific Vulkan extension new in Git master
- Functionality requiring a specific Vulkan feature new in Git master
-
OpenGL State of OpenGL support, version and extension requirements.
- Command mapping List of OpenGL commands corresponding to particular Magnum API.
- Support state List of (un)supported OpenGL features and extensions.
- Deprecated OpenGL API list
- Driver workarounds List of OpenGL driver workarounds used by Magnum.
- Functionality requiring OpenGL 3.0
- Functionality requiring OpenGL 3.1
- Functionality requiring OpenGL 3.2
- Functionality requiring OpenGL 3.3
- Functionality requiring OpenGL 4.0
- Functionality requiring OpenGL 4.1
- Functionality requiring OpenGL 4.2
- Functionality requiring OpenGL 4.3
- Functionality requiring OpenGL 4.4
- Functionality requiring OpenGL 4.5
- Functionality requiring OpenGL 4.6
- Functionality requiring specific OpenGL extension
- Functionality requiring desktop OpenGL
- Functionality requiring OpenGL ES 3.0
- Functionality requiring OpenGL ES 3.1
- Functionality requiring OpenGL ES 3.2
- Functionality requiring specific OpenGL ES extension
- Functionality requiring OpenGL ES or desktop OpenGL
- Functionality requiring WebGL 2.0
- Functionality requiring specific WebGL extension
- OpenGL ES-only and WebGL-only functionality
- OpenGL ES 2.0-only and WebGL 1.0-only functionality
- WebGL-only functionality
-
OpenAL State of OpenAL support, version and extension requirements.
- Support state List of (un)supported OpenAL features and extensions.
- Functionality requiring specific OpenAL extension
- List of partially supported features
- Changelog
- Archived changelogs
- Developers guide Checklists for developing new things in Magnum itself.
- Coding style Coding style and best practices to preserve maintainability and consistent style across whole project.
- Third-party components Third-party dependencies and their corresponding license information.
- Contributors People and organizations that contributed to Magnum.
- Debug output operators for custom types
- Configuration value parsers and writers for custom types
- Tweakable literal parsers
- Deprecated list