Commit Graph

24 Commits

Author SHA1 Message Date
msiglreith
f4043cd1cc Add root descriptor commands and add trait derives 2019-10-04 00:52:50 +02:00
msiglreith
0a4a86ecbc Add root descriptor 2019-10-03 19:53:43 +02:00
bors[bot]
914d782007 Merge #9
9: Add structs and enums for ID3D12Heap r=msiglreith a=DethRaid

I've added the structs and enums needed to create an `ID3D12Heap`. I've also added the method `create_heap` to `Device`, and and added the module imports and reexports to the appropriate places

The weird thing here is `heap::Flags`. Thing is, D3D12 uses the value 0 for two of the enum constants in `D3D12_HEAP_FLAGS`. Rust does not allow the same value to be used by multiple enum constants (that I know of). I made an enum without any useful values, then gave it constants with the values from `D3D12_HEAP_FLAGS`. This lets my code compile, and the syntax to use the enum is the same, but the compiler complains about capitalization and I don't really like it. I'd welcome any ideas about a better way to implement this

Co-authored-by: David Dubois <dexcelstraun7@gmail.com>
2019-07-23 15:22:17 +00:00
David Dubois
4af1f9d2fd Add ID3D12Heap, and related structs and methods
`D3D12_HEAP_TYPE, D3D12_CPU_PAGE_PROPERTY, D3D12_MEMORY_POOL, D3D12_HEAP_FLAGS, D3D12_HEAP_PROPERTIES, and D3D12_HEAP_DESC

ID3D12Heap

Wrap ID3D12Device::CreateHeap

Made a tricky enum because DX12 doesn't follow Rust's rules

bump version to 0.2.0

Use bitflags for heap::Flags

Fix typo

Another typo fix
2019-07-23 08:13:06 -07:00
bors[bot]
5324fa6e1c Merge #7
7: Add missing cargo metadata for the release r=msiglreith a=kvark



Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
2019-01-17 11:20:40 +00:00
Dzmitry Malyshau
3e15f7c86e Add missing cargo metadata for the release 2018-12-26 21:24:41 -05:00
bors[bot]
ee0115462e Merge #6
6: Expose event internal and Event in root level r=msiglreith a=msiglreith



Co-authored-by: msiglreith <m.siglreith@gmail.com>
2018-11-08 17:14:38 +00:00
msiglreith
09d68b3cb9 Expose event internal and Event in root level 2018-11-08 18:13:37 +01:00
bors[bot]
7d8a7d3e15 Merge #5
5: Add rects length check for clears r=msiglreith a=dati91



Co-authored-by: Attila Dusnoki <attila.dusnoki@h-lab.eu>
2018-11-06 18:02:40 +00:00
Attila Dusnoki
4a938bd1d4 Add rects length check for clears 2018-11-06 14:39:38 +01:00
bors[bot]
6369df29e8 Merge #4
4: Factory, swapchain and more r=kvark a=msiglreith

Additionally renaming the crate to `d3d12`

Co-authored-by: msiglreith <m.siglreith@gmail.com>
2018-09-10 16:18:46 +00:00
msiglreith
bf7f2e6844 Address review comments 2018-09-10 18:17:37 +02:00
msiglreith
e6ba80cb39 Extend event and fence support 2018-09-08 14:02:52 +02:00
msiglreith
908c29ed7e Add swapchain handling and 2d RTV creation 2018-09-08 14:02:39 +02:00
msiglreith
2aacc3b11b Add debug interface, factory creation and adapter enumeration 2018-09-08 14:02:27 +02:00
bors[bot]
4097a10997 Merge #3
3: Add struct for descriptor binding r=grovesNL a=msiglreith

A bit more safety for API users to pass the correct values.

Co-authored-by: msiglreith <m.siglreith@gmail.com>
2018-09-03 18:02:26 +00:00
msiglreith
56770dce92 Add struct for descriptor binding 2018-09-01 16:57:38 +02:00
bors[bot]
124f9fc100 Merge #2
2: Fix command signature uuid r=msiglreith a=msiglreith



Co-authored-by: msiglreith <m.siglreith@gmail.com>
2018-08-31 22:04:07 +00:00
msiglreith
5e4b1b8795 Fix command signature uuid 2018-09-01 00:02:39 +02:00
bors[bot]
15f6f69725 Merge #1
1: Initialize crate r=kvark a=msiglreith

The crate is supposed to be a Rust wrapper around D3D12.
Motivated by trying to hide the FFI behind a nicer to use layer (part of BAL).

It aims at providing a zero-cost abstraction without any overhead at all (no transition costs between Rust structs and D3D12 structs or allocations). The API closely ressambles the d3d12 interfaces and is strucutered accordingly.

It currently uses a custom `ComPtr` implementation which does not do any refcounting, therefore requires manual destruction when dropping.

Co-authored-by: msiglreith <m.siglreith@gmail.com>
2018-08-27 16:58:06 +00:00
msiglreith
0d3487960a Fix appveyor build 2018-08-26 16:10:27 +02:00
msiglreith
4da4b1e908 Setup crate structure and wrap first interface 2018-08-26 16:07:26 +02:00
msiglreith
a0c95c9462 Setup bors and CI 2018-08-26 15:59:25 +02:00
msiglreith
b1d6410c7d Initial commit 2018-08-26 00:47:06 +02:00