backend genericisation (?) and rwh 0.6
This commit is contained in:
parent
63301c692e
commit
43b800ff80
339
Cargo.lock
generated
339
Cargo.lock
generated
|
@ -212,8 +212,7 @@ checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b"
|
|||
[[package]]
|
||||
name = "ash"
|
||||
version = "0.37.3+1.3.251"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "39e9c3835d686b0a6084ab4234fcd1b07dbf6e4767dce60874b12356a25ecd4a"
|
||||
source = "git+https://git.alexjanka.com/alex/ash?branch=raw-window-handle-0.6.0#55628b4023d692d604fb8cce67babb9eab0fa785"
|
||||
dependencies = [
|
||||
"libloading 0.7.4",
|
||||
]
|
||||
|
@ -233,11 +232,10 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "ash-window"
|
||||
version = "0.12.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b912285a7c29f3a8f87ca6f55afc48768624e5e33ec17dbd2f2075903f5e35ab"
|
||||
source = "git+https://git.alexjanka.com/alex/ash?branch=raw-window-handle-0.6.0#55628b4023d692d604fb8cce67babb9eab0fa785"
|
||||
dependencies = [
|
||||
"ash",
|
||||
"raw-window-handle 0.5.2",
|
||||
"raw-window-handle 0.6.0",
|
||||
"raw-window-metal",
|
||||
]
|
||||
|
||||
|
@ -310,32 +308,14 @@ checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
|
|||
[[package]]
|
||||
name = "baseview"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/RustAudio/baseview.git?rev=2c1b1a7b0fef1a29a5150a6a8f6fef6a0cbab8c4#2c1b1a7b0fef1a29a5150a6a8f6fef6a0cbab8c4"
|
||||
source = "git+https://git.alexjanka.com/alex/baseview#b3bbdea6c0f46d71de812d4f64835b13a8f7ffab"
|
||||
dependencies = [
|
||||
"cocoa 0.24.1",
|
||||
"core-foundation 0.9.4",
|
||||
"keyboard-types",
|
||||
"nix 0.22.3",
|
||||
"objc",
|
||||
"raw-window-handle 0.5.2",
|
||||
"uuid 0.8.2",
|
||||
"winapi",
|
||||
"x11",
|
||||
"xcb",
|
||||
"xcb-util",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "baseview"
|
||||
version = "0.1.0"
|
||||
source = "git+https://git.alexjanka.com/alex/baseview#50a5602bca9b438fd125fb48cf0ade48fd794a36"
|
||||
dependencies = [
|
||||
"cocoa 0.24.1",
|
||||
"core-foundation 0.9.4",
|
||||
"keyboard-types",
|
||||
"nix 0.22.3",
|
||||
"objc",
|
||||
"raw-window-handle 0.5.2",
|
||||
"raw-window-handle 0.6.0",
|
||||
"uuid 0.8.2",
|
||||
"winapi",
|
||||
"x11",
|
||||
|
@ -532,7 +512,7 @@ checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
|
|||
[[package]]
|
||||
name = "cacao"
|
||||
version = "0.4.0-beta2"
|
||||
source = "git+https://git.alexjanka.com/alex/cacao#65b32e79c0a8d088d19799b13e86634f3a64c10b"
|
||||
source = "git+https://git.alexjanka.com/alex/cacao#b19806af9731609e2875cb32acaeea17792a492a"
|
||||
dependencies = [
|
||||
"bitmask-enum",
|
||||
"block2 0.2.0-alpha.6",
|
||||
|
@ -804,12 +784,6 @@ dependencies = [
|
|||
"com_macros",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "com-rs"
|
||||
version = "0.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bf43edc576402991846b093a7ca18a3477e0ef9c588cde84964b5d3e43016642"
|
||||
|
||||
[[package]]
|
||||
name = "com_macros"
|
||||
version = "0.6.0"
|
||||
|
@ -1156,17 +1130,6 @@ version = "1.1.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991"
|
||||
|
||||
[[package]]
|
||||
name = "d3d12"
|
||||
version = "0.6.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d8f0de2f5a8e7bd4a9eec0e3c781992a4ce1724f68aec7d7a3715344de8b39da"
|
||||
dependencies = [
|
||||
"bitflags 1.3.2",
|
||||
"libloading 0.7.4",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "d3d12"
|
||||
version = "0.19.0"
|
||||
|
@ -1174,7 +1137,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
checksum = "3e3d747f100290a1ca24b752186f61f6637e1deffe3bf6320de6fcb29510a307"
|
||||
dependencies = [
|
||||
"bitflags 2.4.2",
|
||||
"libloading 0.7.4",
|
||||
"libloading 0.8.1",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
|
@ -1473,7 +1436,7 @@ dependencies = [
|
|||
"gilrs",
|
||||
"image",
|
||||
"nokhwa",
|
||||
"raw-window-handle 0.5.2",
|
||||
"raw-window-handle 0.6.0",
|
||||
"send_wrapper",
|
||||
"serde",
|
||||
"winit",
|
||||
|
@ -1585,14 +1548,15 @@ dependencies = [
|
|||
"librashader",
|
||||
"librashader-common",
|
||||
"librashader-presets",
|
||||
"naga 0.19.0",
|
||||
"naga",
|
||||
"num-traits",
|
||||
"pixels",
|
||||
"rand",
|
||||
"raw-window-handle 0.5.2",
|
||||
"raw-window-handle 0.6.0",
|
||||
"ron",
|
||||
"serde",
|
||||
"serde_with",
|
||||
"wgpu",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1685,18 +1649,6 @@ version = "0.3.1"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
|
||||
|
||||
[[package]]
|
||||
name = "glow"
|
||||
version = "0.12.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ca0fe580e4b60a8ab24a868bc08e2f03cbcb20d3d676601fa909386713333728"
|
||||
dependencies = [
|
||||
"js-sys",
|
||||
"slotmap",
|
||||
"wasm-bindgen",
|
||||
"web-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "glow"
|
||||
version = "0.13.1"
|
||||
|
@ -1729,16 +1681,6 @@ dependencies = [
|
|||
"scroll",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gpu-alloc"
|
||||
version = "0.5.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "22beaafc29b38204457ea030f6fb7a84c9e4dd1b86e311ba0542533453d87f62"
|
||||
dependencies = [
|
||||
"bitflags 1.3.2",
|
||||
"gpu-alloc-types 0.2.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gpu-alloc"
|
||||
version = "0.6.0"
|
||||
|
@ -1746,16 +1688,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171"
|
||||
dependencies = [
|
||||
"bitflags 2.4.2",
|
||||
"gpu-alloc-types 0.3.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gpu-alloc-types"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "54804d0d6bc9d7f26db4eaec1ad10def69b599315f487d32c334a80d1efe67a5"
|
||||
dependencies = [
|
||||
"bitflags 1.3.2",
|
||||
"gpu-alloc-types",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1777,8 +1710,6 @@ dependencies = [
|
|||
"backtrace",
|
||||
"log",
|
||||
"thiserror",
|
||||
"winapi",
|
||||
"windows 0.44.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1823,7 +1754,7 @@ dependencies = [
|
|||
"frontend-common",
|
||||
"gb-emu-lib",
|
||||
"objc2 0.3.0-beta.3",
|
||||
"raw-window-handle 0.5.2",
|
||||
"raw-window-handle 0.6.0",
|
||||
"serde",
|
||||
"twinc_emu_vst",
|
||||
"uuid 1.7.0",
|
||||
|
@ -1864,21 +1795,6 @@ dependencies = [
|
|||
"hashbrown 0.14.3",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "hassle-rs"
|
||||
version = "0.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1397650ee315e8891a0df210707f0fc61771b0cc518c3023896064c5407cb3b0"
|
||||
dependencies = [
|
||||
"bitflags 1.3.2",
|
||||
"com-rs",
|
||||
"libc",
|
||||
"libloading 0.7.4",
|
||||
"thiserror",
|
||||
"widestring",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "hassle-rs"
|
||||
version = "0.11.0"
|
||||
|
@ -1888,7 +1804,7 @@ dependencies = [
|
|||
"bitflags 2.4.2",
|
||||
"com",
|
||||
"libc",
|
||||
"libloading 0.7.4",
|
||||
"libloading 0.8.1",
|
||||
"thiserror",
|
||||
"widestring",
|
||||
"winapi",
|
||||
|
@ -2171,17 +2087,6 @@ dependencies = [
|
|||
"unicode-segmentation",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "khronos-egl"
|
||||
version = "4.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8c2352bd1d0bceb871cb9d40f24360c8133c11d7486b68b5381c1dd1a32015e3"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"libloading 0.7.4",
|
||||
"pkg-config",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "khronos-egl"
|
||||
version = "6.0.0"
|
||||
|
@ -2257,7 +2162,7 @@ dependencies = [
|
|||
"librashader-runtime",
|
||||
"librashader-runtime-vk",
|
||||
"librashader-runtime-wgpu",
|
||||
"wgpu 0.19.1",
|
||||
"wgpu",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -2283,7 +2188,7 @@ source = "git+https://git.alexjanka.com/alex/librashader#446b052657fee7cc364ae33
|
|||
dependencies = [
|
||||
"ash",
|
||||
"num-traits",
|
||||
"wgpu-types 0.19.0",
|
||||
"wgpu-types",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -2323,12 +2228,12 @@ dependencies = [
|
|||
"librashader-presets",
|
||||
"librashader-spirv-cross",
|
||||
"matches",
|
||||
"naga 0.19.0",
|
||||
"naga",
|
||||
"rspirv",
|
||||
"rustc-hash",
|
||||
"serde",
|
||||
"shaderc",
|
||||
"spirv 0.3.0+sdk-1.3.268.0",
|
||||
"spirv",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
|
@ -2384,7 +2289,7 @@ dependencies = [
|
|||
"rayon",
|
||||
"rustc-hash",
|
||||
"thiserror",
|
||||
"wgpu 0.19.1",
|
||||
"wgpu",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -2544,20 +2449,6 @@ dependencies = [
|
|||
"objc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "metal"
|
||||
version = "0.24.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "de11355d1f6781482d027a3b4d4de7825dcedb197bf573e0596d00008402d060"
|
||||
dependencies = [
|
||||
"bitflags 1.3.2",
|
||||
"block",
|
||||
"core-graphics-types 0.1.3",
|
||||
"foreign-types 0.3.2",
|
||||
"log",
|
||||
"objc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "metal"
|
||||
version = "0.27.0"
|
||||
|
@ -2635,26 +2526,6 @@ dependencies = [
|
|||
"nasm-rs",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "naga"
|
||||
version = "0.12.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bbcc2e0513220fd2b598e6068608d4462db20322c0e77e47f6f488dfcfc279cb"
|
||||
dependencies = [
|
||||
"bit-set",
|
||||
"bitflags 1.3.2",
|
||||
"codespan-reporting",
|
||||
"hexf-parse",
|
||||
"indexmap 1.9.3",
|
||||
"log",
|
||||
"num-traits",
|
||||
"rustc-hash",
|
||||
"spirv 0.2.0+1.5.4",
|
||||
"termcolor",
|
||||
"thiserror",
|
||||
"unicode-xid",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "naga"
|
||||
version = "0.19.0"
|
||||
|
@ -2670,7 +2541,7 @@ dependencies = [
|
|||
"num-traits",
|
||||
"petgraph",
|
||||
"rustc-hash",
|
||||
"spirv 0.3.0+sdk-1.3.268.0",
|
||||
"spirv",
|
||||
"termcolor",
|
||||
"thiserror",
|
||||
"unicode-xid",
|
||||
|
@ -2762,14 +2633,14 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "nih_plug"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/robbert-vdh/nih-plug#7a01b57735bb0cb18da048e4eb5b303b85b30c4d"
|
||||
source = "git+https://git.alexjanka.com/alex/nih-plug#a54abb48e7571ce453a6b7a43d7a8d20f6b95a3e"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"anymap",
|
||||
"atomic_float",
|
||||
"atomic_refcell",
|
||||
"backtrace",
|
||||
"baseview 0.1.0 (git+https://github.com/RustAudio/baseview.git?rev=2c1b1a7b0fef1a29a5150a6a8f6fef6a0cbab8c4)",
|
||||
"baseview",
|
||||
"bitflags 1.3.2",
|
||||
"cfg-if 1.0.0",
|
||||
"clap",
|
||||
|
@ -2787,7 +2658,7 @@ dependencies = [
|
|||
"nih_plug_derive",
|
||||
"objc",
|
||||
"parking_lot",
|
||||
"raw-window-handle 0.5.2",
|
||||
"raw-window-handle 0.6.0",
|
||||
"rtrb",
|
||||
"serde",
|
||||
"serde_json",
|
||||
|
@ -2799,7 +2670,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "nih_plug_derive"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/robbert-vdh/nih-plug#7a01b57735bb0cb18da048e4eb5b303b85b30c4d"
|
||||
source = "git+https://git.alexjanka.com/alex/nih-plug#a54abb48e7571ce453a6b7a43d7a8d20f6b95a3e"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
|
@ -2809,7 +2680,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "nih_plug_xtask"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/robbert-vdh/nih-plug#7a01b57735bb0cb18da048e4eb5b303b85b30c4d"
|
||||
source = "git+https://git.alexjanka.com/alex/nih-plug#a54abb48e7571ce453a6b7a43d7a8d20f6b95a3e"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"goblin",
|
||||
|
@ -3225,15 +3096,14 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
|
|||
[[package]]
|
||||
name = "pixels"
|
||||
version = "0.13.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8ba8189b31db4f12fbf0d4a8eab2d7d7343a504a8d8a7ea4b14ffb2e6129136a"
|
||||
source = "git+https://git.alexjanka.com/alex/pixels#b577b326a8e661645ca5643091dbaf4348a70bb8"
|
||||
dependencies = [
|
||||
"bytemuck",
|
||||
"pollster",
|
||||
"raw-window-handle 0.5.2",
|
||||
"raw-window-handle 0.6.0",
|
||||
"thiserror",
|
||||
"ultraviolet",
|
||||
"wgpu 0.16.3",
|
||||
"wgpu",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -3442,14 +3312,14 @@ checksum = "42a9830a0e1b9fb145ebb365b8bc4ccd75f290f98c0247deafbbe2c75cefb544"
|
|||
|
||||
[[package]]
|
||||
name = "raw-window-metal"
|
||||
version = "0.3.2"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ac4ea493258d54c24cb46aa9345d099e58e2ea3f30dd63667fc54fc892f18e76"
|
||||
checksum = "76e8caa82e31bb98fee12fa8f051c94a6aa36b07cddb03f0d4fc558988360ff1"
|
||||
dependencies = [
|
||||
"cocoa 0.25.0",
|
||||
"core-graphics 0.23.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"objc",
|
||||
"raw-window-handle 0.5.2",
|
||||
"raw-window-handle 0.6.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -3591,7 +3461,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
checksum = "69cf3a93856b6e5946537278df0d3075596371b1950ccff012f02b0f7eafec8d"
|
||||
dependencies = [
|
||||
"rustc-hash",
|
||||
"spirv 0.3.0+sdk-1.3.268.0",
|
||||
"spirv",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -3892,16 +3762,6 @@ dependencies = [
|
|||
"lock_api",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "spirv"
|
||||
version = "0.2.0+1.5.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "246bfa38fe3db3f1dfc8ca5a2cdeb7348c78be2112740cc0ec8ef18b6d94f830"
|
||||
dependencies = [
|
||||
"bitflags 1.3.2",
|
||||
"num-traits",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "spirv"
|
||||
version = "0.3.0+sdk-1.3.268.0"
|
||||
|
@ -4144,13 +4004,14 @@ name = "twinc_emu_vst"
|
|||
version = "0.5.1"
|
||||
dependencies = [
|
||||
"async-ringbuf",
|
||||
"baseview 0.1.0 (git+https://git.alexjanka.com/alex/baseview)",
|
||||
"baseview",
|
||||
"futures",
|
||||
"gb-emu-lib",
|
||||
"keyboard-types",
|
||||
"nih_plug",
|
||||
"raw-window-handle 0.5.2",
|
||||
"raw-window-handle 0.6.0",
|
||||
"serde",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -4525,30 +4386,6 @@ version = "0.1.8"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
|
||||
|
||||
[[package]]
|
||||
name = "wgpu"
|
||||
version = "0.16.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "480c965c9306872eb6255fa55e4b4953be55a8b64d57e61d7ff840d3dcc051cd"
|
||||
dependencies = [
|
||||
"arrayvec",
|
||||
"cfg-if 1.0.0",
|
||||
"js-sys",
|
||||
"log",
|
||||
"naga 0.12.3",
|
||||
"parking_lot",
|
||||
"profiling",
|
||||
"raw-window-handle 0.5.2",
|
||||
"smallvec",
|
||||
"static_assertions",
|
||||
"wasm-bindgen",
|
||||
"wasm-bindgen-futures",
|
||||
"web-sys",
|
||||
"wgpu-core 0.16.1",
|
||||
"wgpu-hal 0.16.2",
|
||||
"wgpu-types 0.16.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "wgpu"
|
||||
version = "0.19.1"
|
||||
|
@ -4560,7 +4397,7 @@ dependencies = [
|
|||
"cfg_aliases",
|
||||
"js-sys",
|
||||
"log",
|
||||
"naga 0.19.0",
|
||||
"naga",
|
||||
"parking_lot",
|
||||
"profiling",
|
||||
"raw-window-handle 0.6.0",
|
||||
|
@ -4569,32 +4406,9 @@ dependencies = [
|
|||
"wasm-bindgen",
|
||||
"wasm-bindgen-futures",
|
||||
"web-sys",
|
||||
"wgpu-core 0.19.0",
|
||||
"wgpu-hal 0.19.1",
|
||||
"wgpu-types 0.19.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "wgpu-core"
|
||||
version = "0.16.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8f478237b4bf0d5b70a39898a66fa67ca3a007d79f2520485b8b0c3dfc46f8c2"
|
||||
dependencies = [
|
||||
"arrayvec",
|
||||
"bit-vec",
|
||||
"bitflags 2.4.2",
|
||||
"codespan-reporting",
|
||||
"log",
|
||||
"naga 0.12.3",
|
||||
"parking_lot",
|
||||
"profiling",
|
||||
"raw-window-handle 0.5.2",
|
||||
"rustc-hash",
|
||||
"smallvec",
|
||||
"thiserror",
|
||||
"web-sys",
|
||||
"wgpu-hal 0.16.2",
|
||||
"wgpu-types 0.16.1",
|
||||
"wgpu-core",
|
||||
"wgpu-hal",
|
||||
"wgpu-types",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -4610,7 +4424,7 @@ dependencies = [
|
|||
"codespan-reporting",
|
||||
"indexmap 2.1.0",
|
||||
"log",
|
||||
"naga 0.19.0",
|
||||
"naga",
|
||||
"once_cell",
|
||||
"parking_lot",
|
||||
"profiling",
|
||||
|
@ -4619,50 +4433,8 @@ dependencies = [
|
|||
"smallvec",
|
||||
"thiserror",
|
||||
"web-sys",
|
||||
"wgpu-hal 0.19.1",
|
||||
"wgpu-types 0.19.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "wgpu-hal"
|
||||
version = "0.16.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1ecb3258078e936deee14fd4e0febe1cfe9bbb5ffef165cb60218d2ee5eb4448"
|
||||
dependencies = [
|
||||
"android_system_properties",
|
||||
"arrayvec",
|
||||
"ash",
|
||||
"bit-set",
|
||||
"bitflags 2.4.2",
|
||||
"block",
|
||||
"core-graphics-types 0.1.3",
|
||||
"d3d12 0.6.0",
|
||||
"foreign-types 0.3.2",
|
||||
"glow 0.12.3",
|
||||
"gpu-alloc 0.5.4",
|
||||
"gpu-allocator 0.22.0",
|
||||
"gpu-descriptor",
|
||||
"hassle-rs 0.10.0",
|
||||
"js-sys",
|
||||
"khronos-egl 4.1.0",
|
||||
"libc",
|
||||
"libloading 0.8.1",
|
||||
"log",
|
||||
"metal 0.24.0",
|
||||
"naga 0.12.3",
|
||||
"objc",
|
||||
"parking_lot",
|
||||
"profiling",
|
||||
"range-alloc",
|
||||
"raw-window-handle 0.5.2",
|
||||
"renderdoc-sys",
|
||||
"rustc-hash",
|
||||
"smallvec",
|
||||
"thiserror",
|
||||
"wasm-bindgen",
|
||||
"web-sys",
|
||||
"wgpu-types 0.16.1",
|
||||
"winapi",
|
||||
"wgpu-hal",
|
||||
"wgpu-types",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -4679,20 +4451,20 @@ dependencies = [
|
|||
"block",
|
||||
"cfg_aliases",
|
||||
"core-graphics-types 0.1.3",
|
||||
"d3d12 0.19.0",
|
||||
"glow 0.13.1",
|
||||
"d3d12",
|
||||
"glow",
|
||||
"glutin_wgl_sys",
|
||||
"gpu-alloc 0.6.0",
|
||||
"gpu-alloc",
|
||||
"gpu-allocator 0.25.0",
|
||||
"gpu-descriptor",
|
||||
"hassle-rs 0.11.0",
|
||||
"hassle-rs",
|
||||
"js-sys",
|
||||
"khronos-egl 6.0.0",
|
||||
"khronos-egl",
|
||||
"libc",
|
||||
"libloading 0.7.4",
|
||||
"libloading 0.8.1",
|
||||
"log",
|
||||
"metal 0.27.0",
|
||||
"naga 0.19.0",
|
||||
"naga",
|
||||
"objc",
|
||||
"once_cell",
|
||||
"parking_lot",
|
||||
|
@ -4705,21 +4477,10 @@ dependencies = [
|
|||
"thiserror",
|
||||
"wasm-bindgen",
|
||||
"web-sys",
|
||||
"wgpu-types 0.19.0",
|
||||
"wgpu-types",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "wgpu-types"
|
||||
version = "0.16.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d0c153280bb108c2979eb5c7391cb18c56642dd3c072e55f52065e13e2a1252a"
|
||||
dependencies = [
|
||||
"bitflags 2.4.2",
|
||||
"js-sys",
|
||||
"web-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "wgpu-types"
|
||||
version = "0.19.0"
|
||||
|
|
16
Cargo.toml
16
Cargo.toml
|
@ -4,11 +4,13 @@ default-members = ["cli"]
|
|||
resolver = "2"
|
||||
|
||||
[workspace.dependencies]
|
||||
thiserror = "1.0"
|
||||
raw-window-handle = "0.6"
|
||||
gb-emu-lib = { path = "./lib", features = ["config"] }
|
||||
frontend-common = { path = "./frontend-common" }
|
||||
baseview = { git = "https://git.alexjanka.com/alex/baseview" }
|
||||
nih_plug = { git = "https://github.com/robbert-vdh/nih-plug" }
|
||||
nih_plug_xtask = { git = "https://github.com/robbert-vdh/nih-plug" }
|
||||
baseview = { git = "https://git.alexjanka.com/alex/baseview", default-features = false }
|
||||
nih_plug = { git = "https://git.alexjanka.com/alex/nih-plug" }
|
||||
nih_plug_xtask = { git = "https://git.alexjanka.com/alex/nih-plug" }
|
||||
librashader = { git = "https://git.alexjanka.com/alex/librashader", default-features = false }
|
||||
librashader-common = { git = "https://git.alexjanka.com/alex/librashader" }
|
||||
librashader-presets = { git = "https://git.alexjanka.com/alex/librashader" }
|
||||
|
@ -17,3 +19,11 @@ librashader-reflect = { git = "https://git.alexjanka.com/alex/librashader" }
|
|||
librashader-runtime = { git = "https://git.alexjanka.com/alex/librashader" }
|
||||
librashader-runtime-vk = { git = "https://git.alexjanka.com/alex/librashader" }
|
||||
librashader-cache = { git = "https://git.alexjanka.com/alex/librashader" }
|
||||
ash = { git = "https://git.alexjanka.com/alex/ash", branch = "raw-window-handle-0.6.0" }
|
||||
ash-window = { git = "https://git.alexjanka.com/alex/ash", branch = "raw-window-handle-0.6.0" }
|
||||
|
||||
[patch."https://github.com/RustAudio/baseview.git"]
|
||||
baseview = { git = "https://git.alexjanka.com/alex/baseview" }
|
||||
|
||||
[patch.crates-io]
|
||||
ash = { git = "https://git.alexjanka.com/alex/ash", branch = "raw-window-handle-0.6.0" }
|
||||
|
|
|
@ -8,7 +8,7 @@ description = "Frontend common library for TWINC Game Boy (CGB/DMG) emulator"
|
|||
identifier = "com.alexjanka.TWINC"
|
||||
|
||||
[features]
|
||||
default = ["vulkan-static"]
|
||||
default = ["wgpu", "pixels", "vulkan-static"]
|
||||
pixels = ["gb-emu-lib/pixels-renderer"]
|
||||
vulkan = ["gb-emu-lib/vulkan-renderer", "gb-emu-lib/vulkan-debug"]
|
||||
vulkan-static = ["vulkan", "gb-emu-lib/vulkan-static"]
|
||||
|
@ -26,7 +26,7 @@ nokhwa = { version = "0.10", features = [
|
|||
send_wrapper = { version = "0.6.0", optional = true }
|
||||
winit = { version = "0.29", features = ["rwh_05"] }
|
||||
winit_input_helper = "0.15"
|
||||
raw-window-handle = { version = "0.5" }
|
||||
raw-window-handle = { workspace = true }
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
image = { version = "0.24", default-features = false, features = ["png"] }
|
||||
bytemuck = "1.14"
|
||||
|
|
|
@ -24,12 +24,6 @@ mod camera;
|
|||
pub mod debug;
|
||||
pub mod window;
|
||||
|
||||
#[cfg(any(
|
||||
all(feature = "vulkan", feature = "pixels"),
|
||||
all(feature = "vulkan", feature = "wgpu"),
|
||||
all(feature = "wgpu", feature = "pixels")
|
||||
))]
|
||||
compile_error!("select only one rendering backend!");
|
||||
#[cfg(all(
|
||||
not(feature = "vulkan"),
|
||||
not(feature = "pixels"),
|
||||
|
|
|
@ -14,7 +14,7 @@ use gb_emu_lib::{
|
|||
};
|
||||
use gilrs::{Button, Gilrs};
|
||||
use image::ImageBuffer;
|
||||
use raw_window_handle::HasRawDisplayHandle;
|
||||
use raw_window_handle::HasDisplayHandle;
|
||||
use winit::{
|
||||
dpi::PhysicalSize,
|
||||
event::{Event, WindowEvent},
|
||||
|
@ -64,7 +64,7 @@ where
|
|||
let event_loop = EventLoop::new().unwrap();
|
||||
|
||||
let window_data_manager = Arc::new(Backend::RendererBackendManager::new(
|
||||
event_loop.raw_display_handle(),
|
||||
event_loop.display_handle().unwrap(),
|
||||
));
|
||||
Self {
|
||||
event_loop,
|
||||
|
|
|
@ -7,7 +7,7 @@ edition = "2021"
|
|||
crate-type = ["cdylib", "rlib"]
|
||||
|
||||
[features]
|
||||
default = ["plugin", "vulkan-static"]
|
||||
default = ["plugin", "wgpu", "pixels", "vulkan-static"]
|
||||
pixels = ["gb-emu-lib/pixels-renderer"]
|
||||
vulkan = ["gb-emu-lib/vulkan-renderer"]
|
||||
vulkan-static = ["vulkan", "gb-emu-lib/vulkan-static"]
|
||||
|
@ -22,10 +22,14 @@ plugin = [
|
|||
|
||||
[dependencies]
|
||||
gb-emu-lib = { workspace = true }
|
||||
nih_plug = { workspace = true, features = ["standalone"], optional = true }
|
||||
nih_plug = { workspace = true, features = [
|
||||
"standalone",
|
||||
"vst3",
|
||||
], optional = true }
|
||||
baseview = { workspace = true, optional = true }
|
||||
async-ringbuf = { version = "0.1", optional = true }
|
||||
futures = { version = "0.3", optional = true }
|
||||
keyboard-types = { version = "0.6.2", optional = true }
|
||||
raw-window-handle = { version = "0.5" }
|
||||
raw-window-handle = { workspace = true }
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
thiserror = { workspace = true }
|
||||
|
|
|
@ -9,7 +9,7 @@ use gb_emu_lib::{
|
|||
};
|
||||
use keyboard_types::{Code, KeyState};
|
||||
use nih_plug::prelude::*;
|
||||
use raw_window_handle::HasRawDisplayHandle;
|
||||
use raw_window_handle::HasDisplayHandle;
|
||||
|
||||
use super::{access_config, EmuComms};
|
||||
|
||||
|
@ -68,11 +68,12 @@ impl Editor for TwincEditor {
|
|||
title: String::from("gb-emu"),
|
||||
size,
|
||||
scale: baseview::WindowScalePolicy::SystemScaleFactor,
|
||||
gl_config: Default::default(),
|
||||
},
|
||||
move |window| {
|
||||
let manager = Arc::new(
|
||||
<ActiveBackend as RendererBackend>::RendererBackendManager::new(
|
||||
window.raw_display_handle(),
|
||||
window.display_handle().unwrap(),
|
||||
),
|
||||
);
|
||||
TwincEditorWindow::new(window, rr_cloned, manager, size, shader_path)
|
||||
|
|
|
@ -20,6 +20,6 @@ twinc_emu_vst = { path = "../gb-vst", default-features = false }
|
|||
cacao = { git = "https://git.alexjanka.com/alex/cacao" }
|
||||
objc = { version = "=0.3.0-beta.3", package = "objc2" }
|
||||
uuid = { version = "1.6", features = ["v4", "fast-rng"] }
|
||||
raw-window-handle = { version = "0.5" }
|
||||
raw-window-handle = { workspace = true }
|
||||
cpal = "0.15"
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
|
|
|
@ -13,7 +13,6 @@ use cacao::{
|
|||
window::{Window, WindowConfig, WindowDelegate, WindowStyle},
|
||||
Event, EventMask, EventMonitor,
|
||||
},
|
||||
core_foundation::base::TCFTypeRef,
|
||||
filesystem::ModalResponse,
|
||||
foundation::{NSInteger, NSString},
|
||||
};
|
||||
|
@ -32,8 +31,8 @@ use objc::{
|
|||
runtime::Object,
|
||||
};
|
||||
use raw_window_handle::{
|
||||
AppKitDisplayHandle, AppKitWindowHandle, HasRawDisplayHandle, HasRawWindowHandle,
|
||||
RawDisplayHandle, RawWindowHandle,
|
||||
AppKitDisplayHandle, AppKitWindowHandle, DisplayHandle, HasDisplayHandle, HasWindowHandle,
|
||||
RawDisplayHandle, RawWindowHandle, WindowHandle,
|
||||
};
|
||||
|
||||
use super::{dispatch, AppMessage, CoreMessage};
|
||||
|
@ -165,7 +164,7 @@ pub struct CacaoWindowManager {
|
|||
}
|
||||
|
||||
impl CacaoWindowManager {
|
||||
pub fn new(display_handle: RawDisplayHandle) -> Self {
|
||||
pub fn new(display_handle: DisplayHandle) -> Self {
|
||||
let _button_handler = ButtonHandler::new();
|
||||
|
||||
Self {
|
||||
|
@ -506,18 +505,23 @@ impl WindowDelegate for CacaoWindow {
|
|||
|
||||
struct WindowHandleWrapper<'a, T>(&'a Window<T>);
|
||||
|
||||
unsafe impl<'a, T> HasRawDisplayHandle for WindowHandleWrapper<'a, T> {
|
||||
fn raw_display_handle(&self) -> RawDisplayHandle {
|
||||
RawDisplayHandle::AppKit(AppKitDisplayHandle::empty())
|
||||
impl<'a, T> HasDisplayHandle for WindowHandleWrapper<'a, T> {
|
||||
fn display_handle(&self) -> Result<DisplayHandle<'_>, raw_window_handle::HandleError> {
|
||||
Ok(unsafe {
|
||||
DisplayHandle::borrow_raw(RawDisplayHandle::AppKit(AppKitDisplayHandle::new()))
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
unsafe impl<'a, T> HasRawWindowHandle for WindowHandleWrapper<'a, T> {
|
||||
fn raw_window_handle(&self) -> RawWindowHandle {
|
||||
impl<'a, T> HasWindowHandle for WindowHandleWrapper<'a, T> {
|
||||
fn window_handle(&self) -> Result<WindowHandle<'_>, raw_window_handle::HandleError> {
|
||||
let Self(w) = self;
|
||||
let mut handle = AppKitWindowHandle::empty();
|
||||
handle.ns_window = objc::rc::Id::as_ptr(&w.objc).as_void_ptr().cast_mut();
|
||||
|
||||
RawWindowHandle::AppKit(handle)
|
||||
Ok(unsafe {
|
||||
WindowHandle::borrow_raw(RawWindowHandle::AppKit(AppKitWindowHandle::new(
|
||||
w.content_view_ptr()
|
||||
.ok_or(raw_window_handle::HandleError::Unavailable)?,
|
||||
)))
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ use cacao::notification_center::Dispatcher;
|
|||
use frontend_common::audio;
|
||||
use gb_emu_lib::config::{NamedConfig, CONFIG_MANAGER};
|
||||
use gb_emu_lib::connect::{EmulatorCoreTrait, EmulatorMessage};
|
||||
use raw_window_handle::{AppKitDisplayHandle, RawDisplayHandle};
|
||||
use raw_window_handle::{AppKitDisplayHandle, DisplayHandle, RawDisplayHandle};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use self::cacao_window_manager::{CacaoWindowManager, EmuWindowMessage};
|
||||
|
@ -92,9 +92,9 @@ impl Default for TwincUiApp {
|
|||
},
|
||||
PreferencesUi::new(),
|
||||
)),
|
||||
current_game: RwLock::new(CacaoWindowManager::new(RawDisplayHandle::AppKit(
|
||||
AppKitDisplayHandle::empty(),
|
||||
))),
|
||||
current_game: RwLock::new(CacaoWindowManager::new(unsafe {
|
||||
DisplayHandle::borrow_raw(RawDisplayHandle::AppKit(AppKitDisplayHandle::new()))
|
||||
})),
|
||||
gui_config: RwLock::new(CONFIG_MANAGER.load_or_create_config()),
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,7 +19,12 @@ vulkan-renderer = [
|
|||
vulkan-static = ["dep:ash-molten", "vulkan-renderer"]
|
||||
vulkan-debug = []
|
||||
pixels-renderer = ["renderer", "dep:pixels"]
|
||||
wgpu-renderer = ["renderer", "dep:librashader", "librashader/runtime-wgpu"]
|
||||
wgpu-renderer = [
|
||||
"renderer",
|
||||
"dep:librashader",
|
||||
"librashader/runtime-wgpu",
|
||||
"dep:wgpu",
|
||||
]
|
||||
renderer = []
|
||||
config = ["dep:directories", "dep:ron"]
|
||||
error-colour = []
|
||||
|
@ -33,16 +38,18 @@ serde = { version = "1.0", features = ["derive"] }
|
|||
serde_with = "3.0"
|
||||
bytemuck = "1.14"
|
||||
num-traits = "0.2"
|
||||
pixels = { version = "0.13", optional = true }
|
||||
ash = { version = "0.37", features = ["linked"], optional = true }
|
||||
ash-window = { version = "0.12", optional = true }
|
||||
raw-window-handle = { version = "0.5" }
|
||||
pixels = { git = "https://git.alexjanka.com/alex/pixels", optional = true }
|
||||
ash = { workspace = true, features = ["linked"], optional = true }
|
||||
ash-window = { workspace = true, optional = true }
|
||||
|
||||
raw-window-handle = { workspace = true }
|
||||
librashader = { workspace = true, optional = true }
|
||||
librashader-presets = { workspace = true, optional = true }
|
||||
librashader-common = { workspace = true, optional = true }
|
||||
directories = { version = "5.0", optional = true }
|
||||
ron = { version = "0.8", optional = true }
|
||||
lazy_static = "1.4"
|
||||
wgpu = { version = "0.19", optional = true }
|
||||
|
||||
[build-dependencies]
|
||||
naga = { version = "0.19", optional = true, features = ["wgsl-in", "spv-out"] }
|
||||
|
|
|
@ -8,13 +8,6 @@ use processor::{
|
|||
};
|
||||
use std::sync::mpsc::Receiver;
|
||||
|
||||
#[cfg(any(
|
||||
all(feature = "vulkan-renderer", feature = "pixels-renderer"),
|
||||
all(feature = "vulkan-renderer", feature = "wgpu-renderer"),
|
||||
all(feature = "wgpu-renderer", feature = "pixels-renderer")
|
||||
))]
|
||||
compile_error!("select only one rendering backend!");
|
||||
|
||||
pub mod renderer;
|
||||
|
||||
#[cfg(feature = "config")]
|
||||
|
|
35
lib/src/renderer/compat.rs
Normal file
35
lib/src/renderer/compat.rs
Normal file
|
@ -0,0 +1,35 @@
|
|||
use raw_window_handle::{DisplayHandle, HasDisplayHandle, HasWindowHandle};
|
||||
|
||||
pub struct DummyHandle<'a> {
|
||||
pub window: raw_window_handle::WindowHandle<'a>,
|
||||
pub display: raw_window_handle::DisplayHandle<'a>,
|
||||
}
|
||||
|
||||
impl<'a> DummyHandle<'a> {
|
||||
pub fn new<T>(value: &'a T) -> Option<Self>
|
||||
where
|
||||
T: HasWindowHandle + HasDisplayHandle + 'a,
|
||||
{
|
||||
Some(Self {
|
||||
window: value.window_handle().ok()?,
|
||||
display: value.display_handle().ok()?,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
unsafe impl<'a> Sync for DummyHandle<'a> {}
|
||||
unsafe impl<'a> Send for DummyHandle<'a> {}
|
||||
|
||||
impl<'a> HasWindowHandle for DummyHandle<'a> {
|
||||
fn window_handle(
|
||||
&self,
|
||||
) -> Result<raw_window_handle::WindowHandle<'_>, raw_window_handle::HandleError> {
|
||||
Ok(self.window)
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> HasDisplayHandle for DummyHandle<'a> {
|
||||
fn display_handle(&self) -> Result<DisplayHandle<'_>, raw_window_handle::HandleError> {
|
||||
Ok(self.display)
|
||||
}
|
||||
}
|
|
@ -1,14 +1,17 @@
|
|||
use std::{path::PathBuf, sync::Arc};
|
||||
|
||||
use raw_window_handle::{HasRawDisplayHandle, HasRawWindowHandle, RawDisplayHandle};
|
||||
use raw_window_handle::{DisplayHandle, HasDisplayHandle, HasWindowHandle};
|
||||
|
||||
use crate::connect::ResolutionData;
|
||||
|
||||
#[cfg(feature = "vulkan-renderer")]
|
||||
pub type ActiveBackend = vulkan::VulkanBackend;
|
||||
#[cfg(feature = "wgpu-renderer")]
|
||||
pub type ActiveBackend = wgpu::WgpuBackend;
|
||||
#[cfg(feature = "pixels-renderer")]
|
||||
#[cfg(all(feature = "vulkan-renderer", not(feature = "wgpu-renderer")))]
|
||||
pub type ActiveBackend = vulkan::VulkanBackend;
|
||||
#[cfg(all(
|
||||
feature = "pixels-renderer",
|
||||
not(any(feature = "wgpu-renderer", feature = "vulkan-renderer"))
|
||||
))]
|
||||
pub type ActiveBackend = pixels::PixelsBackend;
|
||||
|
||||
#[cfg(feature = "pixels-renderer")]
|
||||
|
@ -18,16 +21,18 @@ pub mod vulkan;
|
|||
#[cfg(feature = "wgpu-renderer")]
|
||||
pub mod wgpu;
|
||||
|
||||
mod compat;
|
||||
|
||||
pub trait RendererBackend {
|
||||
type RendererBackendManager: RendererBackendManager;
|
||||
|
||||
fn new<W: HasRawDisplayHandle + HasRawWindowHandle>(
|
||||
fn new<W: HasDisplayHandle + HasWindowHandle>(
|
||||
resolutions: ResolutionData,
|
||||
window: &W,
|
||||
shader_path: Option<PathBuf>,
|
||||
manager: Arc<Self::RendererBackendManager>,
|
||||
) -> Self;
|
||||
fn resize<W: HasRawDisplayHandle + HasRawWindowHandle>(
|
||||
fn resize<W: HasDisplayHandle + HasWindowHandle>(
|
||||
&mut self,
|
||||
resolutions: ResolutionData,
|
||||
window: &W,
|
||||
|
@ -37,5 +42,5 @@ pub trait RendererBackend {
|
|||
}
|
||||
|
||||
pub trait RendererBackendManager {
|
||||
fn new(display_handle: RawDisplayHandle) -> Self;
|
||||
fn new(display_handle: DisplayHandle) -> Self;
|
||||
}
|
||||
|
|
|
@ -1,19 +1,16 @@
|
|||
use std::{path::PathBuf, sync::Arc};
|
||||
|
||||
use pixels::{
|
||||
raw_window_handle::{HasRawDisplayHandle, HasRawWindowHandle},
|
||||
Pixels, SurfaceTexture,
|
||||
};
|
||||
use raw_window_handle::RawDisplayHandle;
|
||||
use pixels::{Pixels, SurfaceTexture};
|
||||
use raw_window_handle::{DisplayHandle, HasDisplayHandle, HasWindowHandle};
|
||||
|
||||
use crate::connect::ResolutionData;
|
||||
|
||||
use super::{RendererBackend, RendererBackendManager};
|
||||
use super::{compat::DummyHandle, RendererBackend, RendererBackendManager};
|
||||
|
||||
pub struct PixelsBackendManager {}
|
||||
|
||||
impl RendererBackendManager for PixelsBackendManager {
|
||||
fn new(_: RawDisplayHandle) -> Self {
|
||||
fn new(_: DisplayHandle) -> Self {
|
||||
Self {}
|
||||
}
|
||||
}
|
||||
|
@ -25,7 +22,7 @@ pub struct PixelsBackend {
|
|||
impl RendererBackend for PixelsBackend {
|
||||
type RendererBackendManager = PixelsBackendManager;
|
||||
|
||||
fn new<W: HasRawDisplayHandle + HasRawWindowHandle>(
|
||||
fn new<W: HasDisplayHandle + HasWindowHandle>(
|
||||
resolutions: ResolutionData,
|
||||
window: &W,
|
||||
_: Option<PathBuf>,
|
||||
|
@ -36,7 +33,7 @@ impl RendererBackend for PixelsBackend {
|
|||
}
|
||||
}
|
||||
|
||||
fn resize<W: HasRawDisplayHandle + HasRawWindowHandle>(
|
||||
fn resize<W: HasDisplayHandle + HasWindowHandle>(
|
||||
&mut self,
|
||||
resolutions: ResolutionData,
|
||||
window: &W,
|
||||
|
@ -57,12 +54,13 @@ impl RendererBackend for PixelsBackend {
|
|||
}
|
||||
}
|
||||
|
||||
fn new_pixels<W: HasRawDisplayHandle + HasRawWindowHandle>(
|
||||
fn new_pixels<W: HasDisplayHandle + HasWindowHandle>(
|
||||
resolutions: ResolutionData,
|
||||
window: &W,
|
||||
) -> Pixels {
|
||||
let surface_texture: SurfaceTexture<'_, W> =
|
||||
SurfaceTexture::new(resolutions.real_width, resolutions.real_height, window);
|
||||
let dummy = DummyHandle::new(window).unwrap();
|
||||
let surface_texture: SurfaceTexture<'_, DummyHandle> =
|
||||
SurfaceTexture::new(resolutions.real_width, resolutions.real_height, &dummy);
|
||||
pixels::PixelsBuilder::new(
|
||||
resolutions.scaled_width,
|
||||
resolutions.scaled_height,
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
use ash::{util::Align, vk, Entry, Instance};
|
||||
use ash_window::enumerate_required_extensions;
|
||||
use librashader::runtime::vk::{FilterChain, FilterChainOptions, FrameOptions, VulkanObjects};
|
||||
use raw_window_handle::{HasRawDisplayHandle, HasRawWindowHandle, RawDisplayHandle};
|
||||
use raw_window_handle::{DisplayHandle, HasDisplayHandle, HasWindowHandle};
|
||||
use std::{mem::ManuallyDrop, path::PathBuf, sync::Arc};
|
||||
|
||||
use crate::connect::ResolutionData;
|
||||
|
@ -36,7 +36,7 @@ pub struct VulkanBackendManager {
|
|||
}
|
||||
|
||||
impl RendererBackendManager for VulkanBackendManager {
|
||||
fn new(display_handle: RawDisplayHandle) -> Self {
|
||||
fn new(display_handle: DisplayHandle) -> Self {
|
||||
#[cfg(all(any(target_os = "macos", target_os = "ios"), feature = "vulkan-static"))]
|
||||
let entry = ash_molten::load();
|
||||
#[cfg(not(all(any(target_os = "macos", target_os = "ios"), feature = "vulkan-static")))]
|
||||
|
@ -45,7 +45,7 @@ impl RendererBackendManager for VulkanBackendManager {
|
|||
let name = std::ffi::CString::new("gameboy").unwrap();
|
||||
|
||||
#[allow(unused_mut)]
|
||||
let mut extension_names = enumerate_required_extensions(display_handle)
|
||||
let mut extension_names = enumerate_required_extensions(display_handle.as_raw())
|
||||
.unwrap()
|
||||
.to_vec();
|
||||
|
||||
|
@ -120,7 +120,7 @@ pub struct VulkanWindowOptions {
|
|||
impl RendererBackend for VulkanBackend {
|
||||
type RendererBackendManager = VulkanBackendManager;
|
||||
|
||||
fn new<W: HasRawDisplayHandle + HasRawWindowHandle>(
|
||||
fn new<W: HasDisplayHandle + HasWindowHandle>(
|
||||
resolutions: ResolutionData,
|
||||
window: &W,
|
||||
shader_path: Option<PathBuf>,
|
||||
|
@ -189,7 +189,7 @@ impl RendererBackend for VulkanBackend {
|
|||
}
|
||||
}
|
||||
|
||||
fn resize<W: HasRawDisplayHandle + HasRawWindowHandle>(
|
||||
fn resize<W: HasDisplayHandle + HasWindowHandle>(
|
||||
&mut self,
|
||||
resolutions: ResolutionData,
|
||||
_window: &W,
|
||||
|
@ -220,7 +220,7 @@ struct VulkanWindowInner {
|
|||
}
|
||||
|
||||
impl VulkanWindowInner {
|
||||
unsafe fn new<W: HasRawDisplayHandle + HasRawWindowHandle>(
|
||||
unsafe fn new<W: HasDisplayHandle + HasWindowHandle>(
|
||||
resolutions: ResolutionData,
|
||||
window: &W,
|
||||
manager: &VulkanBackendManager,
|
||||
|
|
|
@ -2,6 +2,7 @@ use ash::{
|
|||
extensions::khr::{Surface, Swapchain},
|
||||
vk, Device,
|
||||
};
|
||||
#[allow(deprecated)]
|
||||
use raw_window_handle::{HasRawDisplayHandle, HasRawWindowHandle};
|
||||
|
||||
use crate::connect::ResolutionData;
|
||||
|
@ -207,6 +208,7 @@ pub(super) struct SurfaceData {
|
|||
}
|
||||
|
||||
impl SurfaceData {
|
||||
#[allow(deprecated)]
|
||||
pub(super) unsafe fn new<W: HasRawDisplayHandle + HasRawWindowHandle>(
|
||||
window: &W,
|
||||
manager: &VulkanBackendManager,
|
||||
|
@ -214,8 +216,8 @@ impl SurfaceData {
|
|||
let surface = ash_window::create_surface(
|
||||
&manager.entry,
|
||||
&manager.instance,
|
||||
window.raw_display_handle(),
|
||||
window.raw_window_handle(),
|
||||
window.raw_display_handle().unwrap(),
|
||||
window.raw_window_handle().unwrap(),
|
||||
None,
|
||||
)
|
||||
.unwrap();
|
||||
|
|
|
@ -1,3 +1,45 @@
|
|||
use raw_window_handle::{DisplayHandle, HasDisplayHandle, HasWindowHandle};
|
||||
|
||||
use crate::{
|
||||
connect::ResolutionData,
|
||||
renderer::{RendererBackend, RendererBackendManager},
|
||||
};
|
||||
|
||||
pub struct WgpuBackend {}
|
||||
|
||||
impl RendererBackend for WgpuBackend {
|
||||
type RendererBackendManager = WgpuBackendManager;
|
||||
|
||||
fn new<W: HasDisplayHandle + HasWindowHandle>(
|
||||
resolutions: ResolutionData,
|
||||
window: &W,
|
||||
shader_path: Option<std::path::PathBuf>,
|
||||
manager: std::sync::Arc<Self::RendererBackendManager>,
|
||||
) -> Self {
|
||||
todo!()
|
||||
}
|
||||
|
||||
fn resize<W: HasDisplayHandle + HasWindowHandle>(
|
||||
&mut self,
|
||||
resolutions: ResolutionData,
|
||||
window: &W,
|
||||
) {
|
||||
todo!()
|
||||
}
|
||||
|
||||
fn new_frame(&mut self, buffer: &[[u8; 4]]) {
|
||||
todo!()
|
||||
}
|
||||
|
||||
fn render(&mut self, resolutions: ResolutionData, manager: &Self::RendererBackendManager) {
|
||||
todo!()
|
||||
}
|
||||
}
|
||||
|
||||
pub struct WgpuBackendManager {}
|
||||
|
||||
impl RendererBackendManager for WgpuBackendManager {
|
||||
fn new(display_handle: DisplayHandle) -> Self {
|
||||
todo!()
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue