Thread overview
Aurora DirectX Bindings 12.1
Apr 16, 2018
Adam Wilson
Oct 04, 2018
Adam Wilson
Oct 04, 2018
rikki cattermole
Oct 04, 2018
Nicholas Wilson
Oct 04, 2018
rikki cattermole
Oct 06, 2018
Adam Wilson
Oct 06, 2018
Nicholas Wilson
April 15, 2018
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;
October 03, 2018
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;
October 04, 2018
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.
October 04, 2018
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.
October 04, 2018
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.
October 05, 2018
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;
October 06, 2018
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.