Avalonia player for doomgeneric
A relatively minimal example implementation of a managed host running doomgeneric through callbacks.
Make sure to build the native project first. Building this project will automatically copy the native assembly to the output folder.
The native draw buffer is wrapped into a SkiaSharp bitmap and then rendered to the screen by Avalonia through a custom draw operation.
NAudio is used to output SFX and music (along with DryWetMidi). There are some minor issues with adjusting MIDI volume but it works well enough.
Input events are sent by the screen control. The mouse UX is pretty janky.