amerkoleci / Vortice.Win32

Low level .NET bindings for Win32 Api.
MIT License
49 stars 2 forks source link

Question about Vortice.Win32 #2

Closed xoofx closed 1 year ago

xoofx commented 1 year ago

Hello Amer, 🙂 Wandering around and discovered this project, looks great and I'm glad that you were able to build a much better replacement of SharpDX! 💪 I'm curious about the comment from the readme "Lot of ideas and code is based on terrafx.interop.windows", as I have used Terrafx a few months ago to create some NWindows, and I'm wondering the difference about your bindings? If I had to choose, what would make Vortice.Win32 a better choice? Thanks!

amerkoleci commented 1 year ago

Hi there, thanks for your kind words!

Vortice.Win32 is the low level 0 GC successor of Vortice.Windows which is using SharpGenTools as SharpDX.

TerraFX binds everything in single assembly having so huge binary size, while Vortice.Win32 has separated assemblies (where possible) for specific apis (D3D12, D3D11 etc).

It also supports netstandard2.0 which Terrafx dropped.

Feel free to ask other questions if you have any, Thanks again!

xoofx commented 1 year ago

TerraFX binds everything in single assembly having so huge binary size, while Vortice.Win32 has separated assemblies (where possible) for specific apis (D3D12, D3D11 etc).

That's great to hear, that was actually one downside I found myself about TerraFx being really too big for the binary size. 😅 I prefer as well the split between smaller assemblies.

I have a few more questions:

amerkoleci commented 1 year ago

TerraFX binds everything in single assembly having so huge binary size, while Vortice.Win32 has separated assemblies (where possible) for specific apis (D3D12, D3D11 etc).

That's great to hear, that was actually one downside I found myself about TerraFx being really too big for the binary size. 😅 I prefer as well the split between smaller assemblies.

I have a few more questions:

  • I see that you try to follow the DirectX SDK update more often, is that correct? Yes
  • Also, regarding NativeAOT support, I assume it is AOT friendly? (Most likely, just double checking!) Absolutely
  • From your perspective, are there any stuffs that are missing or still challenging? (e.g missing APIs or incorrect marshalling mapping) Could be but I have all what I need, if you find some bindings being missing feel free to ask and I'll provide them!

Thanks

xoofx commented 1 year ago

Thanks for the details!