-
Building vtables to create C# classes derived from C++ ones is rather tedious and error-prone in Biohazrd. This issue tracks ideas for ways we could improve this situation.
* [ ] Create an anlyzer …
-
We could use source generators to automatically generate the vtable stuff for C# overrides of C++ classes to avoid having the C# consumer from worrying about the thisptr/retbuf semantics without sacri…
-
`TranslatedLibraryBuilder` treats file paths as case-insensitive regardless of the case-sensitivity of the file system. This was done to avoid problems arising between a difference in casing between w…
-
Right now we use `MarshalAs` for `bool` where possible and `NativeBoolean` where not.
We should instead prefer using trampolines where possible and `NativeBoolean` where not.
-
At some point Clang cursor detail dumping broke, probably when we upgraded from Clang 10. Attempting to use `ClangSharpInfoDumper` or enabling dumping in the C# output via `CSharpGenerationOptions.Dum…
-
Right now there isn't an easy way to figure out what platform the translated library is targeting. Generator authors can manually keep track of this, but ideally we'd just expose it directly from Clan…
-
When testing Biohazrd with the DirectX API, I decided to split the API surface across various C# assemblies (IE: DXGI, D3D12, etc.)
I implemented this by splitting the `TranslatedLibrary` into mult…
-
Right now Biohazrd emits constructors and destructors as normal instance methods, they both act as if they would for placement new.
This leads to somewhat clunky usage for allocating objects from C…
-
In C# it is not possible to get the unmanaged function pointer behind a `DllImport`. (The function pointer type of a `DllImport` is managed because it might be a marshal stub.)
While it is not comm…
-
To avoid unused parameter warnings, C++ developers sometimes leave parameters unnamed and put the name in a comment, [for example](https://github.com/NVIDIA/TensorRT/blob/f1d38b5456e15e2683a4513ea3cb1…