www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Aurora DirectX Bindings 12.1

reply Adam Wilson <flyboynw gmail.com> writes:
I am happy to announce that after a prolonged hiatus the Aurora DirectX 
bindings have been updated to support DirectX 12.1 and DirectX 11.4. The 
project has been refactored to more closely align with the DirectX SDK 
headers and the scope is significantly increased to include the D3D 
Video, D2D Effects, SVG, and Debugging libraries. And finally, the 
package has now been added to DUB.

The following components of DirectX are supported:

DirectX 12.1
- Shaders
- Shader Tracing
- Video
- SDK Layers (Debugging)
DirectX 11.4
- Shaders
- Shader Tracing
- Video
- SDK Layers (Debugging)
Direct2D 1.3
- Effects 1.2
- SVG
DirectWrite 1.3
DXGI 1.6
WIC

The work is a combination of mechanical and hand conversion and there 
may be some inconsistent or incorrect types in the interface. If you 
encounter any inconsistencies I would love you pull requests.

Please note that most Macros are NOT ported yet. PR's welcome!

These bindings are based on the Windows SDK version 10.0.16299.0 
(Windows Build 1709 - Redstone 3)

GitHub: https://github.com/auroragraphics/directx
DUB: http://code.dlang.org/packages/aurora-directx

-- 
Adam Wilson
IRC: LightBender
import quiet.dlang.dev;
Apr 15 2018
parent reply Adam Wilson <flyboynw gmail.com> writes:
The Aurora DirectX bindings have been updated to support Windows 10 
1809. Also the D2D Effect Authoring SDK has been added.

GitHub: https://github.com/auroragraphics/directx
DUB: http://code.dlang.org/packages/aurora-directx

Please send PR's if you find any bugs!

-- 
Adam Wilson
IRC: LightBender
import quiet.dlang.dev;
Oct 03 2018
parent reply rikki cattermole <rikki cattermole.co.nz> writes:
On 04/10/2018 2:06 PM, Adam Wilson wrote:
 The Aurora DirectX bindings have been updated to support Windows 10 
 1809. Also the D2D Effect Authoring SDK has been added.
 
 GitHub: https://github.com/auroragraphics/directx
 DUB: http://code.dlang.org/packages/aurora-directx
 
 Please send PR's if you find any bugs!
It would be nice to get DirectX bindings into druntime. Just need 9/10 (some are floating about) after these mature a bit.
Oct 03 2018
parent reply Nicholas Wilson <iamthewilsonator hotmail.com> writes:
On Thursday, 4 October 2018 at 04:03:27 UTC, rikki cattermole 
wrote:
 On 04/10/2018 2:06 PM, Adam Wilson wrote:
 The Aurora DirectX bindings have been updated to support 
 Windows 10 1809. Also the D2D Effect Authoring SDK has been 
 added.
 
 GitHub: https://github.com/auroragraphics/directx
 DUB: http://code.dlang.org/packages/aurora-directx
 
 Please send PR's if you find any bugs!
It would be nice to get DirectX bindings into druntime. Just need 9/10 (some are floating about) after these mature a bit.
I don't think thats wise, nor is it ever like to happen. Druntime is D's runtime, the only reason there are bindings to the C and and C++ standard library is because of their ubiquity. This is much better suited to a dub package. Side note, its possible that I might end up adding a DX12 backend to LDC/DCompute (which I'm going to have to rename if I do) based on https://github.com/Microsoft/DirectXShaderCompiler/ even more likely if MS (Hi Adam) upstream it to LLVM.
Oct 03 2018
parent reply rikki cattermole <rikki cattermole.co.nz> writes:
On 04/10/2018 5:33 PM, Nicholas Wilson wrote:
 On Thursday, 4 October 2018 at 04:03:27 UTC, rikki cattermole wrote:
 On 04/10/2018 2:06 PM, Adam Wilson wrote:
 The Aurora DirectX bindings have been updated to support Windows 10 
 1809. Also the D2D Effect Authoring SDK has been added.

 GitHub: https://github.com/auroragraphics/directx
 DUB: http://code.dlang.org/packages/aurora-directx

 Please send PR's if you find any bugs!
It would be nice to get DirectX bindings into druntime. Just need 9/10 (some are floating about) after these mature a bit.
I don't think thats wise, nor is it ever like to happen. Druntime is D's runtime, the only reason there are bindings to the C and and C++ standard library is because of their ubiquity. This is much better suited to a dub package. Side note, its possible that I might end up adding a DX12 backend to LDC/DCompute (which I'm going to have to rename if I do) based on https://github.com/Microsoft/DirectXShaderCompiler/ even more likely if MS (Hi Adam) upstream it to LLVM.
Direct3D is part of the system API on Window's today, it is equivalent to using WinAPI for graphics. Which is well within the scope of druntime bindings.
Oct 03 2018
parent reply Adam Wilson <flyboynw gmail.com> writes:
On 10/3/18 10:15 PM, rikki cattermole wrote:
 On 04/10/2018 5:33 PM, Nicholas Wilson wrote:
 On Thursday, 4 October 2018 at 04:03:27 UTC, rikki cattermole wrote:
 On 04/10/2018 2:06 PM, Adam Wilson wrote:
 The Aurora DirectX bindings have been updated to support Windows 10 
 1809. Also the D2D Effect Authoring SDK has been added.

 GitHub: https://github.com/auroragraphics/directx
 DUB: http://code.dlang.org/packages/aurora-directx

 Please send PR's if you find any bugs!
It would be nice to get DirectX bindings into druntime. Just need 9/10 (some are floating about) after these mature a bit.
I don't think thats wise, nor is it ever like to happen. Druntime is D's runtime, the only reason there are bindings to the C and and C++ standard library is because of their ubiquity. This is much better suited to a dub package. Side note, its possible that I might end up adding a DX12 backend to LDC/DCompute (which I'm going to have to rename if I do) based on https://github.com/Microsoft/DirectXShaderCompiler/ even more likely if MS (Hi Adam) upstream it to LLVM.
Direct3D is part of the system API on Window's today, it is equivalent to using WinAPI for graphics. Which is well within the scope of druntime bindings.
A couple of thoughts on this. First IIRC, the Win32 bindings in DRT is nowhere near a complete implementation of the Win32, I think it's primarily from user32.lib. Second, the DirectX bindings themselves are absolutely massive and the move pretty quickly (they change with every release of Windows, so every 6 months right now). Putting them in DRT would significantly slow down updates. For example, I had these updates released within two days of the release of 1809. Third, my implementation is not complete. There are a bunch of missing macros and helper functions that have not yet been ported. So for now I definitely think the package route is a better option. But if you do end up using these bindings on DCompute please let me know! I've made sure that all the Shader interfaces exist, but if you find anything missing I will gladly except PR's. -- Adam Wilson IRC: LightBender import quiet.dlang.dev;
Oct 05 2018
parent Nicholas Wilson <iamthewilsonator hotmail.com> writes:
On Saturday, 6 October 2018 at 00:02:36 UTC, Adam Wilson wrote:
 So for now I definitely think the package route is a better 
 option.
Indeed.
 But if you do end up using these bindings on DCompute please 
 let me know! I've made sure that all the Shader interfaces 
 exist, but if you find anything missing I will gladly except 
 PR's.
Will do. It really depends on a) what happens at the LLVM Dev meeting in a week and a half and b) what Blizzard want out of it, both if it happens at all, and how much, if any (i.e. anything more than codegen), of the API will need to be usable from D.
Oct 05 2018