October 2013 updates to Magnum

Sum­ma­ry of changes dur­ing the first two months af­ter pub­lic re­lease. Two new ports, us­abil­i­ty im­prove­ments, OpenGL lim­it queries and in­tro­duc­tion of API dep­re­ca­tion.

The ver­sion 2013.10 is avail­able un­der the v2013.10 tag in Cor­rade, Mag­num, Mag­num Plug­ins and Mag­num In­te­gra­tion GitHub repos­i­to­ries. This ar­ti­cle will de­scribe the most im­por­tant changes, for de­tailed list fol­low the changel­og links at the end of this an­nounce­ment.

API dep­re­ca­tion and back­wards com­pat­i­bil­i­ty

Be­cause the li­brary is con­stant­ly evolv­ing, some APIs will be re­placed with faster, safer or more in­tu­itive ver­sions from time to time. The old API is then marked as dep­re­cat­ed and sched­uled for re­moval in some fu­ture re­lease. The li­braries are source com­pat­i­ble, but not bi­na­ry com­pat­i­ble, as full bi­na­ry com­pat­i­bil­i­ty might im­pose un­want­ed per­for­mance is­sues, which is usu­al­ly not want­ed for high-per­for­mance graph­ics frame­works.

Both Cor­rade and Mag­num li­braries are by de­fault built with dep­re­cat­ed APIs in­clud­ed. How­ev­er, to make your code fu­ture-proof and more ro­bust, you should dis­able build­ing of dep­re­cat­ed APIs by dis­abling BUILD_DEPRECATED CMake op­tion. In­for­ma­tion about whether giv­en li­brary is built with dep­re­cat­ed APIs or not is ex­posed via COR­RADE_BUILD_DEP­RE­CAT­ED or MAG­NUM_BUILD_DEP­RE­CAT­ED CMake vari­able and al­so pre­proces­sor def­i­ni­tion. Please note that the dep­re­cat­ed APIs will be pe­ri­od­i­cal­ly re­moved af­ter some time (on which I have yet to de­cide, but the dep­re­ca­tion pe­ri­od will be not short­er than six months).

The doc­u­men­ta­tion now al­so con­tains list of dep­re­cat­ed APIs in both Cor­rade and Mag­num, in­for­ma­tion about whether COR­RADE_BUILD_DEP­RE­CAT­ED and MAG­NUM_BUILD_DEP­RE­CAT­ED is en­abled or not is now al­so print­ed in mag­num-in­fo.

Com­plete changel­og

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