Features » Plugins & Extensions

A lot of Mag­num ex­tra lib­rar­ies define in­ter­faces for fur­ther ex­tens­ib­il­ity with plu­gins. Ad­vant­age of us­ing plu­gins is the abil­ity to de­fer de­cision about par­tic­u­lar de­pend­ency in­to de­ploy stage on giv­en plat­form.


Plu­gins im­port­ing gen­er­al scene formats with mesh data, im­age data, scene hier­archy, ma­ter­i­al, light and cam­era prop­er­ties.

  • TGA, PNG, JPEG, GIF, EXR, HDR, BMP, DDS and oth­er im­age formats
  • glTF, OBJ, Stan­ford PLY and OpenGEX scene format pars­ers
  • A plu­gin us­ing As­simp for COL­LADA, FBX and oth­er gen­er­al file format sup­port
  • “Any im­port­er” plu­gin del­eg­at­ing to oth­er im­age / scene im­port­er plu­gins based on de­tec­ted file format

Im­age con­vert­ers

Plu­gins for con­vert­ing im­age data between vari­ous formats.

  • Ex­port­ing raw im­age data as JPEG, TGA, PNG, HDR, BMP or EXR
  • In­ter­face for com­press­ing raw im­age data in­to GPU-read­able formats
  • “Any im­age con­vert­er” plu­gin del­eg­at­ing to oth­er con­vert­er plu­gins based on out­put file ex­ten­sion

Mesh con­vert­ers

Com­ing soon. Sub­scribe to mosra/mag­num#240 for up­dates.

Au­dio im­port­ers

Plu­gins im­port­ing au­dio data.

  • OGG Vor­bis, MP3, AAC, WAV and FLAC sup­port
  • “Any im­port­er” plu­gin del­eg­at­ing to oth­er au­dio im­port­er plu­gins based on de­tec­ted file format


Plu­gins provid­ing pars­ing of font files and text shap­ing/lay­out­ing.

  • TTF and OTF sup­port
  • Cus­tom in­tern­al Mag­num ras­ter font format
  • Free­Type and Harf­Buzz in­teg­ra­tion

Font con­vert­ers

Plu­gins provid­ing con­ver­sion between font formats and pre-ren­der­ing glyph cache tex­tures.

  • Con­vert­ing sub­set of a TTF/OTF font to cus­tom in­tern­al Mag­num ras­ter format

Shader con­vert­ers

Com­ing soon. Sub­scribe to mosra/mag­num#234 for up­dates.

Math con­vert­ers

Lastly, it’s pos­sible to im­ple­ment routines for con­vert­ing ex­tern­al data types from and to Mag­num built­in vec­tor, mat­rix, com­plex, qua­ternion and oth­er types. Once im­ple­men­ted, con­ver­sion from ex­tern­al to in­tern­al types is a mat­ter of an ex­pli­cit con­ver­sion.