October 2013 updates to Magnum

Sum­mary of changes dur­ing the first two months after pub­lic re­lease. Two new ports, us­ab­il­ity im­prove­ments, OpenGL lim­it quer­ies and in­tro­duc­tion of API de­prec­a­tion.

The ver­sion 2013.10 is avail­able un­der the v2013.10 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.

API de­prec­a­tion and back­wards com­pat­ib­il­ity

Be­cause the lib­rary is con­stantly evolving, some APIs will be re­placed with faster, safer or more in­tu­it­ive ver­sions from time to time. The old API is then marked as de­prec­ated and sched­uled for re­mov­al in some fu­ture re­lease. The lib­rar­ies are source com­pat­ible, but not bin­ary com­pat­ible, as full bin­ary com­pat­ib­il­ity might im­pose un­wanted per­form­ance is­sues, which is usu­ally not wanted for high-per­form­ance graph­ics frame­works.

Both Cor­rade and Mag­num lib­rar­ies are by de­fault built with de­prec­ated APIs in­cluded. How­ever, to make your code fu­ture-proof and more ro­bust, you should dis­able build­ing of de­prec­ated APIs by dis­abling BUILD_DEPRECATED CMake op­tion. In­form­a­tion about wheth­er giv­en lib­rary is built with de­prec­ated APIs or not is ex­posed via COR­RADE_BUILD_DE­PREC­ATED or MAG­NUM_BUILD_DE­PREC­ATED CMake vari­able and also pre­pro­cessor defin­i­tion. Please note that the de­prec­ated APIs will be peri­od­ic­ally re­moved after some time (on which I have yet to de­cide, but the de­prec­a­tion peri­od will be not short­er than six months).

The doc­u­ment­a­tion now also con­tains list of de­prec­ated APIs in both Cor­rade and Mag­num, in­form­a­tion about wheth­er COR­RADE_BUILD_DE­PREC­ATED and MAG­NUM_BUILD_DE­PREC­ATED is en­abled or not is now also prin­ted in mag­num-info.

Com­plete changelog

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