Matteo Bruni (@Mystral) commented about include/d3dx9anim.h:
#define INTERFACE ID3DXLoadUserData DECLARE_INTERFACE(ID3DXLoadUserData) {
- STDMETHOD(LoadTopLevelData)(ID3DXFileData *child_data) PURE;
- STDMETHOD(LoadFrameChildData)(D3DXFRAME *frame, ID3DXFileData *child_data) PURE;
- STDMETHOD(LoadMeshChildData)(D3DXMESHCONTAINER *mesh_container, ID3DXFileData *child_data) PURE;
- STDMETHOD(LoadTopLevelData)(ID3DXLoadUserData *user_data, ID3DXFileData *child_data) PURE;
- STDMETHOD(LoadFrameChildData)(ID3DXLoadUserData *user_data, D3DXFRAME *frame, ID3DXFileData *child_data) PURE;
- STDMETHOD(LoadMeshChildData)(ID3DXLoadUserData *user_data, D3DXMESHCONTAINER *mesh_container, ID3DXFileData *child_data) PURE;
Soooo, this is awkward...
This would be more idiomatic as: ``` STDMETHOD(LoadTopLevelData)(THIS_ ID3DXFileData *child_data) PURE; ``` and such. But that's no big deal.
Except, in all the copies of the DX SDK I have readily around (30, 41 and 43, for the records) the MS header is incredibly missing the This pointer as well :expressionless:
We probably still want the correct definitions but this is quite unfortunate. I'd at least add a comment clarifying that we're intentionally diverging from the broken DX SDK header here.