A new Magnum website coming soon
Welcome to a prototype of the brand new Magnum website and blog! It still has quite a few rough edges, so please be careful, but from now on this is the new official place for blog posts and announcements.
Welcome to a prototype of the brand new Magnum website and blog! It still has quite a few rough edges, so please be careful, but from now on this is the new official place for blog posts and announcements.
The Magnum C++11/C++14 and OpenGL graphics engine gained OpenGEX format support, a bunch of new importer plugins, cross-platform extension loader, transform feedback support and new features from OpenGL ES 3.1 and OpenGL 4.5, among other things.
The Magnum C++11 and OpenGL/OpenGL ES/WebGL graphics engine gained experimental Android support, windowless applications on OS X and Windows, uses SDL2 as the default toolkit, adds new texture and mesh features, improves build system and got huge documentation review.
After reading the “How to draw a red square in Qt Quick” blog post showcasing the simplicity of Qt API I thought it would be interesting to try something similar in Magnum for comparison.
Since the previous October snapshot Magnum gained Visual Studio port, font conversion utility, improved text rendering along with example application, support for OpenGL debug output, documentation updates, better test coverage and many more usability improvements and fixes.
Large C++ projects often suffer with very long times for both full and incremental compilation, severely hurting productivity. The following series will overview some techniques employed in Magnum to make iteration times smaller, this article focuses on code-based optimizations.
Summary of changes during the first two months after public release. Two new ports, usability improvements, OpenGL limit queries and introduction of API deprecation.
Thanks to generic programming and other features exclusive to C++ it is possible to handle polymorphism the most effective way for each use case. As a result, virtual calls are in Magnum used very sparingly.
While the previous part was focused on C++11 features improving performance, here I will describe features which are used just to simplify your life by writing more concise code with less mistakes.
Regardless to what language you use, you always need to think about memory management. Garbage collectors might give you a sense that it’s done automagically, but to get more performance you need to have control over heap usage in code running at 60 FPS. C++11 helps to avoid many heap allocations without sacrificing usability.