Features » Plugins & Extensions

A lot of Mag­num ex­tra li­braries de­fine in­ter­faces for fur­ther ex­ten­si­bil­i­ty with plug­ins. Ad­van­tage of us­ing plug­ins is the abil­i­ty to de­fer de­ci­sion about par­tic­u­lar de­pen­den­cy in­to de­ploy stage on giv­en plat­form.

Im­porters

Plug­ins im­port­ing gen­er­al scene for­mats with mesh da­ta, im­age da­ta, scene hi­er­ar­chy, ma­te­ri­al, light and cam­era prop­er­ties.

  • TGA, PNG, JPEG, GIF, EXR, HDR, BMP, DDS and oth­er im­age for­mats
  • OBJ, Stan­ford PLY, COL­LA­DA and OpenGEX scene for­mat parsers
  • Plug­in us­ing As­simp for gen­er­al file for­mat sup­port
  • “Any im­porter” plug­in del­e­gat­ing to oth­er im­age / scene im­porter plug­ins based on de­tect­ed file for­mat

Im­age con­vert­ers

Plug­ins for con­vert­ing im­age da­ta be­tween var­i­ous for­mats.

  • Ex­port­ing raw im­age da­ta as TGA, PNG, HDR, BMP or EXR
  • In­ter­face for com­press­ing raw im­age da­ta in­to GPU-read­able for­mats
  • “Any im­age con­vert­er” plug­in del­e­gat­ing to oth­er con­vert­er plug­ins based on out­put file ex­ten­sion

Au­dio im­porters

Plug­ins im­port­ing au­dio da­ta.

  • OGG Vor­bis, WAV and FLAC sup­port
  • “Any im­porter” plug­in del­e­gat­ing to oth­er au­dio im­porter plug­ins based on de­tect­ed file for­mat

Fonts

Plug­ins pro­vid­ing pars­ing of font files and text shap­ing/lay­out­ing.

  • TTF and OTF sup­port
  • Cus­tom in­ter­nal Mag­num raster font for­mat
  • FreeType and Harf­Buzz in­te­gra­tion

Font con­vert­ers

Plug­ins pro­vid­ing con­ver­sion be­tween font for­mats and pre-ren­der­ing glyph cache tex­tures.

  • Con­vert­ing sub­set of a TTF/OTF font to cus­tom in­ter­nal Mag­num raster for­mat

Shad­er con­vert­ers

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

Math con­vert­ers

Last­ly, it’s pos­si­ble to im­ple­ment rou­tines for con­vert­ing ex­ter­nal da­ta types from and to Mag­num builtin vec­tor, ma­trix, com­plex, quater­nion and oth­er types. Once im­ple­ment­ed, con­ver­sion from ex­ter­nal to in­ter­nal types is a mat­ter of an ex­plic­it con­ver­sion.