MojoShader is a library to work with Direct3D shaders on alternate
3D APIs and non-Windows platforms. The primary motivation is moving
shaders to OpenGL languages on the fly. The developer deals with
"profiles" that represent various target languages, such as GLSL
or ARB_*_program.

This allows a developer to manage one set of shaders, presumably
written in Direct3D HLSL, and use them across multiple rendering
backends. This also means that the developer only has to worry
about one (offline) compiler to manage program complexity, while
MojoShader itself deals with the reduced complexity of the bytecode
at runtime.

MojoShader provides both a simple API to convert bytecode to various
profiles, and (optionally) basic glue to rendering APIs to abstract
the management of the shaders at runtime.

Homepage:
https://www.icculus.org/mojoshader/
