23: Bump libloading to 0.6 r=msiglreith a=cwfitzgerald
They got rid of their typedef for their result type. Strange.
Breaking change, so can't go out in a patch release.
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
Including:
- rename feature "libstatic" to "implicit-link"
- Debug and constructor implementations for the library structs
- removal of redundant Heap definition
19: Dynamic loading for D3D12 device and DXGI r=msiglreith a=kvark
Fixes#18
Users can opt into static/implicit linking, or explicit one with "libloading", or even both (to make features truly additive).
I believe these changes cover the entry points we need to get everything running on any other Windows than 10.
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
13: Bump version to 0.2.2 r=kvark a=msiglreith
As far as I can see there were no breaking changes to the API only additions
Co-authored-by: msiglreith <m.siglreith@gmail.com>
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>
`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
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>
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>