* nix: add miniz to dependencies
* nix: enable parallel building
* amend! nix: add miniz to dependencies
nix: add miniz to dependencies
* nix: remove enableParellelBulding, needSubmodules
The flake now includes submodules in inputs, so we no longer
need to throw an error when they aren't there.
EnableParallelBuilding was added in error, cmake already compiles in
parallel when under nix.
* Implement smooth fadeout of dynamic shadows
* Add edge fade out configuration for dynamic shadows
* Tweak default and max values for edge fade out
* Add stage hook for deferred composite after opaque scene draws
* Bump mod version
The hope of auto-importing data via lld MinGW
+ pseudo_reloc is now dead thanks to ARM64,
so I just wrote a script to go annotate every
exported data symbol in the game instead.
It turns out this approach can't work on
ARM64 Windows due to the relocation model,
so we can simplify and just remove it
entirely.
Separately, I will make a commit tagging
all game data as DUSK_GAME_DATA, so things
work uniformly across cl/clang-cl and x64/
arm64.
`symgen exports` replaces -export_dynamic on Apple and curates
Android's dynamic symbols with a version script. `symgen stub` then
emits sdk/stub-{macos,ios,tvos}-<arch>, sdk/stub-android-<arch>.so,
and sdk/windows-<arch>.lib.
Apple: mods are now MH_BUNDLE (.so) linked with -bundle_loader,
replacing the deprecated (on iOS) -undefined dynamic_lookup.
Windows: clang-cl mods link dusklight.exe directly; lld's mingw driver
synthesizes imports from the export table. cl still requires the
import library.
Starting with VS 18 / cl 14.51, MSVC's constant evaluator
rejects a pointer-to-member in a constant initializer that also
contains any computed data, a consteval call or even a copy of a
constexpr object (C2127).
Hook records are now aggregate-initialized from literals only: the
computed name bytes (vtable symbol + display name) are baked into
char... template arguments and sizes/kinds are spelled inline.