diff --git a/Cargo.lock b/Cargo.lock index 88e9fecea..a2d8f8a54 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -288,6 +288,24 @@ name = "gcc" version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "gfx-backend-dx11" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "derivative 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "gfx-hal 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "range-alloc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", + "spirv_cross 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "winit 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)", + "wio 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "gfx-backend-dx12" version = "0.1.0" @@ -1069,6 +1087,7 @@ name = "wgpu-native" version = "0.1.0" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "gfx-backend-dx11 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "gfx-backend-dx12 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "gfx-backend-empty 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "gfx-backend-metal 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1129,6 +1148,14 @@ dependencies = [ "x11-dl 2.18.3 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "wio" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "x11" version = "2.18.1" @@ -1202,6 +1229,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" "checksum fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" "checksum gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)" = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" +"checksum gfx-backend-dx11 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7751e630a3472d96b1a0ce9cd6742f2e17c0f71a6e833f822b914a11f89bd7db" "checksum gfx-backend-dx12 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2c373f40998da0fd605a7a90ce8d775a8cbcb06558edc2ea9740df1db2077686" "checksum gfx-backend-empty 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6bb068297aed95a014abaa01738986c2ed5d08c5f9f152c992300c415e9b917c" "checksum gfx-backend-metal 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "68fa011e32280f7566bddbb736734291b685c812087c99bc848d6ac7ae3e0b7f" @@ -1294,6 +1322,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "afc5508759c5bf4285e61feb862b6083c8480aec864fa17a81fdec6f69b461ab" "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" "checksum winit 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c57c15bd4c0ef18dff33e263e452abe32d00e2e05771cacaa410a14cc1c0776" +"checksum wio 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8a31e8a268d6941ffb7f8d7989fc93e4692bd3e75a27d400a72b4be1dadb213" "checksum x11 2.18.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39697e3123f715483d311b5826e254b6f3cfebdd83cf7ef3358f579c3d68e235" "checksum x11-dl 2.18.3 (registry+https://github.com/rust-lang/crates.io-index)" = "940586acb859ea05c53971ac231685799a7ec1dee66ac0bccc0e6ad96e06b4e3" "checksum xcb 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5e917a3f24142e9ff8be2414e36c649d47d6cc2ba81f16201cdef96e533e02de" diff --git a/examples/Cargo.toml b/examples/Cargo.toml index 426d30eda..a180fb5f2 100644 --- a/examples/Cargo.toml +++ b/examples/Cargo.toml @@ -16,6 +16,7 @@ default = [] remote = ["wgpu-native/remote"] winit = ["wgpu/winit"] metal = ["wgpu-native/gfx-backend-metal"] +dx11 = ["wgpu-native/gfx-backend-dx11"] dx12 = ["wgpu-native/gfx-backend-dx12"] vulkan = ["wgpu-native/gfx-backend-vulkan"] diff --git a/wgpu-native/Cargo.toml b/wgpu-native/Cargo.toml index eeaf03c4a..10091a677 100644 --- a/wgpu-native/Cargo.toml +++ b/wgpu-native/Cargo.toml @@ -22,6 +22,7 @@ parking_lot = { version = "0.7" } gfx-hal = "0.1.0" gfx-backend-empty = "0.1.0" gfx-backend-vulkan = { version = "0.1.0", optional = true } +gfx-backend-dx11 = { version = "0.1.0", optional = true } gfx-backend-dx12 = { version = "0.1.0", optional = true } gfx-backend-metal = { version = "0.1.0", optional = true } #rendy-memory = { git = "https://github.com/rustgd/rendy", rev = "ce7dd7f", features = ["gfx-hal"] } diff --git a/wgpu-native/src/instance.rs b/wgpu-native/src/instance.rs index 49fd308b2..6b8159984 100644 --- a/wgpu-native/src/instance.rs +++ b/wgpu-native/src/instance.rs @@ -35,21 +35,17 @@ pub struct DeviceDescriptor { pub extern "C" fn wgpu_create_instance() -> InstanceId { #[cfg(any( feature = "gfx-backend-vulkan", + feature = "gfx-backend-dx11", feature = "gfx-backend-dx12", feature = "gfx-backend-metal" ))] { let inst = ::back::Instance::create("wgpu", 1); - HUB.instances.write().register(inst) - } - #[cfg(not(any( - feature = "gfx-backend-vulkan", - feature = "gfx-backend-dx12", - feature = "gfx-backend-metal" - )))] - { - unimplemented!() + if true { + return HUB.instances.write().register(inst); + } } + unimplemented!() } #[cfg(feature = "winit")] diff --git a/wgpu-native/src/lib.rs b/wgpu-native/src/lib.rs index 7f4afa0e1..d73f1c33e 100644 --- a/wgpu-native/src/lib.rs +++ b/wgpu-native/src/lib.rs @@ -1,12 +1,15 @@ #[cfg(feature = "winit")] pub extern crate winit; +#[cfg(feature = "gfx-backend-dx11")] +extern crate gfx_backend_dx11 as back; #[cfg(feature = "gfx-backend-dx12")] extern crate gfx_backend_dx12 as back; #[cfg(not(any( feature = "gfx-backend-vulkan", + feature = "gfx-backend-dx11", feature = "gfx-backend-dx12", - feature = "gfx-backend-metal" + feature = "gfx-backend-metal", )))] extern crate gfx_backend_empty as back; #[cfg(feature = "gfx-backend-metal")] diff --git a/wgpu-rs/Cargo.toml b/wgpu-rs/Cargo.toml index 4a6ad0efb..0a08acb8e 100644 --- a/wgpu-rs/Cargo.toml +++ b/wgpu-rs/Cargo.toml @@ -13,6 +13,7 @@ edition = "2018" default = [] winit = ["wgpu-native/winit"] metal = ["wgpu-native/gfx-backend-metal"] +dx11 = ["wgpu-native/gfx-backend-dx11"] dx12 = ["wgpu-native/gfx-backend-dx12"] vulkan = ["wgpu-native/gfx-backend-vulkan"]