June 2014 updates to Magnum

The Mag­num C++11 and OpenGL/OpenGL ES/WebGL graph­ics en­gine gained ex­per­i­ment­al An­droid sup­port, win­dow­less ap­plic­a­tions on OS X and Win­dows, uses SDL2 as the de­fault toolkit, adds new tex­ture and mesh fea­tures, im­proves build sys­tem and got huge doc­u­ment­a­tion re­view.

The ver­sion 2014.06 is avail­able un­der the v2014.06 tag in Cor­rade, Mag­num, Mag­num Plu­gins and Mag­num In­teg­ra­tion Git­Hub re­pos­it­or­ies. This art­icle will de­scribe the most im­port­ant changes, for de­tailed list fol­low the changelog links at the end of this an­nounce­ment.

For com­pat­ib­il­ity branch there is the snapshot-2014-06-compatibility tag in Cor­rade, Mag­num, Mag­num Plu­gins and Mag­num Ex­amples re­pos­it­or­ies.

Ex­per­i­ment­al An­droid sup­port

This snap­shot con­tains ex­per­i­ment­al sup­port for An­droid, see Cor­rade and Mag­num build­ing doc­u­ment­a­tion. Ini­tial plat­form sup­port is in Plat­form::An­droid­Ap­plic­a­tion.

Android Application

Win­dow­less ap­plic­a­tions on Mac OS X and Win­dows

Win­dow­less ap­plic­a­tions are now sup­por­ted on Win­dows and, thanks to joint ef­fort by @am­ar­anth and @ArEnSc, also on OS X. All com­mand-line util­it­ies such as mag­num-info, Dis­tance Field con­ver­sion util­ity and Font con­ver­sion util­ity are thus now avail­able on all three ma­jor plat­forms.

Drop­ping GCC 4.6 sup­port from mas­ter

Since GCC 4.7 is avail­able even in LTS Ubuntu, it was time to drop sup­port for 4.6 from master and provid­ing it only in compatibility branch. Mas­ter branch now makes use of ad­diton­al C++11 fea­tures, such as tem­plate ali­ases, del­eg­at­ing con­struct­ors, user-defined lit­er­als etc., res­ult­ing in more main­tain­able code.

Us­ing SDL2 as the de­fault win­dow­ing toolkit

Since LTS Ubuntu now also has SDL2 in the re­pos­it­or­ies, it is now used in the doc­u­ment­a­tion, tu­tori­als and ex­amples as the de­fault win­dow­ing toolkit. The GLUT toolkit, which was used be­fore, is still avail­able in the lib­rary, but its us­age is not re­com­men­ded and it prob­ably won’t re­ceive new fea­tures any­more.

In­stalling de­bug and re­lease lib­rar­ies and plu­gins in­to sep­ar­ate loc­a­tions

As ex­plained in mosra/mag­num#45, on some plat­forms it is not pos­sible to mix de­bug and re­lease lib­rar­ies, as it leads to linker er­rors. Ad­di­tion­ally it also wasn’t pos­sible to in­stall both de­bug and re­lease lib­rar­ies in­to the same loc­a­tion, caus­ing vari­ous in­con­veni­ences. Since this re­lease, de­bug lib­rar­ies are in­stalled with -d suf­fix and de­bug plu­gins are in­stalled in­to sep­ar­ate magnum-d/ dir­ect­ory. From end-user point of view not much has changed, CMake will auto­mat­ic­ally se­lect prop­er lib­rar­ies based on build type and also tries the best to se­lect ap­pro­pri­ate plu­gin dir­ect­ory. See doc­u­ment­a­tion about plu­gins for more in­form­a­tion about plu­gin dir­ect­or­ies on multi-con­fig­ur­a­tion build sys­tems.

Com­plete changelog

You can find a de­tailed list of changes in ver­sion 2014.06 in the doc­u­ment­a­tion: