This is the first set of patches in an effort to create more generic image loading/conversion code that can eventually be shared.
--
v3: d3dx9: Preserve the contents of unaligned compressed destination surfaces.
d3dx9: Split off image decompression into a helper function.
d3dx9: Split D3DXLoadSurfaceFromMemory functionality into a separate function.
d3dx9: Use base image pointer when decompressing source image.
d3dx9/tests: Add more tests for misaligned compressed surface loading.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5202
It feels a bit weird storing and playing MIDI control events directly in seqtrack. I originally thought they were stored as curve items, but curve items would generate `DMUS_CURVE_PMSG`, but these MIDI control events are played verbatim as `DMUS_MIDI_PMSG`.
--
v2: dmime: Handle MIDI control events in MIDI files.
dmime: Parse note on/off events and generate a seqtrack.
dmime/tests: Call the correct QueryInterface function for DirectMusic track.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5221
This part mainly includes a compilation pass to turn non-float operations into float operations, inserting the corresponding casts on the operands and result, and writing casts from bool to float as MOV.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/671