so versioning by mercurial commit isn't meaningful anymore.
- remove manual version setting (mojoshader now sets version to -1 if it
can't find git/hg info; this is fine)
- 2 functions have incomplete signature; add ctx to complete them (plan to
upstream this)
- tested with fnaify and several FNA games, including Rogue Legacy,
Cryptark, Miasma without issues
fixes an odd build error where this isn't included in bulk builds, but is
in local ports tree builds.
Error was seen by aja@, naddy@, sthen@
fix tested and ok by aja@
API has been reworked significantly. A few games will likely be broken.
This is needed for upcoming fna3d port and more recent versions of FNA.
Many games tolerate this if using a more recent version of FNA.dll.
Breakage has been observed with FEZ, Adventures of Shuggy.
This allows running most recent FNA games to run (e.g. Sumico,
Unexplored).
No regressions on testing with FNA games, including:
Apotheon, At the Gates, Axiom Verge, Celeste, CometStriker, Dust AET,
FEZ, Flinthook, Flotilla, Hacknet, Rogue Legacy, Owlboy, Salt and
Sanctuary
OK sthen@, bcallah@
Submitted by Thomas Frohwein, who takes MAINTAINER (thanks!)
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.