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