зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1654699. Update core-foundation/core-graphics. r=kvark,keeler,jcj,chunmin
This includes updates to authenticator, cubeb-coreaudio, metal, gfx-backend-vulkan, gfx-backend-metal, freetype libloading is duplicated because of ash Differential Revision: https://phabricator.services.mozilla.com/D84688
This commit is contained in:
Родитель
8951306649
Коммит
b083673982
|
@ -85,7 +85,7 @@ rev = "5e870faf6f95d79d11efc813e56370ad124bbed5"
|
|||
[source."https://github.com/ChunMinChang/cubeb-coreaudio-rs"]
|
||||
git = "https://github.com/ChunMinChang/cubeb-coreaudio-rs"
|
||||
replace-with = "vendored-sources"
|
||||
rev = "4cdbceadae88c77dfc77183b7edda183f32cd28c"
|
||||
rev = "260be23d1166a22e2ff6a89844efaca8bb4b61e2"
|
||||
|
||||
[source.crates-io]
|
||||
replace-with = "vendored-sources"
|
||||
|
|
|
@ -64,11 +64,11 @@ checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
|
|||
|
||||
[[package]]
|
||||
name = "ash"
|
||||
version = "0.30.0"
|
||||
version = "0.31.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "69daec0742947f33a85931fa3cb0ce5f07929159dcbd1f0cbb5b2912e2978509"
|
||||
checksum = "c69a8137596e84c22d57f3da1b5de1d4230b1742a710091c85f4d7ce50f00f38"
|
||||
dependencies = [
|
||||
"libloading",
|
||||
"libloading 0.6.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -180,9 +180,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "authenticator"
|
||||
version = "0.2.13"
|
||||
version = "0.2.15"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6cc4e983ae4499095b965b8c0c57596ae718fe551d2b04aa2c19c777a02e05a4"
|
||||
checksum = "27f4b43192679f52f6cfe741f982190e3f677f2176fd444d5af8d48d84390433"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"boxfnonce",
|
||||
|
@ -574,7 +574,7 @@ checksum = "f92986241798376849e1a007827041fed9bb36195822c2049d18e174420e0534"
|
|||
dependencies = [
|
||||
"glob",
|
||||
"libc",
|
||||
"libloading",
|
||||
"libloading 0.5.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -609,15 +609,15 @@ dependencies = [
|
|||
]
|
||||
|
||||
[[package]]
|
||||
name = "cocoa"
|
||||
version = "0.20.0"
|
||||
name = "cocoa-foundation"
|
||||
version = "0.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0a4736c86d51bd878b474400d9ec888156f4037015f5d09794fab9f26eab1ad4"
|
||||
checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"block",
|
||||
"core-foundation",
|
||||
"core-graphics",
|
||||
"core-graphics-types",
|
||||
"foreign-types",
|
||||
"libc",
|
||||
"objc",
|
||||
|
@ -657,9 +657,9 @@ checksum = "6ff9c56c9fb2a49c05ef0e431485a22400af20d33226dc0764d891d09e724127"
|
|||
|
||||
[[package]]
|
||||
name = "core-foundation"
|
||||
version = "0.7.0"
|
||||
version = "0.9.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171"
|
||||
checksum = "3b5ed8e7e76c45974e15e41bfa8d5b0483cd90191639e01d8f5f1e606299d3fb"
|
||||
dependencies = [
|
||||
"core-foundation-sys",
|
||||
"libc",
|
||||
|
@ -667,15 +667,28 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "core-foundation-sys"
|
||||
version = "0.7.0"
|
||||
version = "0.8.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac"
|
||||
checksum = "9a21fa21941700a3cd8fcb4091f361a6a712fac632f85d9f487cc892045d55c6"
|
||||
|
||||
[[package]]
|
||||
name = "core-graphics"
|
||||
version = "0.19.0"
|
||||
version = "0.22.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "59e78b2e0aaf43f08e7ae0d6bc96895ef72ff0921c7d4ff4762201b2dba376dd"
|
||||
checksum = "f6082396a349fa49674ba1bda4077332a18bf150e8fa75745ece07085e29a113"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"core-foundation",
|
||||
"core-graphics-types",
|
||||
"foreign-types",
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "core-graphics-types"
|
||||
version = "0.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e92f5d519093a4178296707dbaa3880eae85a5ef5386675f361a1cf25376e93c"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"core-foundation",
|
||||
|
@ -685,9 +698,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "core-text"
|
||||
version = "15.0.0"
|
||||
version = "19.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "131b3fd1f8bd5db9f2b398fa4fdb6008c64afc04d447c306ac2c7e98fba2a61d"
|
||||
checksum = "04dfae50af11e72657fe7174cddb1ecddc5398037f7f6f39533ad69207c9a4e2"
|
||||
dependencies = [
|
||||
"core-foundation",
|
||||
"core-graphics",
|
||||
|
@ -707,7 +720,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "coreaudio-sys-utils"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/ChunMinChang/cubeb-coreaudio-rs?rev=4cdbceadae88c77dfc77183b7edda183f32cd28c#4cdbceadae88c77dfc77183b7edda183f32cd28c"
|
||||
source = "git+https://github.com/ChunMinChang/cubeb-coreaudio-rs?rev=260be23d1166a22e2ff6a89844efaca8bb4b61e2#260be23d1166a22e2ff6a89844efaca8bb4b61e2"
|
||||
dependencies = [
|
||||
"core-foundation-sys",
|
||||
"coreaudio-sys",
|
||||
|
@ -945,7 +958,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "cubeb-coreaudio"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/ChunMinChang/cubeb-coreaudio-rs?rev=4cdbceadae88c77dfc77183b7edda183f32cd28c#4cdbceadae88c77dfc77183b7edda183f32cd28c"
|
||||
source = "git+https://github.com/ChunMinChang/cubeb-coreaudio-rs?rev=260be23d1166a22e2ff6a89844efaca8bb4b61e2#260be23d1166a22e2ff6a89844efaca8bb4b61e2"
|
||||
dependencies = [
|
||||
"atomic",
|
||||
"audio-mixer",
|
||||
|
@ -988,7 +1001,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
checksum = "bc7ed48e89905e5e146bcc1951cc3facb9e44aea9adf5dc01078cda1bd24b662"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"libloading",
|
||||
"libloading 0.5.2",
|
||||
"winapi 0.3.7",
|
||||
]
|
||||
|
||||
|
@ -1487,9 +1500,9 @@ checksum = "5ebc04f19019fff1f2d627b5581574ead502f80c48c88900575a46e0840fe5d0"
|
|||
|
||||
[[package]]
|
||||
name = "freetype"
|
||||
version = "0.4.0"
|
||||
version = "0.7.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b659e75b7a7338fe75afd7f909fc2b71937845cffb6ebe54ba2e50f13d8e903d"
|
||||
checksum = "bee38378a9e3db1cc693b4f88d166ae375338a0ff75cb8263e1c601d51f35dc6"
|
||||
dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
@ -1734,7 +1747,7 @@ dependencies = [
|
|||
"bitflags",
|
||||
"gfx-auxil",
|
||||
"gfx-hal",
|
||||
"libloading",
|
||||
"libloading 0.5.2",
|
||||
"log",
|
||||
"parking_lot",
|
||||
"range-alloc",
|
||||
|
@ -1775,16 +1788,15 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "gfx-backend-metal"
|
||||
version = "0.5.2"
|
||||
version = "0.5.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "205f3ca8e74ed814ea2c0206d47d8925077673cab2e21f9b12d48ff781cf87ee"
|
||||
checksum = "92804d20b194de6c84cb4bec14ec6a6dcae9c51f0a9186817fb412a590131ae6"
|
||||
dependencies = [
|
||||
"arrayvec",
|
||||
"bitflags",
|
||||
"block",
|
||||
"cocoa",
|
||||
"cocoa-foundation",
|
||||
"copyless",
|
||||
"core-graphics",
|
||||
"foreign-types",
|
||||
"gfx-auxil",
|
||||
"gfx-hal",
|
||||
|
@ -1802,14 +1814,14 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "gfx-backend-vulkan"
|
||||
version = "0.5.6"
|
||||
version = "0.5.11"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "45ff36feae801fa23d29acd74082603a0145a697a23595757dd4e78828ab33da"
|
||||
checksum = "aec9c919cfc236d2c36aaa38609c1906a92f2df99a3c7f53022b01936f98275a"
|
||||
dependencies = [
|
||||
"arrayvec",
|
||||
"ash",
|
||||
"byteorder",
|
||||
"core-graphics",
|
||||
"core-graphics-types",
|
||||
"gfx-hal",
|
||||
"lazy_static",
|
||||
"log",
|
||||
|
@ -1833,9 +1845,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "gfx-hal"
|
||||
version = "0.5.0"
|
||||
version = "0.5.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bc96180204064c9493e0fe4a9efeb721e0ac59fe8e1906d0c659142a93114fb1"
|
||||
checksum = "a18534b23d4c262916231511309bc1f307c74cda8dcb68b93a10ca213a22814b"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"raw-window-handle",
|
||||
|
@ -2552,6 +2564,15 @@ dependencies = [
|
|||
"winapi 0.3.7",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "libloading"
|
||||
version = "0.6.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2cadb8e769f070c45df05c78c7520eb4cd17061d4ab262e43cfc68b4d00ac71c"
|
||||
dependencies = [
|
||||
"winapi 0.3.7",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "libsqlite3-sys"
|
||||
version = "0.18.0"
|
||||
|
@ -2700,7 +2721,7 @@ dependencies = [
|
|||
"getrandom",
|
||||
"lazy_static",
|
||||
"libc",
|
||||
"libloading",
|
||||
"libloading 0.5.2",
|
||||
"lucet-module",
|
||||
"memoffset",
|
||||
"nix",
|
||||
|
@ -2833,14 +2854,13 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "metal"
|
||||
version = "0.18.0"
|
||||
version = "0.20.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e198a0ee42bdbe9ef2c09d0b9426f3b2b47d90d93a4a9b0395c4cea605e92dc0"
|
||||
checksum = "5c4e8a431536529327e28c9ba6992f2cb0c15d4222f0602a16e6d7695ff3bccf"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"block",
|
||||
"cocoa",
|
||||
"core-graphics",
|
||||
"cocoa-foundation",
|
||||
"foreign-types",
|
||||
"log",
|
||||
"objc",
|
||||
|
@ -3419,7 +3439,7 @@ dependencies = [
|
|||
"core-foundation",
|
||||
"env_logger",
|
||||
"lazy_static",
|
||||
"libloading",
|
||||
"libloading 0.5.2",
|
||||
"log",
|
||||
"pkcs11",
|
||||
"rental",
|
||||
|
@ -3641,7 +3661,7 @@ version = "0.4.1"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c20593a99fe08068cbe2b59001527f36021d6ad53ac5f2d8793fcf2fe94015a0"
|
||||
dependencies = [
|
||||
"libloading",
|
||||
"libloading 0.5.2",
|
||||
"num-bigint",
|
||||
]
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ dwrote = "0.11"
|
|||
winapi = "0.3"
|
||||
|
||||
[target.'cfg(target_os = "macos")'.dependencies]
|
||||
core-foundation = "0.7"
|
||||
core-graphics = "0.19"
|
||||
core-foundation = "0.9"
|
||||
core-graphics = "0.22"
|
||||
foreign-types = "0.3.0"
|
||||
|
||||
|
|
|
@ -46,11 +46,11 @@ checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
|
|||
|
||||
[[package]]
|
||||
name = "ash"
|
||||
version = "0.30.0"
|
||||
version = "0.31.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "69daec0742947f33a85931fa3cb0ce5f07929159dcbd1f0cbb5b2912e2978509"
|
||||
checksum = "c69a8137596e84c22d57f3da1b5de1d4230b1742a710091c85f4d7ce50f00f38"
|
||||
dependencies = [
|
||||
"libloading 0.5.2",
|
||||
"libloading 0.6.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -167,22 +167,22 @@ dependencies = [
|
|||
"bitflags",
|
||||
"block",
|
||||
"core-foundation 0.6.4",
|
||||
"core-graphics 0.17.3",
|
||||
"core-graphics",
|
||||
"foreign-types",
|
||||
"libc",
|
||||
"objc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cocoa"
|
||||
version = "0.20.0"
|
||||
name = "cocoa-foundation"
|
||||
version = "0.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0a4736c86d51bd878b474400d9ec888156f4037015f5d09794fab9f26eab1ad4"
|
||||
checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"block",
|
||||
"core-foundation 0.7.0",
|
||||
"core-graphics 0.19.0",
|
||||
"core-foundation 0.9.0",
|
||||
"core-graphics-types",
|
||||
"foreign-types",
|
||||
"libc",
|
||||
"objc",
|
||||
|
@ -206,11 +206,11 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "core-foundation"
|
||||
version = "0.7.0"
|
||||
version = "0.9.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171"
|
||||
checksum = "3b5ed8e7e76c45974e15e41bfa8d5b0483cd90191639e01d8f5f1e606299d3fb"
|
||||
dependencies = [
|
||||
"core-foundation-sys 0.7.0",
|
||||
"core-foundation-sys 0.8.0",
|
||||
"libc",
|
||||
]
|
||||
|
||||
|
@ -222,9 +222,9 @@ checksum = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b"
|
|||
|
||||
[[package]]
|
||||
name = "core-foundation-sys"
|
||||
version = "0.7.0"
|
||||
version = "0.8.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac"
|
||||
checksum = "9a21fa21941700a3cd8fcb4091f361a6a712fac632f85d9f487cc892045d55c6"
|
||||
|
||||
[[package]]
|
||||
name = "core-graphics"
|
||||
|
@ -239,13 +239,13 @@ dependencies = [
|
|||
]
|
||||
|
||||
[[package]]
|
||||
name = "core-graphics"
|
||||
version = "0.19.0"
|
||||
name = "core-graphics-types"
|
||||
version = "0.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "59e78b2e0aaf43f08e7ae0d6bc96895ef72ff0921c7d4ff4762201b2dba376dd"
|
||||
checksum = "e92f5d519093a4178296707dbaa3880eae85a5ef5386675f361a1cf25376e93c"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"core-foundation 0.7.0",
|
||||
"core-foundation 0.9.0",
|
||||
"foreign-types",
|
||||
"libc",
|
||||
]
|
||||
|
@ -258,7 +258,7 @@ checksum = "8dc065219542086f72d1e9f7aadbbab0989e980263695d129d502082d063a9d0"
|
|||
dependencies = [
|
||||
"cfg-if",
|
||||
"core-foundation-sys 0.6.2",
|
||||
"core-graphics 0.17.3",
|
||||
"core-graphics",
|
||||
"libc",
|
||||
"objc",
|
||||
]
|
||||
|
@ -378,7 +378,18 @@ checksum = "3b46e6f0031330a0be08d17820f2dcaaa91cb36710a97a9500cb4f1c36e785c8"
|
|||
dependencies = [
|
||||
"fxhash",
|
||||
"gfx-hal",
|
||||
"spirv_cross",
|
||||
"spirv_cross 0.18.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gfx-auxil"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "67bdbf8e8d6883c70e5a0d7379ad8ab3ac95127a3761306b36122d8f1c177a8e"
|
||||
dependencies = [
|
||||
"fxhash",
|
||||
"gfx-hal",
|
||||
"spirv_cross 0.20.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -388,7 +399,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
checksum = "b148219292624126f78245e50a9720d95ea149a415ce8ce73ab7014205301b88"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"gfx-auxil",
|
||||
"gfx-auxil 0.3.0",
|
||||
"gfx-hal",
|
||||
"libloading 0.5.2",
|
||||
"log",
|
||||
|
@ -396,7 +407,7 @@ dependencies = [
|
|||
"range-alloc",
|
||||
"raw-window-handle",
|
||||
"smallvec",
|
||||
"spirv_cross",
|
||||
"spirv_cross 0.18.0",
|
||||
"winapi 0.3.8",
|
||||
"wio",
|
||||
]
|
||||
|
@ -409,13 +420,13 @@ checksum = "a0e526746379e974501551b08958947e67a81b5ea8cdc717a000cdd72577da05"
|
|||
dependencies = [
|
||||
"bitflags",
|
||||
"d3d12",
|
||||
"gfx-auxil",
|
||||
"gfx-auxil 0.3.0",
|
||||
"gfx-hal",
|
||||
"log",
|
||||
"range-alloc",
|
||||
"raw-window-handle",
|
||||
"smallvec",
|
||||
"spirv_cross",
|
||||
"spirv_cross 0.18.0",
|
||||
"winapi 0.3.8",
|
||||
]
|
||||
|
||||
|
@ -431,18 +442,17 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "gfx-backend-metal"
|
||||
version = "0.5.1"
|
||||
version = "0.5.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cfe128c29675b5afc8acdda1dfe096d6abd5e3528059ab0b98bda8215d8beed9"
|
||||
checksum = "92804d20b194de6c84cb4bec14ec6a6dcae9c51f0a9186817fb412a590131ae6"
|
||||
dependencies = [
|
||||
"arrayvec",
|
||||
"bitflags",
|
||||
"block",
|
||||
"cocoa 0.20.0",
|
||||
"cocoa-foundation",
|
||||
"copyless",
|
||||
"core-graphics 0.19.0",
|
||||
"foreign-types",
|
||||
"gfx-auxil",
|
||||
"gfx-auxil 0.4.0",
|
||||
"gfx-hal",
|
||||
"lazy_static",
|
||||
"log",
|
||||
|
@ -452,20 +462,20 @@ dependencies = [
|
|||
"range-alloc",
|
||||
"raw-window-handle",
|
||||
"smallvec",
|
||||
"spirv_cross",
|
||||
"spirv_cross 0.20.0",
|
||||
"storage-map",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gfx-backend-vulkan"
|
||||
version = "0.5.6"
|
||||
version = "0.5.11"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "45ff36feae801fa23d29acd74082603a0145a697a23595757dd4e78828ab33da"
|
||||
checksum = "aec9c919cfc236d2c36aaa38609c1906a92f2df99a3c7f53022b01936f98275a"
|
||||
dependencies = [
|
||||
"arrayvec",
|
||||
"ash",
|
||||
"byteorder",
|
||||
"core-graphics 0.19.0",
|
||||
"core-graphics-types",
|
||||
"gfx-hal",
|
||||
"lazy_static",
|
||||
"log",
|
||||
|
@ -489,9 +499,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "gfx-hal"
|
||||
version = "0.5.0"
|
||||
version = "0.5.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bc96180204064c9493e0fe4a9efeb721e0ac59fe8e1906d0c659142a93114fb1"
|
||||
checksum = "a18534b23d4c262916231511309bc1f307c74cda8dcb68b93a10ca213a22814b"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"raw-window-handle",
|
||||
|
@ -688,14 +698,13 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "metal"
|
||||
version = "0.18.0"
|
||||
version = "0.20.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e198a0ee42bdbe9ef2c09d0b9426f3b2b47d90d93a4a9b0395c4cea605e92dc0"
|
||||
checksum = "5c4e8a431536529327e28c9ba6992f2cb0c15d4222f0602a16e6d7695ff3bccf"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"block",
|
||||
"cocoa 0.20.0",
|
||||
"core-graphics 0.19.0",
|
||||
"cocoa-foundation",
|
||||
"foreign-types",
|
||||
"log",
|
||||
"objc",
|
||||
|
@ -1145,6 +1154,17 @@ dependencies = [
|
|||
"wasm-bindgen",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "spirv_cross"
|
||||
version = "0.20.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a33a9478e9c78782dd694d05dee074703a9c4c74b511de742b88a7e8149f1b37"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"js-sys",
|
||||
"wasm-bindgen",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "spirv_headers"
|
||||
version = "1.4.2"
|
||||
|
@ -1470,9 +1490,9 @@ checksum = "fc53342d3d1a3d57f3949e0692d93d5a8adb7814d8683cef4a09c2b550e94246"
|
|||
dependencies = [
|
||||
"android_glue",
|
||||
"bitflags",
|
||||
"cocoa 0.19.1",
|
||||
"cocoa",
|
||||
"core-foundation 0.6.4",
|
||||
"core-graphics 0.17.3",
|
||||
"core-graphics",
|
||||
"core-video-sys",
|
||||
"dispatch",
|
||||
"instant",
|
||||
|
|
|
@ -52,16 +52,16 @@ version = "0.5"
|
|||
features = ["peek-poke"]
|
||||
|
||||
[target.'cfg(any(target_os = "ios", target_os = "macos"))'.dependencies]
|
||||
gfx-backend-metal = { version = "0.5" }
|
||||
gfx-backend-vulkan = { version = "0.5", optional = true }
|
||||
gfx-backend-metal = { version = "0.5.6" }
|
||||
gfx-backend-vulkan = { version = "0.5.11", optional = true }
|
||||
|
||||
[target.'cfg(all(unix, not(target_os = "ios"), not(target_os = "macos")))'.dependencies]
|
||||
gfx-backend-vulkan = { version = "0.5", features = ["x11"] }
|
||||
gfx-backend-vulkan = { version = "0.5.11", features = ["x11"] }
|
||||
|
||||
[target.'cfg(windows)'.dependencies]
|
||||
gfx-backend-dx12 = { version = "0.5" }
|
||||
gfx-backend-dx11 = { version = "0.5" }
|
||||
gfx-backend-vulkan = { version = "0.5" }
|
||||
gfx-backend-vulkan = { version = "0.5.11" }
|
||||
|
||||
[target.'cfg(any(target_os = "linux", target_os = "macos", target_os = "windows", target_os = "dragonfly", target_os = "freebsd"))'.dependencies]
|
||||
battery = { version = "0.7", optional = true }
|
||||
|
|
|
@ -286,6 +286,15 @@ dependencies = [
|
|||
"libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "core-foundation"
|
||||
version = "0.9.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"core-foundation-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "core-foundation-sys"
|
||||
version = "0.6.2"
|
||||
|
@ -296,6 +305,11 @@ name = "core-foundation-sys"
|
|||
version = "0.7.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "core-foundation-sys"
|
||||
version = "0.8.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "core-graphics"
|
||||
version = "0.17.3"
|
||||
|
@ -309,22 +323,34 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "core-graphics"
|
||||
version = "0.19.0"
|
||||
version = "0.22.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-foundation 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-foundation 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-graphics-types 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "core-graphics-types"
|
||||
version = "0.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-foundation 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "core-text"
|
||||
version = "15.0.0"
|
||||
version = "19.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"core-foundation 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-graphics 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-foundation 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-graphics 0.22.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
@ -510,13 +536,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
|
||||
[[package]]
|
||||
name = "font-loader"
|
||||
version = "0.9.0"
|
||||
version = "0.11.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"core-foundation 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-text 15.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-foundation 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-text 19.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"servo-fontconfig 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"servo-fontconfig 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
|
@ -535,11 +561,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
|
||||
[[package]]
|
||||
name = "freetype"
|
||||
version = "0.4.1"
|
||||
version = "0.7.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"freetype-sys 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"servo-freetype-sys 4.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "freetype-sys"
|
||||
version = "0.13.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"cmake 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1431,29 +1467,20 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "servo-fontconfig"
|
||||
version = "0.4.0"
|
||||
version = "0.5.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"servo-fontconfig-sys 4.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"servo-fontconfig-sys 5.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "servo-fontconfig-sys"
|
||||
version = "4.0.9"
|
||||
version = "5.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"expat-sys 2.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"servo-freetype-sys 4.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "servo-freetype-sys"
|
||||
version = "4.0.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"cmake 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"freetype-sys 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
|
@ -1764,13 +1791,13 @@ dependencies = [
|
|||
"build-parallel 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-foundation 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-graphics 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-text 15.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-foundation 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-graphics 0.22.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-text 19.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cstr 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"dwrote 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"euclid 0.20.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"freetype 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"freetype 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"gleam 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"glslopt 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -1821,8 +1848,8 @@ dependencies = [
|
|||
"app_units 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-foundation 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-graphics 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-foundation 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-graphics 0.22.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"derive_more 0.99.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"euclid 0.20.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"malloc_size_of_derive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -1930,13 +1957,13 @@ dependencies = [
|
|||
"byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"chrono 0.2.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-foundation 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-graphics 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-foundation 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-graphics 0.22.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"crossbeam 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"dwrote 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"euclid 0.20.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"font-loader 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"font-loader 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"gleam 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"glutin 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"image 0.23.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -2050,11 +2077,14 @@ dependencies = [
|
|||
"checksum cocoa 0.18.5 (registry+https://github.com/rust-lang/crates.io-index)" = "1706996401131526e36b3b49f0c4d912639ce110996f3ca144d78946727bce54"
|
||||
"checksum core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d"
|
||||
"checksum core-foundation 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171"
|
||||
"checksum core-foundation 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3b5ed8e7e76c45974e15e41bfa8d5b0483cd90191639e01d8f5f1e606299d3fb"
|
||||
"checksum core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b"
|
||||
"checksum core-foundation-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac"
|
||||
"checksum core-foundation-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9a21fa21941700a3cd8fcb4091f361a6a712fac632f85d9f487cc892045d55c6"
|
||||
"checksum core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)" = "56790968ab1c8a1202a102e6de05fc6e1ec87da99e4e93e9a7d13efbfc1e95a9"
|
||||
"checksum core-graphics 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)" = "59e78b2e0aaf43f08e7ae0d6bc96895ef72ff0921c7d4ff4762201b2dba376dd"
|
||||
"checksum core-text 15.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "131b3fd1f8bd5db9f2b398fa4fdb6008c64afc04d447c306ac2c7e98fba2a61d"
|
||||
"checksum core-graphics 0.22.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f6082396a349fa49674ba1bda4077332a18bf150e8fa75745ece07085e29a113"
|
||||
"checksum core-graphics-types 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e92f5d519093a4178296707dbaa3880eae85a5ef5386675f361a1cf25376e93c"
|
||||
"checksum core-text 19.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "04dfae50af11e72657fe7174cddb1ecddc5398037f7f6f39533ad69207c9a4e2"
|
||||
"checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1"
|
||||
"checksum crossbeam 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "bd66663db5a988098a89599d4857919b3acf7f61402e61365acfd3919857b9be"
|
||||
"checksum crossbeam-deque 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
|
||||
|
@ -2074,10 +2104,11 @@ dependencies = [
|
|||
"checksum euclid 0.20.10 (registry+https://github.com/rust-lang/crates.io-index)" = "0c6a5b0c779cd0b744c73a1d2083faf181080d696903cdad99a3b03d015d7030"
|
||||
"checksum expat-sys 2.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "658f19728920138342f68408b7cf7644d90d4784353d8ebc32e7e8663dbe45fa"
|
||||
"checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
|
||||
"checksum font-loader 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "933a61458662fbc8e3cd22cdb8331edbd78545fc044e1e2cd3d742f6ce06aa41"
|
||||
"checksum font-loader 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c49d6b4c11dca1a1dd931a34a9f397e2da91abe3de4110505f3530a80e560b52"
|
||||
"checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
|
||||
"checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
|
||||
"checksum freetype 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "11926b2b410b469d0e9399eca4cbbe237a9ef02176c485803b29216307e8e028"
|
||||
"checksum freetype 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bee38378a9e3db1cc693b4f88d166ae375338a0ff75cb8263e1c601d51f35dc6"
|
||||
"checksum freetype-sys 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a37d4011c0cc628dfa766fcc195454f4b068d7afdc2adfd28861191d866e731a"
|
||||
"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
|
||||
"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
|
||||
"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
|
||||
|
@ -2182,9 +2213,8 @@ dependencies = [
|
|||
"checksum serde_bytes 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "325a073952621257820e7a3469f55ba4726d8b28657e7e36653d1c36dc2c84ae"
|
||||
"checksum serde_derive 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)" = "9e549e3abf4fb8621bd1609f11dfc9f5e50320802273b12f3811a67e6716ea6c"
|
||||
"checksum serde_json 1.0.51 (registry+https://github.com/rust-lang/crates.io-index)" = "da07b57ee2623368351e9a0488bb0b261322a15a6e0ae53e243cbdc0f4208da9"
|
||||
"checksum servo-fontconfig 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a088f8d775a5c5314aae09bd77340bc9c67d72b9a45258be34c83548b4814cd9"
|
||||
"checksum servo-fontconfig-sys 4.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "62b3e166450f523f4db06c14f02a2d39e76d49b5d8cbd224338d93e3595c156c"
|
||||
"checksum servo-freetype-sys 4.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2c4ccb6d0d32d277d3ef7dea86203d8210945eb7a45fba89dd445b3595dd0dfc"
|
||||
"checksum servo-fontconfig 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c7e3e22fe5fd73d04ebf0daa049d3efe3eae55369ce38ab16d07ddd9ac5c217c"
|
||||
"checksum servo-fontconfig-sys 5.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e36b879db9892dfa40f95da1c38a835d41634b825fbd8c4c418093d53c24b388"
|
||||
"checksum sha-1 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df"
|
||||
"checksum shared_library 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "5a9e7e0f2bfae24d8a5b5a66c5b257a83c7412304311512a0c054cd5e619da11"
|
||||
"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
|
||||
|
|
|
@ -10,7 +10,7 @@ edition = "2018"
|
|||
|
||||
[features]
|
||||
default = ["freetype-lib"]
|
||||
freetype-lib = ["freetype/servo-freetype-sys"]
|
||||
freetype-lib = ["freetype/freetype-sys"]
|
||||
profiler = ["tracy-rs/enable_profiler"]
|
||||
debugger = ["ws", "serde_json", "serde", "image_loader", "base64"]
|
||||
capture = ["api/serialize", "ron", "serde", "smallvec/serde"]
|
||||
|
@ -61,13 +61,13 @@ mozangle = "0.3.1"
|
|||
rand = "0.4"
|
||||
|
||||
[target.'cfg(any(target_os = "android", all(unix, not(target_os = "macos"))))'.dependencies]
|
||||
freetype = { version = "0.4", default-features = false }
|
||||
freetype = { version = "0.7", default-features = false }
|
||||
libc = "0.2"
|
||||
|
||||
[target.'cfg(target_os = "windows")'.dependencies]
|
||||
dwrote = "0.11"
|
||||
|
||||
[target.'cfg(target_os = "macos")'.dependencies]
|
||||
core-foundation = "0.7"
|
||||
core-graphics = "0.19"
|
||||
core-text = { version = "15", default-features = false }
|
||||
core-foundation = "0.9"
|
||||
core-graphics = "0.22"
|
||||
core-text = { version = "19", default-features = false }
|
||||
|
|
|
@ -28,5 +28,5 @@ malloc_size_of = { version = "0.0.1", path = "../wr_malloc_size_of", package = "
|
|||
peek-poke = { version = "0.2", path = "../peek-poke", features = ["extras"] }
|
||||
|
||||
[target.'cfg(target_os = "macos")'.dependencies]
|
||||
core-foundation = "0.7"
|
||||
core-graphics = "0.19"
|
||||
core-foundation = "0.9"
|
||||
core-graphics = "0.22"
|
||||
|
|
|
@ -38,8 +38,8 @@ default-features = false
|
|||
features = ["png"]
|
||||
|
||||
[target.'cfg(target_os = "macos")'.dependencies]
|
||||
core-graphics = "0.19"
|
||||
core-foundation = "0.7"
|
||||
core-graphics = "0.22"
|
||||
core-foundation = "0.9"
|
||||
|
||||
[features]
|
||||
default = [ "env_logger" ]
|
||||
|
@ -51,7 +51,7 @@ dwrote = "0.11"
|
|||
mozangle = {version = "0.3.1", features = ["egl"]}
|
||||
|
||||
[target.'cfg(all(unix, not(target_os = "android")))'.dependencies]
|
||||
font-loader = "0.9"
|
||||
font-loader = "0.11"
|
||||
|
||||
# Configuration information used when building wrench as an APK.
|
||||
[package.metadata.android]
|
||||
|
|
|
@ -16,7 +16,7 @@ pkcs11 = "0.4"
|
|||
sha2 = "0.8"
|
||||
|
||||
[target."cfg(target_os = \"macos\")".dependencies.core-foundation]
|
||||
version = "0.7"
|
||||
version = "0.9"
|
||||
|
||||
[target."cfg(target_os = \"macos\")".dependencies.libloading]
|
||||
version = "0.5"
|
||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -13,7 +13,7 @@
|
|||
[package]
|
||||
edition = "2018"
|
||||
name = "ash"
|
||||
version = "0.30.0"
|
||||
version = "0.31.0"
|
||||
authors = ["maik klein <maikklein@googlemail.com>"]
|
||||
description = "Vulkan bindings for Rust"
|
||||
documentation = "https://docs.rs/ash"
|
||||
|
@ -24,7 +24,8 @@ repository = "https://github.com/MaikKlein/ash"
|
|||
[package.metadata.release]
|
||||
no-dev-version = true
|
||||
[dependencies.libloading]
|
||||
version = "0.5.2"
|
||||
version = "0.6.1"
|
||||
optional = true
|
||||
|
||||
[features]
|
||||
default = []
|
||||
default = ["libloading"]
|
||||
|
|
|
@ -111,25 +111,20 @@ pub trait DeviceV1_2: DeviceV1_1 {
|
|||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkResetQueryPool.html>"]
|
||||
unsafe fn reset_query_pool(
|
||||
&self,
|
||||
device: vk::Device,
|
||||
query_pool: vk::QueryPool,
|
||||
first_query: u32,
|
||||
query_count: u32,
|
||||
) {
|
||||
self.fp_v1_2()
|
||||
.reset_query_pool(device, query_pool, first_query, query_count);
|
||||
.reset_query_pool(self.handle(), query_pool, first_query, query_count);
|
||||
}
|
||||
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetSemaphoreCounterValue.html>"]
|
||||
unsafe fn get_semaphore_counter_value(
|
||||
&self,
|
||||
device: vk::Device,
|
||||
semaphore: vk::Semaphore,
|
||||
) -> VkResult<u64> {
|
||||
unsafe fn get_semaphore_counter_value(&self, semaphore: vk::Semaphore) -> VkResult<u64> {
|
||||
let mut value = 0;
|
||||
let err_code = self
|
||||
.fp_v1_2()
|
||||
.get_semaphore_counter_value(device, semaphore, &mut value);
|
||||
let err_code =
|
||||
self.fp_v1_2()
|
||||
.get_semaphore_counter_value(self.handle(), semaphore, &mut value);
|
||||
match err_code {
|
||||
vk::Result::SUCCESS => Ok(value),
|
||||
_ => Err(err_code),
|
||||
|
@ -139,11 +134,12 @@ pub trait DeviceV1_2: DeviceV1_1 {
|
|||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkWaitSemaphores.html>"]
|
||||
unsafe fn wait_semaphores(
|
||||
&self,
|
||||
device: vk::Device,
|
||||
wait_info: &vk::SemaphoreWaitInfo,
|
||||
timeout: u64,
|
||||
) -> VkResult<()> {
|
||||
let err_code = self.fp_v1_2().wait_semaphores(device, wait_info, timeout);
|
||||
let err_code = self
|
||||
.fp_v1_2()
|
||||
.wait_semaphores(self.handle(), wait_info, timeout);
|
||||
match err_code {
|
||||
vk::Result::SUCCESS => Ok(()),
|
||||
_ => Err(err_code),
|
||||
|
@ -151,12 +147,8 @@ pub trait DeviceV1_2: DeviceV1_1 {
|
|||
}
|
||||
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkSignalSemaphore.html>"]
|
||||
unsafe fn signal_semaphore(
|
||||
&self,
|
||||
device: vk::Device,
|
||||
signal_info: &vk::SemaphoreSignalInfo,
|
||||
) -> VkResult<()> {
|
||||
let err_code = self.fp_v1_2().signal_semaphore(device, signal_info);
|
||||
unsafe fn signal_semaphore(&self, signal_info: &vk::SemaphoreSignalInfo) -> VkResult<()> {
|
||||
let err_code = self.fp_v1_2().signal_semaphore(self.handle(), signal_info);
|
||||
match err_code {
|
||||
vk::Result::SUCCESS => Ok(()),
|
||||
_ => Err(err_code),
|
||||
|
@ -166,30 +158,25 @@ pub trait DeviceV1_2: DeviceV1_1 {
|
|||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetBufferDeviceAddress.html>"]
|
||||
unsafe fn get_buffer_device_address(
|
||||
&self,
|
||||
device: vk::Device,
|
||||
info: &vk::BufferDeviceAddressInfo,
|
||||
) -> vk::DeviceAddress {
|
||||
self.fp_v1_2().get_buffer_device_address(device, info)
|
||||
self.fp_v1_2()
|
||||
.get_buffer_device_address(self.handle(), info)
|
||||
}
|
||||
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetBufferOpaqueCaptureAddress.html>"]
|
||||
unsafe fn get_buffer_opaque_capture_address(
|
||||
&self,
|
||||
device: vk::Device,
|
||||
info: &vk::BufferDeviceAddressInfo,
|
||||
) -> u64 {
|
||||
unsafe fn get_buffer_opaque_capture_address(&self, info: &vk::BufferDeviceAddressInfo) -> u64 {
|
||||
self.fp_v1_2()
|
||||
.get_buffer_opaque_capture_address(device, info)
|
||||
.get_buffer_opaque_capture_address(self.handle(), info)
|
||||
}
|
||||
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetDeviceMemoryOpaqueCaptureAddress.html>"]
|
||||
unsafe fn get_device_memory_opaque_capture_address(
|
||||
&self,
|
||||
device: vk::Device,
|
||||
info: &vk::DeviceMemoryOpaqueCaptureAddressInfo,
|
||||
) -> u64 {
|
||||
self.fp_v1_2()
|
||||
.get_device_memory_opaque_capture_address(device, info)
|
||||
.get_device_memory_opaque_capture_address(self.handle(), info)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2147,6 +2134,7 @@ pub struct Device {
|
|||
device_fn_1_1: vk::DeviceFnV1_1,
|
||||
device_fn_1_2: vk::DeviceFnV1_2,
|
||||
}
|
||||
|
||||
impl Device {
|
||||
pub unsafe fn load(instance_fn: &vk::InstanceFnV1_0, device: vk::Device) -> Self {
|
||||
let device_fn_1_0 = vk::DeviceFnV1_0::load(|name| {
|
||||
|
|
|
@ -2,33 +2,12 @@ use crate::instance::Instance;
|
|||
use crate::prelude::*;
|
||||
use crate::vk;
|
||||
use crate::RawPtr;
|
||||
use libloading::Library;
|
||||
use std::error::Error;
|
||||
use std::fmt;
|
||||
use std::io;
|
||||
use std::mem;
|
||||
use std::os::raw::c_char;
|
||||
use std::os::raw::c_void;
|
||||
use std::ptr;
|
||||
use std::sync::Arc;
|
||||
|
||||
#[cfg(windows)]
|
||||
const LIB_PATH: &str = "vulkan-1.dll";
|
||||
|
||||
#[cfg(all(
|
||||
unix,
|
||||
not(any(target_os = "macos", target_os = "ios", target_os = "android"))
|
||||
))]
|
||||
const LIB_PATH: &str = "libvulkan.so.1";
|
||||
|
||||
#[cfg(target_os = "android")]
|
||||
const LIB_PATH: &str = "libvulkan.so";
|
||||
|
||||
#[cfg(any(target_os = "macos", target_os = "ios"))]
|
||||
const LIB_PATH: &str = "libvulkan.dylib";
|
||||
|
||||
/// Function loader
|
||||
pub type Entry = EntryCustom<Arc<Library>>;
|
||||
|
||||
/// Function loader
|
||||
#[derive(Clone)]
|
||||
|
@ -40,21 +19,6 @@ pub struct EntryCustom<L> {
|
|||
lib: L,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub enum LoadingError {
|
||||
LibraryLoadError(io::Error),
|
||||
}
|
||||
|
||||
impl fmt::Display for LoadingError {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
match self {
|
||||
LoadingError::LibraryLoadError(e) => write!(f, "{}", e),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Error for LoadingError {}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub enum InstanceError {
|
||||
LoadError(Vec<&'static str>),
|
||||
|
@ -208,46 +172,11 @@ impl<L> EntryV1_2 for EntryCustom<L> {
|
|||
}
|
||||
}
|
||||
|
||||
impl EntryCustom<Arc<Library>> {
|
||||
/// ```rust,no_run
|
||||
/// use ash::{vk, Entry, version::EntryV1_0};
|
||||
/// # fn main() -> Result<(), Box<std::error::Error>> {
|
||||
/// let entry = Entry::new()?;
|
||||
/// let app_info = vk::ApplicationInfo {
|
||||
/// api_version: vk::make_version(1, 0, 0),
|
||||
/// ..Default::default()
|
||||
/// };
|
||||
/// let create_info = vk::InstanceCreateInfo {
|
||||
/// p_application_info: &app_info,
|
||||
/// ..Default::default()
|
||||
/// };
|
||||
/// let instance = unsafe { entry.create_instance(&create_info, None)? };
|
||||
/// # Ok(()) }
|
||||
/// ```
|
||||
pub fn new() -> Result<Entry, LoadingError> {
|
||||
Self::new_custom(
|
||||
|| {
|
||||
Library::new(&LIB_PATH)
|
||||
.map_err(LoadingError::LibraryLoadError)
|
||||
.map(Arc::new)
|
||||
},
|
||||
|vk_lib, name| unsafe {
|
||||
vk_lib
|
||||
.get(name.to_bytes_with_nul())
|
||||
.map(|symbol| *symbol)
|
||||
.unwrap_or(ptr::null_mut())
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
impl<L> EntryCustom<L> {
|
||||
pub fn new_custom<Open, Load>(open: Open, mut load: Load) -> Result<Self, LoadingError>
|
||||
pub fn new_custom<Load>(mut lib: L, mut load: Load) -> Self
|
||||
where
|
||||
Open: FnOnce() -> Result<L, LoadingError>,
|
||||
Load: FnMut(&mut L, &::std::ffi::CStr) -> *const c_void,
|
||||
{
|
||||
let mut lib = open()?;
|
||||
let static_fn = vk::StaticFn::load(|name| load(&mut lib, name));
|
||||
|
||||
let entry_fn_1_0 = vk::EntryFnV1_0::load(|name| unsafe {
|
||||
|
@ -262,13 +191,13 @@ impl<L> EntryCustom<L> {
|
|||
mem::transmute(static_fn.get_instance_proc_addr(vk::Instance::null(), name.as_ptr()))
|
||||
});
|
||||
|
||||
Ok(EntryCustom {
|
||||
EntryCustom {
|
||||
static_fn,
|
||||
entry_fn_1_0,
|
||||
entry_fn_1_1,
|
||||
entry_fn_1_2,
|
||||
lib,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkEnumerateInstanceVersion.html>"]
|
||||
|
|
|
@ -0,0 +1,69 @@
|
|||
use crate::entry::EntryCustom;
|
||||
use libloading::Library;
|
||||
use std::error::Error;
|
||||
use std::fmt;
|
||||
use std::ptr;
|
||||
use std::sync::Arc;
|
||||
|
||||
#[cfg(windows)]
|
||||
const LIB_PATH: &str = "vulkan-1.dll";
|
||||
|
||||
#[cfg(all(
|
||||
unix,
|
||||
not(any(target_os = "macos", target_os = "ios", target_os = "android"))
|
||||
))]
|
||||
const LIB_PATH: &str = "libvulkan.so.1";
|
||||
|
||||
#[cfg(target_os = "android")]
|
||||
const LIB_PATH: &str = "libvulkan.so";
|
||||
|
||||
#[cfg(any(target_os = "macos", target_os = "ios"))]
|
||||
const LIB_PATH: &str = "libvulkan.dylib";
|
||||
|
||||
/// Function loader
|
||||
pub type Entry = EntryCustom<Arc<Library>>;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct LoadingError(libloading::Error);
|
||||
|
||||
impl fmt::Display for LoadingError {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
fmt::Display::fmt(&self.0, f)
|
||||
}
|
||||
}
|
||||
|
||||
impl Error for LoadingError {
|
||||
fn source(&self) -> Option<&(dyn Error + 'static)> {
|
||||
Error::source(&self.0)
|
||||
}
|
||||
}
|
||||
|
||||
impl EntryCustom<Arc<Library>> {
|
||||
/// ```rust,no_run
|
||||
/// use ash::{vk, Entry, version::EntryV1_0};
|
||||
/// # fn main() -> Result<(), Box<std::error::Error>> {
|
||||
/// let entry = Entry::new()?;
|
||||
/// let app_info = vk::ApplicationInfo {
|
||||
/// api_version: vk::make_version(1, 0, 0),
|
||||
/// ..Default::default()
|
||||
/// };
|
||||
/// let create_info = vk::InstanceCreateInfo {
|
||||
/// p_application_info: &app_info,
|
||||
/// ..Default::default()
|
||||
/// };
|
||||
/// let instance = unsafe { entry.create_instance(&create_info, None)? };
|
||||
/// # Ok(()) }
|
||||
/// ```
|
||||
pub fn new() -> Result<Entry, LoadingError> {
|
||||
let lib = Library::new(&LIB_PATH)
|
||||
.map_err(LoadingError)
|
||||
.map(Arc::new)?;
|
||||
|
||||
Ok(Self::new_custom(lib, |vk_lib, name| unsafe {
|
||||
vk_lib
|
||||
.get(name.to_bytes_with_nul())
|
||||
.map(|symbol| *symbol)
|
||||
.unwrap_or(ptr::null_mut())
|
||||
}))
|
||||
}
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
#![allow(dead_code)]
|
||||
use crate::prelude::*;
|
||||
use crate::version::{EntryV1_0, InstanceV1_0};
|
||||
use crate::vk;
|
||||
use crate::RawPtr;
|
||||
use std::ffi::CStr;
|
||||
use std::mem;
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct MetalSurface {
|
||||
handle: vk::Instance,
|
||||
metal_surface_fn: vk::ExtMetalSurfaceFn,
|
||||
}
|
||||
|
||||
impl MetalSurface {
|
||||
pub fn new<E: EntryV1_0, I: InstanceV1_0>(entry: &E, instance: &I) -> MetalSurface {
|
||||
let surface_fn = vk::ExtMetalSurfaceFn::load(|name| unsafe {
|
||||
mem::transmute(entry.get_instance_proc_addr(instance.handle(), name.as_ptr()))
|
||||
});
|
||||
MetalSurface {
|
||||
handle: instance.handle(),
|
||||
metal_surface_fn: surface_fn,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn name() -> &'static CStr {
|
||||
vk::ExtMetalSurfaceFn::name()
|
||||
}
|
||||
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateMetalSurfaceEXT.html>"]
|
||||
pub unsafe fn create_metal_surface(
|
||||
&self,
|
||||
create_info: &vk::MetalSurfaceCreateInfoEXT,
|
||||
allocation_callbacks: Option<&vk::AllocationCallbacks>,
|
||||
) -> VkResult<vk::SurfaceKHR> {
|
||||
let mut surface = mem::zeroed();
|
||||
let err_code = self.metal_surface_fn.create_metal_surface_ext(
|
||||
self.handle,
|
||||
create_info,
|
||||
allocation_callbacks.as_raw_ptr(),
|
||||
&mut surface,
|
||||
);
|
||||
match err_code {
|
||||
vk::Result::SUCCESS => Ok(surface),
|
||||
_ => Err(err_code),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn fp(&self) -> &vk::ExtMetalSurfaceFn {
|
||||
&self.metal_surface_fn
|
||||
}
|
||||
|
||||
pub fn instance(&self) -> vk::Instance {
|
||||
self.handle
|
||||
}
|
||||
}
|
|
@ -1,7 +1,9 @@
|
|||
pub use self::debug_marker::DebugMarker;
|
||||
pub use self::debug_report::DebugReport;
|
||||
pub use self::debug_utils::DebugUtils;
|
||||
pub use self::metal_surface::MetalSurface;
|
||||
|
||||
mod debug_marker;
|
||||
mod debug_report;
|
||||
mod debug_utils;
|
||||
mod metal_surface;
|
||||
|
|
|
@ -0,0 +1,74 @@
|
|||
#![allow(dead_code)]
|
||||
use crate::version::{DeviceV1_0, InstanceV1_0};
|
||||
use crate::vk;
|
||||
use std::ffi::CStr;
|
||||
use std::mem;
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct DrawIndirectCount {
|
||||
handle: vk::Device,
|
||||
draw_indirect_count_fn: vk::KhrDrawIndirectCountFn,
|
||||
}
|
||||
|
||||
impl DrawIndirectCount {
|
||||
pub fn new<I: InstanceV1_0, D: DeviceV1_0>(instance: &I, device: &D) -> DrawIndirectCount {
|
||||
let draw_indirect_count_fn = vk::KhrDrawIndirectCountFn::load(|name| unsafe {
|
||||
mem::transmute(instance.get_device_proc_addr(device.handle(), name.as_ptr()))
|
||||
});
|
||||
|
||||
DrawIndirectCount {
|
||||
handle: device.handle(),
|
||||
draw_indirect_count_fn,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn name() -> &'static CStr {
|
||||
vk::KhrDrawIndirectCountFn::name()
|
||||
}
|
||||
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDrawIndexedIndirectCountKHR.html>"]
|
||||
pub unsafe fn cmd_draw_indexed_indirect_count(
|
||||
&self,
|
||||
command_buffer: vk::CommandBuffer,
|
||||
buffer: vk::Buffer,
|
||||
offset: vk::DeviceSize,
|
||||
count_buffer: vk::Buffer,
|
||||
count_buffer_offset: vk::DeviceSize,
|
||||
max_draw_count: u32,
|
||||
stride: u32,
|
||||
) {
|
||||
self.draw_indirect_count_fn
|
||||
.cmd_draw_indexed_indirect_count_khr(
|
||||
command_buffer,
|
||||
buffer,
|
||||
offset,
|
||||
count_buffer,
|
||||
count_buffer_offset,
|
||||
max_draw_count,
|
||||
stride,
|
||||
);
|
||||
}
|
||||
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDrawIndirectCountKHR.html>"]
|
||||
pub unsafe fn cmd_draw_indirect_count(
|
||||
&self,
|
||||
command_buffer: vk::CommandBuffer,
|
||||
buffer: vk::Buffer,
|
||||
offset: vk::DeviceSize,
|
||||
count_buffer: vk::Buffer,
|
||||
count_buffer_offset: vk::DeviceSize,
|
||||
max_draw_count: u32,
|
||||
stride: u32,
|
||||
) {
|
||||
self.draw_indirect_count_fn
|
||||
.cmd_draw_indexed_indirect_count_khr(
|
||||
command_buffer,
|
||||
buffer,
|
||||
offset,
|
||||
count_buffer,
|
||||
count_buffer_offset,
|
||||
max_draw_count,
|
||||
stride,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
pub use self::android_surface::AndroidSurface;
|
||||
pub use self::display::Display;
|
||||
pub use self::display_swapchain::DisplaySwapchain;
|
||||
pub use self::draw_indirect_count::DrawIndirectCount;
|
||||
pub use self::external_memory_fd::ExternalMemoryFd;
|
||||
pub use self::push_descriptor::PushDescriptor;
|
||||
pub use self::ray_tracing::RayTracing;
|
||||
|
@ -15,6 +16,7 @@ pub use self::xlib_surface::XlibSurface;
|
|||
mod android_surface;
|
||||
mod display;
|
||||
mod display_swapchain;
|
||||
mod draw_indirect_count;
|
||||
mod external_memory_fd;
|
||||
mod push_descriptor;
|
||||
mod ray_tracing;
|
||||
|
|
|
@ -72,7 +72,7 @@ impl RayTracing {
|
|||
&self,
|
||||
info: &vk::AccelerationStructureMemoryRequirementsInfoKHR,
|
||||
) -> vk::MemoryRequirements2KHR {
|
||||
let mut requirements = mem::zeroed();
|
||||
let mut requirements = Default::default();
|
||||
self.ray_tracing_fn
|
||||
.get_acceleration_structure_memory_requirements_khr(
|
||||
self.handle,
|
||||
|
|
|
@ -27,7 +27,7 @@ impl TimelineSemaphore {
|
|||
vk::KhrTimelineSemaphoreFn::name()
|
||||
}
|
||||
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetSemaphoreCounterValueKHR>"]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetSemaphoreCounterValue.html>"]
|
||||
pub unsafe fn get_semaphore_counter_value(
|
||||
&self,
|
||||
device: vk::Device,
|
||||
|
@ -44,7 +44,7 @@ impl TimelineSemaphore {
|
|||
}
|
||||
}
|
||||
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkWaitSemaphoresKHR>"]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkWaitSemaphores.html>"]
|
||||
pub unsafe fn wait_semaphores(
|
||||
&self,
|
||||
device: vk::Device,
|
||||
|
@ -61,7 +61,7 @@ impl TimelineSemaphore {
|
|||
}
|
||||
}
|
||||
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkSignalSemaphoreKHR>"]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkSignalSemaphore.html>"]
|
||||
pub unsafe fn signal_semaphore(
|
||||
&self,
|
||||
device: vk::Device,
|
||||
|
|
|
@ -23,11 +23,15 @@
|
|||
//!
|
||||
|
||||
pub use crate::device::Device;
|
||||
pub use crate::entry::{Entry, EntryCustom, InstanceError, LoadingError};
|
||||
pub use crate::entry::{EntryCustom, InstanceError};
|
||||
#[cfg(feature = "libloading")]
|
||||
pub use crate::entry_libloading::{Entry, LoadingError};
|
||||
pub use crate::instance::Instance;
|
||||
|
||||
mod device;
|
||||
mod entry;
|
||||
#[cfg(feature = "libloading")]
|
||||
mod entry_libloading;
|
||||
mod instance;
|
||||
pub mod prelude;
|
||||
pub mod util;
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,171 @@
|
|||
use crate::vk::bitflags::*;
|
||||
use crate::vk::definitions::*;
|
||||
use crate::vk::enums::*;
|
||||
pub type GeometryFlagsNV = GeometryFlagsKHR;
|
||||
pub type GeometryInstanceFlagsNV = GeometryInstanceFlagsKHR;
|
||||
pub type BuildAccelerationStructureFlagsNV = BuildAccelerationStructureFlagsKHR;
|
||||
pub type DescriptorUpdateTemplateCreateFlagsKHR = DescriptorUpdateTemplateCreateFlags;
|
||||
pub type SemaphoreWaitFlagsKHR = SemaphoreWaitFlags;
|
||||
pub type PeerMemoryFeatureFlagsKHR = PeerMemoryFeatureFlags;
|
||||
pub type MemoryAllocateFlagsKHR = MemoryAllocateFlags;
|
||||
pub type CommandPoolTrimFlagsKHR = CommandPoolTrimFlags;
|
||||
pub type ExternalMemoryHandleTypeFlagsKHR = ExternalMemoryHandleTypeFlags;
|
||||
pub type ExternalMemoryFeatureFlagsKHR = ExternalMemoryFeatureFlags;
|
||||
pub type ExternalSemaphoreHandleTypeFlagsKHR = ExternalSemaphoreHandleTypeFlags;
|
||||
pub type ExternalSemaphoreFeatureFlagsKHR = ExternalSemaphoreFeatureFlags;
|
||||
pub type SemaphoreImportFlagsKHR = SemaphoreImportFlags;
|
||||
pub type ExternalFenceHandleTypeFlagsKHR = ExternalFenceHandleTypeFlags;
|
||||
pub type ExternalFenceFeatureFlagsKHR = ExternalFenceFeatureFlags;
|
||||
pub type FenceImportFlagsKHR = FenceImportFlags;
|
||||
pub type DescriptorBindingFlagsEXT = DescriptorBindingFlags;
|
||||
pub type ResolveModeFlagsKHR = ResolveModeFlags;
|
||||
pub type DescriptorUpdateTemplateKHR = DescriptorUpdateTemplate;
|
||||
pub type SamplerYcbcrConversionKHR = SamplerYcbcrConversion;
|
||||
pub type AccelerationStructureNV = AccelerationStructureKHR;
|
||||
pub type DescriptorUpdateTemplateTypeKHR = DescriptorUpdateTemplateType;
|
||||
pub type PointClippingBehaviorKHR = PointClippingBehavior;
|
||||
pub type SemaphoreTypeKHR = SemaphoreType;
|
||||
pub type CopyAccelerationStructureModeNV = CopyAccelerationStructureModeKHR;
|
||||
pub type AccelerationStructureTypeNV = AccelerationStructureTypeKHR;
|
||||
pub type GeometryTypeNV = GeometryTypeKHR;
|
||||
pub type RayTracingShaderGroupTypeNV = RayTracingShaderGroupTypeKHR;
|
||||
pub type AccelerationStructureMemoryRequirementsTypeNV =
|
||||
AccelerationStructureMemoryRequirementsTypeKHR;
|
||||
pub type TessellationDomainOriginKHR = TessellationDomainOrigin;
|
||||
pub type SamplerYcbcrModelConversionKHR = SamplerYcbcrModelConversion;
|
||||
pub type SamplerYcbcrRangeKHR = SamplerYcbcrRange;
|
||||
pub type ChromaLocationKHR = ChromaLocation;
|
||||
pub type SamplerReductionModeEXT = SamplerReductionMode;
|
||||
pub type ShaderFloatControlsIndependenceKHR = ShaderFloatControlsIndependence;
|
||||
pub type DriverIdKHR = DriverId;
|
||||
pub type PhysicalDeviceFeatures2KHR = PhysicalDeviceFeatures2;
|
||||
pub type PhysicalDeviceProperties2KHR = PhysicalDeviceProperties2;
|
||||
pub type FormatProperties2KHR = FormatProperties2;
|
||||
pub type ImageFormatProperties2KHR = ImageFormatProperties2;
|
||||
pub type PhysicalDeviceImageFormatInfo2KHR = PhysicalDeviceImageFormatInfo2;
|
||||
pub type QueueFamilyProperties2KHR = QueueFamilyProperties2;
|
||||
pub type PhysicalDeviceMemoryProperties2KHR = PhysicalDeviceMemoryProperties2;
|
||||
pub type SparseImageFormatProperties2KHR = SparseImageFormatProperties2;
|
||||
pub type PhysicalDeviceSparseImageFormatInfo2KHR = PhysicalDeviceSparseImageFormatInfo2;
|
||||
pub type ConformanceVersionKHR = ConformanceVersion;
|
||||
pub type PhysicalDeviceDriverPropertiesKHR = PhysicalDeviceDriverProperties;
|
||||
pub type PhysicalDeviceVariablePointersFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
|
||||
pub type PhysicalDeviceVariablePointerFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
|
||||
pub type PhysicalDeviceVariablePointerFeatures = PhysicalDeviceVariablePointersFeatures;
|
||||
pub type ExternalMemoryPropertiesKHR = ExternalMemoryProperties;
|
||||
pub type PhysicalDeviceExternalImageFormatInfoKHR = PhysicalDeviceExternalImageFormatInfo;
|
||||
pub type ExternalImageFormatPropertiesKHR = ExternalImageFormatProperties;
|
||||
pub type PhysicalDeviceExternalBufferInfoKHR = PhysicalDeviceExternalBufferInfo;
|
||||
pub type ExternalBufferPropertiesKHR = ExternalBufferProperties;
|
||||
pub type PhysicalDeviceIDPropertiesKHR = PhysicalDeviceIDProperties;
|
||||
pub type ExternalMemoryImageCreateInfoKHR = ExternalMemoryImageCreateInfo;
|
||||
pub type ExternalMemoryBufferCreateInfoKHR = ExternalMemoryBufferCreateInfo;
|
||||
pub type ExportMemoryAllocateInfoKHR = ExportMemoryAllocateInfo;
|
||||
pub type PhysicalDeviceExternalSemaphoreInfoKHR = PhysicalDeviceExternalSemaphoreInfo;
|
||||
pub type ExternalSemaphorePropertiesKHR = ExternalSemaphoreProperties;
|
||||
pub type ExportSemaphoreCreateInfoKHR = ExportSemaphoreCreateInfo;
|
||||
pub type PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo;
|
||||
pub type ExternalFencePropertiesKHR = ExternalFenceProperties;
|
||||
pub type ExportFenceCreateInfoKHR = ExportFenceCreateInfo;
|
||||
pub type PhysicalDeviceMultiviewFeaturesKHR = PhysicalDeviceMultiviewFeatures;
|
||||
pub type PhysicalDeviceMultiviewPropertiesKHR = PhysicalDeviceMultiviewProperties;
|
||||
pub type RenderPassMultiviewCreateInfoKHR = RenderPassMultiviewCreateInfo;
|
||||
pub type PhysicalDeviceGroupPropertiesKHR = PhysicalDeviceGroupProperties;
|
||||
pub type MemoryAllocateFlagsInfoKHR = MemoryAllocateFlagsInfo;
|
||||
pub type BindBufferMemoryInfoKHR = BindBufferMemoryInfo;
|
||||
pub type BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo;
|
||||
pub type BindImageMemoryInfoKHR = BindImageMemoryInfo;
|
||||
pub type BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo;
|
||||
pub type DeviceGroupRenderPassBeginInfoKHR = DeviceGroupRenderPassBeginInfo;
|
||||
pub type DeviceGroupCommandBufferBeginInfoKHR = DeviceGroupCommandBufferBeginInfo;
|
||||
pub type DeviceGroupSubmitInfoKHR = DeviceGroupSubmitInfo;
|
||||
pub type DeviceGroupBindSparseInfoKHR = DeviceGroupBindSparseInfo;
|
||||
pub type DeviceGroupDeviceCreateInfoKHR = DeviceGroupDeviceCreateInfo;
|
||||
pub type DescriptorUpdateTemplateEntryKHR = DescriptorUpdateTemplateEntry;
|
||||
pub type DescriptorUpdateTemplateCreateInfoKHR = DescriptorUpdateTemplateCreateInfo;
|
||||
pub type InputAttachmentAspectReferenceKHR = InputAttachmentAspectReference;
|
||||
pub type RenderPassInputAttachmentAspectCreateInfoKHR = RenderPassInputAttachmentAspectCreateInfo;
|
||||
pub type PhysicalDevice16BitStorageFeaturesKHR = PhysicalDevice16BitStorageFeatures;
|
||||
pub type PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR =
|
||||
PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
|
||||
pub type BufferMemoryRequirementsInfo2KHR = BufferMemoryRequirementsInfo2;
|
||||
pub type ImageMemoryRequirementsInfo2KHR = ImageMemoryRequirementsInfo2;
|
||||
pub type ImageSparseMemoryRequirementsInfo2KHR = ImageSparseMemoryRequirementsInfo2;
|
||||
pub type MemoryRequirements2KHR = MemoryRequirements2;
|
||||
pub type SparseImageMemoryRequirements2KHR = SparseImageMemoryRequirements2;
|
||||
pub type PhysicalDevicePointClippingPropertiesKHR = PhysicalDevicePointClippingProperties;
|
||||
pub type MemoryDedicatedRequirementsKHR = MemoryDedicatedRequirements;
|
||||
pub type MemoryDedicatedAllocateInfoKHR = MemoryDedicatedAllocateInfo;
|
||||
pub type ImageViewUsageCreateInfoKHR = ImageViewUsageCreateInfo;
|
||||
pub type PipelineTessellationDomainOriginStateCreateInfoKHR =
|
||||
PipelineTessellationDomainOriginStateCreateInfo;
|
||||
pub type SamplerYcbcrConversionInfoKHR = SamplerYcbcrConversionInfo;
|
||||
pub type SamplerYcbcrConversionCreateInfoKHR = SamplerYcbcrConversionCreateInfo;
|
||||
pub type BindImagePlaneMemoryInfoKHR = BindImagePlaneMemoryInfo;
|
||||
pub type ImagePlaneMemoryRequirementsInfoKHR = ImagePlaneMemoryRequirementsInfo;
|
||||
pub type PhysicalDeviceSamplerYcbcrConversionFeaturesKHR =
|
||||
PhysicalDeviceSamplerYcbcrConversionFeatures;
|
||||
pub type SamplerYcbcrConversionImageFormatPropertiesKHR =
|
||||
SamplerYcbcrConversionImageFormatProperties;
|
||||
pub type PhysicalDeviceSamplerFilterMinmaxPropertiesEXT =
|
||||
PhysicalDeviceSamplerFilterMinmaxProperties;
|
||||
pub type SamplerReductionModeCreateInfoEXT = SamplerReductionModeCreateInfo;
|
||||
pub type ImageFormatListCreateInfoKHR = ImageFormatListCreateInfo;
|
||||
pub type PhysicalDeviceMaintenance3PropertiesKHR = PhysicalDeviceMaintenance3Properties;
|
||||
pub type DescriptorSetLayoutSupportKHR = DescriptorSetLayoutSupport;
|
||||
pub type PhysicalDeviceShaderDrawParameterFeatures = PhysicalDeviceShaderDrawParametersFeatures;
|
||||
pub type PhysicalDeviceShaderFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
|
||||
pub type PhysicalDeviceFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
|
||||
pub type PhysicalDeviceFloatControlsPropertiesKHR = PhysicalDeviceFloatControlsProperties;
|
||||
pub type PhysicalDeviceHostQueryResetFeaturesEXT = PhysicalDeviceHostQueryResetFeatures;
|
||||
pub type PhysicalDeviceDescriptorIndexingFeaturesEXT = PhysicalDeviceDescriptorIndexingFeatures;
|
||||
pub type PhysicalDeviceDescriptorIndexingPropertiesEXT = PhysicalDeviceDescriptorIndexingProperties;
|
||||
pub type DescriptorSetLayoutBindingFlagsCreateInfoEXT = DescriptorSetLayoutBindingFlagsCreateInfo;
|
||||
pub type DescriptorSetVariableDescriptorCountAllocateInfoEXT =
|
||||
DescriptorSetVariableDescriptorCountAllocateInfo;
|
||||
pub type DescriptorSetVariableDescriptorCountLayoutSupportEXT =
|
||||
DescriptorSetVariableDescriptorCountLayoutSupport;
|
||||
pub type AttachmentDescription2KHR = AttachmentDescription2;
|
||||
pub type AttachmentReference2KHR = AttachmentReference2;
|
||||
pub type SubpassDescription2KHR = SubpassDescription2;
|
||||
pub type SubpassDependency2KHR = SubpassDependency2;
|
||||
pub type RenderPassCreateInfo2KHR = RenderPassCreateInfo2;
|
||||
pub type SubpassBeginInfoKHR = SubpassBeginInfo;
|
||||
pub type SubpassEndInfoKHR = SubpassEndInfo;
|
||||
pub type PhysicalDeviceTimelineSemaphoreFeaturesKHR = PhysicalDeviceTimelineSemaphoreFeatures;
|
||||
pub type PhysicalDeviceTimelineSemaphorePropertiesKHR = PhysicalDeviceTimelineSemaphoreProperties;
|
||||
pub type SemaphoreTypeCreateInfoKHR = SemaphoreTypeCreateInfo;
|
||||
pub type TimelineSemaphoreSubmitInfoKHR = TimelineSemaphoreSubmitInfo;
|
||||
pub type SemaphoreWaitInfoKHR = SemaphoreWaitInfo;
|
||||
pub type SemaphoreSignalInfoKHR = SemaphoreSignalInfo;
|
||||
pub type PhysicalDevice8BitStorageFeaturesKHR = PhysicalDevice8BitStorageFeatures;
|
||||
pub type PhysicalDeviceVulkanMemoryModelFeaturesKHR = PhysicalDeviceVulkanMemoryModelFeatures;
|
||||
pub type PhysicalDeviceShaderAtomicInt64FeaturesKHR = PhysicalDeviceShaderAtomicInt64Features;
|
||||
pub type PhysicalDeviceDepthStencilResolvePropertiesKHR =
|
||||
PhysicalDeviceDepthStencilResolveProperties;
|
||||
pub type SubpassDescriptionDepthStencilResolveKHR = SubpassDescriptionDepthStencilResolve;
|
||||
pub type BindAccelerationStructureMemoryInfoNV = BindAccelerationStructureMemoryInfoKHR;
|
||||
pub type WriteDescriptorSetAccelerationStructureNV = WriteDescriptorSetAccelerationStructureKHR;
|
||||
pub type ImageStencilUsageCreateInfoEXT = ImageStencilUsageCreateInfo;
|
||||
pub type PhysicalDeviceScalarBlockLayoutFeaturesEXT = PhysicalDeviceScalarBlockLayoutFeatures;
|
||||
pub type PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR =
|
||||
PhysicalDeviceUniformBufferStandardLayoutFeatures;
|
||||
pub type PhysicalDeviceBufferDeviceAddressFeaturesKHR = PhysicalDeviceBufferDeviceAddressFeatures;
|
||||
pub type PhysicalDeviceBufferAddressFeaturesEXT = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
|
||||
pub type BufferDeviceAddressInfoKHR = BufferDeviceAddressInfo;
|
||||
pub type BufferDeviceAddressInfoEXT = BufferDeviceAddressInfo;
|
||||
pub type BufferOpaqueCaptureAddressCreateInfoKHR = BufferOpaqueCaptureAddressCreateInfo;
|
||||
pub type PhysicalDeviceImagelessFramebufferFeaturesKHR = PhysicalDeviceImagelessFramebufferFeatures;
|
||||
pub type FramebufferAttachmentsCreateInfoKHR = FramebufferAttachmentsCreateInfo;
|
||||
pub type FramebufferAttachmentImageInfoKHR = FramebufferAttachmentImageInfo;
|
||||
pub type RenderPassAttachmentBeginInfoKHR = RenderPassAttachmentBeginInfo;
|
||||
pub type QueryPoolCreateInfoINTEL = QueryPoolPerformanceQueryCreateInfoINTEL;
|
||||
pub type PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR =
|
||||
PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
|
||||
pub type AttachmentReferenceStencilLayoutKHR = AttachmentReferenceStencilLayout;
|
||||
pub type AttachmentDescriptionStencilLayoutKHR = AttachmentDescriptionStencilLayout;
|
||||
pub type MemoryOpaqueCaptureAddressAllocateInfoKHR = MemoryOpaqueCaptureAddressAllocateInfo;
|
||||
pub type DeviceMemoryOpaqueCaptureAddressInfoKHR = DeviceMemoryOpaqueCaptureAddressInfo;
|
||||
pub type AabbPositionsNV = AabbPositionsKHR;
|
||||
pub type TransformMatrixNV = TransformMatrixKHR;
|
||||
pub type AccelerationStructureInstanceNV = AccelerationStructureInstanceKHR;
|
|
@ -0,0 +1,952 @@
|
|||
use crate::vk::definitions::*;
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPipelineCacheCreateFlagBits.html>"]
|
||||
pub struct PipelineCacheCreateFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(PipelineCacheCreateFlags, 0b0, Flags);
|
||||
impl PipelineCacheCreateFlags {}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkCullModeFlagBits.html>"]
|
||||
pub struct CullModeFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(CullModeFlags, 0b11, Flags);
|
||||
impl CullModeFlags {
|
||||
pub const NONE: Self = Self(0);
|
||||
pub const FRONT: Self = Self(0b1);
|
||||
pub const BACK: Self = Self(0b10);
|
||||
pub const FRONT_AND_BACK: Self = Self(0x0000_0003);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkQueueFlagBits.html>"]
|
||||
pub struct QueueFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(QueueFlags, 0b1111, Flags);
|
||||
impl QueueFlags {
|
||||
#[doc = "Queue supports graphics operations"]
|
||||
pub const GRAPHICS: Self = Self(0b1);
|
||||
#[doc = "Queue supports compute operations"]
|
||||
pub const COMPUTE: Self = Self(0b10);
|
||||
#[doc = "Queue supports transfer operations"]
|
||||
pub const TRANSFER: Self = Self(0b100);
|
||||
#[doc = "Queue supports sparse resource memory management operations"]
|
||||
pub const SPARSE_BINDING: Self = Self(0b1000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkRenderPassCreateFlagBits.html>"]
|
||||
pub struct RenderPassCreateFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(RenderPassCreateFlags, 0b0, Flags);
|
||||
impl RenderPassCreateFlags {}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDeviceQueueCreateFlagBits.html>"]
|
||||
pub struct DeviceQueueCreateFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(DeviceQueueCreateFlags, 0b0, Flags);
|
||||
impl DeviceQueueCreateFlags {}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkMemoryPropertyFlagBits.html>"]
|
||||
pub struct MemoryPropertyFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(MemoryPropertyFlags, 0b1_1111, Flags);
|
||||
impl MemoryPropertyFlags {
|
||||
#[doc = "If otherwise stated, then allocate memory on device"]
|
||||
pub const DEVICE_LOCAL: Self = Self(0b1);
|
||||
#[doc = "Memory is mappable by host"]
|
||||
pub const HOST_VISIBLE: Self = Self(0b10);
|
||||
#[doc = "Memory will have i/o coherency. If not set, application may need to use vkFlushMappedMemoryRanges and vkInvalidateMappedMemoryRanges to flush/invalidate host cache"]
|
||||
pub const HOST_COHERENT: Self = Self(0b100);
|
||||
#[doc = "Memory will be cached by the host"]
|
||||
pub const HOST_CACHED: Self = Self(0b1000);
|
||||
#[doc = "Memory may be allocated by the driver when it is required"]
|
||||
pub const LAZILY_ALLOCATED: Self = Self(0b1_0000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkMemoryHeapFlagBits.html>"]
|
||||
pub struct MemoryHeapFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(MemoryHeapFlags, 0b1, Flags);
|
||||
impl MemoryHeapFlags {
|
||||
#[doc = "If set, heap represents device memory"]
|
||||
pub const DEVICE_LOCAL: Self = Self(0b1);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkAccessFlagBits.html>"]
|
||||
pub struct AccessFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(AccessFlags, 0b1_1111_1111_1111_1111, Flags);
|
||||
impl AccessFlags {
|
||||
#[doc = "Controls coherency of indirect command reads"]
|
||||
pub const INDIRECT_COMMAND_READ: Self = Self(0b1);
|
||||
#[doc = "Controls coherency of index reads"]
|
||||
pub const INDEX_READ: Self = Self(0b10);
|
||||
#[doc = "Controls coherency of vertex attribute reads"]
|
||||
pub const VERTEX_ATTRIBUTE_READ: Self = Self(0b100);
|
||||
#[doc = "Controls coherency of uniform buffer reads"]
|
||||
pub const UNIFORM_READ: Self = Self(0b1000);
|
||||
#[doc = "Controls coherency of input attachment reads"]
|
||||
pub const INPUT_ATTACHMENT_READ: Self = Self(0b1_0000);
|
||||
#[doc = "Controls coherency of shader reads"]
|
||||
pub const SHADER_READ: Self = Self(0b10_0000);
|
||||
#[doc = "Controls coherency of shader writes"]
|
||||
pub const SHADER_WRITE: Self = Self(0b100_0000);
|
||||
#[doc = "Controls coherency of color attachment reads"]
|
||||
pub const COLOR_ATTACHMENT_READ: Self = Self(0b1000_0000);
|
||||
#[doc = "Controls coherency of color attachment writes"]
|
||||
pub const COLOR_ATTACHMENT_WRITE: Self = Self(0b1_0000_0000);
|
||||
#[doc = "Controls coherency of depth/stencil attachment reads"]
|
||||
pub const DEPTH_STENCIL_ATTACHMENT_READ: Self = Self(0b10_0000_0000);
|
||||
#[doc = "Controls coherency of depth/stencil attachment writes"]
|
||||
pub const DEPTH_STENCIL_ATTACHMENT_WRITE: Self = Self(0b100_0000_0000);
|
||||
#[doc = "Controls coherency of transfer reads"]
|
||||
pub const TRANSFER_READ: Self = Self(0b1000_0000_0000);
|
||||
#[doc = "Controls coherency of transfer writes"]
|
||||
pub const TRANSFER_WRITE: Self = Self(0b1_0000_0000_0000);
|
||||
#[doc = "Controls coherency of host reads"]
|
||||
pub const HOST_READ: Self = Self(0b10_0000_0000_0000);
|
||||
#[doc = "Controls coherency of host writes"]
|
||||
pub const HOST_WRITE: Self = Self(0b100_0000_0000_0000);
|
||||
#[doc = "Controls coherency of memory reads"]
|
||||
pub const MEMORY_READ: Self = Self(0b1000_0000_0000_0000);
|
||||
#[doc = "Controls coherency of memory writes"]
|
||||
pub const MEMORY_WRITE: Self = Self(0b1_0000_0000_0000_0000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkBufferUsageFlagBits.html>"]
|
||||
pub struct BufferUsageFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(BufferUsageFlags, 0b1_1111_1111, Flags);
|
||||
impl BufferUsageFlags {
|
||||
#[doc = "Can be used as a source of transfer operations"]
|
||||
pub const TRANSFER_SRC: Self = Self(0b1);
|
||||
#[doc = "Can be used as a destination of transfer operations"]
|
||||
pub const TRANSFER_DST: Self = Self(0b10);
|
||||
#[doc = "Can be used as TBO"]
|
||||
pub const UNIFORM_TEXEL_BUFFER: Self = Self(0b100);
|
||||
#[doc = "Can be used as IBO"]
|
||||
pub const STORAGE_TEXEL_BUFFER: Self = Self(0b1000);
|
||||
#[doc = "Can be used as UBO"]
|
||||
pub const UNIFORM_BUFFER: Self = Self(0b1_0000);
|
||||
#[doc = "Can be used as SSBO"]
|
||||
pub const STORAGE_BUFFER: Self = Self(0b10_0000);
|
||||
#[doc = "Can be used as source of fixed-function index fetch (index buffer)"]
|
||||
pub const INDEX_BUFFER: Self = Self(0b100_0000);
|
||||
#[doc = "Can be used as source of fixed-function vertex fetch (VBO)"]
|
||||
pub const VERTEX_BUFFER: Self = Self(0b1000_0000);
|
||||
#[doc = "Can be the source of indirect parameters (e.g. indirect buffer, parameter buffer)"]
|
||||
pub const INDIRECT_BUFFER: Self = Self(0b1_0000_0000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkBufferCreateFlagBits.html>"]
|
||||
pub struct BufferCreateFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(BufferCreateFlags, 0b111, Flags);
|
||||
impl BufferCreateFlags {
|
||||
#[doc = "Buffer should support sparse backing"]
|
||||
pub const SPARSE_BINDING: Self = Self(0b1);
|
||||
#[doc = "Buffer should support sparse backing with partial residency"]
|
||||
pub const SPARSE_RESIDENCY: Self = Self(0b10);
|
||||
#[doc = "Buffer should support constent data access to physical memory ranges mapped into multiple locations of sparse buffers"]
|
||||
pub const SPARSE_ALIASED: Self = Self(0b100);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkShaderStageFlagBits.html>"]
|
||||
pub struct ShaderStageFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(
|
||||
ShaderStageFlags,
|
||||
0b111_1111_1111_1111_1111_1111_1111_1111,
|
||||
Flags
|
||||
);
|
||||
impl ShaderStageFlags {
|
||||
pub const VERTEX: Self = Self(0b1);
|
||||
pub const TESSELLATION_CONTROL: Self = Self(0b10);
|
||||
pub const TESSELLATION_EVALUATION: Self = Self(0b100);
|
||||
pub const GEOMETRY: Self = Self(0b1000);
|
||||
pub const FRAGMENT: Self = Self(0b1_0000);
|
||||
pub const COMPUTE: Self = Self(0b10_0000);
|
||||
pub const ALL_GRAPHICS: Self = Self(0x0000_001F);
|
||||
pub const ALL: Self = Self(0x7FFF_FFFF);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkImageUsageFlagBits.html>"]
|
||||
pub struct ImageUsageFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(ImageUsageFlags, 0b1111_1111, Flags);
|
||||
impl ImageUsageFlags {
|
||||
#[doc = "Can be used as a source of transfer operations"]
|
||||
pub const TRANSFER_SRC: Self = Self(0b1);
|
||||
#[doc = "Can be used as a destination of transfer operations"]
|
||||
pub const TRANSFER_DST: Self = Self(0b10);
|
||||
#[doc = "Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)"]
|
||||
pub const SAMPLED: Self = Self(0b100);
|
||||
#[doc = "Can be used as storage image (STORAGE_IMAGE descriptor type)"]
|
||||
pub const STORAGE: Self = Self(0b1000);
|
||||
#[doc = "Can be used as framebuffer color attachment"]
|
||||
pub const COLOR_ATTACHMENT: Self = Self(0b1_0000);
|
||||
#[doc = "Can be used as framebuffer depth/stencil attachment"]
|
||||
pub const DEPTH_STENCIL_ATTACHMENT: Self = Self(0b10_0000);
|
||||
#[doc = "Image data not needed outside of rendering"]
|
||||
pub const TRANSIENT_ATTACHMENT: Self = Self(0b100_0000);
|
||||
#[doc = "Can be used as framebuffer input attachment"]
|
||||
pub const INPUT_ATTACHMENT: Self = Self(0b1000_0000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkImageCreateFlagBits.html>"]
|
||||
pub struct ImageCreateFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(ImageCreateFlags, 0b1_1111, Flags);
|
||||
impl ImageCreateFlags {
|
||||
#[doc = "Image should support sparse backing"]
|
||||
pub const SPARSE_BINDING: Self = Self(0b1);
|
||||
#[doc = "Image should support sparse backing with partial residency"]
|
||||
pub const SPARSE_RESIDENCY: Self = Self(0b10);
|
||||
#[doc = "Image should support constent data access to physical memory ranges mapped into multiple locations of sparse images"]
|
||||
pub const SPARSE_ALIASED: Self = Self(0b100);
|
||||
#[doc = "Allows image views to have different format than the base image"]
|
||||
pub const MUTABLE_FORMAT: Self = Self(0b1000);
|
||||
#[doc = "Allows creating image views with cube type from the created image"]
|
||||
pub const CUBE_COMPATIBLE: Self = Self(0b1_0000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkImageViewCreateFlagBits.html>"]
|
||||
pub struct ImageViewCreateFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(ImageViewCreateFlags, 0b0, Flags);
|
||||
impl ImageViewCreateFlags {}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSamplerCreateFlagBits.html>"]
|
||||
pub struct SamplerCreateFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(SamplerCreateFlags, 0b0, Flags);
|
||||
impl SamplerCreateFlags {}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPipelineCreateFlagBits.html>"]
|
||||
pub struct PipelineCreateFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(PipelineCreateFlags, 0b111, Flags);
|
||||
impl PipelineCreateFlags {
|
||||
pub const DISABLE_OPTIMIZATION: Self = Self(0b1);
|
||||
pub const ALLOW_DERIVATIVES: Self = Self(0b10);
|
||||
pub const DERIVATIVE: Self = Self(0b100);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPipelineShaderStageCreateFlagBits.html>"]
|
||||
pub struct PipelineShaderStageCreateFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(PipelineShaderStageCreateFlags, 0b0, Flags);
|
||||
impl PipelineShaderStageCreateFlags {}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkColorComponentFlagBits.html>"]
|
||||
pub struct ColorComponentFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(ColorComponentFlags, 0b1111, Flags);
|
||||
impl ColorComponentFlags {
|
||||
pub const R: Self = Self(0b1);
|
||||
pub const G: Self = Self(0b10);
|
||||
pub const B: Self = Self(0b100);
|
||||
pub const A: Self = Self(0b1000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkFenceCreateFlagBits.html>"]
|
||||
pub struct FenceCreateFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(FenceCreateFlags, 0b1, Flags);
|
||||
impl FenceCreateFlags {
|
||||
pub const SIGNALED: Self = Self(0b1);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSemaphoreCreateFlagBits.html>"]
|
||||
pub struct SemaphoreCreateFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(SemaphoreCreateFlags, 0b0, Flags);
|
||||
impl SemaphoreCreateFlags {}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkFormatFeatureFlagBits.html>"]
|
||||
pub struct FormatFeatureFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(FormatFeatureFlags, 0b1_1111_1111_1111, Flags);
|
||||
impl FormatFeatureFlags {
|
||||
#[doc = "Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)"]
|
||||
pub const SAMPLED_IMAGE: Self = Self(0b1);
|
||||
#[doc = "Format can be used for storage images (STORAGE_IMAGE descriptor type)"]
|
||||
pub const STORAGE_IMAGE: Self = Self(0b10);
|
||||
#[doc = "Format supports atomic operations in case it is used for storage images"]
|
||||
pub const STORAGE_IMAGE_ATOMIC: Self = Self(0b100);
|
||||
#[doc = "Format can be used for uniform texel buffers (TBOs)"]
|
||||
pub const UNIFORM_TEXEL_BUFFER: Self = Self(0b1000);
|
||||
#[doc = "Format can be used for storage texel buffers (IBOs)"]
|
||||
pub const STORAGE_TEXEL_BUFFER: Self = Self(0b1_0000);
|
||||
#[doc = "Format supports atomic operations in case it is used for storage texel buffers"]
|
||||
pub const STORAGE_TEXEL_BUFFER_ATOMIC: Self = Self(0b10_0000);
|
||||
#[doc = "Format can be used for vertex buffers (VBOs)"]
|
||||
pub const VERTEX_BUFFER: Self = Self(0b100_0000);
|
||||
#[doc = "Format can be used for color attachment images"]
|
||||
pub const COLOR_ATTACHMENT: Self = Self(0b1000_0000);
|
||||
#[doc = "Format supports blending in case it is used for color attachment images"]
|
||||
pub const COLOR_ATTACHMENT_BLEND: Self = Self(0b1_0000_0000);
|
||||
#[doc = "Format can be used for depth/stencil attachment images"]
|
||||
pub const DEPTH_STENCIL_ATTACHMENT: Self = Self(0b10_0000_0000);
|
||||
#[doc = "Format can be used as the source image of blits with vkCmdBlitImage"]
|
||||
pub const BLIT_SRC: Self = Self(0b100_0000_0000);
|
||||
#[doc = "Format can be used as the destination image of blits with vkCmdBlitImage"]
|
||||
pub const BLIT_DST: Self = Self(0b1000_0000_0000);
|
||||
#[doc = "Format can be filtered with VK_FILTER_LINEAR when being sampled"]
|
||||
pub const SAMPLED_IMAGE_FILTER_LINEAR: Self = Self(0b1_0000_0000_0000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkQueryControlFlagBits.html>"]
|
||||
pub struct QueryControlFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(QueryControlFlags, 0b1, Flags);
|
||||
impl QueryControlFlags {
|
||||
#[doc = "Require precise results to be collected by the query"]
|
||||
pub const PRECISE: Self = Self(0b1);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkQueryResultFlagBits.html>"]
|
||||
pub struct QueryResultFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(QueryResultFlags, 0b1111, Flags);
|
||||
impl QueryResultFlags {
|
||||
#[doc = "Results of the queries are written to the destination buffer as 64-bit values"]
|
||||
pub const TYPE_64: Self = Self(0b1);
|
||||
#[doc = "Results of the queries are waited on before proceeding with the result copy"]
|
||||
pub const WAIT: Self = Self(0b10);
|
||||
#[doc = "Besides the results of the query, the availability of the results is also written"]
|
||||
pub const WITH_AVAILABILITY: Self = Self(0b100);
|
||||
#[doc = "Copy the partial results of the query even if the final results are not available"]
|
||||
pub const PARTIAL: Self = Self(0b1000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkCommandBufferUsageFlagBits.html>"]
|
||||
pub struct CommandBufferUsageFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(CommandBufferUsageFlags, 0b111, Flags);
|
||||
impl CommandBufferUsageFlags {
|
||||
pub const ONE_TIME_SUBMIT: Self = Self(0b1);
|
||||
pub const RENDER_PASS_CONTINUE: Self = Self(0b10);
|
||||
#[doc = "Command buffer may be submitted/executed more than once simultaneously"]
|
||||
pub const SIMULTANEOUS_USE: Self = Self(0b100);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkQueryPipelineStatisticFlagBits.html>"]
|
||||
pub struct QueryPipelineStatisticFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(QueryPipelineStatisticFlags, 0b111_1111_1111, Flags);
|
||||
impl QueryPipelineStatisticFlags {
|
||||
#[doc = "Optional"]
|
||||
pub const INPUT_ASSEMBLY_VERTICES: Self = Self(0b1);
|
||||
#[doc = "Optional"]
|
||||
pub const INPUT_ASSEMBLY_PRIMITIVES: Self = Self(0b10);
|
||||
#[doc = "Optional"]
|
||||
pub const VERTEX_SHADER_INVOCATIONS: Self = Self(0b100);
|
||||
#[doc = "Optional"]
|
||||
pub const GEOMETRY_SHADER_INVOCATIONS: Self = Self(0b1000);
|
||||
#[doc = "Optional"]
|
||||
pub const GEOMETRY_SHADER_PRIMITIVES: Self = Self(0b1_0000);
|
||||
#[doc = "Optional"]
|
||||
pub const CLIPPING_INVOCATIONS: Self = Self(0b10_0000);
|
||||
#[doc = "Optional"]
|
||||
pub const CLIPPING_PRIMITIVES: Self = Self(0b100_0000);
|
||||
#[doc = "Optional"]
|
||||
pub const FRAGMENT_SHADER_INVOCATIONS: Self = Self(0b1000_0000);
|
||||
#[doc = "Optional"]
|
||||
pub const TESSELLATION_CONTROL_SHADER_PATCHES: Self = Self(0b1_0000_0000);
|
||||
#[doc = "Optional"]
|
||||
pub const TESSELLATION_EVALUATION_SHADER_INVOCATIONS: Self = Self(0b10_0000_0000);
|
||||
#[doc = "Optional"]
|
||||
pub const COMPUTE_SHADER_INVOCATIONS: Self = Self(0b100_0000_0000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkImageAspectFlagBits.html>"]
|
||||
pub struct ImageAspectFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(ImageAspectFlags, 0b1111, Flags);
|
||||
impl ImageAspectFlags {
|
||||
pub const COLOR: Self = Self(0b1);
|
||||
pub const DEPTH: Self = Self(0b10);
|
||||
pub const STENCIL: Self = Self(0b100);
|
||||
pub const METADATA: Self = Self(0b1000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSparseImageFormatFlagBits.html>"]
|
||||
pub struct SparseImageFormatFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(SparseImageFormatFlags, 0b111, Flags);
|
||||
impl SparseImageFormatFlags {
|
||||
#[doc = "Image uses a single mip tail region for all array layers"]
|
||||
pub const SINGLE_MIPTAIL: Self = Self(0b1);
|
||||
#[doc = "Image requires mip level dimensions to be an integer multiple of the sparse image block dimensions for non-tail mip levels."]
|
||||
pub const ALIGNED_MIP_SIZE: Self = Self(0b10);
|
||||
#[doc = "Image uses a non-standard sparse image block dimensions"]
|
||||
pub const NONSTANDARD_BLOCK_SIZE: Self = Self(0b100);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSparseMemoryBindFlagBits.html>"]
|
||||
pub struct SparseMemoryBindFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(SparseMemoryBindFlags, 0b1, Flags);
|
||||
impl SparseMemoryBindFlags {
|
||||
#[doc = "Operation binds resource metadata to memory"]
|
||||
pub const METADATA: Self = Self(0b1);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPipelineStageFlagBits.html>"]
|
||||
pub struct PipelineStageFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(PipelineStageFlags, 0b1_1111_1111_1111_1111, Flags);
|
||||
impl PipelineStageFlags {
|
||||
#[doc = "Before subsequent commands are processed"]
|
||||
pub const TOP_OF_PIPE: Self = Self(0b1);
|
||||
#[doc = "Draw/DispatchIndirect command fetch"]
|
||||
pub const DRAW_INDIRECT: Self = Self(0b10);
|
||||
#[doc = "Vertex/index fetch"]
|
||||
pub const VERTEX_INPUT: Self = Self(0b100);
|
||||
#[doc = "Vertex shading"]
|
||||
pub const VERTEX_SHADER: Self = Self(0b1000);
|
||||
#[doc = "Tessellation control shading"]
|
||||
pub const TESSELLATION_CONTROL_SHADER: Self = Self(0b1_0000);
|
||||
#[doc = "Tessellation evaluation shading"]
|
||||
pub const TESSELLATION_EVALUATION_SHADER: Self = Self(0b10_0000);
|
||||
#[doc = "Geometry shading"]
|
||||
pub const GEOMETRY_SHADER: Self = Self(0b100_0000);
|
||||
#[doc = "Fragment shading"]
|
||||
pub const FRAGMENT_SHADER: Self = Self(0b1000_0000);
|
||||
#[doc = "Early fragment (depth and stencil) tests"]
|
||||
pub const EARLY_FRAGMENT_TESTS: Self = Self(0b1_0000_0000);
|
||||
#[doc = "Late fragment (depth and stencil) tests"]
|
||||
pub const LATE_FRAGMENT_TESTS: Self = Self(0b10_0000_0000);
|
||||
#[doc = "Color attachment writes"]
|
||||
pub const COLOR_ATTACHMENT_OUTPUT: Self = Self(0b100_0000_0000);
|
||||
#[doc = "Compute shading"]
|
||||
pub const COMPUTE_SHADER: Self = Self(0b1000_0000_0000);
|
||||
#[doc = "Transfer/copy operations"]
|
||||
pub const TRANSFER: Self = Self(0b1_0000_0000_0000);
|
||||
#[doc = "After previous commands have completed"]
|
||||
pub const BOTTOM_OF_PIPE: Self = Self(0b10_0000_0000_0000);
|
||||
#[doc = "Indicates host (CPU) is a source/sink of the dependency"]
|
||||
pub const HOST: Self = Self(0b100_0000_0000_0000);
|
||||
#[doc = "All stages of the graphics pipeline"]
|
||||
pub const ALL_GRAPHICS: Self = Self(0b1000_0000_0000_0000);
|
||||
#[doc = "All stages supported on the queue"]
|
||||
pub const ALL_COMMANDS: Self = Self(0b1_0000_0000_0000_0000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkCommandPoolCreateFlagBits.html>"]
|
||||
pub struct CommandPoolCreateFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(CommandPoolCreateFlags, 0b11, Flags);
|
||||
impl CommandPoolCreateFlags {
|
||||
#[doc = "Command buffers have a short lifetime"]
|
||||
pub const TRANSIENT: Self = Self(0b1);
|
||||
#[doc = "Command buffers may release their memory individually"]
|
||||
pub const RESET_COMMAND_BUFFER: Self = Self(0b10);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkCommandPoolResetFlagBits.html>"]
|
||||
pub struct CommandPoolResetFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(CommandPoolResetFlags, 0b1, Flags);
|
||||
impl CommandPoolResetFlags {
|
||||
#[doc = "Release resources owned by the pool"]
|
||||
pub const RELEASE_RESOURCES: Self = Self(0b1);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkCommandBufferResetFlagBits.html>"]
|
||||
pub struct CommandBufferResetFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(CommandBufferResetFlags, 0b1, Flags);
|
||||
impl CommandBufferResetFlags {
|
||||
#[doc = "Release resources owned by the buffer"]
|
||||
pub const RELEASE_RESOURCES: Self = Self(0b1);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSampleCountFlagBits.html>"]
|
||||
pub struct SampleCountFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(SampleCountFlags, 0b111_1111, Flags);
|
||||
impl SampleCountFlags {
|
||||
#[doc = "Sample count 1 supported"]
|
||||
pub const TYPE_1: Self = Self(0b1);
|
||||
#[doc = "Sample count 2 supported"]
|
||||
pub const TYPE_2: Self = Self(0b10);
|
||||
#[doc = "Sample count 4 supported"]
|
||||
pub const TYPE_4: Self = Self(0b100);
|
||||
#[doc = "Sample count 8 supported"]
|
||||
pub const TYPE_8: Self = Self(0b1000);
|
||||
#[doc = "Sample count 16 supported"]
|
||||
pub const TYPE_16: Self = Self(0b1_0000);
|
||||
#[doc = "Sample count 32 supported"]
|
||||
pub const TYPE_32: Self = Self(0b10_0000);
|
||||
#[doc = "Sample count 64 supported"]
|
||||
pub const TYPE_64: Self = Self(0b100_0000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkAttachmentDescriptionFlagBits.html>"]
|
||||
pub struct AttachmentDescriptionFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(AttachmentDescriptionFlags, 0b1, Flags);
|
||||
impl AttachmentDescriptionFlags {
|
||||
#[doc = "The attachment may alias physical memory of another attachment in the same render pass"]
|
||||
pub const MAY_ALIAS: Self = Self(0b1);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkStencilFaceFlagBits.html>"]
|
||||
pub struct StencilFaceFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(StencilFaceFlags, 0b11, Flags);
|
||||
impl StencilFaceFlags {
|
||||
#[doc = "Front face"]
|
||||
pub const FRONT: Self = Self(0b1);
|
||||
#[doc = "Back face"]
|
||||
pub const BACK: Self = Self(0b10);
|
||||
#[doc = "Front and back faces"]
|
||||
pub const FRONT_AND_BACK: Self = Self(0x0000_0003);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDescriptorPoolCreateFlagBits.html>"]
|
||||
pub struct DescriptorPoolCreateFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(DescriptorPoolCreateFlags, 0b1, Flags);
|
||||
impl DescriptorPoolCreateFlags {
|
||||
#[doc = "Descriptor sets may be freed individually"]
|
||||
pub const FREE_DESCRIPTOR_SET: Self = Self(0b1);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDependencyFlagBits.html>"]
|
||||
pub struct DependencyFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(DependencyFlags, 0b1, Flags);
|
||||
impl DependencyFlags {
|
||||
#[doc = "Dependency is per pixel region "]
|
||||
pub const BY_REGION: Self = Self(0b1);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSemaphoreWaitFlagBits.html>"]
|
||||
pub struct SemaphoreWaitFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(SemaphoreWaitFlags, 0b1, Flags);
|
||||
impl SemaphoreWaitFlags {
|
||||
pub const ANY: Self = Self(0b1);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDisplayPlaneAlphaFlagBitsKHR.html>"]
|
||||
pub struct DisplayPlaneAlphaFlagsKHR(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(DisplayPlaneAlphaFlagsKHR, 0b1111, Flags);
|
||||
impl DisplayPlaneAlphaFlagsKHR {
|
||||
pub const OPAQUE: Self = Self(0b1);
|
||||
pub const GLOBAL: Self = Self(0b10);
|
||||
pub const PER_PIXEL: Self = Self(0b100);
|
||||
pub const PER_PIXEL_PREMULTIPLIED: Self = Self(0b1000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkCompositeAlphaFlagBitsKHR.html>"]
|
||||
pub struct CompositeAlphaFlagsKHR(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(CompositeAlphaFlagsKHR, 0b1111, Flags);
|
||||
impl CompositeAlphaFlagsKHR {
|
||||
pub const OPAQUE: Self = Self(0b1);
|
||||
pub const PRE_MULTIPLIED: Self = Self(0b10);
|
||||
pub const POST_MULTIPLIED: Self = Self(0b100);
|
||||
pub const INHERIT: Self = Self(0b1000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSurfaceTransformFlagBitsKHR.html>"]
|
||||
pub struct SurfaceTransformFlagsKHR(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(SurfaceTransformFlagsKHR, 0b1_1111_1111, Flags);
|
||||
impl SurfaceTransformFlagsKHR {
|
||||
pub const IDENTITY: Self = Self(0b1);
|
||||
pub const ROTATE_90: Self = Self(0b10);
|
||||
pub const ROTATE_180: Self = Self(0b100);
|
||||
pub const ROTATE_270: Self = Self(0b1000);
|
||||
pub const HORIZONTAL_MIRROR: Self = Self(0b1_0000);
|
||||
pub const HORIZONTAL_MIRROR_ROTATE_90: Self = Self(0b10_0000);
|
||||
pub const HORIZONTAL_MIRROR_ROTATE_180: Self = Self(0b100_0000);
|
||||
pub const HORIZONTAL_MIRROR_ROTATE_270: Self = Self(0b1000_0000);
|
||||
pub const INHERIT: Self = Self(0b1_0000_0000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSwapchainImageUsageFlagBitsANDROID.html>"]
|
||||
pub struct SwapchainImageUsageFlagsANDROID(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(SwapchainImageUsageFlagsANDROID, 0b1, Flags);
|
||||
impl SwapchainImageUsageFlagsANDROID {
|
||||
pub const SHARED: Self = Self(0b1);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDebugReportFlagBitsEXT.html>"]
|
||||
pub struct DebugReportFlagsEXT(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(DebugReportFlagsEXT, 0b1_1111, Flags);
|
||||
impl DebugReportFlagsEXT {
|
||||
pub const INFORMATION: Self = Self(0b1);
|
||||
pub const WARNING: Self = Self(0b10);
|
||||
pub const PERFORMANCE_WARNING: Self = Self(0b100);
|
||||
pub const ERROR: Self = Self(0b1000);
|
||||
pub const DEBUG: Self = Self(0b1_0000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkExternalMemoryHandleTypeFlagBitsNV.html>"]
|
||||
pub struct ExternalMemoryHandleTypeFlagsNV(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(ExternalMemoryHandleTypeFlagsNV, 0b1111, Flags);
|
||||
impl ExternalMemoryHandleTypeFlagsNV {
|
||||
pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_NV: Self = Self(0b1);
|
||||
pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_NV: Self = Self(0b10);
|
||||
pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_NV: Self = Self(0b100);
|
||||
pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_NV: Self = Self(0b1000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkExternalMemoryFeatureFlagBitsNV.html>"]
|
||||
pub struct ExternalMemoryFeatureFlagsNV(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(ExternalMemoryFeatureFlagsNV, 0b111, Flags);
|
||||
impl ExternalMemoryFeatureFlagsNV {
|
||||
pub const EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_NV: Self = Self(0b1);
|
||||
pub const EXTERNAL_MEMORY_FEATURE_EXPORTABLE_NV: Self = Self(0b10);
|
||||
pub const EXTERNAL_MEMORY_FEATURE_IMPORTABLE_NV: Self = Self(0b100);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSubgroupFeatureFlagBits.html>"]
|
||||
pub struct SubgroupFeatureFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(SubgroupFeatureFlags, 0b1111_1111, Flags);
|
||||
impl SubgroupFeatureFlags {
|
||||
#[doc = "Basic subgroup operations"]
|
||||
pub const BASIC: Self = Self(0b1);
|
||||
#[doc = "Vote subgroup operations"]
|
||||
pub const VOTE: Self = Self(0b10);
|
||||
#[doc = "Arithmetic subgroup operations"]
|
||||
pub const ARITHMETIC: Self = Self(0b100);
|
||||
#[doc = "Ballot subgroup operations"]
|
||||
pub const BALLOT: Self = Self(0b1000);
|
||||
#[doc = "Shuffle subgroup operations"]
|
||||
pub const SHUFFLE: Self = Self(0b1_0000);
|
||||
#[doc = "Shuffle relative subgroup operations"]
|
||||
pub const SHUFFLE_RELATIVE: Self = Self(0b10_0000);
|
||||
#[doc = "Clustered subgroup operations"]
|
||||
pub const CLUSTERED: Self = Self(0b100_0000);
|
||||
#[doc = "Quad subgroup operations"]
|
||||
pub const QUAD: Self = Self(0b1000_0000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkIndirectCommandsLayoutUsageFlagBitsNV.html>"]
|
||||
pub struct IndirectCommandsLayoutUsageFlagsNV(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(IndirectCommandsLayoutUsageFlagsNV, 0b111, Flags);
|
||||
impl IndirectCommandsLayoutUsageFlagsNV {
|
||||
pub const EXPLICIT_PREPROCESS: Self = Self(0b1);
|
||||
pub const INDEXED_SEQUENCES: Self = Self(0b10);
|
||||
pub const UNORDERED_SEQUENCES: Self = Self(0b100);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkIndirectStateFlagBitsNV.html>"]
|
||||
pub struct IndirectStateFlagsNV(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(IndirectStateFlagsNV, 0b1, Flags);
|
||||
impl IndirectStateFlagsNV {
|
||||
pub const FLAG_FRONTFACE: Self = Self(0b1);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDescriptorSetLayoutCreateFlagBits.html>"]
|
||||
pub struct DescriptorSetLayoutCreateFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(DescriptorSetLayoutCreateFlags, 0b0, Flags);
|
||||
impl DescriptorSetLayoutCreateFlags {}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkExternalMemoryHandleTypeFlagBits.html>"]
|
||||
pub struct ExternalMemoryHandleTypeFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(ExternalMemoryHandleTypeFlags, 0b111_1111, Flags);
|
||||
impl ExternalMemoryHandleTypeFlags {
|
||||
pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD: Self = Self(0b1);
|
||||
pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32: Self = Self(0b10);
|
||||
pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT: Self = Self(0b100);
|
||||
pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE: Self = Self(0b1000);
|
||||
pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT: Self = Self(0b1_0000);
|
||||
pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP: Self = Self(0b10_0000);
|
||||
pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE: Self = Self(0b100_0000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkExternalMemoryFeatureFlagBits.html>"]
|
||||
pub struct ExternalMemoryFeatureFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(ExternalMemoryFeatureFlags, 0b111, Flags);
|
||||
impl ExternalMemoryFeatureFlags {
|
||||
pub const EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY: Self = Self(0b1);
|
||||
pub const EXTERNAL_MEMORY_FEATURE_EXPORTABLE: Self = Self(0b10);
|
||||
pub const EXTERNAL_MEMORY_FEATURE_IMPORTABLE: Self = Self(0b100);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkExternalSemaphoreHandleTypeFlagBits.html>"]
|
||||
pub struct ExternalSemaphoreHandleTypeFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(ExternalSemaphoreHandleTypeFlags, 0b1_1111, Flags);
|
||||
impl ExternalSemaphoreHandleTypeFlags {
|
||||
pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD: Self = Self(0b1);
|
||||
pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32: Self = Self(0b10);
|
||||
pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT: Self = Self(0b100);
|
||||
pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE: Self = Self(0b1000);
|
||||
pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD: Self = Self(0b1_0000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkExternalSemaphoreFeatureFlagBits.html>"]
|
||||
pub struct ExternalSemaphoreFeatureFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(ExternalSemaphoreFeatureFlags, 0b11, Flags);
|
||||
impl ExternalSemaphoreFeatureFlags {
|
||||
pub const EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE: Self = Self(0b1);
|
||||
pub const EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE: Self = Self(0b10);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSemaphoreImportFlagBits.html>"]
|
||||
pub struct SemaphoreImportFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(SemaphoreImportFlags, 0b1, Flags);
|
||||
impl SemaphoreImportFlags {
|
||||
pub const TEMPORARY: Self = Self(0b1);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkExternalFenceHandleTypeFlagBits.html>"]
|
||||
pub struct ExternalFenceHandleTypeFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(ExternalFenceHandleTypeFlags, 0b1111, Flags);
|
||||
impl ExternalFenceHandleTypeFlags {
|
||||
pub const EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD: Self = Self(0b1);
|
||||
pub const EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32: Self = Self(0b10);
|
||||
pub const EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT: Self = Self(0b100);
|
||||
pub const EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD: Self = Self(0b1000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkExternalFenceFeatureFlagBits.html>"]
|
||||
pub struct ExternalFenceFeatureFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(ExternalFenceFeatureFlags, 0b11, Flags);
|
||||
impl ExternalFenceFeatureFlags {
|
||||
pub const EXTERNAL_FENCE_FEATURE_EXPORTABLE: Self = Self(0b1);
|
||||
pub const EXTERNAL_FENCE_FEATURE_IMPORTABLE: Self = Self(0b10);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkFenceImportFlagBits.html>"]
|
||||
pub struct FenceImportFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(FenceImportFlags, 0b1, Flags);
|
||||
impl FenceImportFlags {
|
||||
pub const TEMPORARY: Self = Self(0b1);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSurfaceCounterFlagBitsEXT.html>"]
|
||||
pub struct SurfaceCounterFlagsEXT(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(SurfaceCounterFlagsEXT, 0b1, Flags);
|
||||
impl SurfaceCounterFlagsEXT {
|
||||
pub const VBLANK: Self = Self(0b1);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPeerMemoryFeatureFlagBits.html>"]
|
||||
pub struct PeerMemoryFeatureFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(PeerMemoryFeatureFlags, 0b1111, Flags);
|
||||
impl PeerMemoryFeatureFlags {
|
||||
#[doc = "Can read with vkCmdCopy commands"]
|
||||
pub const COPY_SRC: Self = Self(0b1);
|
||||
#[doc = "Can write with vkCmdCopy commands"]
|
||||
pub const COPY_DST: Self = Self(0b10);
|
||||
#[doc = "Can read with any access type/command"]
|
||||
pub const GENERIC_SRC: Self = Self(0b100);
|
||||
#[doc = "Can write with and access type/command"]
|
||||
pub const GENERIC_DST: Self = Self(0b1000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkMemoryAllocateFlagBits.html>"]
|
||||
pub struct MemoryAllocateFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(MemoryAllocateFlags, 0b1, Flags);
|
||||
impl MemoryAllocateFlags {
|
||||
#[doc = "Force allocation on specific devices"]
|
||||
pub const DEVICE_MASK: Self = Self(0b1);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDeviceGroupPresentModeFlagBitsKHR.html>"]
|
||||
pub struct DeviceGroupPresentModeFlagsKHR(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(DeviceGroupPresentModeFlagsKHR, 0b1111, Flags);
|
||||
impl DeviceGroupPresentModeFlagsKHR {
|
||||
#[doc = "Present from local memory"]
|
||||
pub const LOCAL: Self = Self(0b1);
|
||||
#[doc = "Present from remote memory"]
|
||||
pub const REMOTE: Self = Self(0b10);
|
||||
#[doc = "Present sum of local and/or remote memory"]
|
||||
pub const SUM: Self = Self(0b100);
|
||||
#[doc = "Each physical device presents from local memory"]
|
||||
pub const LOCAL_MULTI_DEVICE: Self = Self(0b1000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSwapchainCreateFlagBitsKHR.html>"]
|
||||
pub struct SwapchainCreateFlagsKHR(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(SwapchainCreateFlagsKHR, 0b0, Flags);
|
||||
impl SwapchainCreateFlagsKHR {}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSubpassDescriptionFlagBits.html>"]
|
||||
pub struct SubpassDescriptionFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(SubpassDescriptionFlags, 0b0, Flags);
|
||||
impl SubpassDescriptionFlags {}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDebugUtilsMessageSeverityFlagBitsEXT.html>"]
|
||||
pub struct DebugUtilsMessageSeverityFlagsEXT(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(DebugUtilsMessageSeverityFlagsEXT, 0b1_0001_0001_0001, Flags);
|
||||
impl DebugUtilsMessageSeverityFlagsEXT {
|
||||
pub const VERBOSE: Self = Self(0b1);
|
||||
pub const INFO: Self = Self(0b1_0000);
|
||||
pub const WARNING: Self = Self(0b1_0000_0000);
|
||||
pub const ERROR: Self = Self(0b1_0000_0000_0000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDebugUtilsMessageTypeFlagBitsEXT.html>"]
|
||||
pub struct DebugUtilsMessageTypeFlagsEXT(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(DebugUtilsMessageTypeFlagsEXT, 0b111, Flags);
|
||||
impl DebugUtilsMessageTypeFlagsEXT {
|
||||
pub const GENERAL: Self = Self(0b1);
|
||||
pub const VALIDATION: Self = Self(0b10);
|
||||
pub const PERFORMANCE: Self = Self(0b100);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDescriptorBindingFlagBits.html>"]
|
||||
pub struct DescriptorBindingFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(DescriptorBindingFlags, 0b1111, Flags);
|
||||
impl DescriptorBindingFlags {
|
||||
pub const UPDATE_AFTER_BIND: Self = Self(0b1);
|
||||
pub const UPDATE_UNUSED_WHILE_PENDING: Self = Self(0b10);
|
||||
pub const PARTIALLY_BOUND: Self = Self(0b100);
|
||||
pub const VARIABLE_DESCRIPTOR_COUNT: Self = Self(0b1000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkConditionalRenderingFlagBitsEXT.html>"]
|
||||
pub struct ConditionalRenderingFlagsEXT(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(ConditionalRenderingFlagsEXT, 0b1, Flags);
|
||||
impl ConditionalRenderingFlagsEXT {
|
||||
pub const INVERTED: Self = Self(0b1);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkResolveModeFlagBits.html>"]
|
||||
pub struct ResolveModeFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(ResolveModeFlags, 0b1111, Flags);
|
||||
impl ResolveModeFlags {
|
||||
pub const NONE: Self = Self(0);
|
||||
pub const SAMPLE_ZERO: Self = Self(0b1);
|
||||
pub const AVERAGE: Self = Self(0b10);
|
||||
pub const MIN: Self = Self(0b100);
|
||||
pub const MAX: Self = Self(0b1000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkGeometryInstanceFlagBitsKHR.html>"]
|
||||
pub struct GeometryInstanceFlagsKHR(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(GeometryInstanceFlagsKHR, 0b1111, Flags);
|
||||
impl GeometryInstanceFlagsKHR {
|
||||
pub const TRIANGLE_FACING_CULL_DISABLE: Self = Self(0b1);
|
||||
pub const TRIANGLE_FRONT_COUNTERCLOCKWISE: Self = Self(0b10);
|
||||
pub const FORCE_OPAQUE: Self = Self(0b100);
|
||||
pub const FORCE_NO_OPAQUE: Self = Self(0b1000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkGeometryFlagBitsKHR.html>"]
|
||||
pub struct GeometryFlagsKHR(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(GeometryFlagsKHR, 0b11, Flags);
|
||||
impl GeometryFlagsKHR {
|
||||
pub const OPAQUE: Self = Self(0b1);
|
||||
pub const NO_DUPLICATE_ANY_HIT_INVOCATION: Self = Self(0b10);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkBuildAccelerationStructureFlagBitsKHR.html>"]
|
||||
pub struct BuildAccelerationStructureFlagsKHR(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(BuildAccelerationStructureFlagsKHR, 0b1_1111, Flags);
|
||||
impl BuildAccelerationStructureFlagsKHR {
|
||||
pub const ALLOW_UPDATE: Self = Self(0b1);
|
||||
pub const ALLOW_COMPACTION: Self = Self(0b10);
|
||||
pub const PREFER_FAST_TRACE: Self = Self(0b100);
|
||||
pub const PREFER_FAST_BUILD: Self = Self(0b1000);
|
||||
pub const LOW_MEMORY: Self = Self(0b1_0000);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkFramebufferCreateFlagBits.html>"]
|
||||
pub struct FramebufferCreateFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(FramebufferCreateFlags, 0b0, Flags);
|
||||
impl FramebufferCreateFlags {}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDeviceDiagnosticsConfigFlagBitsNV.html>"]
|
||||
pub struct DeviceDiagnosticsConfigFlagsNV(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(DeviceDiagnosticsConfigFlagsNV, 0b111, Flags);
|
||||
impl DeviceDiagnosticsConfigFlagsNV {
|
||||
pub const ENABLE_SHADER_DEBUG_INFO: Self = Self(0b1);
|
||||
pub const ENABLE_RESOURCE_TRACKING: Self = Self(0b10);
|
||||
pub const ENABLE_AUTOMATIC_CHECKPOINTS: Self = Self(0b100);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPipelineCreationFeedbackFlagBitsEXT.html>"]
|
||||
pub struct PipelineCreationFeedbackFlagsEXT(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(PipelineCreationFeedbackFlagsEXT, 0b111, Flags);
|
||||
impl PipelineCreationFeedbackFlagsEXT {
|
||||
pub const VALID: Self = Self(0b1);
|
||||
pub const APPLICATION_PIPELINE_CACHE_HIT: Self = Self(0b10);
|
||||
pub const BASE_PIPELINE_ACCELERATION: Self = Self(0b100);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPerformanceCounterDescriptionFlagBitsKHR.html>"]
|
||||
pub struct PerformanceCounterDescriptionFlagsKHR(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(PerformanceCounterDescriptionFlagsKHR, 0b11, Flags);
|
||||
impl PerformanceCounterDescriptionFlagsKHR {
|
||||
pub const PERFORMANCE_IMPACTING: Self = Self(0b1);
|
||||
pub const CONCURRENTLY_IMPACTED: Self = Self(0b10);
|
||||
}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkAcquireProfilingLockFlagBitsKHR.html>"]
|
||||
pub struct AcquireProfilingLockFlagsKHR(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(AcquireProfilingLockFlagsKHR, 0b0, Flags);
|
||||
impl AcquireProfilingLockFlagsKHR {}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkShaderCorePropertiesFlagBitsAMD.html>"]
|
||||
pub struct ShaderCorePropertiesFlagsAMD(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(ShaderCorePropertiesFlagsAMD, 0b0, Flags);
|
||||
impl ShaderCorePropertiesFlagsAMD {}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkShaderModuleCreateFlagBits.html>"]
|
||||
pub struct ShaderModuleCreateFlags(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(ShaderModuleCreateFlags, 0b0, Flags);
|
||||
impl ShaderModuleCreateFlags {}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPipelineCompilerControlFlagBitsAMD.html>"]
|
||||
pub struct PipelineCompilerControlFlagsAMD(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(PipelineCompilerControlFlagsAMD, 0b0, Flags);
|
||||
impl PipelineCompilerControlFlagsAMD {}
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkToolPurposeFlagBitsEXT.html>"]
|
||||
pub struct ToolPurposeFlagsEXT(pub(crate) Flags);
|
||||
vk_bitflags_wrapped!(ToolPurposeFlagsEXT, 0b1_1111, Flags);
|
||||
impl ToolPurposeFlagsEXT {
|
||||
pub const VALIDATION: Self = Self(0b1);
|
||||
pub const PROFILING: Self = Self(0b10);
|
||||
pub const TRACING: Self = Self(0b100);
|
||||
pub const ADDITIONAL_FEATURES: Self = Self(0b1000);
|
||||
pub const MODIFYING_FEATURES: Self = Self(0b1_0000);
|
||||
}
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,24 @@
|
|||
use crate::vk::definitions::*;
|
||||
pub const MAX_PHYSICAL_DEVICE_NAME_SIZE: usize = 256;
|
||||
pub const UUID_SIZE: usize = 16;
|
||||
pub const LUID_SIZE: usize = 8;
|
||||
pub const MAX_EXTENSION_NAME_SIZE: usize = 256;
|
||||
pub const MAX_DESCRIPTION_SIZE: usize = 256;
|
||||
pub const MAX_MEMORY_TYPES: usize = 32;
|
||||
pub const MAX_MEMORY_HEAPS: usize = 16;
|
||||
pub const LOD_CLAMP_NONE: f32 = 1000.00;
|
||||
pub const REMAINING_MIP_LEVELS: u32 = !0;
|
||||
pub const REMAINING_ARRAY_LAYERS: u32 = !0;
|
||||
pub const WHOLE_SIZE: u64 = !0;
|
||||
pub const ATTACHMENT_UNUSED: u32 = !0;
|
||||
pub const TRUE: Bool32 = 1;
|
||||
pub const FALSE: Bool32 = 0;
|
||||
pub const QUEUE_FAMILY_IGNORED: u32 = !0;
|
||||
pub const QUEUE_FAMILY_EXTERNAL: u32 = !0 - 1;
|
||||
pub const QUEUE_FAMILY_FOREIGN_EXT: u32 = !0 - 2;
|
||||
pub const SUBPASS_EXTERNAL: u32 = !0;
|
||||
pub const MAX_DEVICE_GROUP_SIZE: usize = 32;
|
||||
pub const MAX_DRIVER_NAME_SIZE: usize = 256;
|
||||
pub const MAX_DRIVER_INFO_SIZE: usize = 256;
|
||||
pub const SHADER_UNUSED_KHR: u32 = !0;
|
||||
pub const SHADER_UNUSED_NV: u32 = SHADER_UNUSED_KHR;
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,807 @@
|
|||
use crate::vk::bitflags::*;
|
||||
use crate::vk::enums::*;
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: Self = Self(1_000_094_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const BIND_BUFFER_MEMORY_INFO: Self = Self(1_000_157_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const BIND_IMAGE_MEMORY_INFO: Self = Self(1_000_157_001);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl ImageCreateFlags {
|
||||
pub const ALIAS: Self = Self(0b100_0000_0000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: Self = Self(1_000_083_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const MEMORY_DEDICATED_REQUIREMENTS: Self = Self(1_000_127_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const MEMORY_DEDICATED_ALLOCATE_INFO: Self = Self(1_000_127_001);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const MEMORY_ALLOCATE_FLAGS_INFO: Self = Self(1_000_060_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: Self = Self(1_000_060_003);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: Self = Self(1_000_060_004);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const DEVICE_GROUP_SUBMIT_INFO: Self = Self(1_000_060_005);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const DEVICE_GROUP_BIND_SPARSE_INFO: Self = Self(1_000_060_006);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl PipelineCreateFlags {
|
||||
pub const VIEW_INDEX_FROM_DEVICE_INDEX: Self = Self(0b1000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl PipelineCreateFlags {
|
||||
pub const DISPATCH_BASE: Self = Self(0b1_0000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl DependencyFlags {
|
||||
pub const DEVICE_GROUP: Self = Self(0b100);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: Self = Self(1_000_060_013);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: Self = Self(1_000_060_014);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl ImageCreateFlags {
|
||||
pub const SPLIT_INSTANCE_BIND_REGIONS: Self = Self(0b100_0000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_GROUP_PROPERTIES: Self = Self(1_000_070_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const DEVICE_GROUP_DEVICE_CREATE_INFO: Self = Self(1_000_070_001);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl MemoryHeapFlags {
|
||||
pub const MULTI_INSTANCE: Self = Self(0b10);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const BUFFER_MEMORY_REQUIREMENTS_INFO_2: Self = Self(1_000_146_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const IMAGE_MEMORY_REQUIREMENTS_INFO_2: Self = Self(1_000_146_001);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2: Self = Self(1_000_146_002);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const MEMORY_REQUIREMENTS_2: Self = Self(1_000_146_003);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const SPARSE_IMAGE_MEMORY_REQUIREMENTS_2: Self = Self(1_000_146_004);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_FEATURES_2: Self = Self(1_000_059_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_PROPERTIES_2: Self = Self(1_000_059_001);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const FORMAT_PROPERTIES_2: Self = Self(1_000_059_002);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const IMAGE_FORMAT_PROPERTIES_2: Self = Self(1_000_059_003);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2: Self = Self(1_000_059_004);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const QUEUE_FAMILY_PROPERTIES_2: Self = Self(1_000_059_005);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_MEMORY_PROPERTIES_2: Self = Self(1_000_059_006);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const SPARSE_IMAGE_FORMAT_PROPERTIES_2: Self = Self(1_000_059_007);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2: Self = Self(1_000_059_008);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Result {
|
||||
pub const ERROR_OUT_OF_POOL_MEMORY: Self = Self(-1_000_069_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl FormatFeatureFlags {
|
||||
pub const TRANSFER_SRC: Self = Self(0b100_0000_0000_0000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl FormatFeatureFlags {
|
||||
pub const TRANSFER_DST: Self = Self(0b1000_0000_0000_0000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl ImageCreateFlags {
|
||||
pub const TYPE_2D_ARRAY_COMPATIBLE: Self = Self(0b10_0000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl ImageCreateFlags {
|
||||
pub const BLOCK_TEXEL_VIEW_COMPATIBLE: Self = Self(0b1000_0000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl ImageCreateFlags {
|
||||
pub const EXTENDED_USAGE: Self = Self(0b1_0000_0000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: Self = Self(1_000_117_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: Self = Self(1_000_117_001);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const IMAGE_VIEW_USAGE_CREATE_INFO: Self = Self(1_000_117_002);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: Self = Self(1_000_117_003);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl ImageLayout {
|
||||
pub const DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL: Self = Self(1_000_117_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl ImageLayout {
|
||||
pub const DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL: Self = Self(1_000_117_001);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const RENDER_PASS_MULTIVIEW_CREATE_INFO: Self = Self(1_000_053_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_MULTIVIEW_FEATURES: Self = Self(1_000_053_001);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: Self = Self(1_000_053_002);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl DependencyFlags {
|
||||
pub const VIEW_LOCAL: Self = Self(0b10);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: Self = Self(1_000_120_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES: Self =
|
||||
StructureType::PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES;
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const PROTECTED_SUBMIT_INFO: Self = Self(1_000_145_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: Self = Self(1_000_145_001);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: Self = Self(1_000_145_002);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const DEVICE_QUEUE_INFO_2: Self = Self(1_000_145_003);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl QueueFlags {
|
||||
pub const PROTECTED: Self = Self(0b1_0000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl DeviceQueueCreateFlags {
|
||||
pub const PROTECTED: Self = Self(0b1);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl MemoryPropertyFlags {
|
||||
pub const PROTECTED: Self = Self(0b10_0000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl BufferCreateFlags {
|
||||
pub const PROTECTED: Self = Self(0b1000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl ImageCreateFlags {
|
||||
pub const PROTECTED: Self = Self(0b1000_0000_0000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl CommandPoolCreateFlags {
|
||||
pub const PROTECTED: Self = Self(0b100);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const SAMPLER_YCBCR_CONVERSION_CREATE_INFO: Self = Self(1_000_156_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const SAMPLER_YCBCR_CONVERSION_INFO: Self = Self(1_000_156_001);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const BIND_IMAGE_PLANE_MEMORY_INFO: Self = Self(1_000_156_002);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: Self = Self(1_000_156_003);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: Self = Self(1_000_156_004);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: Self = Self(1_000_156_005);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl ObjectType {
|
||||
pub const SAMPLER_YCBCR_CONVERSION: Self = Self(1_000_156_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const G8B8G8R8_422_UNORM: Self = Self(1_000_156_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const B8G8R8G8_422_UNORM: Self = Self(1_000_156_001);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const G8_B8_R8_3PLANE_420_UNORM: Self = Self(1_000_156_002);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const G8_B8R8_2PLANE_420_UNORM: Self = Self(1_000_156_003);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const G8_B8_R8_3PLANE_422_UNORM: Self = Self(1_000_156_004);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const G8_B8R8_2PLANE_422_UNORM: Self = Self(1_000_156_005);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const G8_B8_R8_3PLANE_444_UNORM: Self = Self(1_000_156_006);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const R10X6_UNORM_PACK16: Self = Self(1_000_156_007);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const R10X6G10X6_UNORM_2PACK16: Self = Self(1_000_156_008);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const R10X6G10X6B10X6A10X6_UNORM_4PACK16: Self = Self(1_000_156_009);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const G10X6B10X6G10X6R10X6_422_UNORM_4PACK16: Self = Self(1_000_156_010);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const B10X6G10X6R10X6G10X6_422_UNORM_4PACK16: Self = Self(1_000_156_011);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16: Self = Self(1_000_156_012);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16: Self = Self(1_000_156_013);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16: Self = Self(1_000_156_014);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16: Self = Self(1_000_156_015);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16: Self = Self(1_000_156_016);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const R12X4_UNORM_PACK16: Self = Self(1_000_156_017);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const R12X4G12X4_UNORM_2PACK16: Self = Self(1_000_156_018);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const R12X4G12X4B12X4A12X4_UNORM_4PACK16: Self = Self(1_000_156_019);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const G12X4B12X4G12X4R12X4_422_UNORM_4PACK16: Self = Self(1_000_156_020);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const B12X4G12X4R12X4G12X4_422_UNORM_4PACK16: Self = Self(1_000_156_021);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16: Self = Self(1_000_156_022);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16: Self = Self(1_000_156_023);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16: Self = Self(1_000_156_024);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16: Self = Self(1_000_156_025);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16: Self = Self(1_000_156_026);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const G16B16G16R16_422_UNORM: Self = Self(1_000_156_027);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const B16G16R16G16_422_UNORM: Self = Self(1_000_156_028);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const G16_B16_R16_3PLANE_420_UNORM: Self = Self(1_000_156_029);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const G16_B16R16_2PLANE_420_UNORM: Self = Self(1_000_156_030);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const G16_B16_R16_3PLANE_422_UNORM: Self = Self(1_000_156_031);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const G16_B16R16_2PLANE_422_UNORM: Self = Self(1_000_156_032);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Format {
|
||||
pub const G16_B16_R16_3PLANE_444_UNORM: Self = Self(1_000_156_033);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl ImageAspectFlags {
|
||||
pub const PLANE_0: Self = Self(0b1_0000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl ImageAspectFlags {
|
||||
pub const PLANE_1: Self = Self(0b10_0000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl ImageAspectFlags {
|
||||
pub const PLANE_2: Self = Self(0b100_0000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl ImageCreateFlags {
|
||||
pub const DISJOINT: Self = Self(0b10_0000_0000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl FormatFeatureFlags {
|
||||
pub const MIDPOINT_CHROMA_SAMPLES: Self = Self(0b10_0000_0000_0000_0000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl FormatFeatureFlags {
|
||||
pub const SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER: Self = Self(0b100_0000_0000_0000_0000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl FormatFeatureFlags {
|
||||
pub const SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER: Self =
|
||||
Self(0b1000_0000_0000_0000_0000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl FormatFeatureFlags {
|
||||
pub const SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT: Self =
|
||||
Self(0b1_0000_0000_0000_0000_0000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl FormatFeatureFlags {
|
||||
pub const SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE: Self =
|
||||
Self(0b10_0000_0000_0000_0000_0000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl FormatFeatureFlags {
|
||||
pub const DISJOINT: Self = Self(0b100_0000_0000_0000_0000_0000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl FormatFeatureFlags {
|
||||
pub const COSITED_CHROMA_SAMPLES: Self = Self(0b1000_0000_0000_0000_0000_0000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO: Self = Self(1_000_085_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl ObjectType {
|
||||
pub const DESCRIPTOR_UPDATE_TEMPLATE: Self = Self(1_000_085_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: Self = Self(1_000_071_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const EXTERNAL_IMAGE_FORMAT_PROPERTIES: Self = Self(1_000_071_001);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO: Self = Self(1_000_071_002);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const EXTERNAL_BUFFER_PROPERTIES: Self = Self(1_000_071_003);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_ID_PROPERTIES: Self = Self(1_000_071_004);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const EXTERNAL_MEMORY_BUFFER_CREATE_INFO: Self = Self(1_000_072_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const EXTERNAL_MEMORY_IMAGE_CREATE_INFO: Self = Self(1_000_072_001);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const EXPORT_MEMORY_ALLOCATE_INFO: Self = Self(1_000_072_002);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl Result {
|
||||
pub const ERROR_INVALID_EXTERNAL_HANDLE: Self = Self(-1_000_072_003);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO: Self = Self(1_000_112_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const EXTERNAL_FENCE_PROPERTIES: Self = Self(1_000_112_001);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const EXPORT_FENCE_CREATE_INFO: Self = Self(1_000_113_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const EXPORT_SEMAPHORE_CREATE_INFO: Self = Self(1_000_077_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO: Self = Self(1_000_076_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const EXTERNAL_SEMAPHORE_PROPERTIES: Self = Self(1_000_076_001);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: Self = Self(1_000_168_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const DESCRIPTOR_SET_LAYOUT_SUPPORT: Self = Self(1_000_168_001);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: Self = Self(1_000_063_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_1\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES: Self =
|
||||
StructureType::PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES;
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: Self = Self(49);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: Self = Self(50);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: Self = Self(51);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: Self = Self(52);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const IMAGE_FORMAT_LIST_CREATE_INFO: Self = Self(1_000_147_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const ATTACHMENT_DESCRIPTION_2: Self = Self(1_000_109_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const ATTACHMENT_REFERENCE_2: Self = Self(1_000_109_001);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const SUBPASS_DESCRIPTION_2: Self = Self(1_000_109_002);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const SUBPASS_DEPENDENCY_2: Self = Self(1_000_109_003);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const RENDER_PASS_CREATE_INFO_2: Self = Self(1_000_109_004);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const SUBPASS_BEGIN_INFO: Self = Self(1_000_109_005);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const SUBPASS_END_INFO: Self = Self(1_000_109_006);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: Self = Self(1_000_177_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_DRIVER_PROPERTIES: Self = Self(1_000_196_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: Self = Self(1_000_180_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: Self = Self(1_000_082_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: Self = Self(1_000_197_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: Self = Self(1_000_161_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: Self = Self(1_000_161_001);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: Self = Self(1_000_161_002);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: Self = Self(1_000_161_003);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: Self = Self(1_000_161_004);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl DescriptorPoolCreateFlags {
|
||||
pub const UPDATE_AFTER_BIND: Self = Self(0b10);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl DescriptorSetLayoutCreateFlags {
|
||||
pub const UPDATE_AFTER_BIND_POOL: Self = Self(0b10);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl Result {
|
||||
pub const ERROR_FRAGMENTATION: Self = Self(-1_000_161_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: Self = Self(1_000_199_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: Self = Self(1_000_199_001);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: Self = Self(1_000_221_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const IMAGE_STENCIL_USAGE_CREATE_INFO: Self = Self(1_000_246_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: Self = Self(1_000_130_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const SAMPLER_REDUCTION_MODE_CREATE_INFO: Self = Self(1_000_130_001);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl FormatFeatureFlags {
|
||||
pub const SAMPLED_IMAGE_FILTER_MINMAX: Self = Self(0b1_0000_0000_0000_0000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: Self = Self(1_000_211_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: Self = Self(1_000_108_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: Self = Self(1_000_108_001);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const FRAMEBUFFER_ATTACHMENT_IMAGE_INFO: Self = Self(1_000_108_002);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const RENDER_PASS_ATTACHMENT_BEGIN_INFO: Self = Self(1_000_108_003);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl FramebufferCreateFlags {
|
||||
pub const IMAGELESS: Self = Self(0b1);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: Self = Self(1_000_253_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: Self = Self(1_000_175_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: Self = Self(1_000_241_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const ATTACHMENT_REFERENCE_STENCIL_LAYOUT: Self = Self(1_000_241_001);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: Self = Self(1_000_241_002);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl ImageLayout {
|
||||
pub const DEPTH_ATTACHMENT_OPTIMAL: Self = Self(1_000_241_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl ImageLayout {
|
||||
pub const DEPTH_READ_ONLY_OPTIMAL: Self = Self(1_000_241_001);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl ImageLayout {
|
||||
pub const STENCIL_ATTACHMENT_OPTIMAL: Self = Self(1_000_241_002);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl ImageLayout {
|
||||
pub const STENCIL_READ_ONLY_OPTIMAL: Self = Self(1_000_241_003);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: Self = Self(1_000_261_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: Self = Self(1_000_207_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: Self = Self(1_000_207_001);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const SEMAPHORE_TYPE_CREATE_INFO: Self = Self(1_000_207_002);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const TIMELINE_SEMAPHORE_SUBMIT_INFO: Self = Self(1_000_207_003);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const SEMAPHORE_WAIT_INFO: Self = Self(1_000_207_004);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const SEMAPHORE_SIGNAL_INFO: Self = Self(1_000_207_005);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: Self = Self(1_000_257_000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const BUFFER_DEVICE_ADDRESS_INFO: Self = Self(1_000_244_001);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: Self = Self(1_000_257_002);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: Self = Self(1_000_257_003);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl StructureType {
|
||||
pub const DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO: Self = Self(1_000_257_004);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl BufferUsageFlags {
|
||||
pub const SHADER_DEVICE_ADDRESS: Self = Self(0b10_0000_0000_0000_0000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl BufferCreateFlags {
|
||||
pub const DEVICE_ADDRESS_CAPTURE_REPLAY: Self = Self(0b1_0000);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl MemoryAllocateFlags {
|
||||
pub const DEVICE_ADDRESS: Self = Self(0b10);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl MemoryAllocateFlags {
|
||||
pub const DEVICE_ADDRESS_CAPTURE_REPLAY: Self = Self(0b100);
|
||||
}
|
||||
#[doc = "Generated from \'VK_VERSION_1_2\'"]
|
||||
impl Result {
|
||||
pub const ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS: Self = Self(-1_000_257_000);
|
||||
}
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,199 @@
|
|||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_MAKE_VERSION.html>"]
|
||||
pub const fn make_version(major: u32, minor: u32, patch: u32) -> u32 {
|
||||
(major << 22) | (minor << 12) | patch
|
||||
}
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_VERSION_MAJOR.html>"]
|
||||
pub const fn version_major(version: u32) -> u32 {
|
||||
version >> 22
|
||||
}
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_VERSION_MINOR.html>"]
|
||||
pub const fn version_minor(version: u32) -> u32 {
|
||||
(version >> 12) & 0x3ff
|
||||
}
|
||||
#[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_VERSION_PATCH.html>"]
|
||||
pub const fn version_patch(version: u32) -> u32 {
|
||||
version & 0xfff
|
||||
}
|
||||
#[macro_export]
|
||||
macro_rules! vk_bitflags_wrapped {
|
||||
( $ name : ident , $ all : expr , $ flag_type : ty ) => {
|
||||
impl Default for $name {
|
||||
fn default() -> $name {
|
||||
$name(0)
|
||||
}
|
||||
}
|
||||
impl $name {
|
||||
#[inline]
|
||||
pub const fn empty() -> $name {
|
||||
$name(0)
|
||||
}
|
||||
#[inline]
|
||||
pub const fn all() -> $name {
|
||||
$name($all)
|
||||
}
|
||||
#[inline]
|
||||
pub const fn from_raw(x: $flag_type) -> Self {
|
||||
$name(x)
|
||||
}
|
||||
#[inline]
|
||||
pub const fn as_raw(self) -> $flag_type {
|
||||
self.0
|
||||
}
|
||||
#[inline]
|
||||
pub fn is_empty(self) -> bool {
|
||||
self == $name::empty()
|
||||
}
|
||||
#[inline]
|
||||
pub fn is_all(self) -> bool {
|
||||
self & $name::all() == $name::all()
|
||||
}
|
||||
#[inline]
|
||||
pub fn intersects(self, other: $name) -> bool {
|
||||
self & other != $name::empty()
|
||||
}
|
||||
#[doc = r" Returns whether `other` is a subset of `self`"]
|
||||
#[inline]
|
||||
pub fn contains(self, other: $name) -> bool {
|
||||
self & other == other
|
||||
}
|
||||
}
|
||||
impl ::std::ops::BitOr for $name {
|
||||
type Output = $name;
|
||||
#[inline]
|
||||
fn bitor(self, rhs: $name) -> $name {
|
||||
$name(self.0 | rhs.0)
|
||||
}
|
||||
}
|
||||
impl ::std::ops::BitOrAssign for $name {
|
||||
#[inline]
|
||||
fn bitor_assign(&mut self, rhs: $name) {
|
||||
*self = *self | rhs
|
||||
}
|
||||
}
|
||||
impl ::std::ops::BitAnd for $name {
|
||||
type Output = $name;
|
||||
#[inline]
|
||||
fn bitand(self, rhs: $name) -> $name {
|
||||
$name(self.0 & rhs.0)
|
||||
}
|
||||
}
|
||||
impl ::std::ops::BitAndAssign for $name {
|
||||
#[inline]
|
||||
fn bitand_assign(&mut self, rhs: $name) {
|
||||
*self = *self & rhs
|
||||
}
|
||||
}
|
||||
impl ::std::ops::BitXor for $name {
|
||||
type Output = $name;
|
||||
#[inline]
|
||||
fn bitxor(self, rhs: $name) -> $name {
|
||||
$name(self.0 ^ rhs.0)
|
||||
}
|
||||
}
|
||||
impl ::std::ops::BitXorAssign for $name {
|
||||
#[inline]
|
||||
fn bitxor_assign(&mut self, rhs: $name) {
|
||||
*self = *self ^ rhs
|
||||
}
|
||||
}
|
||||
impl ::std::ops::Sub for $name {
|
||||
type Output = $name;
|
||||
#[inline]
|
||||
fn sub(self, rhs: $name) -> $name {
|
||||
self & !rhs
|
||||
}
|
||||
}
|
||||
impl ::std::ops::SubAssign for $name {
|
||||
#[inline]
|
||||
fn sub_assign(&mut self, rhs: $name) {
|
||||
*self = *self - rhs
|
||||
}
|
||||
}
|
||||
impl ::std::ops::Not for $name {
|
||||
type Output = $name;
|
||||
#[inline]
|
||||
fn not(self) -> $name {
|
||||
self ^ $name::all()
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
#[macro_export]
|
||||
macro_rules! handle_nondispatchable {
|
||||
( $ name : ident , $ ty : ident ) => {
|
||||
handle_nondispatchable!($name, $ty, doc = "");
|
||||
};
|
||||
( $ name : ident , $ ty : ident , $ doc_link : meta ) => {
|
||||
#[repr(transparent)]
|
||||
#[derive(Eq, PartialEq, Ord, PartialOrd, Clone, Copy, Hash, Default)]
|
||||
#[$doc_link]
|
||||
pub struct $name(u64);
|
||||
impl Handle for $name {
|
||||
const TYPE: ObjectType = ObjectType::$ty;
|
||||
fn as_raw(self) -> u64 {
|
||||
self.0 as u64
|
||||
}
|
||||
fn from_raw(x: u64) -> Self {
|
||||
$name(x as _)
|
||||
}
|
||||
}
|
||||
impl $name {
|
||||
pub const fn null() -> $name {
|
||||
$name(0)
|
||||
}
|
||||
}
|
||||
impl fmt::Pointer for $name {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
write!(f, "0x{:x}", self.0)
|
||||
}
|
||||
}
|
||||
impl fmt::Debug for $name {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
write!(f, "0x{:x}", self.0)
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
#[macro_export]
|
||||
macro_rules! define_handle {
|
||||
( $ name : ident , $ ty : ident ) => {
|
||||
define_handle!($name, $ty, doc = "");
|
||||
};
|
||||
( $ name : ident , $ ty : ident , $ doc_link : meta ) => {
|
||||
#[repr(transparent)]
|
||||
#[derive(Eq, PartialEq, Ord, PartialOrd, Clone, Copy, Hash)]
|
||||
#[$doc_link]
|
||||
pub struct $name(*mut u8);
|
||||
impl Default for $name {
|
||||
fn default() -> $name {
|
||||
$name::null()
|
||||
}
|
||||
}
|
||||
impl Handle for $name {
|
||||
const TYPE: ObjectType = ObjectType::$ty;
|
||||
fn as_raw(self) -> u64 {
|
||||
self.0 as u64
|
||||
}
|
||||
fn from_raw(x: u64) -> Self {
|
||||
$name(x as _)
|
||||
}
|
||||
}
|
||||
unsafe impl Send for $name {}
|
||||
unsafe impl Sync for $name {}
|
||||
impl $name {
|
||||
pub const fn null() -> Self {
|
||||
$name(::std::ptr::null_mut())
|
||||
}
|
||||
}
|
||||
impl fmt::Pointer for $name {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
fmt::Pointer::fmt(&self.0, f)
|
||||
}
|
||||
}
|
||||
impl fmt::Debug for $name {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
fmt::Debug::fmt(&self.0, f)
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
use std::os::raw::*;
|
||||
pub type RROutput = c_ulong;
|
||||
pub type VisualID = c_uint;
|
||||
pub type Display = *const c_void;
|
||||
pub type Window = c_ulong;
|
||||
#[allow(non_camel_case_types)]
|
||||
pub type xcb_connection_t = c_void;
|
||||
#[allow(non_camel_case_types)]
|
||||
pub type xcb_window_t = u32;
|
||||
#[allow(non_camel_case_types)]
|
||||
pub type xcb_visualid_t = u32;
|
||||
pub type MirConnection = *const c_void;
|
||||
pub type MirSurface = *const c_void;
|
||||
pub type HINSTANCE = *const c_void;
|
||||
pub type HWND = *const c_void;
|
||||
#[allow(non_camel_case_types)]
|
||||
pub type wl_display = c_void;
|
||||
#[allow(non_camel_case_types)]
|
||||
pub type wl_surface = c_void;
|
||||
pub type HANDLE = *mut c_void;
|
||||
pub type HMONITOR = HANDLE;
|
||||
pub type DWORD = c_ulong;
|
||||
pub type LPCWSTR = *const u16;
|
||||
#[allow(non_camel_case_types)]
|
||||
pub type zx_handle_t = u32;
|
||||
#[allow(non_camel_case_types)]
|
||||
pub type SECURITY_ATTRIBUTES = ();
|
||||
pub type ANativeWindow = c_void;
|
||||
pub type AHardwareBuffer = c_void;
|
||||
#[doc = r" This definition is experimental and won't adhere to semver rules."]
|
||||
pub type GgpStreamDescriptor = u32;
|
||||
#[doc = r" This definition is experimental and won't adhere to semver rules."]
|
||||
pub type GgpFrameToken = u32;
|
||||
pub type CAMetalLayer = c_void;
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -2,10 +2,10 @@
|
|||
# It is not intended for manual editing.
|
||||
[[package]]
|
||||
name = "aho-corasick"
|
||||
version = "0.6.10"
|
||||
version = "0.7.13"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -13,37 +13,37 @@ name = "ansi_term"
|
|||
version = "0.11.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "atty"
|
||||
version = "0.2.11"
|
||||
version = "0.2.14"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"hermit-abi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "authenticator"
|
||||
version = "0.2.13"
|
||||
version = "0.2.15"
|
||||
dependencies = [
|
||||
"base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bindgen 0.51.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"boxfnonce 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-foundation 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"devd-rs 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-foundation 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"devd-rs 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libudev 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"runloop 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"sha2 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -51,7 +51,7 @@ name = "base64"
|
|||
version = "0.10.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -59,42 +59,42 @@ name = "bindgen"
|
|||
version = "0.51.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cexpr 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cexpr 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"clang-sys 0.28.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"clap 2.33.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"proc-macro2 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rustc-hash 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"which 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"which 3.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bitflags"
|
||||
version = "1.0.4"
|
||||
version = "1.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "block-buffer"
|
||||
version = "0.7.0"
|
||||
version = "0.7.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"block-padding 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "block-padding"
|
||||
version = "0.1.3"
|
||||
version = "0.1.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -112,25 +112,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
|
||||
[[package]]
|
||||
name = "byteorder"
|
||||
version = "1.3.1"
|
||||
version = "1.3.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "c2-chacha"
|
||||
version = "0.2.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cc"
|
||||
version = "1.0.45"
|
||||
version = "1.0.58"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "cexpr"
|
||||
version = "0.3.5"
|
||||
version = "0.3.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -138,7 +130,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "cfg-if"
|
||||
version = "0.1.7"
|
||||
version = "0.1.10"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
|
@ -147,65 +139,65 @@ version = "0.28.1"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libloading 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "clap"
|
||||
version = "2.33.0"
|
||||
version = "2.33.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"vec_map 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "core-foundation"
|
||||
version = "0.7.0"
|
||||
version = "0.9.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"core-foundation-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-foundation-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "core-foundation-sys"
|
||||
version = "0.7.0"
|
||||
version = "0.8.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "devd-rs"
|
||||
version = "0.3.0"
|
||||
version = "0.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"nom 5.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "digest"
|
||||
version = "0.8.0"
|
||||
version = "0.8.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "env_logger"
|
||||
version = "0.6.1"
|
||||
version = "0.6.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -215,10 +207,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
|
||||
[[package]]
|
||||
name = "generic-array"
|
||||
version = "0.12.0"
|
||||
version = "0.12.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"typenum 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -226,8 +218,8 @@ name = "getrandom"
|
|||
version = "0.1.14"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
|
@ -237,21 +229,29 @@ version = "0.3.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "humantime"
|
||||
version = "1.2.0"
|
||||
name = "hermit-abi"
|
||||
version = "0.1.15"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "humantime"
|
||||
version = "1.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "lazy_static"
|
||||
version = "1.3.0"
|
||||
version = "1.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
version = "0.2.66"
|
||||
version = "0.2.73"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
|
@ -259,8 +259,8 @@ name = "libloading"
|
|||
version = "0.5.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"cc 1.0.45 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cc 1.0.58 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -268,7 +268,7 @@ name = "libudev"
|
|||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libudev-sys 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
|
@ -277,21 +277,21 @@ name = "libudev-sys"
|
|||
version = "0.1.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "log"
|
||||
version = "0.4.6"
|
||||
version = "0.4.11"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "memchr"
|
||||
version = "2.2.0"
|
||||
version = "2.3.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
|
@ -299,13 +299,22 @@ name = "nom"
|
|||
version = "4.2.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "nom"
|
||||
version = "5.1.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "opaque-debug"
|
||||
version = "0.2.2"
|
||||
version = "0.2.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
|
@ -315,33 +324,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
|
||||
[[package]]
|
||||
name = "pkg-config"
|
||||
version = "0.3.14"
|
||||
version = "0.3.18"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "ppv-lite86"
|
||||
version = "0.2.6"
|
||||
version = "0.2.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro2"
|
||||
version = "1.0.5"
|
||||
version = "1.0.19"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "quick-error"
|
||||
version = "1.2.2"
|
||||
version = "1.2.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "quote"
|
||||
version = "1.0.2"
|
||||
version = "1.0.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"proc-macro2 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -350,18 +359,18 @@ version = "0.7.3"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_chacha"
|
||||
version = "0.2.1"
|
||||
version = "0.2.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"ppv-lite86 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
|
@ -381,38 +390,21 @@ dependencies = [
|
|||
"rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "redox_syscall"
|
||||
version = "0.1.51"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "redox_termios"
|
||||
version = "0.1.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "regex"
|
||||
version = "1.1.2"
|
||||
version = "1.3.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"regex-syntax 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"aho-corasick 0.7.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"regex-syntax 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "regex-syntax"
|
||||
version = "0.6.5"
|
||||
version = "0.6.18"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "runloop"
|
||||
|
@ -421,21 +413,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
|
||||
[[package]]
|
||||
name = "rustc-hash"
|
||||
version = "1.0.1"
|
||||
version = "1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sha2"
|
||||
version = "0.8.1"
|
||||
version = "0.8.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"block-buffer 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"digest 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"opaque-debug 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -450,20 +439,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
|
||||
[[package]]
|
||||
name = "termcolor"
|
||||
version = "1.0.4"
|
||||
version = "1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "termion"
|
||||
version = "1.5.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -471,45 +450,35 @@ name = "textwrap"
|
|||
version = "0.11.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "thread_local"
|
||||
version = "0.3.6"
|
||||
version = "1.0.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "typenum"
|
||||
version = "1.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "ucd-util"
|
||||
version = "0.1.3"
|
||||
version = "1.12.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-width"
|
||||
version = "0.1.6"
|
||||
version = "0.1.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-xid"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "utf8-ranges"
|
||||
version = "1.0.2"
|
||||
version = "0.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "vec_map"
|
||||
version = "0.8.1"
|
||||
version = "0.8.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
|
@ -517,6 +486,11 @@ name = "version_check"
|
|||
version = "0.1.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "version_check"
|
||||
version = "0.9.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "wasi"
|
||||
version = "0.9.0+wasi-snapshot-preview1"
|
||||
|
@ -524,15 +498,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
|
||||
[[package]]
|
||||
name = "which"
|
||||
version = "3.0.0"
|
||||
version = "3.1.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "winapi"
|
||||
version = "0.3.6"
|
||||
version = "0.3.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -546,10 +520,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
|
||||
[[package]]
|
||||
name = "winapi-util"
|
||||
version = "0.1.2"
|
||||
version = "0.1.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -557,86 +531,73 @@ name = "winapi-x86_64-pc-windows-gnu"
|
|||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "wincolor"
|
||||
version = "1.0.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[metadata]
|
||||
"checksum aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "81ce3d38065e618af2d7b77e10c5ad9a069859b4be3c2250f674af3840d9c8a5"
|
||||
"checksum aho-corasick 0.7.13 (registry+https://github.com/rust-lang/crates.io-index)" = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86"
|
||||
"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
|
||||
"checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652"
|
||||
"checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
|
||||
"checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
|
||||
"checksum bindgen 0.51.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ebd71393f1ec0509b553aa012b9b58e81dadbdff7130bd3b8cba576e69b32f75"
|
||||
"checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12"
|
||||
"checksum block-buffer 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49665c62e0e700857531fa5d3763e91b539ff1abeebd56808d378b495870d60d"
|
||||
"checksum block-padding 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d75255892aeb580d3c566f213a2b6fdc1c66667839f45719ee1d30ebf2aea591"
|
||||
"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
|
||||
"checksum block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
|
||||
"checksum block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
|
||||
"checksum boxfnonce 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8380105befe91099e6f69206164072c05bc92427ff6aa8a5171388317346dd75"
|
||||
"checksum byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
|
||||
"checksum byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb"
|
||||
"checksum c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "214238caa1bf3a496ec3392968969cab8549f96ff30652c9e56885329315f6bb"
|
||||
"checksum cc 1.0.45 (registry+https://github.com/rust-lang/crates.io-index)" = "4fc9a35e1f4290eb9e5fc54ba6cf40671ed2a2514c3eeb2b2a908dda2ea5a1be"
|
||||
"checksum cexpr 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a7fa24eb00d5ffab90eaeaf1092ac85c04c64aaf358ea6f84505b8116d24c6af"
|
||||
"checksum cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "11d43355396e872eefb45ce6342e4374ed7bc2b3a502d1b28e36d6e23c05d1f4"
|
||||
"checksum byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
|
||||
"checksum cc 1.0.58 (registry+https://github.com/rust-lang/crates.io-index)" = "f9a06fb2e53271d7c279ec1efea6ab691c35a2ae67ec0d91d7acec0caf13b518"
|
||||
"checksum cexpr 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "fce5b5fb86b0c57c20c834c1b412fd09c77c8a59b9473f86272709e78874cd1d"
|
||||
"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
|
||||
"checksum clang-sys 0.28.1 (registry+https://github.com/rust-lang/crates.io-index)" = "81de550971c976f176130da4b2978d3b524eaa0fd9ac31f3ceb5ae1231fb4853"
|
||||
"checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
|
||||
"checksum core-foundation 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171"
|
||||
"checksum core-foundation-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac"
|
||||
"checksum devd-rs 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0d009f166c0d9e9f9909dc751630b3a6411ab7f85a153d32d01deb364ffe52a7"
|
||||
"checksum digest 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05f47366984d3ad862010e22c7ce81a7dbcaebbdfb37241a620f8b6596ee135c"
|
||||
"checksum env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b61fa891024a945da30a9581546e8cfaf5602c7b3f4c137a2805cf388f92075a"
|
||||
"checksum clap 2.33.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129"
|
||||
"checksum core-foundation 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3b5ed8e7e76c45974e15e41bfa8d5b0483cd90191639e01d8f5f1e606299d3fb"
|
||||
"checksum core-foundation-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9a21fa21941700a3cd8fcb4091f361a6a712fac632f85d9f487cc892045d55c6"
|
||||
"checksum devd-rs 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1945ccb7caedabdfb9347766ead740fb1e0582b7425598325f546adbd832cce1"
|
||||
"checksum digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
|
||||
"checksum env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3"
|
||||
"checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
|
||||
"checksum generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3c0f28c2f5bfb5960175af447a2da7c18900693738343dc896ffbcabd9839592"
|
||||
"checksum generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec"
|
||||
"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
|
||||
"checksum glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
|
||||
"checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114"
|
||||
"checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14"
|
||||
"checksum libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)" = "d515b1f41455adea1313a4a2ac8a8a477634fbae63cc6100e3aebb207ce61558"
|
||||
"checksum hermit-abi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
|
||||
"checksum humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
|
||||
"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
|
||||
"checksum libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)" = "bd7d4bd64732af4bf3a67f367c27df8520ad7e230c5817b8ff485864d80242b9"
|
||||
"checksum libloading 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753"
|
||||
"checksum libudev 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ea626d3bdf40a1c5aee3bcd4f40826970cae8d80a8fec934c82a63840094dcfe"
|
||||
"checksum libudev-sys 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324"
|
||||
"checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6"
|
||||
"checksum memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39"
|
||||
"checksum log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
|
||||
"checksum memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
|
||||
"checksum nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6"
|
||||
"checksum opaque-debug 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "93f5bb2e8e8dec81642920ccff6b61f1eb94fa3020c5a325c9851ff604152409"
|
||||
"checksum nom 5.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
|
||||
"checksum opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
|
||||
"checksum peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
|
||||
"checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c"
|
||||
"checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
|
||||
"checksum proc-macro2 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "90cf5f418035b98e655e9cdb225047638296b862b42411c4e45bb88d700f7fc0"
|
||||
"checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0"
|
||||
"checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
|
||||
"checksum pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)" = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33"
|
||||
"checksum ppv-lite86 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea"
|
||||
"checksum proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)" = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12"
|
||||
"checksum quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
|
||||
"checksum quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
|
||||
"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
|
||||
"checksum rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853"
|
||||
"checksum rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
|
||||
"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
|
||||
"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
|
||||
"checksum redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)" = "423e376fffca3dfa06c9e9790a9ccd282fafb3cc6e6397d01dbf64f9bacc6b85"
|
||||
"checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"
|
||||
"checksum regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53ee8cfdddb2e0291adfb9f13d31d3bbe0a03c9a402c01b1e24188d86c35b24f"
|
||||
"checksum regex-syntax 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "8c2f35eedad5295fdf00a63d7d4b238135723f92b434ec06774dad15c7ab0861"
|
||||
"checksum regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
|
||||
"checksum regex-syntax 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)" = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
|
||||
"checksum runloop 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5d79b4b604167921892e84afbbaad9d5ad74e091bf6c511d9dbfb0593f09fabd"
|
||||
"checksum rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7540fc8b0c49f096ee9c961cda096467dce8084bec6bdca2fc83895fd9b28cb8"
|
||||
"checksum sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "27044adfd2e1f077f649f59deb9490d3941d674002f7d062870a60ebe9bd47a0"
|
||||
"checksum rustc-hash 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
|
||||
"checksum sha2 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69"
|
||||
"checksum shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
|
||||
"checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
|
||||
"checksum termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f"
|
||||
"checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096"
|
||||
"checksum termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
|
||||
"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
|
||||
"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
|
||||
"checksum typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "612d636f949607bdf9b123b4a6f6d966dedf3ff669f7f045890d3a4a73948169"
|
||||
"checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86"
|
||||
"checksum unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7007dbd421b92cc6e28410fe7362e2e0a2503394908f417b68ec8d1c364c4e20"
|
||||
"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
|
||||
"checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737"
|
||||
"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
|
||||
"checksum thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
|
||||
"checksum typenum 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33"
|
||||
"checksum unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
|
||||
"checksum unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
|
||||
"checksum vec_map 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
|
||||
"checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
|
||||
"checksum version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
|
||||
"checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
|
||||
"checksum which 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "240a31163872f7e8e49f35b42b58485e35355b07eb009d9f3686733541339a69"
|
||||
"checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0"
|
||||
"checksum which 3.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724"
|
||||
"checksum winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
|
||||
"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
||||
"checksum winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9"
|
||||
"checksum winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
|
||||
"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
||||
"checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba"
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
[package]
|
||||
name = "authenticator"
|
||||
version = "0.2.13"
|
||||
version = "0.2.15"
|
||||
authors = ["J.C. Jones <jc@mozilla.com>", "Tim Taubert <ttaubert@mozilla.com>", "Kyle Machulis <kyle@nonpolynomial.com>"]
|
||||
description = "Library for interacting with CTAP1/2 security keys for Web Authentication. Used by Firefox."
|
||||
license = "MPL-2.0"
|
||||
|
@ -38,12 +38,12 @@ version = "0.1.0"
|
|||
version = "^0.10"
|
||||
|
||||
[dev-dependencies.env_logger]
|
||||
version = "0.6"
|
||||
version = "^0.6"
|
||||
|
||||
[dev-dependencies.sha2]
|
||||
version = "^0.8"
|
||||
version = "^0.8.2"
|
||||
[build-dependencies.bindgen]
|
||||
version = "0.51"
|
||||
version = "^0.51"
|
||||
optional = true
|
||||
|
||||
[features]
|
||||
|
@ -53,7 +53,7 @@ version = "0.3"
|
|||
[target."cfg(target_os = \"linux\")".dependencies.libudev]
|
||||
version = "^0.2"
|
||||
[target."cfg(target_os = \"macos\")".dependencies.core-foundation]
|
||||
version = "0.7"
|
||||
version = "0.9"
|
||||
[target."cfg(target_os = \"windows\")".dependencies.winapi]
|
||||
version = "0.3"
|
||||
features = ["handleapi", "hidclass", "hidpi", "hidusage", "setupapi"]
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
This is a cross-platform library for interacting with Security Key-type devices via Rust.
|
||||
|
||||
* **Supported Platforms**: Windows, Linux, FreeBSD, OpenBSD, and macOS.
|
||||
* **Supported Platforms**: Windows, Linux, FreeBSD, NetBSD, OpenBSD, and macOS.
|
||||
* **Supported Transports**: USB HID.
|
||||
* **Supported Protocols**: [FIDO U2F over USB](https://fidoalliance.org/specs/fido-u2f-v1.1-id-20160915/fido-u2f-raw-message-formats-v1.1-id-20160915.html). [CTAP2 support](https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html) is forthcoming, with work being done in the **unstable** [`ctap2` branch](https://github.com/mozilla/authenticator-rs/tree/ctap2).
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
#[macro_use]
|
||||
mod util;
|
||||
|
||||
#[cfg(any(target_os = "linux", target_os = "freebsd"))]
|
||||
#[cfg(any(target_os = "linux", target_os = "freebsd", target_os = "netbsd"))]
|
||||
pub mod hidproto;
|
||||
|
||||
#[cfg(any(target_os = "linux"))]
|
||||
|
@ -22,6 +22,10 @@ extern crate devd_rs;
|
|||
#[path = "freebsd/mod.rs"]
|
||||
pub mod platform;
|
||||
|
||||
#[cfg(any(target_os = "netbsd"))]
|
||||
#[path = "netbsd/mod.rs"]
|
||||
pub mod platform;
|
||||
|
||||
#[cfg(any(target_os = "openbsd"))]
|
||||
#[path = "openbsd/mod.rs"]
|
||||
pub mod platform;
|
||||
|
@ -41,6 +45,7 @@ pub mod platform;
|
|||
target_os = "linux",
|
||||
target_os = "freebsd",
|
||||
target_os = "openbsd",
|
||||
target_os = "netbsd",
|
||||
target_os = "macos",
|
||||
target_os = "windows"
|
||||
)))]
|
||||
|
|
|
@ -0,0 +1,135 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
extern crate libc;
|
||||
|
||||
use std::io;
|
||||
use std::io::Read;
|
||||
use std::io::Write;
|
||||
use std::mem;
|
||||
|
||||
use consts::CID_BROADCAST;
|
||||
use consts::HID_RPT_SIZE;
|
||||
use platform::fd::Fd;
|
||||
use platform::uhid;
|
||||
use u2ftypes::U2FDevice;
|
||||
use util::io_err;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct Device {
|
||||
fd: Fd,
|
||||
cid: [u8; 4],
|
||||
}
|
||||
|
||||
impl Device {
|
||||
pub fn new(fd: Fd) -> io::Result<Self> {
|
||||
Ok(Self {
|
||||
fd,
|
||||
cid: CID_BROADCAST,
|
||||
})
|
||||
}
|
||||
|
||||
pub fn is_u2f(&mut self) -> bool {
|
||||
if !uhid::is_u2f_device(&self.fd) {
|
||||
return false;
|
||||
}
|
||||
// This step is not strictly necessary -- NetBSD puts fido
|
||||
// devices into raw mode automatically by default, but in
|
||||
// principle that might change, and this serves as a test to
|
||||
// verify that we're running on a kernel with support for raw
|
||||
// mode at all so we don't get confused issuing writes that try
|
||||
// to set the report descriptor rather than transfer data on
|
||||
// the output interrupt pipe as we need.
|
||||
match uhid::hid_set_raw(&self.fd, true) {
|
||||
Ok(_) => (),
|
||||
Err(_) => return false,
|
||||
}
|
||||
if let Err(_) = self.ping() {
|
||||
return false;
|
||||
}
|
||||
true
|
||||
}
|
||||
|
||||
fn ping(&mut self) -> io::Result<()> {
|
||||
for i in 0..10 {
|
||||
let mut buf = vec![0u8; 1 + HID_RPT_SIZE];
|
||||
|
||||
buf[0] = 0; // report number
|
||||
buf[1] = 0xff; // CID_BROADCAST
|
||||
buf[2] = 0xff;
|
||||
buf[3] = 0xff;
|
||||
buf[4] = 0xff;
|
||||
buf[5] = 0x81; // ping
|
||||
buf[6] = 0;
|
||||
buf[7] = 1; // one byte
|
||||
|
||||
self.write(&buf[..])?;
|
||||
|
||||
// Wait for response
|
||||
let mut pfd: libc::pollfd = unsafe { mem::zeroed() };
|
||||
pfd.fd = self.fd.fileno;
|
||||
pfd.events = libc::POLLIN;
|
||||
let nfds = unsafe { libc::poll(&mut pfd, 1, 100) };
|
||||
if nfds == -1 {
|
||||
return Err(io::Error::last_os_error());
|
||||
}
|
||||
if nfds == 0 {
|
||||
debug!("device timeout {}", i);
|
||||
continue;
|
||||
}
|
||||
|
||||
// Read response
|
||||
self.read(&mut buf[..])?;
|
||||
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
Err(io_err("no response from device"))
|
||||
}
|
||||
}
|
||||
|
||||
impl PartialEq for Device {
|
||||
fn eq(&self, other: &Device) -> bool {
|
||||
self.fd == other.fd
|
||||
}
|
||||
}
|
||||
|
||||
impl Read for Device {
|
||||
fn read(&mut self, buf: &mut [u8]) -> io::Result<usize> {
|
||||
let bufp = buf.as_mut_ptr() as *mut libc::c_void;
|
||||
let nread = unsafe { libc::read(self.fd.fileno, bufp, buf.len()) };
|
||||
if nread == -1 {
|
||||
return Err(io::Error::last_os_error());
|
||||
}
|
||||
Ok(nread as usize)
|
||||
}
|
||||
}
|
||||
|
||||
impl Write for Device {
|
||||
fn write(&mut self, buf: &[u8]) -> io::Result<usize> {
|
||||
// Always skip the first byte (report number)
|
||||
let data = &buf[1..];
|
||||
let data_ptr = data.as_ptr() as *const libc::c_void;
|
||||
let nwrit = unsafe { libc::write(self.fd.fileno, data_ptr, data.len()) };
|
||||
if nwrit == -1 {
|
||||
return Err(io::Error::last_os_error());
|
||||
}
|
||||
// Pretend we wrote the report number byte
|
||||
Ok(nwrit as usize + 1)
|
||||
}
|
||||
|
||||
fn flush(&mut self) -> io::Result<()> {
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
impl U2FDevice for Device {
|
||||
fn get_cid<'a>(&'a self) -> &'a [u8; 4] {
|
||||
&self.cid
|
||||
}
|
||||
|
||||
fn set_cid(&mut self, cid: [u8; 4]) {
|
||||
self.cid = cid;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,47 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
extern crate libc;
|
||||
|
||||
use std::ffi::CString;
|
||||
use std::io;
|
||||
use std::mem;
|
||||
use std::os::raw::c_int;
|
||||
use std::os::unix::io::RawFd;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct Fd {
|
||||
pub fileno: RawFd,
|
||||
}
|
||||
|
||||
impl Fd {
|
||||
pub fn open(path: &str, flags: c_int) -> io::Result<Fd> {
|
||||
let cpath = CString::new(path.as_bytes())?;
|
||||
let rv = unsafe { libc::open(cpath.as_ptr(), flags) };
|
||||
if rv == -1 {
|
||||
return Err(io::Error::last_os_error());
|
||||
}
|
||||
Ok(Fd { fileno: rv })
|
||||
}
|
||||
}
|
||||
|
||||
impl Drop for Fd {
|
||||
fn drop(&mut self) {
|
||||
unsafe { libc::close(self.fileno) };
|
||||
}
|
||||
}
|
||||
|
||||
impl PartialEq for Fd {
|
||||
fn eq(&self, other: &Fd) -> bool {
|
||||
let mut st: libc::stat = unsafe { mem::zeroed() };
|
||||
let mut sto: libc::stat = unsafe { mem::zeroed() };
|
||||
if unsafe { libc::fstat(self.fileno, &mut st) } == -1 {
|
||||
return false;
|
||||
}
|
||||
if unsafe { libc::fstat(other.fileno, &mut sto) } == -1 {
|
||||
return false;
|
||||
}
|
||||
(st.st_dev == sto.st_dev) & (st.st_ino == sto.st_ino)
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
pub mod device;
|
||||
pub mod transaction;
|
||||
|
||||
mod fd;
|
||||
mod monitor;
|
||||
mod uhid;
|
|
@ -0,0 +1,87 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use std::collections::HashMap;
|
||||
use std::ffi::OsString;
|
||||
use std::io;
|
||||
use std::sync::Arc;
|
||||
use std::thread;
|
||||
use std::time::Duration;
|
||||
|
||||
use runloop::RunLoop;
|
||||
|
||||
use platform::fd::Fd;
|
||||
|
||||
// XXX Should use drvctl, but it doesn't do pubsub properly yet so
|
||||
// DRVGETEVENT requires write access to /dev/drvctl. Instead, for now,
|
||||
// just poll every 500ms.
|
||||
const POLL_TIMEOUT: u64 = 500;
|
||||
|
||||
pub struct Monitor<F>
|
||||
where
|
||||
F: Fn(Fd, &dyn Fn() -> bool) + Send + Sync + 'static,
|
||||
{
|
||||
runloops: HashMap<OsString, RunLoop>,
|
||||
new_device_cb: Arc<F>,
|
||||
}
|
||||
|
||||
impl<F> Monitor<F>
|
||||
where
|
||||
F: Fn(Fd, &dyn Fn() -> bool) + Send + Sync + 'static,
|
||||
{
|
||||
pub fn new(new_device_cb: F) -> Self {
|
||||
Self {
|
||||
runloops: HashMap::new(),
|
||||
new_device_cb: Arc::new(new_device_cb),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn run(&mut self, alive: &dyn Fn() -> bool) -> io::Result<()> {
|
||||
while alive() {
|
||||
for n in 0..100 {
|
||||
let uhidpath = format!("/dev/uhid{}", n);
|
||||
match Fd::open(&uhidpath, libc::O_RDWR | libc::O_CLOEXEC) {
|
||||
Ok(uhid) => {
|
||||
self.add_device(uhid, OsString::from(&uhidpath));
|
||||
}
|
||||
Err(ref err) => match err.raw_os_error() {
|
||||
Some(libc::EBUSY) => continue,
|
||||
Some(libc::ENOENT) => break,
|
||||
_ => self.remove_device(OsString::from(&uhidpath)),
|
||||
},
|
||||
}
|
||||
}
|
||||
thread::sleep(Duration::from_millis(POLL_TIMEOUT));
|
||||
}
|
||||
self.remove_all_devices();
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn add_device(&mut self, fd: Fd, path: OsString) {
|
||||
let f = self.new_device_cb.clone();
|
||||
|
||||
let runloop = RunLoop::new(move |alive| {
|
||||
if alive() {
|
||||
f(fd, alive);
|
||||
}
|
||||
});
|
||||
|
||||
if let Ok(runloop) = runloop {
|
||||
self.runloops.insert(path.clone(), runloop);
|
||||
}
|
||||
}
|
||||
|
||||
fn remove_device(&mut self, path: OsString) {
|
||||
if let Some(runloop) = self.runloops.remove(&path) {
|
||||
runloop.cancel();
|
||||
}
|
||||
}
|
||||
|
||||
fn remove_all_devices(&mut self) {
|
||||
while !self.runloops.is_empty() {
|
||||
let path = self.runloops.keys().next().unwrap().clone();
|
||||
self.remove_device(path);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,50 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use runloop::RunLoop;
|
||||
use util::OnceCallback;
|
||||
|
||||
use platform::fd::Fd;
|
||||
use platform::monitor::Monitor;
|
||||
|
||||
pub struct Transaction {
|
||||
// Handle to the thread loop.
|
||||
thread: Option<RunLoop>,
|
||||
}
|
||||
|
||||
impl Transaction {
|
||||
pub fn new<F, T>(
|
||||
timeout: u64,
|
||||
callback: OnceCallback<T>,
|
||||
new_device_cb: F,
|
||||
) -> Result<Self, ::Error>
|
||||
where
|
||||
F: Fn(Fd, &dyn Fn() -> bool) + Sync + Send + 'static,
|
||||
T: 'static,
|
||||
{
|
||||
let thread = RunLoop::new_with_timeout(
|
||||
move |alive| {
|
||||
// Create a new device monitor.
|
||||
let mut monitor = Monitor::new(new_device_cb);
|
||||
|
||||
// Start polling for new devices.
|
||||
try_or!(monitor.run(alive), |_| callback.call(Err(::Error::Unknown)));
|
||||
|
||||
// Send an error, if the callback wasn't called already.
|
||||
callback.call(Err(::Error::NotAllowed));
|
||||
},
|
||||
timeout,
|
||||
)
|
||||
.map_err(|_| ::Error::Unknown)?;
|
||||
|
||||
Ok(Self {
|
||||
thread: Some(thread),
|
||||
})
|
||||
}
|
||||
|
||||
pub fn cancel(&mut self) {
|
||||
// This must never be None.
|
||||
self.thread.take().unwrap().cancel();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,77 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
extern crate libc;
|
||||
|
||||
use std::io;
|
||||
use std::mem;
|
||||
use std::os::raw::c_int;
|
||||
use std::os::raw::c_uchar;
|
||||
|
||||
use hidproto::has_fido_usage;
|
||||
use hidproto::ReportDescriptor;
|
||||
use platform::fd::Fd;
|
||||
use util::io_err;
|
||||
|
||||
/* sys/ioccom.h */
|
||||
|
||||
const IOCPARM_MASK: u32 = 0x1fff;
|
||||
const IOCPARM_SHIFT: u32 = 16;
|
||||
const IOCGROUP_SHIFT: u32 = 8;
|
||||
|
||||
//const IOC_VOID: u32 = 0x20000000;
|
||||
const IOC_OUT: u32 = 0x40000000;
|
||||
const IOC_IN: u32 = 0x80000000;
|
||||
//const IOC_INOUT: u32 = IOC_IN|IOC_OUT;
|
||||
|
||||
macro_rules! ioctl {
|
||||
($dir:expr, $name:ident, $group:expr, $nr:expr, $ty:ty) => {
|
||||
unsafe fn $name(fd: libc::c_int, val: *mut $ty) -> io::Result<libc::c_int> {
|
||||
let ioc = ($dir as u32)
|
||||
| ((mem::size_of::<$ty>() as u32 & IOCPARM_MASK) << IOCPARM_SHIFT)
|
||||
| (($group as u32) << IOCGROUP_SHIFT)
|
||||
| ($nr as u32);
|
||||
let rv = libc::ioctl(fd, ioc as libc::c_ulong, val);
|
||||
if rv == -1 {
|
||||
return Err(io::Error::last_os_error());
|
||||
}
|
||||
Ok(rv)
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
#[allow(non_camel_case_types)]
|
||||
#[repr(C)]
|
||||
struct usb_ctl_report_desc {
|
||||
ucrd_size: c_int,
|
||||
ucrd_data: [c_uchar; 1024],
|
||||
}
|
||||
|
||||
ioctl!(IOC_OUT, usb_get_report_desc, b'U', 21, usb_ctl_report_desc);
|
||||
|
||||
fn read_report_descriptor(fd: &Fd) -> io::Result<ReportDescriptor> {
|
||||
let mut desc = unsafe { mem::zeroed() };
|
||||
unsafe { usb_get_report_desc(fd.fileno, &mut desc) }?;
|
||||
if desc.ucrd_size < 0 {
|
||||
return Err(io_err("negative report descriptor size"));
|
||||
}
|
||||
let size = desc.ucrd_size as usize;
|
||||
let value = Vec::from(&desc.ucrd_data[..size]);
|
||||
Ok(ReportDescriptor { value })
|
||||
}
|
||||
|
||||
pub fn is_u2f_device(fd: &Fd) -> bool {
|
||||
match read_report_descriptor(fd) {
|
||||
Ok(desc) => has_fido_usage(desc),
|
||||
Err(_) => false,
|
||||
}
|
||||
}
|
||||
|
||||
ioctl!(IOC_IN, usb_hid_set_raw_ioctl, b'h', 2, c_int);
|
||||
|
||||
pub fn hid_set_raw(fd: &Fd, raw: bool) -> io::Result<()> {
|
||||
let mut raw_int: c_int = if raw { 1 } else { 0 };
|
||||
unsafe { usb_hid_set_raw_ioctl(fd.fileno, &mut raw_int) }?;
|
||||
Ok(())
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
{"files":{"Cargo.toml":"73849af199374870f30fd6bc8b55b85f05ae3d3cb41a98bb660cc605cc80c5e2","src/base.rs":"6c56d1758a9b0a7f8927771fe8b0bb43c6f19e4531bf9accecc786028eaad845","src/foundation.rs":"056daed1c9eb17772544397960bd196d1c8de1c0d13705372b57bd71843fcc74","src/lib.rs":"7f2e7bce9f1727acdd88b7cff604130cab04bf4b58a58f1d8c684a543412a330","tests/foundation.rs":"ef38d1aabe9534d95e0c5a6440f4f0465eeacd151b1ae5108df57810fb0f3ff8"},"package":"7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318"}
|
|
@ -11,17 +11,15 @@
|
|||
# will likely look very different (and much more reasonable)
|
||||
|
||||
[package]
|
||||
name = "cocoa"
|
||||
version = "0.20.0"
|
||||
name = "cocoa-foundation"
|
||||
version = "0.1.0"
|
||||
authors = ["The Servo Project Developers"]
|
||||
description = "Bindings to Cocoa for macOS"
|
||||
description = "Bindings to Cocoa Foundation for macOS"
|
||||
homepage = "https://github.com/servo/core-foundation-rs"
|
||||
license = "MIT / Apache-2.0"
|
||||
repository = "https://github.com/servo/core-foundation-rs"
|
||||
|
||||
[lib]
|
||||
name = "cocoa"
|
||||
crate-type = ["rlib"]
|
||||
[package.metadata.docs.rs]
|
||||
default-target = "x86_64-apple-darwin"
|
||||
[dependencies.bitflags]
|
||||
version = "1.0"
|
||||
|
||||
|
@ -29,10 +27,10 @@ version = "1.0"
|
|||
version = "0.1"
|
||||
|
||||
[dependencies.core-foundation]
|
||||
version = "0.7"
|
||||
version = "0.9"
|
||||
|
||||
[dependencies.core-graphics]
|
||||
version = "0.19"
|
||||
[dependencies.core-graphics-types]
|
||||
version = "0.1"
|
||||
|
||||
[dependencies.foreign-types]
|
||||
version = "0.3"
|
|
@ -35,8 +35,8 @@ const UTF8_ENCODING: usize = 4;
|
|||
mod macos {
|
||||
use std::mem;
|
||||
use base::id;
|
||||
use core_graphics::base::CGFloat;
|
||||
use core_graphics::geometry::CGRect;
|
||||
use core_graphics_types::base::CGFloat;
|
||||
use core_graphics_types::geometry::CGRect;
|
||||
use objc;
|
||||
|
||||
#[repr(C)]
|
||||
|
@ -203,18 +203,49 @@ impl NSAutoreleasePool for id {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Copy, Clone)]
|
||||
pub struct NSOperatingSystemVersion {
|
||||
pub majorVersion: NSUInteger,
|
||||
pub minorVersion: NSUInteger,
|
||||
pub patchVersion: NSUInteger,
|
||||
}
|
||||
|
||||
impl NSOperatingSystemVersion {
|
||||
#[inline]
|
||||
pub fn new(majorVersion: NSUInteger, minorVersion: NSUInteger, patchVersion: NSUInteger) -> NSOperatingSystemVersion {
|
||||
NSOperatingSystemVersion {
|
||||
majorVersion: majorVersion,
|
||||
minorVersion: minorVersion,
|
||||
patchVersion: patchVersion
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
pub trait NSProcessInfo: Sized {
|
||||
unsafe fn processInfo(_: Self) -> id {
|
||||
msg_send![class!(NSProcessInfo), processInfo]
|
||||
}
|
||||
|
||||
unsafe fn processName(self) -> id;
|
||||
unsafe fn operatingSystemVersion(self) -> NSOperatingSystemVersion;
|
||||
unsafe fn isOperatingSystemAtLeastVersion(self, version: NSOperatingSystemVersion) -> bool;
|
||||
}
|
||||
|
||||
impl NSProcessInfo for id {
|
||||
unsafe fn processName(self) -> id {
|
||||
msg_send![self, processName]
|
||||
}
|
||||
|
||||
unsafe fn operatingSystemVersion(self) -> NSOperatingSystemVersion {
|
||||
msg_send![self, operatingSystemVersion]
|
||||
}
|
||||
|
||||
unsafe fn isOperatingSystemAtLeastVersion(self, version: NSOperatingSystemVersion) -> bool {
|
||||
msg_send![self, isOperatingSystemAtLeastVersion: version]
|
||||
}
|
||||
}
|
||||
|
||||
pub type NSTimeInterval = libc::c_double;
|
||||
|
@ -1316,3 +1347,30 @@ bitflags! {
|
|||
const NSDataSearchAnchored = 1 << 1;
|
||||
}
|
||||
}
|
||||
|
||||
pub trait NSUserDefaults {
|
||||
unsafe fn standardUserDefaults() -> Self;
|
||||
|
||||
unsafe fn setBool_forKey_(self, value: BOOL, key: id);
|
||||
unsafe fn bool_forKey_(self, key: id) -> BOOL;
|
||||
|
||||
unsafe fn removeObject_forKey_(self, key: id);
|
||||
}
|
||||
|
||||
impl NSUserDefaults for id {
|
||||
unsafe fn standardUserDefaults() -> id {
|
||||
msg_send![class!(NSUserDefaults), standardUserDefaults]
|
||||
}
|
||||
|
||||
unsafe fn setBool_forKey_(self, value: BOOL, key: id) {
|
||||
msg_send![self, setBool:value forKey:key]
|
||||
}
|
||||
|
||||
unsafe fn bool_forKey_(self, key: id) -> BOOL {
|
||||
msg_send![self, boolForKey: key]
|
||||
}
|
||||
|
||||
unsafe fn removeObject_forKey_(self, key: id) {
|
||||
msg_send![self, removeObjectForKey:key]
|
||||
}
|
||||
}
|
|
@ -7,26 +7,17 @@
|
|||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#![crate_name = "cocoa"]
|
||||
#![crate_type = "rlib"]
|
||||
|
||||
#![allow(non_snake_case)]
|
||||
|
||||
extern crate block;
|
||||
#[macro_use]
|
||||
extern crate bitflags;
|
||||
extern crate core_foundation;
|
||||
extern crate core_graphics;
|
||||
extern crate core_graphics_types;
|
||||
extern crate foreign_types;
|
||||
extern crate libc;
|
||||
#[macro_use]
|
||||
extern crate objc;
|
||||
|
||||
#[cfg(target_os = "macos")]
|
||||
pub mod appkit;
|
||||
pub mod base;
|
||||
pub mod foundation;
|
||||
#[cfg(target_os = "macos")]
|
||||
pub mod quartzcore;
|
||||
#[macro_use]
|
||||
mod macros;
|
|
@ -1,13 +1,13 @@
|
|||
#[macro_use]
|
||||
extern crate objc;
|
||||
extern crate block;
|
||||
extern crate cocoa;
|
||||
extern crate cocoa_foundation;
|
||||
|
||||
#[cfg(test)]
|
||||
mod foundation {
|
||||
mod nsstring {
|
||||
use cocoa::foundation::NSString;
|
||||
use cocoa::base::nil;
|
||||
use cocoa_foundation::foundation::NSString;
|
||||
use cocoa_foundation::base::nil;
|
||||
use std::slice;
|
||||
use std::str;
|
||||
|
||||
|
@ -66,8 +66,8 @@ mod foundation {
|
|||
mod nsfastenumeration {
|
||||
use std::str;
|
||||
use std::slice;
|
||||
use cocoa::foundation::{NSString, NSFastEnumeration};
|
||||
use cocoa::base::{id, nil};
|
||||
use cocoa_foundation::foundation::{NSString, NSFastEnumeration};
|
||||
use cocoa_foundation::base::{id, nil};
|
||||
|
||||
#[test]
|
||||
fn test_iter() {
|
||||
|
@ -108,9 +108,9 @@ mod foundation {
|
|||
|
||||
mod nsdictionary {
|
||||
use block::ConcreteBlock;
|
||||
use cocoa::foundation::{NSArray, NSComparisonResult, NSDictionary, NSFastEnumeration,
|
||||
use cocoa_foundation::foundation::{NSArray, NSComparisonResult, NSDictionary, NSFastEnumeration,
|
||||
NSString};
|
||||
use cocoa::base::{id, nil};
|
||||
use cocoa_foundation::base::{id, nil};
|
||||
|
||||
#[test]
|
||||
fn test_get() {
|
|
@ -1 +0,0 @@
|
|||
{"files":{"COPYRIGHT":"ec82b96487e9e778ee610c7ab245162464782cfa1f555c2299333f8dbe5c036a","Cargo.lock":"0effdfa775e787f93cfabf50aa7039d7a4999e0dd92d57d3d5745a5f5926a962","Cargo.toml":"280ff6f510cff8a892ddbba326304fd8b16ac2eb1ad111948405abe3a6a90d51","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3","README.md":"29542cb34adb016506822ef78bceacf1774dbe8c27818a4d47b7d7b71ed4e1ac","examples/color.rs":"5211a85ab9ec4cbb98f8f677de50bb2f1d300400f50226ebfd714d40b9d32485","examples/fullscreen.rs":"f8719268b6eb1d19078af347e02f9993c9d29633ef2d38dcc4fac26cbd731c2d","examples/hello_world.rs":"7efe2a29de4d4dfc1d8821f469e13b1456f72de478bab55f813d08d4e5aafd5c","examples/tab_view.rs":"e6a3187eeac2f46210994293c2db7756757f4cad07e519902fa994c6d5c1a7d6","src/appkit.rs":"a21c6d612d0ec45dbbb5df45fe96d84b76c5a9982d09bdf74714ce63723da558","src/base.rs":"6c56d1758a9b0a7f8927771fe8b0bb43c6f19e4531bf9accecc786028eaad845","src/foundation.rs":"f0a8c0d2e3aee6bde64f480085025dfa92f903a39d6c15251ba392523aa153a3","src/lib.rs":"ed6164b3e0fe68579218185267d79229a2989c86efce690d7273f779c5239ec3","src/macros.rs":"0de0a8ea9a23f03cad94266a92051c3be8ff3f8f7d7d60f95dafe6c663204d48","src/quartzcore.rs":"cb4f96b4b095e9d623346a42b1e119a5299bf2af73ed81256dd548c688d525e2","tests/foundation.rs":"728eb7dcc9edbfb43dcb6aa1ebcc391658a7d47846d94a71905bcedfce833260"},"package":"0a4736c86d51bd878b474400d9ec888156f4037015f5d09794fab9f26eab1ad4"}
|
|
@ -1,5 +0,0 @@
|
|||
Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
<LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
option. All files in the project carrying such notice may not be
|
||||
copied, modified, or distributed except according to those terms.
|
|
@ -1,95 +0,0 @@
|
|||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
[[package]]
|
||||
name = "bitflags"
|
||||
version = "1.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "block"
|
||||
version = "0.1.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "cocoa"
|
||||
version = "0.20.0"
|
||||
dependencies = [
|
||||
"bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"block 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-foundation 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-graphics 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"objc 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "core-foundation"
|
||||
version = "0.7.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"core-foundation-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "core-foundation-sys"
|
||||
version = "0.7.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "core-graphics"
|
||||
version = "0.19.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"core-foundation 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "foreign-types"
|
||||
version = "0.3.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "foreign-types-shared"
|
||||
version = "0.1.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
version = "0.2.65"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "malloc_buf"
|
||||
version = "0.0.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "objc"
|
||||
version = "0.2.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"malloc_buf 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[metadata]
|
||||
"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
|
||||
"checksum block 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
|
||||
"checksum core-foundation 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171"
|
||||
"checksum core-foundation-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac"
|
||||
"checksum core-graphics 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)" = "59e78b2e0aaf43f08e7ae0d6bc96895ef72ff0921c7d4ff4762201b2dba376dd"
|
||||
"checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
|
||||
"checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
|
||||
"checksum libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)" = "1a31a0627fdf1f6a39ec0dd577e101440b7db22672c0901fe00a9a6fbb5c24e8"
|
||||
"checksum malloc_buf 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
|
||||
"checksum objc 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
|
|
@ -1,201 +0,0 @@
|
|||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
|
@ -1,25 +0,0 @@
|
|||
Copyright (c) 2012-2013 Mozilla Foundation
|
||||
|
||||
Permission is hereby granted, free of charge, to any
|
||||
person obtaining a copy of this software and associated
|
||||
documentation files (the "Software"), to deal in the
|
||||
Software without restriction, including without
|
||||
limitation the rights to use, copy, modify, merge,
|
||||
publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software
|
||||
is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice
|
||||
shall be included in all copies or substantial portions
|
||||
of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
|
||||
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
|
||||
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
|
||||
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
|
||||
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
|
@ -1,6 +0,0 @@
|
|||
Cocoa-rs
|
||||
--------
|
||||
|
||||
This crate provides Rust bindings to Cocoa for macOS. It's dual-licensed MIT /
|
||||
Apache 2.0. If you'd like to help improve cocoa-rs, check out [the Servo
|
||||
contributing guide](https://github.com/servo/servo/blob/master/CONTRIBUTING.md)!
|
|
@ -1,120 +0,0 @@
|
|||
extern crate cocoa;
|
||||
|
||||
use cocoa::base::{selector, id, nil, NO};
|
||||
|
||||
use cocoa::foundation::{NSRect, NSPoint, NSSize, NSAutoreleasePool, NSProcessInfo,
|
||||
NSString};
|
||||
use cocoa::appkit::{NSApp, NSColor, NSColorSpace, NSApplication, NSApplicationActivationPolicyRegular,
|
||||
NSMenu, NSMenuItem, NSWindowStyleMask, NSBackingStoreType, NSWindow,
|
||||
NSRunningApplication, NSApplicationActivateIgnoringOtherApps};
|
||||
|
||||
|
||||
fn main() {
|
||||
unsafe {
|
||||
// Create the app.
|
||||
let app = create_app();
|
||||
|
||||
// Create some colors
|
||||
let clear = NSColor::clearColor(nil);
|
||||
let black = NSColor::colorWithRed_green_blue_alpha_(nil, 0.0, 0.0, 0.0, 1.0);
|
||||
let srgb_red = NSColor::colorWithSRGBRed_green_blue_alpha_(nil, 1.0, 0.0, 0.0, 1.0);
|
||||
let device_green = NSColor::colorWithDeviceRed_green_blue_alpha_(nil, 0.0, 1.0, 0.0, 1.0);
|
||||
let display_p3_blue = NSColor::colorWithDisplayP3Red_green_blue_alpha_(nil, 0.0, 0.0, 1.0, 1.0);
|
||||
let calibrated_cyan = NSColor::colorWithCalibratedRed_green_blue_alpha_(nil, 0.0, 1.0, 1.0, 1.0);
|
||||
|
||||
// Create windows with different color types.
|
||||
let _win_clear = create_window(NSString::alloc(nil).init_str("clear"), clear);
|
||||
let _win_black = create_window(NSString::alloc(nil).init_str("black"), black);
|
||||
let _win_srgb_red = create_window(NSString::alloc(nil).init_str("srgb_red"), srgb_red);
|
||||
let _win_device_green = create_window(NSString::alloc(nil).init_str("device_green"), device_green);
|
||||
let _win_display_p3_blue = create_window(NSString::alloc(nil).init_str("display_p3_blue"), display_p3_blue);
|
||||
let _win_calibrated_cyan = create_window(NSString::alloc(nil).init_str("calibrated_cyan"), calibrated_cyan);
|
||||
|
||||
// Extract component values from a color.
|
||||
// NOTE: some components will raise an exception if the color is not
|
||||
// in the correct NSColorSpace. Refer to Apple's documentation for details.
|
||||
// https://developer.apple.com/documentation/appkit/nscolor?language=objc
|
||||
let my_color = NSColor::colorWithRed_green_blue_alpha_(nil, 0.25, 0.75, 0.5, 0.25);
|
||||
println!("alphaComponent: {:?}", my_color.alphaComponent());
|
||||
println!("redComponent: {:?}", my_color.redComponent());
|
||||
println!("greenComponent: {:?}", my_color.greenComponent());
|
||||
println!("blueComponent: {:?}", my_color.blueComponent());
|
||||
println!("hueComponent: {:?}", my_color.hueComponent());
|
||||
println!("saturationComponent: {:?}", my_color.saturationComponent());
|
||||
println!("brightnessComponent: {:?}", my_color.brightnessComponent());
|
||||
|
||||
// Changing color spaces.
|
||||
let my_color_cmyk_cs = my_color.colorUsingColorSpace_(NSColorSpace::deviceCMYKColorSpace(nil));
|
||||
println!("blackComponent: {:?}", my_color_cmyk_cs.blackComponent());
|
||||
println!("cyanComponent: {:?}", my_color_cmyk_cs.cyanComponent());
|
||||
println!("magentaComponent: {:?}", my_color_cmyk_cs.magentaComponent());
|
||||
println!("yellowComponent: {:?}", my_color_cmyk_cs.yellowComponent());
|
||||
|
||||
// Getting NSColorSpace name.
|
||||
let cs = NSColorSpace::genericGamma22GrayColorSpace(nil);
|
||||
let cs_name = cs.localizedName();
|
||||
let cs_name_bytes = cs_name.UTF8String() as *const u8;
|
||||
let cs_name_string = std::str::from_utf8(std::slice::from_raw_parts(cs_name_bytes, cs_name.len())).unwrap();
|
||||
println!("NSColorSpace: {:?}", cs_name_string);
|
||||
|
||||
// Creating an NSColorSpace from CGColorSpaceRef.
|
||||
let cg_cs = cs.CGColorSpace();
|
||||
let cs = NSColorSpace::alloc(nil).initWithCGColorSpace_(cg_cs);
|
||||
let cs_name = cs.localizedName();
|
||||
let cs_name_bytes = cs_name.UTF8String() as *const u8;
|
||||
let cs_name_string = std::str::from_utf8(std::slice::from_raw_parts(cs_name_bytes, cs_name.len())).unwrap();
|
||||
println!("initWithCGColorSpace_: {:?}", cs_name_string);
|
||||
|
||||
app.run();
|
||||
}
|
||||
}
|
||||
|
||||
unsafe fn create_window(title: id, color: id) -> id {
|
||||
let window = NSWindow::alloc(nil).initWithContentRect_styleMask_backing_defer_(
|
||||
NSRect::new(NSPoint::new(0., 0.), NSSize::new(200., 200.)),
|
||||
NSWindowStyleMask::NSTitledWindowMask |
|
||||
NSWindowStyleMask::NSClosableWindowMask |
|
||||
NSWindowStyleMask::NSResizableWindowMask |
|
||||
NSWindowStyleMask::NSMiniaturizableWindowMask |
|
||||
NSWindowStyleMask::NSUnifiedTitleAndToolbarWindowMask,
|
||||
NSBackingStoreType::NSBackingStoreBuffered,
|
||||
NO
|
||||
).autorelease();
|
||||
|
||||
window.cascadeTopLeftFromPoint_(NSPoint::new(20., 20.));
|
||||
window.setTitle_(title);
|
||||
window.setBackgroundColor_(color);
|
||||
window.makeKeyAndOrderFront_(nil);
|
||||
window
|
||||
}
|
||||
|
||||
unsafe fn create_app() -> id {
|
||||
let _pool = NSAutoreleasePool::new(nil);
|
||||
|
||||
let app = NSApp();
|
||||
app.setActivationPolicy_(NSApplicationActivationPolicyRegular);
|
||||
|
||||
// create Menu Bar
|
||||
let menubar = NSMenu::new(nil).autorelease();
|
||||
let app_menu_item = NSMenuItem::new(nil).autorelease();
|
||||
menubar.addItem_(app_menu_item);
|
||||
app.setMainMenu_(menubar);
|
||||
|
||||
// create Application menu
|
||||
let app_menu = NSMenu::new(nil).autorelease();
|
||||
let quit_prefix = NSString::alloc(nil).init_str("Quit ");
|
||||
let quit_title =
|
||||
quit_prefix.stringByAppendingString_(NSProcessInfo::processInfo(nil).processName());
|
||||
let quit_action = selector("terminate:");
|
||||
let quit_key = NSString::alloc(nil).init_str("q");
|
||||
let quit_item = NSMenuItem::alloc(nil)
|
||||
.initWithTitle_action_keyEquivalent_(quit_title, quit_action, quit_key)
|
||||
.autorelease();
|
||||
app_menu.addItem_(quit_item);
|
||||
app_menu_item.setSubmenu_(app_menu);
|
||||
|
||||
let current_app = NSRunningApplication::currentApplication(nil);
|
||||
current_app.activateWithOptions_(NSApplicationActivateIgnoringOtherApps);
|
||||
|
||||
return app;
|
||||
}
|
|
@ -1,97 +0,0 @@
|
|||
extern crate cocoa;
|
||||
extern crate core_graphics;
|
||||
|
||||
#[macro_use]
|
||||
extern crate objc;
|
||||
|
||||
use cocoa::base::{selector, nil, NO, id};
|
||||
use cocoa::foundation::{NSRect, NSPoint, NSSize, NSAutoreleasePool, NSProcessInfo,
|
||||
NSString, NSUInteger};
|
||||
use cocoa::appkit::{NSApp, NSApplication, NSApplicationActivationPolicyRegular, NSWindow,
|
||||
NSBackingStoreBuffered, NSMenu, NSMenuItem, NSWindowStyleMask,
|
||||
NSRunningApplication, NSApplicationActivateIgnoringOtherApps,
|
||||
NSWindowCollectionBehavior, NSApplicationPresentationOptions};
|
||||
|
||||
use core_graphics::display::CGDisplay;
|
||||
|
||||
use objc::runtime::{Object, Sel};
|
||||
use objc::declare::ClassDecl;
|
||||
|
||||
fn main() {
|
||||
unsafe {
|
||||
let _pool = NSAutoreleasePool::new(nil);
|
||||
|
||||
let app = NSApp();
|
||||
app.setActivationPolicy_(NSApplicationActivationPolicyRegular);
|
||||
|
||||
// create Menu Bar
|
||||
let menubar = NSMenu::new(nil).autorelease();
|
||||
let app_menu_item = NSMenuItem::new(nil).autorelease();
|
||||
menubar.addItem_(app_menu_item);
|
||||
app.setMainMenu_(menubar);
|
||||
|
||||
// create Application menu
|
||||
let app_menu = NSMenu::new(nil).autorelease();
|
||||
let quit_prefix = NSString::alloc(nil).init_str("Quit ");
|
||||
let quit_title =
|
||||
quit_prefix.stringByAppendingString_(NSProcessInfo::processInfo(nil).processName());
|
||||
let quit_action = selector("terminate:");
|
||||
let quit_key = NSString::alloc(nil).init_str("q");
|
||||
let quit_item = NSMenuItem::alloc(nil)
|
||||
.initWithTitle_action_keyEquivalent_(quit_title, quit_action, quit_key)
|
||||
.autorelease();
|
||||
app_menu.addItem_(quit_item);
|
||||
app_menu_item.setSubmenu_(app_menu);
|
||||
|
||||
// Create NSWindowDelegate
|
||||
let superclass = class!(NSObject);
|
||||
let mut decl = ClassDecl::new("MyWindowDelegate", superclass).unwrap();
|
||||
|
||||
extern fn will_use_fillscreen_presentation_options(_: &Object, _: Sel, _: id, _: NSUInteger) -> NSUInteger {
|
||||
// Set initial presentation options for fullscreen
|
||||
let options = NSApplicationPresentationOptions::NSApplicationPresentationFullScreen
|
||||
| NSApplicationPresentationOptions::NSApplicationPresentationHideDock
|
||||
| NSApplicationPresentationOptions::NSApplicationPresentationHideMenuBar
|
||||
| NSApplicationPresentationOptions::NSApplicationPresentationDisableProcessSwitching;
|
||||
options.bits()
|
||||
}
|
||||
|
||||
extern fn window_entering_fullscreen(_: &Object, _: Sel, _: id) {
|
||||
// Reset HideDock and HideMenuBar settings during/after we entered fullscreen.
|
||||
let options = NSApplicationPresentationOptions::NSApplicationPresentationHideDock | NSApplicationPresentationOptions::NSApplicationPresentationHideMenuBar;
|
||||
unsafe {
|
||||
NSApp().setPresentationOptions_(options);
|
||||
}
|
||||
}
|
||||
|
||||
decl.add_method(sel!(window:willUseFullScreenPresentationOptions:),
|
||||
will_use_fillscreen_presentation_options as extern fn(&Object, Sel, id, NSUInteger) -> NSUInteger);
|
||||
decl.add_method(sel!(windowWillEnterFullScreen:),
|
||||
window_entering_fullscreen as extern fn(&Object, Sel, id));
|
||||
decl.add_method(sel!(windowDidEnterFullScreen:),
|
||||
window_entering_fullscreen as extern fn(&Object, Sel, id));
|
||||
|
||||
let delegate_class = decl.register();
|
||||
let delegate_object = msg_send![delegate_class, new];
|
||||
|
||||
// create Window
|
||||
let display = CGDisplay::main();
|
||||
let size = NSSize::new(display.pixels_wide() as _, display.pixels_high() as _);
|
||||
let window = NSWindow::alloc(nil)
|
||||
.initWithContentRect_styleMask_backing_defer_(NSRect::new(NSPoint::new(0., 0.), size),
|
||||
NSWindowStyleMask::NSTitledWindowMask,
|
||||
NSBackingStoreBuffered,
|
||||
NO)
|
||||
.autorelease();
|
||||
window.setDelegate_(delegate_object);
|
||||
let title = NSString::alloc(nil).init_str("Fullscreen!");
|
||||
window.setTitle_(title);
|
||||
window.makeKeyAndOrderFront_(nil);
|
||||
|
||||
let current_app = NSRunningApplication::currentApplication(nil);
|
||||
current_app.activateWithOptions_(NSApplicationActivateIgnoringOtherApps);
|
||||
window.setCollectionBehavior_(NSWindowCollectionBehavior::NSWindowCollectionBehaviorFullScreenPrimary);
|
||||
window.toggleFullScreen_(nil);
|
||||
app.run();
|
||||
}
|
||||
}
|
|
@ -1,53 +0,0 @@
|
|||
extern crate cocoa;
|
||||
|
||||
use cocoa::base::{selector, nil, NO};
|
||||
use cocoa::foundation::{NSRect, NSPoint, NSSize, NSAutoreleasePool, NSProcessInfo,
|
||||
NSString};
|
||||
use cocoa::appkit::{NSApp, NSApplication, NSApplicationActivationPolicyRegular, NSWindow,
|
||||
NSBackingStoreBuffered, NSMenu, NSMenuItem, NSWindowStyleMask,
|
||||
NSRunningApplication, NSApplicationActivateIgnoringOtherApps};
|
||||
|
||||
fn main() {
|
||||
unsafe {
|
||||
let _pool = NSAutoreleasePool::new(nil);
|
||||
|
||||
let app = NSApp();
|
||||
app.setActivationPolicy_(NSApplicationActivationPolicyRegular);
|
||||
|
||||
// create Menu Bar
|
||||
let menubar = NSMenu::new(nil).autorelease();
|
||||
let app_menu_item = NSMenuItem::new(nil).autorelease();
|
||||
menubar.addItem_(app_menu_item);
|
||||
app.setMainMenu_(menubar);
|
||||
|
||||
// create Application menu
|
||||
let app_menu = NSMenu::new(nil).autorelease();
|
||||
let quit_prefix = NSString::alloc(nil).init_str("Quit ");
|
||||
let quit_title =
|
||||
quit_prefix.stringByAppendingString_(NSProcessInfo::processInfo(nil).processName());
|
||||
let quit_action = selector("terminate:");
|
||||
let quit_key = NSString::alloc(nil).init_str("q");
|
||||
let quit_item = NSMenuItem::alloc(nil)
|
||||
.initWithTitle_action_keyEquivalent_(quit_title, quit_action, quit_key)
|
||||
.autorelease();
|
||||
app_menu.addItem_(quit_item);
|
||||
app_menu_item.setSubmenu_(app_menu);
|
||||
|
||||
// create Window
|
||||
let window = NSWindow::alloc(nil)
|
||||
.initWithContentRect_styleMask_backing_defer_(NSRect::new(NSPoint::new(0., 0.),
|
||||
NSSize::new(200., 200.)),
|
||||
NSWindowStyleMask::NSTitledWindowMask,
|
||||
NSBackingStoreBuffered,
|
||||
NO)
|
||||
.autorelease();
|
||||
window.cascadeTopLeftFromPoint_(NSPoint::new(20., 20.));
|
||||
window.center();
|
||||
let title = NSString::alloc(nil).init_str("Hello World!");
|
||||
window.setTitle_(title);
|
||||
window.makeKeyAndOrderFront_(nil);
|
||||
let current_app = NSRunningApplication::currentApplication(nil);
|
||||
current_app.activateWithOptions_(NSApplicationActivateIgnoringOtherApps);
|
||||
app.run();
|
||||
}
|
||||
}
|
|
@ -1,87 +0,0 @@
|
|||
extern crate cocoa;
|
||||
|
||||
use cocoa::base::{selector, id, nil, NO};
|
||||
|
||||
|
||||
use cocoa::foundation::{NSRect, NSPoint, NSSize, NSAutoreleasePool, NSProcessInfo,
|
||||
NSString};
|
||||
use cocoa::appkit::{NSApp, NSApplication, NSApplicationActivationPolicyRegular, NSWindow,
|
||||
NSMenu, NSMenuItem, NSTabView, NSWindowStyleMask, NSBackingStoreType,
|
||||
NSTabViewItem, NSRunningApplication, NSApplicationActivateIgnoringOtherApps};
|
||||
|
||||
|
||||
fn main() {
|
||||
unsafe {
|
||||
|
||||
// create a tab View
|
||||
let tab_view = NSTabView::new(nil)
|
||||
.initWithFrame_(NSRect::new(NSPoint::new(0., 0.), NSSize::new(200., 200.)));
|
||||
|
||||
// create a tab view item
|
||||
let tab_view_item = NSTabViewItem::new(nil)
|
||||
.initWithIdentifier_(NSString::alloc(nil).init_str("TabView1"));
|
||||
|
||||
tab_view_item.setLabel_(NSString::alloc(nil).init_str("Tab view item 1"));
|
||||
tab_view.addTabViewItem_(tab_view_item);
|
||||
|
||||
// create a second tab view item
|
||||
let tab_view_item2 = NSTabViewItem::new(nil)
|
||||
.initWithIdentifier_(NSString::alloc(nil).init_str("TabView2"));
|
||||
|
||||
tab_view_item2.setLabel_(NSString::alloc(nil).init_str("Tab view item 2"));
|
||||
tab_view.addTabViewItem_(tab_view_item2);
|
||||
|
||||
// Create the app and set the content.
|
||||
let app = create_app(NSString::alloc(nil).init_str("Tab View"), tab_view);
|
||||
app.run();
|
||||
}
|
||||
}
|
||||
|
||||
unsafe fn create_app(title: id, content: id) -> id {
|
||||
let _pool = NSAutoreleasePool::new(nil);
|
||||
|
||||
let app = NSApp();
|
||||
app.setActivationPolicy_(NSApplicationActivationPolicyRegular);
|
||||
|
||||
// create Menu Bar
|
||||
let menubar = NSMenu::new(nil).autorelease();
|
||||
let app_menu_item = NSMenuItem::new(nil).autorelease();
|
||||
menubar.addItem_(app_menu_item);
|
||||
app.setMainMenu_(menubar);
|
||||
|
||||
// create Application menu
|
||||
let app_menu = NSMenu::new(nil).autorelease();
|
||||
let quit_prefix = NSString::alloc(nil).init_str("Quit ");
|
||||
let quit_title =
|
||||
quit_prefix.stringByAppendingString_(NSProcessInfo::processInfo(nil).processName());
|
||||
let quit_action = selector("terminate:");
|
||||
let quit_key = NSString::alloc(nil).init_str("q");
|
||||
let quit_item = NSMenuItem::alloc(nil)
|
||||
.initWithTitle_action_keyEquivalent_(quit_title, quit_action, quit_key)
|
||||
.autorelease();
|
||||
app_menu.addItem_(quit_item);
|
||||
app_menu_item.setSubmenu_(app_menu);
|
||||
|
||||
// create Window
|
||||
let window = NSWindow::alloc(nil).initWithContentRect_styleMask_backing_defer_(
|
||||
NSRect::new(NSPoint::new(0., 0.), NSSize::new(200., 200.)),
|
||||
NSWindowStyleMask::NSTitledWindowMask |
|
||||
NSWindowStyleMask::NSClosableWindowMask |
|
||||
NSWindowStyleMask::NSResizableWindowMask |
|
||||
NSWindowStyleMask::NSMiniaturizableWindowMask |
|
||||
NSWindowStyleMask::NSUnifiedTitleAndToolbarWindowMask,
|
||||
NSBackingStoreType::NSBackingStoreBuffered,
|
||||
NO
|
||||
).autorelease();
|
||||
window.cascadeTopLeftFromPoint_(NSPoint::new(20., 20.));
|
||||
window.center();
|
||||
|
||||
window.setTitle_(title);
|
||||
window.makeKeyAndOrderFront_(nil);
|
||||
|
||||
window.setContentView_(content);
|
||||
let current_app = NSRunningApplication::currentApplication(nil);
|
||||
current_app.activateWithOptions_(NSApplicationActivateIgnoringOtherApps);
|
||||
|
||||
return app;
|
||||
}
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,79 +0,0 @@
|
|||
// Copyright 2013 The Servo Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
/// Creates a Cocoa delegate to use e.g. with `NSWindow.setDelegate_`.
|
||||
/// Adds instance variables and methods to the definition.
|
||||
///
|
||||
/// # Example with NSWindowDelegate
|
||||
/// ``` no_run
|
||||
/// #[macro_use] extern crate cocoa;
|
||||
/// #[macro_use] extern crate objc;
|
||||
///
|
||||
/// use cocoa::appkit::NSWindow;
|
||||
/// use cocoa::base::{id, nil};
|
||||
///
|
||||
/// use objc::runtime::{Object, Sel};
|
||||
///
|
||||
/// # fn main() {
|
||||
/// unsafe {
|
||||
/// let my_window: id = NSWindow::alloc(nil);
|
||||
///
|
||||
/// extern fn on_enter_fullscreen(this: &Object, _cmd: Sel, _notification: id) {
|
||||
/// unsafe {
|
||||
/// let window: id = *this.get_ivar("window");
|
||||
/// window.setToolbar_(nil);
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
/// my_window.setDelegate_(delegate!("MyWindowDelegate", {
|
||||
/// window: id = my_window, // Declare instance variable(s)
|
||||
/// (onWindowWillEnterFullscreen:) => on_enter_fullscreen as extern fn(&Object, Sel, id) // Declare function(s)
|
||||
/// }));
|
||||
/// }
|
||||
/// # }
|
||||
/// ```
|
||||
#[macro_export]
|
||||
macro_rules! delegate {
|
||||
(
|
||||
$name:expr, {
|
||||
$( ($($sel:ident :)+) => $func:expr),*
|
||||
}
|
||||
) => (
|
||||
delegate!($name, {
|
||||
,
|
||||
$( ($($sel :)+) => $func),*
|
||||
})
|
||||
);
|
||||
|
||||
(
|
||||
$name:expr, {
|
||||
$($var:ident : $var_type:ty = $value:expr),* ,
|
||||
$( ($($sel:ident :)+) => $func:expr),*
|
||||
}
|
||||
) => ({
|
||||
let mut decl = objc::declare::ClassDecl::new($name, class!(NSObject)).unwrap();
|
||||
|
||||
$(
|
||||
decl.add_ivar::<$var_type>(stringify!($var));
|
||||
)*
|
||||
|
||||
$(
|
||||
decl.add_method(sel!($($sel :)+), $func);
|
||||
)*
|
||||
|
||||
let cl = decl.register();
|
||||
let delegate: id = msg_send![cl, alloc];
|
||||
|
||||
$(
|
||||
(*delegate).set_ivar(stringify!($var), $value);
|
||||
)*
|
||||
|
||||
delegate
|
||||
});
|
||||
}
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1 +1 @@
|
|||
{"files":{"Cargo.toml":"2f56db7bbb02e7e0e2329179c2bb533fbe36a6196b7f0a539b710291cced25ae","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3","build.rs":"9433ed3b20cc99e716dda4c6d8507c29bc04882544cbbea8d4e48ba80fd0fa12","src/array.rs":"40c305658e16b07d86353a5ad34e7b5fb98720f19cc2b5173360d6a61ce2642f","src/attributed_string.rs":"693b6c745c5aef1929595c94363d500b4b25ebcfed0b4b8dee0103b8fc0537f8","src/base.rs":"369fb6710bb342f488c1207db2339f16d51bea7b7cb437c88dfb9b3ecb55f788","src/bundle.rs":"701b99db500b1260b3327182e965483d7cc1b220e0c2b3b7b97a3bf1a17b9dcb","src/characterset.rs":"a10bbb42ddc74b3dc50b43ae6a50cc9d9a1cd08b975a1ce1b092be4bf64448a6","src/data.rs":"7cf4ddbc62635434fd3552739ffae9dde5f5d34f0ad0bb818068d3ac26403784","src/date.rs":"c064ee4c3ebd1927532c34871e2e41179d6e3c3e400f6b409a18ad9e2337477f","src/dictionary.rs":"3327a6f90f1e0db5e3fde1973e2df4143ca896716a816d03f2b17c8e988c5159","src/error.rs":"6205ebeb7631daa8bcd560862b6daa10f640c8c117ce5f6f7184f268dcbcb42a","src/filedescriptor.rs":"49580654b657811fade7adaa256f5f895cb011c9baa4731e2f44a6ec7fdba235","src/lib.rs":"f815234d32327532da600f47e9a006550d8993dcd695b803d0660316899f9319","src/messageport.rs":"e9227d5907cba8e29cdeea41bcb3ae5c7840220442953ab19aace31a84542f47","src/number.rs":"b1154203e74cb2258ba5520e20bcd4d524f1a957e09a19dd026b18d23baa3868","src/propertylist.rs":"7ec928438826c4ce40befedf3de0a37c8ecbc0fc17896dfa629d5864000b2cfe","src/runloop.rs":"26ca33e2472d191f583e01c24e8cd262f54de8b542fbe7278f33ab08b2925794","src/set.rs":"8aef5f4ba75a067e271ad6cb960569f1d22a0acee0eb6c79e31bb8b636619d9d","src/string.rs":"ef2c408bf1fcea5d9106329fc48d659aabbdbca05eb121dfa27a221829bc4b89","src/timezone.rs":"42741f556af081be32987d2705488959c60aeb794e7c737b092f0dce5851ca89","src/url.rs":"4358f756ed3d5e9afd5a7f3e2e9115adc6133b47dc7ce59d6ebb32c6610b0e8f","src/uuid.rs":"82f75efa73d0842dff2e13d299c166c6593a77fcb69c4b7629a2df1c17ae507d"},"package":"b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac"}
|
||||
{"files":{"Cargo.toml":"5ba3b2c798c5356efabdfda97134a18c2a46cf5ead197701db879beb56360ee0","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3","build.rs":"9433ed3b20cc99e716dda4c6d8507c29bc04882544cbbea8d4e48ba80fd0fa12","src/array.rs":"40c305658e16b07d86353a5ad34e7b5fb98720f19cc2b5173360d6a61ce2642f","src/attributed_string.rs":"48c2d161d6f54136ae895a9f52efad1f831718ea331b875d25498039158a2d51","src/base.rs":"d926b5cdf46eb93f2d15a7c8940dc9b6dc4691c5efd350b6dce35836d452248e","src/bundle.rs":"be1ce281cb415b3a46a0f961e5a30ded5d295a09c0a4c7f27efa6721e2516c69","src/characterset.rs":"a10bbb42ddc74b3dc50b43ae6a50cc9d9a1cd08b975a1ce1b092be4bf64448a6","src/data.rs":"7cf4ddbc62635434fd3552739ffae9dde5f5d34f0ad0bb818068d3ac26403784","src/date.rs":"c064ee4c3ebd1927532c34871e2e41179d6e3c3e400f6b409a18ad9e2337477f","src/dictionary.rs":"3327a6f90f1e0db5e3fde1973e2df4143ca896716a816d03f2b17c8e988c5159","src/error.rs":"6205ebeb7631daa8bcd560862b6daa10f640c8c117ce5f6f7184f268dcbcb42a","src/filedescriptor.rs":"49580654b657811fade7adaa256f5f895cb011c9baa4731e2f44a6ec7fdba235","src/lib.rs":"f815234d32327532da600f47e9a006550d8993dcd695b803d0660316899f9319","src/messageport.rs":"e9227d5907cba8e29cdeea41bcb3ae5c7840220442953ab19aace31a84542f47","src/number.rs":"b1154203e74cb2258ba5520e20bcd4d524f1a957e09a19dd026b18d23baa3868","src/propertylist.rs":"7ec928438826c4ce40befedf3de0a37c8ecbc0fc17896dfa629d5864000b2cfe","src/runloop.rs":"26ca33e2472d191f583e01c24e8cd262f54de8b542fbe7278f33ab08b2925794","src/set.rs":"116c2f18008bfbeecac570d366dbd95b8fe5b9373e3e1bdd2c1d588314d776c5","src/string.rs":"ef2c408bf1fcea5d9106329fc48d659aabbdbca05eb121dfa27a221829bc4b89","src/timezone.rs":"c7dd9557646b7ff2bfd6a98bf92142b8304125b4e78dd651b687abc8da191159","src/url.rs":"4358f756ed3d5e9afd5a7f3e2e9115adc6133b47dc7ce59d6ebb32c6610b0e8f","src/uuid.rs":"82f75efa73d0842dff2e13d299c166c6593a77fcb69c4b7629a2df1c17ae507d"},"package":"9a21fa21941700a3cd8fcb4091f361a6a712fac632f85d9f487cc892045d55c6"}
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
[package]
|
||||
name = "core-foundation-sys"
|
||||
version = "0.7.0"
|
||||
version = "0.8.0"
|
||||
authors = ["The Servo Project Developers"]
|
||||
build = "build.rs"
|
||||
description = "Bindings to Core Foundation for macOS"
|
||||
|
|
|
@ -52,5 +52,4 @@ extern {
|
|||
value: CFTypeRef,
|
||||
);
|
||||
|
||||
pub fn CFMutableAttributedStringGetTypeID() -> CFTypeID;
|
||||
}
|
||||
|
|
|
@ -107,6 +107,9 @@ impl<T> TCFTypeRef for *mut T {
|
|||
}
|
||||
}
|
||||
|
||||
/// Constant used by some functions to indicate failed searches.
|
||||
pub static kCFNotFound: CFIndex = -1;
|
||||
|
||||
extern {
|
||||
/*
|
||||
* CFBase.h
|
||||
|
|
|
@ -34,4 +34,5 @@ extern {
|
|||
pub fn CFBundleCopyExecutableURL(bundle: CFBundleRef) -> CFURLRef;
|
||||
pub fn CFBundleCopyPrivateFrameworksURL(bundle: CFBundleRef) -> CFURLRef;
|
||||
pub fn CFBundleCopySharedSupportURL(bundle: CFBundleRef) -> CFURLRef;
|
||||
pub fn CFBundleCopyBundleURL(bundle: CFBundleRef) -> CFURLRef;
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
use std::os::raw::c_void;
|
||||
|
||||
use base::{CFAllocatorRef, CFIndex, CFTypeID};
|
||||
use base::{CFAllocatorRef, CFIndex, CFTypeID, Boolean};
|
||||
|
||||
pub type CFSetApplierFunction = extern "C" fn (value: *const c_void,
|
||||
context: *const c_void);
|
||||
|
@ -45,14 +45,22 @@ extern {
|
|||
/* Creating Sets */
|
||||
pub fn CFSetCreate(allocator: CFAllocatorRef, values: *const *const c_void, numValues: CFIndex,
|
||||
callBacks: *const CFSetCallBacks) -> CFSetRef;
|
||||
pub fn CFSetCreateCopy(allocator: CFAllocatorRef, theSet: CFSetRef) -> CFSetRef;
|
||||
|
||||
/* Examining a Set */
|
||||
pub fn CFSetContainsValue(theSet: CFSetRef, value: *const c_void) -> Boolean;
|
||||
pub fn CFSetGetCount(theSet: CFSetRef) -> CFIndex;
|
||||
pub fn CFSetGetCountOfValue(theSet: CFSetRef, value: *const c_void) -> CFIndex;
|
||||
pub fn CFSetGetValue(theSet: CFSetRef, value: *const c_void) -> *const c_void;
|
||||
pub fn CFSetGetValueIfPresent(theSet: CFSetRef, candidate: *const c_void, value: *mut *const c_void) -> Boolean;
|
||||
pub fn CFSetGetValues(theSet: CFSetRef, values: *mut *const c_void);
|
||||
|
||||
/* Applying a Function to Set Members */
|
||||
pub fn CFSetApplyFunction(theSet: CFSetRef,
|
||||
applier: CFSetApplierFunction,
|
||||
context: *const c_void);
|
||||
|
||||
pub fn CFSetGetCount(theSet: CFSetRef) -> CFIndex;
|
||||
|
||||
/* Getting the CFSet Type ID */
|
||||
pub fn CFSetGetTypeID() -> CFTypeID;
|
||||
}
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ use std::os::raw::c_void;
|
|||
|
||||
use base::{CFAllocatorRef, CFTypeID};
|
||||
use date::{CFTimeInterval, CFAbsoluteTime};
|
||||
use string::CFStringRef;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct __CFTimeZone(c_void);
|
||||
|
@ -24,4 +25,5 @@ extern {
|
|||
pub fn CFTimeZoneGetSecondsFromGMT(tz: CFTimeZoneRef, time: CFAbsoluteTime) -> CFTimeInterval;
|
||||
|
||||
pub fn CFTimeZoneGetTypeID() -> CFTypeID;
|
||||
pub fn CFTimeZoneGetName(tz: CFTimeZoneRef) -> CFStringRef;
|
||||
}
|
||||
|
|
|
@ -1 +1 @@
|
|||
{"files":{"Cargo.toml":"b5b2f9b692bbd5d0b445bfc43eb2dad8e236fd14be6fea6511e2f972f2177b92","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3","src/array.rs":"221e81de15d95ca453df39466ba65faf879f2923202145958dfcebe63bfef97f","src/attributed_string.rs":"e6b32d673fa957611dbac2480675fab3c697fca8043077f2015f0a0801b20425","src/base.rs":"394764fa59518507fd8d53024b9574ab914eb856c1a873e6b1b4d84cdcde1c31","src/boolean.rs":"f5b4d295aaf6cc3681212afebeae2974c5d551125badcc066e6089ac0d2a0873","src/bundle.rs":"b652810146ee35c7c08ccb8e0b920359bf0313f4e8ca20111627754854ca93b5","src/characterset.rs":"a3ffb46c5463c99813eebfc177a65794f44a1b9343534e28bbccd262034714c2","src/data.rs":"a1d7e6430c745731fc7b2aee49af9f14e79c8a288951c82ea6507689a3356af8","src/date.rs":"a02f6cca7b6e8fbabc7713177429012658dba5146556e14a08e7baaf81958d83","src/dictionary.rs":"ed8080eb00507e342521fb2c513a83c5706e883c3f8d67d8f38e9a0ed685c7eb","src/error.rs":"22c21087d9c2c103d1bcb2c4af33b684317bbda5d4747902e510d410f8c1a14b","src/filedescriptor.rs":"6c2087a8e101bfb31a6b916759a69a82852b18b2174c818f6ec9211ccdcaf1e6","src/lib.rs":"bbf7e392e1c8e5f4cd491601b6601ea26b389b47dc4e32217481a7b86020843c","src/number.rs":"5a6cc9036c156e7e9d787864dd671087677abf4175cd840cbf123ccd89abcafe","src/propertylist.rs":"557ff9c346fbc70d19a887e0ce9977b84066f5d4bb6ba53ece8b733a5f0526e3","src/runloop.rs":"048772c566cf3a1ec3e478958293aa9f3af38ff40b71ab7695f86b61d12f2023","src/set.rs":"c61d7cacdbe7c3c69b2add3d2f1721960f6df710ef4db6a442cd8b05e8e929f3","src/string.rs":"28cead4283dfeeeb1c8c8bcf855823ed4b952e3a54cb8ca1c8f5f9a25d77bc0b","src/timezone.rs":"65859378232ee55f04bc4544b88f5dbc21f5db01bd16f2df3e82136ee3ce26b4","src/url.rs":"6d009ad7991af80c3131cd63070309e5c4054076cc7b05c99caf88cea660bf43","src/uuid.rs":"c3457e43fc22ba0f3fcab3ee8108500585ba005dbcbfa7edad0d389701ddf379","tests/use_macro_outside_crate.rs":"ed5e74ac9e988f2609c0b785189f1e6368d693f6401603ad065521f3ab51df94"},"package":"57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171"}
|
||||
{"files":{"Cargo.toml":"d6974076ca199bc2da1dfe5dee3735fdc1c50344af7fbe53ce9c9b4ccdb30b73","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3","src/array.rs":"221e81de15d95ca453df39466ba65faf879f2923202145958dfcebe63bfef97f","src/attributed_string.rs":"c04c5a3c912b6ab58d3081fa5dfa8fda07957b26396ebc907bba5ad07dc1087d","src/base.rs":"9ed46d59afdb22ecc65504ccd77f1c98108ea0ff96fad568dadb7ed49fde588c","src/boolean.rs":"f5b4d295aaf6cc3681212afebeae2974c5d551125badcc066e6089ac0d2a0873","src/bundle.rs":"7c26060c6ca64347b96800498e663d622f8dc1aa551a2f18cffa258cd27272a0","src/characterset.rs":"a3ffb46c5463c99813eebfc177a65794f44a1b9343534e28bbccd262034714c2","src/data.rs":"a1d7e6430c745731fc7b2aee49af9f14e79c8a288951c82ea6507689a3356af8","src/date.rs":"a02f6cca7b6e8fbabc7713177429012658dba5146556e14a08e7baaf81958d83","src/dictionary.rs":"ed8080eb00507e342521fb2c513a83c5706e883c3f8d67d8f38e9a0ed685c7eb","src/error.rs":"22c21087d9c2c103d1bcb2c4af33b684317bbda5d4747902e510d410f8c1a14b","src/filedescriptor.rs":"6c2087a8e101bfb31a6b916759a69a82852b18b2174c818f6ec9211ccdcaf1e6","src/lib.rs":"867b9b5acbc8dcf1d9f61a936cec5c26762a0af444fa83cafdf9f3ab1ee979eb","src/number.rs":"5a6cc9036c156e7e9d787864dd671087677abf4175cd840cbf123ccd89abcafe","src/propertylist.rs":"9f182135d9eb21421673280112d5676051bf7f1c2548c6da1ff879ea0bfb4704","src/runloop.rs":"048772c566cf3a1ec3e478958293aa9f3af38ff40b71ab7695f86b61d12f2023","src/set.rs":"da75b31f894bd04c0518211e113ca21a2781cd6ac71018104eeb354dd2f1a19e","src/string.rs":"bea7f3fd2528377442d1bebfeacf7e905d879320ae662fe6a8ef917b6a8e9c36","src/timezone.rs":"6dcf188db76303292b519d6283b71b71c7b3d6ed1afddc28de16d727075f5ef1","src/url.rs":"c544725399d3fbc4de54fd9d1c987e02f81760effd08c5c64c8deacd11478950","src/uuid.rs":"c3457e43fc22ba0f3fcab3ee8108500585ba005dbcbfa7edad0d389701ddf379","tests/use_macro_outside_crate.rs":"ed5e74ac9e988f2609c0b785189f1e6368d693f6401603ad065521f3ab51df94"},"package":"3b5ed8e7e76c45974e15e41bfa8d5b0483cd90191639e01d8f5f1e606299d3fb"}
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
[package]
|
||||
name = "core-foundation"
|
||||
version = "0.7.0"
|
||||
version = "0.9.0"
|
||||
authors = ["The Servo Project Developers"]
|
||||
description = "Bindings to Core Foundation for macOS"
|
||||
homepage = "https://github.com/servo/core-foundation-rs"
|
||||
|
@ -25,7 +25,7 @@ version = "0.4"
|
|||
optional = true
|
||||
|
||||
[dependencies.core-foundation-sys]
|
||||
version = "0.7"
|
||||
version = "0.8.0"
|
||||
|
||||
[dependencies.libc]
|
||||
version = "0.2"
|
||||
|
|
|
@ -41,7 +41,7 @@ impl CFAttributedString {
|
|||
declare_TCFType!{
|
||||
CFMutableAttributedString, CFMutableAttributedStringRef
|
||||
}
|
||||
impl_TCFType!(CFMutableAttributedString, CFMutableAttributedStringRef, CFMutableAttributedStringGetTypeID);
|
||||
impl_TCFType!(CFMutableAttributedString, CFMutableAttributedStringRef, CFAttributedStringGetTypeID);
|
||||
|
||||
impl CFMutableAttributedString {
|
||||
#[inline]
|
||||
|
@ -70,7 +70,7 @@ impl CFMutableAttributedString {
|
|||
}
|
||||
|
||||
#[inline]
|
||||
pub fn set_attribute<T: TCFType>(&mut self, range: CFRange, name: CFStringRef, value: T) {
|
||||
pub fn set_attribute<T: TCFType>(&mut self, range: CFRange, name: CFStringRef, value: &T) {
|
||||
unsafe {
|
||||
CFAttributedStringSetAttribute(
|
||||
self.0, range, name, value.as_CFTypeRef());
|
||||
|
@ -83,3 +83,16 @@ impl Default for CFMutableAttributedString {
|
|||
Self::new()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn attributed_string_type_id_comparison() {
|
||||
// CFMutableAttributedString TypeID must be equal to CFAttributedString TypeID.
|
||||
// Compilation must not fail.
|
||||
assert_eq!(<CFAttributedString as TCFType>::type_id(), <CFMutableAttributedString as TCFType>::type_id());
|
||||
}
|
||||
}
|
|
@ -243,6 +243,7 @@ impl TCFType for CFType {
|
|||
|
||||
#[inline]
|
||||
unsafe fn wrap_under_get_rule(reference: CFTypeRef) -> CFType {
|
||||
assert!(!reference.is_null(), "Attempted to create a NULL object.");
|
||||
let reference: CFTypeRef = CFRetain(reference);
|
||||
TCFType::wrap_under_create_rule(reference)
|
||||
}
|
||||
|
@ -254,6 +255,7 @@ impl TCFType for CFType {
|
|||
|
||||
#[inline]
|
||||
unsafe fn wrap_under_create_rule(obj: CFTypeRef) -> CFType {
|
||||
assert!(!obj.is_null(), "Attempted to create a NULL object.");
|
||||
CFType(obj)
|
||||
}
|
||||
|
||||
|
|
|
@ -9,8 +9,10 @@
|
|||
|
||||
//! Core Foundation Bundle Type
|
||||
|
||||
pub use core_foundation_sys::bundle::*;
|
||||
use core_foundation_sys::base::kCFAllocatorDefault;
|
||||
pub use core_foundation_sys::bundle::*;
|
||||
use core_foundation_sys::url::kCFURLPOSIXPathStyle;
|
||||
use std::path::PathBuf;
|
||||
|
||||
use base::{CFType, TCFType};
|
||||
use url::CFURL;
|
||||
|
@ -79,6 +81,24 @@ impl CFBundle {
|
|||
}
|
||||
}
|
||||
|
||||
/// Bundle's own location
|
||||
pub fn bundle_url(&self) -> Option<CFURL> {
|
||||
unsafe {
|
||||
let bundle_url = CFBundleCopyBundleURL(self.0);
|
||||
if bundle_url.is_null() {
|
||||
None
|
||||
} else {
|
||||
Some(TCFType::wrap_under_create_rule(bundle_url))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Bundle's own location
|
||||
pub fn path(&self) -> Option<PathBuf> {
|
||||
let url = self.bundle_url()?;
|
||||
Some(PathBuf::from(url.get_file_system_path(kCFURLPOSIXPathStyle).to_string()))
|
||||
}
|
||||
|
||||
pub fn private_frameworks_url(&self) -> Option<CFURL> {
|
||||
unsafe {
|
||||
let fw_url = CFBundleCopyPrivateFrameworksURL(self.0);
|
||||
|
|
|
@ -95,6 +95,7 @@ macro_rules! impl_TCFType {
|
|||
|
||||
#[inline]
|
||||
unsafe fn wrap_under_get_rule(reference: $ty_ref) -> Self {
|
||||
assert!(!reference.is_null(), "Attempted to create a NULL object.");
|
||||
let reference = $crate::base::CFRetain(reference as *const ::std::os::raw::c_void) as $ty_ref;
|
||||
$crate::base::TCFType::wrap_under_create_rule(reference)
|
||||
}
|
||||
|
@ -106,6 +107,7 @@ macro_rules! impl_TCFType {
|
|||
|
||||
#[inline]
|
||||
unsafe fn wrap_under_create_rule(reference: $ty_ref) -> Self {
|
||||
assert!(!reference.is_null(), "Attempted to create a NULL object.");
|
||||
// we need one PhantomData for each type parameter so call ourselves
|
||||
// again with @Phantom $p to produce that
|
||||
$ty(reference $(, impl_TCFType!(@Phantom $p))*)
|
||||
|
|
|
@ -121,6 +121,7 @@ impl CFPropertyList {
|
|||
|
||||
#[inline]
|
||||
pub unsafe fn wrap_under_get_rule(reference: CFPropertyListRef) -> CFPropertyList {
|
||||
assert!(!reference.is_null(), "Attempted to create a NULL object.");
|
||||
let reference = CFRetain(reference);
|
||||
CFPropertyList(reference)
|
||||
}
|
||||
|
@ -147,6 +148,7 @@ impl CFPropertyList {
|
|||
|
||||
#[inline]
|
||||
pub unsafe fn wrap_under_create_rule(obj: CFPropertyListRef) -> CFPropertyList {
|
||||
assert!(!obj.is_null(), "Attempted to create a NULL object.");
|
||||
CFPropertyList(obj)
|
||||
}
|
||||
|
||||
|
@ -262,7 +264,7 @@ pub mod test {
|
|||
let boo = CFString::from_static_string("Boo");
|
||||
let foo = CFString::from_static_string("Foo");
|
||||
let tru = CFBoolean::true_value();
|
||||
let n42 = CFNumber::from(42);
|
||||
let n42 = CFNumber::from(1i64<<33);
|
||||
|
||||
let dict1 = CFDictionary::from_CFType_pairs(&[(bar.as_CFType(), boo.as_CFType()),
|
||||
(baz.as_CFType(), tru.as_CFType()),
|
||||
|
|
|
@ -42,3 +42,12 @@ impl CFSet {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<T> CFSet<T> {
|
||||
/// Get the number of elements in the CFSet
|
||||
pub fn len(&self) -> usize {
|
||||
unsafe {
|
||||
CFSetGetCount(self.0) as usize
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -141,6 +141,53 @@ impl CFString {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'a> PartialEq<&'a str> for CFString {
|
||||
fn eq(&self, other: &&str) -> bool {
|
||||
unsafe {
|
||||
let temp = CFStringCreateWithBytesNoCopy(kCFAllocatorDefault,
|
||||
other.as_ptr(),
|
||||
other.len().to_CFIndex(),
|
||||
kCFStringEncodingUTF8,
|
||||
false as Boolean,
|
||||
kCFAllocatorNull);
|
||||
self.eq(&CFString::wrap_under_create_rule(temp))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> PartialEq<CFString> for &'a str {
|
||||
#[inline]
|
||||
fn eq(&self, other: &CFString) -> bool {
|
||||
other.eq(self)
|
||||
}
|
||||
}
|
||||
|
||||
impl PartialEq<CFString> for String {
|
||||
#[inline]
|
||||
fn eq(&self, other: &CFString) -> bool {
|
||||
other.eq(&self.as_str())
|
||||
}
|
||||
}
|
||||
|
||||
impl PartialEq<String> for CFString {
|
||||
#[inline]
|
||||
fn eq(&self, other: &String) -> bool {
|
||||
self.eq(&other.as_str())
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn str_cmp() {
|
||||
let cfstr = CFString::new("hello");
|
||||
assert_eq!("hello", cfstr);
|
||||
assert_eq!(cfstr, "hello");
|
||||
assert_ne!(cfstr, "wrong");
|
||||
assert_ne!("wrong", cfstr);
|
||||
let hello = String::from("hello");
|
||||
assert_eq!(hello, cfstr);
|
||||
assert_eq!(cfstr, hello);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn string_and_back() {
|
||||
let original = "The quick brown fox jumped over the slow lazy dog.";
|
||||
|
|
|
@ -14,6 +14,7 @@ use core_foundation_sys::base::kCFAllocatorDefault;
|
|||
|
||||
use base::TCFType;
|
||||
use date::{CFDate, CFTimeInterval};
|
||||
use string::CFString;
|
||||
|
||||
#[cfg(feature = "with-chrono")]
|
||||
use chrono::{FixedOffset, NaiveDateTime};
|
||||
|
@ -68,6 +69,14 @@ impl CFTimeZone {
|
|||
pub fn from_offset(offset: FixedOffset) -> CFTimeZone {
|
||||
CFTimeZone::new(offset.local_minus_utc() as f64)
|
||||
}
|
||||
|
||||
/// The timezone database ID that identifies the time zone. E.g. "America/Los_Angeles" or
|
||||
/// "Europe/Paris".
|
||||
pub fn name(&self) -> CFString {
|
||||
unsafe {
|
||||
CFString::wrap_under_get_rule(CFTimeZoneGetName(self.0))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
|
|
@ -16,7 +16,6 @@ use string::{CFString};
|
|||
|
||||
use core_foundation_sys::base::{kCFAllocatorDefault, Boolean};
|
||||
use std::fmt;
|
||||
use std::mem::MaybeUninit;
|
||||
use std::ptr;
|
||||
use std::path::{Path, PathBuf};
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
{"files":{"Cargo.toml":"99ebaa23c8f85f471729708a6405b546932314a1033f0a9bcc89893489b3305f","src/base.rs":"3764010f0c416db49be8a9e191fffb6848e8287edbdd5b12972613e301720ded","src/geometry.rs":"b94e50a16b8540dc6f37bfe4b1549ac68974cd6ba6c0bbd9209559f8a46d86eb","src/lib.rs":"31700ac9508fd32005bafd1c12a86a6803d198e9b1a71166a7391e642c091cd1"},"package":"e92f5d519093a4178296707dbaa3880eae85a5ef5386675f361a1cf25376e93c"}
|
|
@ -0,0 +1,31 @@
|
|||
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
|
||||
#
|
||||
# When uploading crates to the registry Cargo will automatically
|
||||
# "normalize" Cargo.toml files for maximal compatibility
|
||||
# with all versions of Cargo and also rewrite `path` dependencies
|
||||
# to registry (e.g., crates.io) dependencies
|
||||
#
|
||||
# If you believe there's an error in this file please file an
|
||||
# issue against the rust-lang/cargo repository. If you're
|
||||
# editing this file be aware that the upstream Cargo.toml
|
||||
# will likely look very different (and much more reasonable)
|
||||
|
||||
[package]
|
||||
name = "core-graphics-types"
|
||||
version = "0.1.0"
|
||||
authors = ["The Servo Project Developers"]
|
||||
description = "Bindings for some fundamental Core Graphics types"
|
||||
homepage = "https://github.com/servo/core-foundation-rs"
|
||||
license = "MIT / Apache-2.0"
|
||||
repository = "https://github.com/servo/core-foundation-rs"
|
||||
[dependencies.bitflags]
|
||||
version = "1.0"
|
||||
|
||||
[dependencies.core-foundation]
|
||||
version = "0.9"
|
||||
|
||||
[dependencies.foreign-types]
|
||||
version = "0.3.0"
|
||||
|
||||
[dependencies.libc]
|
||||
version = "0.2"
|
|
@ -0,0 +1,32 @@
|
|||
// Copyright 2013 The Servo Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
// this file defines CGFloat, as well as stubbed data types.
|
||||
|
||||
#![allow(non_camel_case_types)]
|
||||
#![allow(non_upper_case_globals)]
|
||||
|
||||
use libc;
|
||||
|
||||
#[cfg(any(target_arch = "x86",
|
||||
target_arch = "arm",
|
||||
target_arch = "aarch64"))]
|
||||
pub type boolean_t = libc::c_int;
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
pub type boolean_t = libc::c_uint;
|
||||
|
||||
#[cfg(target_pointer_width = "64")]
|
||||
pub type CGFloat = libc::c_double;
|
||||
#[cfg(not(target_pointer_width = "64"))]
|
||||
pub type CGFloat = libc::c_float;
|
||||
|
||||
pub type CGError = libc::int32_t;
|
||||
|
||||
pub type CGGlyph = libc::c_ushort;
|
||||
|
|
@ -0,0 +1,195 @@
|
|||
// Copyright 2013 The Servo Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
use base::CGFloat;
|
||||
use core_foundation::base::TCFType;
|
||||
use core_foundation::dictionary::CFDictionary;
|
||||
|
||||
pub const CG_ZERO_POINT: CGPoint = CGPoint {
|
||||
x: 0.0,
|
||||
y: 0.0,
|
||||
};
|
||||
|
||||
pub const CG_ZERO_SIZE: CGSize = CGSize {
|
||||
width: 0.0,
|
||||
height: 0.0,
|
||||
};
|
||||
|
||||
pub const CG_ZERO_RECT: CGRect = CGRect {
|
||||
origin: CG_ZERO_POINT,
|
||||
size: CG_ZERO_SIZE,
|
||||
};
|
||||
|
||||
pub const CG_AFFINE_TRANSFORM_IDENTITY: CGAffineTransform = CGAffineTransform {
|
||||
a: 1.0, b: 0.0,
|
||||
c: 0.0, d: 1.0,
|
||||
tx: 0.0, ty: 0.0,
|
||||
};
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Clone, Copy, Debug, Default)]
|
||||
pub struct CGSize {
|
||||
pub width: CGFloat,
|
||||
pub height: CGFloat,
|
||||
}
|
||||
|
||||
impl CGSize {
|
||||
#[inline]
|
||||
pub fn new(width: CGFloat, height: CGFloat) -> CGSize {
|
||||
CGSize {
|
||||
width: width,
|
||||
height: height,
|
||||
}
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn apply_transform(&self, t: &CGAffineTransform) -> CGSize {
|
||||
unsafe {
|
||||
ffi::CGSizeApplyAffineTransform(*self, *t)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Clone, Copy, Debug, Default)]
|
||||
pub struct CGPoint {
|
||||
pub x: CGFloat,
|
||||
pub y: CGFloat,
|
||||
}
|
||||
|
||||
impl CGPoint {
|
||||
#[inline]
|
||||
pub fn new(x: CGFloat, y: CGFloat) -> CGPoint {
|
||||
CGPoint {
|
||||
x: x,
|
||||
y: y,
|
||||
}
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn apply_transform(&self, t: &CGAffineTransform) -> CGPoint {
|
||||
unsafe {
|
||||
ffi::CGPointApplyAffineTransform(*self, *t)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Clone, Copy, Debug, Default)]
|
||||
pub struct CGRect {
|
||||
pub origin: CGPoint,
|
||||
pub size: CGSize
|
||||
}
|
||||
|
||||
impl CGRect {
|
||||
#[inline]
|
||||
pub fn new(origin: &CGPoint, size: &CGSize) -> CGRect {
|
||||
CGRect {
|
||||
origin: *origin,
|
||||
size: *size,
|
||||
}
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn inset(&self, size: &CGSize) -> CGRect {
|
||||
unsafe {
|
||||
ffi::CGRectInset(*self, size.width, size.height)
|
||||
}
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn from_dict_representation(dict: &CFDictionary) -> Option<CGRect> {
|
||||
let mut rect = CGRect::new(&CGPoint::new(0., 0.), &CGSize::new(0., 0.));
|
||||
let result = unsafe {
|
||||
ffi::CGRectMakeWithDictionaryRepresentation(dict.as_concrete_TypeRef(), &mut rect)
|
||||
};
|
||||
if result == 0 {
|
||||
None
|
||||
} else {
|
||||
Some(rect)
|
||||
}
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn is_empty(&self) -> bool {
|
||||
unsafe {
|
||||
// I use one, as it seems that `YES` is not available from this crate.
|
||||
ffi::CGRectIsEmpty(*self) == 1
|
||||
}
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn is_intersects(&self, other: &CGRect) -> bool {
|
||||
unsafe {
|
||||
// I use one, as it seems that `YES` is not available from this crate.
|
||||
ffi::CGRectIntersectsRect(*self, *other) == 1
|
||||
}
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn apply_transform(&self, t: &CGAffineTransform) -> CGRect {
|
||||
unsafe {
|
||||
ffi::CGRectApplyAffineTransform(*self, *t)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Clone, Copy, Debug, Default)]
|
||||
pub struct CGAffineTransform {
|
||||
pub a: CGFloat,
|
||||
pub b: CGFloat,
|
||||
pub c: CGFloat,
|
||||
pub d: CGFloat,
|
||||
pub tx: CGFloat,
|
||||
pub ty: CGFloat,
|
||||
}
|
||||
|
||||
impl CGAffineTransform {
|
||||
#[inline]
|
||||
pub fn new(
|
||||
a: CGFloat,
|
||||
b: CGFloat,
|
||||
c: CGFloat,
|
||||
d: CGFloat,
|
||||
tx: CGFloat,
|
||||
ty: CGFloat,
|
||||
) -> CGAffineTransform {
|
||||
CGAffineTransform { a, b, c, d, tx, ty }
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn invert(&self) -> CGAffineTransform {
|
||||
unsafe {
|
||||
ffi::CGAffineTransformInvert(*self)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mod ffi {
|
||||
use base::{CGFloat, boolean_t};
|
||||
use geometry::{CGAffineTransform, CGPoint, CGRect, CGSize};
|
||||
use core_foundation::dictionary::CFDictionaryRef;
|
||||
|
||||
#[link(name = "CoreGraphics", kind = "framework")]
|
||||
extern {
|
||||
pub fn CGRectInset(rect: CGRect, dx: CGFloat, dy: CGFloat) -> CGRect;
|
||||
pub fn CGRectMakeWithDictionaryRepresentation(dict: CFDictionaryRef,
|
||||
rect: *mut CGRect) -> boolean_t;
|
||||
pub fn CGRectIsEmpty(rect: CGRect) -> boolean_t;
|
||||
pub fn CGRectIntersectsRect(rect1: CGRect, rect2: CGRect) -> boolean_t;
|
||||
|
||||
pub fn CGAffineTransformInvert(t: CGAffineTransform) -> CGAffineTransform;
|
||||
|
||||
pub fn CGPointApplyAffineTransform(point: CGPoint, t: CGAffineTransform) -> CGPoint;
|
||||
pub fn CGRectApplyAffineTransform(rect: CGRect, t: CGAffineTransform) -> CGRect;
|
||||
pub fn CGSizeApplyAffineTransform(size: CGSize, t: CGAffineTransform) -> CGSize;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
// Copyright 2013 The Servo Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
extern crate libc;
|
||||
extern crate core_foundation;
|
||||
|
||||
pub mod base;
|
||||
pub mod geometry;
|
|
@ -1 +1 @@
|
|||
{"files":{"COPYRIGHT":"ec82b96487e9e778ee610c7ab245162464782cfa1f555c2299333f8dbe5c036a","Cargo.toml":"fccf58052cf6a36aba8ce4936d5e62d953f73a1fbedbe89b6d099bcd3848a5a5","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3","README.md":"6745c3c38183d2eda9b1fa265fb0a95018db5c110cbabc00b32327d951bbe2ea","src/base.rs":"89e01071e66f0c66fa22d94fd666100c89f6a20d988fb8bacbf86b8ed633bcbd","src/color.rs":"4c8ec4ab828cbc1b2a1538a34a51f5b380927f2f1daf187dff6f732f57a43656","src/color_space.rs":"b3d7ee8a21703c789160867cb8eb2188bd1daa193e3d030f21adb6f1a6f872de","src/context.rs":"b4b05d7c75337e8f8ece3143d1f1a48b3ae6868c473469c2ce7fd030512f9aff","src/data_provider.rs":"9e8a17075b1527f87111fd4102252e086bf9fde147483f21a661773e133f7c71","src/display.rs":"cc691712c3d27342ae97f04df6032d6f682570239ba51936fcc796c61bf08c8b","src/event.rs":"593d7f6c0621f8803546562548f98985f171eb74b513d6f9b9081fe6f2d1a1a8","src/event_source.rs":"d55a4f5b5e62789325028febc51bbf54c74b15ab1a4e70c6ad749a2f9753e081","src/font.rs":"e1d2be7f909fd5876f3cd1649d54ef0a9d7dcd4151c027a25049be7084ca8a9f","src/geometry.rs":"49d27dde6672e5654f796ec3399216ab6d1cf9ed9d3506a824c8e9eec6e3db00","src/image.rs":"0af720ee020fb1c6a2f4b1ce49e3d27f8f21f0be6b81ba4b9c824f87564efa58","src/lib.rs":"9b9601462de1bbc806e881b2b42e86b16372cad8eeefe1a96b772a9f7329958d","src/path.rs":"c429afeaed999b02ac00f89a867b5fc64f1e223039079a4e0529306b734ff117","src/private.rs":"da3fd61338bab2d8e26aa5433b2e18ecd2a0a408c62e1ac2b33a0f87f2dad88a","src/sys.rs":"cc90b690f172da51a87ffb234f6e74a9f501c4f1630d7b51fa2d5846e80fc164","src/window.rs":"2f6c3dc958ae2c0c9e2fc5033300b96e60ed0abee9823ea1f03797d64df0911a"},"package":"59e78b2e0aaf43f08e7ae0d6bc96895ef72ff0921c7d4ff4762201b2dba376dd"}
|
||||
{"files":{"COPYRIGHT":"ec82b96487e9e778ee610c7ab245162464782cfa1f555c2299333f8dbe5c036a","Cargo.toml":"8ae209cd9a5905900c64dd3ec6cae30b2a4877804c2cb0a45452b03a8daa65ee","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3","README.md":"6745c3c38183d2eda9b1fa265fb0a95018db5c110cbabc00b32327d951bbe2ea","src/base.rs":"838683ff67253f4aff1d4b4177531210ca73d4e61f05c5d96a8f196b2a88c787","src/color.rs":"4c8ec4ab828cbc1b2a1538a34a51f5b380927f2f1daf187dff6f732f57a43656","src/color_space.rs":"b3d7ee8a21703c789160867cb8eb2188bd1daa193e3d030f21adb6f1a6f872de","src/context.rs":"8bda7f9ecb5be768b09a29cc3b0a4f329f55d2a2ab74030d121610283862d833","src/data_provider.rs":"9badc70bdd1bdb18f6ba4a25fdfc56ab11c5747751b5473987d29898e5efe6fb","src/display.rs":"cc691712c3d27342ae97f04df6032d6f682570239ba51936fcc796c61bf08c8b","src/event.rs":"84d6035ab155e702be056f4f37d0cbb76ccfa8fb9277fcbfb42c7953d0cd3937","src/event_source.rs":"d55a4f5b5e62789325028febc51bbf54c74b15ab1a4e70c6ad749a2f9753e081","src/font.rs":"cfff63d8f07d8fe497fdef258163c1bf7b3755b845fffb8e3c99a5cb45986fc8","src/geometry.rs":"8e12dc89835406bfa514de8fb58f5fd435724d1ddb97dc3a70392efbcf1c42ed","src/gradient.rs":"8ee8661706f36914d08e903840c4f07414b38ba40ea4a482d34b900ac6ac7cf9","src/image.rs":"a5a5df8c0f310455f038eeb16688015f481688cb417f8e8f424a4c1d2a1cdd57","src/lib.rs":"78264571227db6fc9194cb90d64beaff1738a501f88b5da55eb17ae42592d26f","src/path.rs":"c429afeaed999b02ac00f89a867b5fc64f1e223039079a4e0529306b734ff117","src/private.rs":"da3fd61338bab2d8e26aa5433b2e18ecd2a0a408c62e1ac2b33a0f87f2dad88a","src/sys.rs":"72cd460e499734a9394a8ec57dcb30ea0a15717452ff9fb343f22effa5d6d308","src/window.rs":"2f6c3dc958ae2c0c9e2fc5033300b96e60ed0abee9823ea1f03797d64df0911a"},"package":"f6082396a349fa49674ba1bda4077332a18bf150e8fa75745ece07085e29a113"}
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
[package]
|
||||
name = "core-graphics"
|
||||
version = "0.19.0"
|
||||
version = "0.22.0"
|
||||
authors = ["The Servo Project Developers"]
|
||||
description = "Bindings to Core Graphics for macOS"
|
||||
homepage = "https://github.com/servo/core-graphics-rs"
|
||||
|
@ -22,7 +22,10 @@ repository = "https://github.com/servo/core-foundation-rs"
|
|||
version = "1.0"
|
||||
|
||||
[dependencies.core-foundation]
|
||||
version = "0.7"
|
||||
version = "0.9"
|
||||
|
||||
[dependencies.core-graphics-types]
|
||||
version = "0.1"
|
||||
|
||||
[dependencies.foreign-types]
|
||||
version = "0.3.0"
|
||||
|
|
|
@ -12,21 +12,7 @@
|
|||
#![allow(non_camel_case_types)]
|
||||
#![allow(non_upper_case_globals)]
|
||||
|
||||
use libc;
|
||||
|
||||
#[cfg(any(target_arch = "x86",
|
||||
target_arch = "arm",
|
||||
target_arch = "aarch64"))]
|
||||
pub type boolean_t = libc::c_int;
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
pub type boolean_t = libc::c_uint;
|
||||
|
||||
#[cfg(target_pointer_width = "64")]
|
||||
pub type CGFloat = libc::c_double;
|
||||
#[cfg(not(target_pointer_width = "64"))]
|
||||
pub type CGFloat = libc::c_float;
|
||||
|
||||
pub type CGError = i32;
|
||||
pub use core_graphics_types::base::*;
|
||||
|
||||
pub const kCGImageAlphaNone: u32 = 0;
|
||||
pub const kCGImageAlphaPremultipliedLast: u32 = 1;
|
||||
|
@ -36,11 +22,11 @@ pub const kCGImageAlphaFirst: u32 = 4;
|
|||
pub const kCGImageAlphaNoneSkipLast: u32 = 5;
|
||||
pub const kCGImageAlphaNoneSkipFirst: u32 = 6;
|
||||
|
||||
pub const kCGBitmapByteOrderDefault: u32 = (0 << 12);
|
||||
pub const kCGBitmapByteOrder16Little: u32 = (1 << 12);
|
||||
pub const kCGBitmapByteOrder32Little: u32 = (2 << 12);
|
||||
pub const kCGBitmapByteOrder16Big: u32 = (3 << 12);
|
||||
pub const kCGBitmapByteOrder32Big: u32 = (4 << 12);
|
||||
pub const kCGBitmapByteOrderDefault: u32 = 0 << 12;
|
||||
pub const kCGBitmapByteOrder16Little: u32 = 1 << 12;
|
||||
pub const kCGBitmapByteOrder32Little: u32 = 2 << 12;
|
||||
pub const kCGBitmapByteOrder16Big: u32 = 3 << 12;
|
||||
pub const kCGBitmapByteOrder32Big: u32 = 4 << 12;
|
||||
|
||||
pub const kCGRenderingIntentDefault: u32 = 0;
|
||||
pub const kCGRenderingIntentAbsoluteColorimetric: u32 = 1;
|
||||
|
|
|
@ -9,9 +9,10 @@
|
|||
|
||||
use base::CGFloat;
|
||||
use color_space::CGColorSpace;
|
||||
use core_foundation::base::{ToVoid, CFRelease, CFRetain, CFTypeID};
|
||||
use core_foundation::base::{CFTypeID, TCFType};
|
||||
use font::{CGFont, CGGlyph};
|
||||
use geometry::CGPoint;
|
||||
use geometry::{CGPoint, CGSize};
|
||||
use gradient::{CGGradient, CGGradientDrawingOptions};
|
||||
use color::CGColor;
|
||||
use path::CGPathRef;
|
||||
use libc::{c_int, size_t};
|
||||
|
@ -66,6 +67,7 @@ pub enum CGTextDrawingMode {
|
|||
CGTextInvisible,
|
||||
CGTextFillClip,
|
||||
CGTextStrokeClip,
|
||||
CGTextFillStrokeClip,
|
||||
CGTextClip
|
||||
}
|
||||
|
||||
|
@ -95,11 +97,21 @@ pub enum CGPathDrawingMode {
|
|||
CGPathEOFillStroke,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Clone, Copy, Debug)]
|
||||
pub enum CGInterpolationQuality {
|
||||
CGInterpolationQualityDefault,
|
||||
CGInterpolationQualityNone,
|
||||
CGInterpolationQualityLow,
|
||||
CGInterpolationQualityMedium,
|
||||
CGInterpolationQualityHigh,
|
||||
}
|
||||
|
||||
foreign_type! {
|
||||
#[doc(hidden)]
|
||||
type CType = ::sys::CGContext;
|
||||
fn drop = |cs| CFRelease(cs as *mut _);
|
||||
fn clone = |p| CFRetain(p as *const _) as *mut _;
|
||||
fn drop = |cs| CGContextRelease(cs);
|
||||
fn clone = |p| CGContextRetain(p);
|
||||
pub struct CGContext;
|
||||
pub struct CGContextRef;
|
||||
}
|
||||
|
@ -111,6 +123,22 @@ impl CGContext {
|
|||
}
|
||||
}
|
||||
|
||||
/// Creates a `CGContext` instance from an existing [`CGContextRef`] pointer.
|
||||
///
|
||||
/// This funtion will internally call [`CGRetain`] and hence there is no need to call it explicitly.
|
||||
///
|
||||
/// This function is particularly useful for cases when the context is not instantiated/managed
|
||||
/// by the caller, but it's retrieve via other means (e.g., by calling the method [`NSGraphicsContext::CGContext`]
|
||||
/// in a cocoa application).
|
||||
///
|
||||
/// [`CGContextRef`]: https://developer.apple.com/documentation/coregraphics/cgcontextref
|
||||
/// [`CGRetain`]: https://developer.apple.com/documentation/coregraphics/1586506-cgcontextretain
|
||||
/// [`NSGraphicsContext::CGContext`]: https://developer.apple.com/documentation/appkit/nsgraphicscontext/1535352-currentcontext
|
||||
pub unsafe fn from_existing_context_ptr(ctx: *mut ::sys::CGContext) -> CGContext {
|
||||
CGContextRetain(ctx);
|
||||
Self::from_ptr(ctx)
|
||||
}
|
||||
|
||||
pub fn create_bitmap_context(data: Option<*mut c_void>,
|
||||
width: size_t,
|
||||
height: size_t,
|
||||
|
@ -174,7 +202,7 @@ impl CGContextRef {
|
|||
|
||||
pub fn set_fill_color(&self, color: &CGColor) {
|
||||
unsafe {
|
||||
CGContextSetFillColorWithColor(self.as_ptr(), color.to_void());
|
||||
CGContextSetFillColorWithColor(self.as_ptr(), color.as_concrete_TypeRef());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -427,6 +455,12 @@ impl CGContextRef {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn clip_to_mask(&self, rect: CGRect, image: &CGImage) {
|
||||
unsafe {
|
||||
CGContextClipToMask(self.as_ptr(), rect, image.as_ptr())
|
||||
}
|
||||
}
|
||||
|
||||
pub fn replace_path_with_stroked_path(&self) {
|
||||
unsafe {
|
||||
CGContextReplacePathWithStrokedPath(self.as_ptr())
|
||||
|
@ -451,6 +485,19 @@ impl CGContextRef {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn set_interpolation_quality(&self, quality: CGInterpolationQuality) {
|
||||
unsafe {
|
||||
CGContextSetInterpolationQuality(self.as_ptr(), quality);
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_interpolation_quality(&self) -> CGInterpolationQuality {
|
||||
unsafe {
|
||||
CGContextGetInterpolationQuality(self.as_ptr())
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
pub fn draw_image(&self, rect: CGRect, image: &CGImage) {
|
||||
unsafe {
|
||||
CGContextDrawImage(self.as_ptr(), rect, image.as_ptr());
|
||||
|
@ -484,6 +531,12 @@ impl CGContextRef {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn set_text_position(&self, x: CGFloat, y: CGFloat) {
|
||||
unsafe {
|
||||
CGContextSetTextPosition(self.as_ptr(), x, y)
|
||||
}
|
||||
}
|
||||
|
||||
pub fn show_glyphs_at_positions(&self, glyphs: &[CGGlyph], positions: &[CGPoint]) {
|
||||
unsafe {
|
||||
let count = cmp::min(glyphs.len(), positions.len());
|
||||
|
@ -535,6 +588,30 @@ impl CGContextRef {
|
|||
CGContextConcatCTM(self.as_ptr(), transform)
|
||||
}
|
||||
}
|
||||
|
||||
pub fn draw_linear_gradient(&self, gradient: &CGGradient, start_point: CGPoint, end_point: CGPoint, options: CGGradientDrawingOptions) {
|
||||
unsafe {
|
||||
CGContextDrawLinearGradient(self.as_ptr(), gradient.as_ptr(), start_point, end_point, options);
|
||||
}
|
||||
}
|
||||
|
||||
pub fn draw_radial_gradient(&self, gradient: &CGGradient, start_center: CGPoint, start_radius: CGFloat, end_center: CGPoint, end_radius: CGFloat, options: CGGradientDrawingOptions) {
|
||||
unsafe {
|
||||
CGContextDrawRadialGradient(self.as_ptr(), gradient.as_ptr(), start_center, start_radius, end_center, end_radius, options);
|
||||
}
|
||||
}
|
||||
|
||||
pub fn set_shadow(&self, offset: CGSize, blur: CGFloat) {
|
||||
unsafe {
|
||||
CGContextSetShadow(self.as_ptr(), offset, blur);
|
||||
}
|
||||
}
|
||||
|
||||
pub fn set_shadow_with_color(&self, offset: CGSize, blur: CGFloat, color: &CGColor) {
|
||||
unsafe {
|
||||
CGContextSetShadowWithColor(self.as_ptr(), offset, blur, color.as_concrete_TypeRef());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -564,6 +641,9 @@ fn create_bitmap_context_test() {
|
|||
|
||||
#[link(name = "CoreGraphics", kind = "framework")]
|
||||
extern {
|
||||
fn CGContextRetain(c: ::sys::CGContextRef) -> ::sys::CGContextRef;
|
||||
fn CGContextRelease(c: ::sys::CGContextRef);
|
||||
|
||||
fn CGBitmapContextCreate(data: *mut c_void,
|
||||
width: size_t,
|
||||
height: size_t,
|
||||
|
@ -595,7 +675,7 @@ extern {
|
|||
fn CGContextSetShouldSubpixelPositionFonts(c: ::sys::CGContextRef,
|
||||
shouldSubpixelPositionFonts: bool);
|
||||
fn CGContextSetTextDrawingMode(c: ::sys::CGContextRef, mode: CGTextDrawingMode);
|
||||
fn CGContextSetFillColorWithColor(c: ::sys::CGContextRef, color: *const c_void);
|
||||
fn CGContextSetFillColorWithColor(c: ::sys::CGContextRef, color: ::sys::CGColorRef);
|
||||
fn CGContextSetLineCap(c: ::sys::CGContextRef, cap: CGLineCap);
|
||||
fn CGContextSetLineDash(c: ::sys::CGContextRef, phase: CGFloat, lengths: *const CGFloat, count: size_t);
|
||||
fn CGContextSetLineJoin(c: ::sys::CGContextRef, join: CGLineJoin);
|
||||
|
@ -657,6 +737,7 @@ extern {
|
|||
fn CGContextClipToRects(context: ::sys::CGContextRef,
|
||||
rects: *const CGRect,
|
||||
count: size_t);
|
||||
fn CGContextClipToMask(ctx: ::sys::CGContextRef, rect: CGRect, mask: ::sys::CGImageRef);
|
||||
fn CGContextReplacePathWithStrokedPath(context: ::sys::CGContextRef);
|
||||
fn CGContextFillEllipseInRect(context: ::sys::CGContextRef,
|
||||
rect: CGRect);
|
||||
|
@ -666,9 +747,12 @@ extern {
|
|||
points: *const CGPoint,
|
||||
count: size_t);
|
||||
fn CGContextDrawImage(c: ::sys::CGContextRef, rect: CGRect, image: ::sys::CGImageRef);
|
||||
fn CGContextSetInterpolationQuality(c: ::sys::CGContextRef, quality: CGInterpolationQuality);
|
||||
fn CGContextGetInterpolationQuality(c: ::sys::CGContextRef) -> CGInterpolationQuality;
|
||||
fn CGContextSetFont(c: ::sys::CGContextRef, font: ::sys::CGFontRef);
|
||||
fn CGContextSetFontSize(c: ::sys::CGContextRef, size: CGFloat);
|
||||
fn CGContextSetTextMatrix(c: ::sys::CGContextRef, t: CGAffineTransform);
|
||||
fn CGContextSetTextPosition(c: ::sys::CGContextRef, x: CGFloat, y: CGFloat);
|
||||
fn CGContextShowGlyphsAtPositions(c: ::sys::CGContextRef,
|
||||
glyphs: *const CGGlyph,
|
||||
positions: *const CGPoint,
|
||||
|
@ -681,5 +765,11 @@ extern {
|
|||
fn CGContextRotateCTM(c: ::sys::CGContextRef, angle: CGFloat);
|
||||
fn CGContextGetCTM(c: ::sys::CGContextRef) -> CGAffineTransform;
|
||||
fn CGContextConcatCTM(c: ::sys::CGContextRef, transform: CGAffineTransform);
|
||||
|
||||
fn CGContextDrawLinearGradient(c: ::sys::CGContextRef, gradient: ::sys::CGGradientRef, startPoint: CGPoint, endPoint: CGPoint, options: CGGradientDrawingOptions);
|
||||
fn CGContextDrawRadialGradient(c: ::sys::CGContextRef, gradient: ::sys::CGGradientRef, startCenter: CGPoint, startRadius: CGFloat, endCenter:CGPoint, endRadius:CGFloat, options: CGGradientDrawingOptions);
|
||||
|
||||
fn CGContextSetShadow(c: ::sys::CGContextRef, offset: CGSize, blur: CGFloat);
|
||||
fn CGContextSetShadowWithColor(c: ::sys::CGContextRef, offset: CGSize, blur: CGFloat, color: ::sys::CGColorRef);
|
||||
}
|
||||
|
||||
|
|
|
@ -50,17 +50,17 @@ impl CGDataProvider {
|
|||
///
|
||||
/// The `CGDataProvider` object takes ownership of the reference. Once the data provider
|
||||
/// is destroyed, the reference count of the buffer is automatically decremented.
|
||||
pub fn from_buffer(buffer: Arc<Vec<u8>>) -> Self {
|
||||
pub fn from_buffer<T: AsRef<[u8]> + Sync + Send>(buffer: Arc<T>) -> Self {
|
||||
unsafe {
|
||||
let ptr = (*buffer).as_ptr() as *const c_void;
|
||||
let len = buffer.len() as size_t;
|
||||
let info = mem::transmute::<Arc<Vec<u8>>, *mut c_void>(buffer);
|
||||
let result = CGDataProviderCreateWithData(info, ptr, len, Some(release));
|
||||
let ptr = (*buffer).as_ref().as_ptr() as *const c_void;
|
||||
let len = (*buffer).as_ref().len() as size_t;
|
||||
let info = Arc::into_raw(buffer) as *mut c_void;
|
||||
let result = CGDataProviderCreateWithData(info, ptr, len, Some(release::<T>));
|
||||
return CGDataProvider::from_ptr(result);
|
||||
}
|
||||
|
||||
unsafe extern "C" fn release(info: *mut c_void, _: *const c_void, _: size_t) {
|
||||
drop(mem::transmute::<*mut c_void, Arc<Vec<u8>>>(info))
|
||||
unsafe extern "C" fn release<T>(info: *mut c_void, _: *const c_void, _: size_t) {
|
||||
drop(Arc::from_raw(info))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -106,6 +106,42 @@ pub trait CustomData {
|
|||
unsafe fn len(&self) -> usize;
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_data_provider() {
|
||||
let l = vec![5];
|
||||
CGDataProvider::from_buffer(Arc::new(l));
|
||||
|
||||
let l = vec![5];
|
||||
CGDataProvider::from_buffer(Arc::new(l.into_boxed_slice()));
|
||||
|
||||
// Make sure the buffer is actually dropped
|
||||
use std::sync::atomic::{AtomicBool, Ordering::SeqCst};
|
||||
struct VecWrapper {
|
||||
inner: Vec<u8>,
|
||||
dropped: Arc<AtomicBool>,
|
||||
}
|
||||
|
||||
impl Drop for VecWrapper {
|
||||
fn drop(&mut self) {
|
||||
self.dropped.store(true, SeqCst)
|
||||
}
|
||||
}
|
||||
|
||||
impl std::convert::AsRef<[u8]> for VecWrapper {
|
||||
fn as_ref(&self) -> &[u8] {
|
||||
&self.inner
|
||||
}
|
||||
}
|
||||
|
||||
let dropped = Arc::new(AtomicBool::default());
|
||||
let l = Arc::new(VecWrapper {inner: vec![5], dropped: dropped.clone() });
|
||||
let m = l.clone();
|
||||
drop(CGDataProvider::from_buffer(l));
|
||||
assert!(!dropped.load(SeqCst));
|
||||
drop(m);
|
||||
assert!(dropped.load(SeqCst))
|
||||
}
|
||||
|
||||
#[link(name = "CoreGraphics", kind = "framework")]
|
||||
extern {
|
||||
fn CGDataProviderCopyData(provider: ::sys::CGDataProviderRef) -> CFDataRef;
|
||||
|
|
|
@ -12,10 +12,10 @@ pub type CGEventField = u32;
|
|||
pub type CGKeyCode = u16;
|
||||
pub type CGScrollEventUnit = u32;
|
||||
|
||||
bitflags! {
|
||||
/// Flags for events
|
||||
///
|
||||
/// [Ref](http://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-700/IOHIDSystem/IOKit/hidsystem/IOLLEvent.h)
|
||||
bitflags! {
|
||||
#[repr(C)]
|
||||
pub struct CGEventFlags: u64 {
|
||||
const CGEventFlagNull = 0;
|
||||
|
|
|
@ -18,9 +18,9 @@ use geometry::CGRect;
|
|||
|
||||
use foreign_types::ForeignType;
|
||||
|
||||
use libc::{self, c_int, size_t};
|
||||
use libc::{c_int, size_t};
|
||||
|
||||
pub type CGGlyph = libc::c_ushort;
|
||||
pub use core_graphics_types::base::CGGlyph;
|
||||
|
||||
foreign_type! {
|
||||
#[doc(hidden)]
|
||||
|
|
|
@ -7,210 +7,4 @@
|
|||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
use base::CGFloat;
|
||||
use core_foundation::base::TCFType;
|
||||
use core_foundation::dictionary::CFDictionary;
|
||||
|
||||
pub const CG_ZERO_POINT: CGPoint = CGPoint {
|
||||
x: 0.0,
|
||||
y: 0.0,
|
||||
};
|
||||
|
||||
pub const CG_ZERO_SIZE: CGSize = CGSize {
|
||||
width: 0.0,
|
||||
height: 0.0,
|
||||
};
|
||||
|
||||
pub const CG_ZERO_RECT: CGRect = CGRect {
|
||||
origin: CG_ZERO_POINT,
|
||||
size: CG_ZERO_SIZE,
|
||||
};
|
||||
|
||||
pub const CG_AFFINE_TRANSFORM_IDENTITY: CGAffineTransform = CGAffineTransform {
|
||||
a: 1.0, b: 0.0,
|
||||
c: 0.0, d: 1.0,
|
||||
tx: 0.0, ty: 0.0,
|
||||
};
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Clone, Copy, Debug, Default, PartialEq)]
|
||||
pub struct CGSize {
|
||||
pub width: CGFloat,
|
||||
pub height: CGFloat,
|
||||
}
|
||||
|
||||
impl CGSize {
|
||||
#[inline]
|
||||
pub fn new(width: CGFloat, height: CGFloat) -> CGSize {
|
||||
CGSize {
|
||||
width: width,
|
||||
height: height,
|
||||
}
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn apply_transform(&self, t: &CGAffineTransform) -> CGSize {
|
||||
unsafe {
|
||||
ffi::CGSizeApplyAffineTransform(*self, *t)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Clone, Copy, Debug, Default, PartialEq)]
|
||||
pub struct CGPoint {
|
||||
pub x: CGFloat,
|
||||
pub y: CGFloat,
|
||||
}
|
||||
|
||||
impl CGPoint {
|
||||
#[inline]
|
||||
pub fn new(x: CGFloat, y: CGFloat) -> CGPoint {
|
||||
CGPoint {
|
||||
x: x,
|
||||
y: y,
|
||||
}
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn apply_transform(&self, t: &CGAffineTransform) -> CGPoint {
|
||||
unsafe {
|
||||
ffi::CGPointApplyAffineTransform(*self, *t)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Clone, Copy, Debug, Default)]
|
||||
pub struct CGRect {
|
||||
pub origin: CGPoint,
|
||||
pub size: CGSize
|
||||
}
|
||||
|
||||
impl CGRect {
|
||||
#[inline]
|
||||
pub fn new(origin: &CGPoint, size: &CGSize) -> CGRect {
|
||||
CGRect {
|
||||
origin: *origin,
|
||||
size: *size,
|
||||
}
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn inset(&self, size: &CGSize) -> CGRect {
|
||||
unsafe {
|
||||
ffi::CGRectInset(*self, size.width, size.height)
|
||||
}
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn from_dict_representation(dict: &CFDictionary) -> Option<CGRect> {
|
||||
let mut rect = CGRect::new(&CGPoint::new(0., 0.), &CGSize::new(0., 0.));
|
||||
let result = unsafe {
|
||||
ffi::CGRectMakeWithDictionaryRepresentation(dict.as_concrete_TypeRef(), &mut rect)
|
||||
};
|
||||
if result == 0 {
|
||||
None
|
||||
} else {
|
||||
Some(rect)
|
||||
}
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn is_empty(&self) -> bool {
|
||||
unsafe {
|
||||
// I use one, as it seems that `YES` is not available from this crate.
|
||||
ffi::CGRectIsEmpty(*self) == 1
|
||||
}
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn is_intersects(&self, other: &CGRect) -> bool {
|
||||
unsafe {
|
||||
// I use one, as it seems that `YES` is not available from this crate.
|
||||
ffi::CGRectIntersectsRect(*self, *other) == 1
|
||||
}
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn apply_transform(&self, t: &CGAffineTransform) -> CGRect {
|
||||
unsafe {
|
||||
ffi::CGRectApplyAffineTransform(*self, *t)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl PartialEq for CGRect {
|
||||
#[inline]
|
||||
fn eq(&self, other: &CGRect) -> bool {
|
||||
unsafe {
|
||||
ffi::CGRectEqualToRect(*self, *other) != 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Clone, Copy, Debug, Default)]
|
||||
pub struct CGAffineTransform {
|
||||
pub a: CGFloat,
|
||||
pub b: CGFloat,
|
||||
pub c: CGFloat,
|
||||
pub d: CGFloat,
|
||||
pub tx: CGFloat,
|
||||
pub ty: CGFloat,
|
||||
}
|
||||
|
||||
impl CGAffineTransform {
|
||||
#[inline]
|
||||
pub fn new(
|
||||
a: CGFloat,
|
||||
b: CGFloat,
|
||||
c: CGFloat,
|
||||
d: CGFloat,
|
||||
tx: CGFloat,
|
||||
ty: CGFloat,
|
||||
) -> CGAffineTransform {
|
||||
CGAffineTransform { a, b, c, d, tx, ty }
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn invert(&self) -> CGAffineTransform {
|
||||
unsafe {
|
||||
ffi::CGAffineTransformInvert(*self)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl PartialEq for CGAffineTransform {
|
||||
#[inline]
|
||||
fn eq(&self, other: &CGAffineTransform) -> bool {
|
||||
unsafe {
|
||||
ffi::CGAffineTransformEqualToTransform(*self, *other) != 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mod ffi {
|
||||
use base::{CGFloat, boolean_t};
|
||||
use geometry::{CGAffineTransform, CGPoint, CGRect, CGSize};
|
||||
use core_foundation::dictionary::CFDictionaryRef;
|
||||
|
||||
#[link(name = "CoreGraphics", kind = "framework")]
|
||||
extern {
|
||||
pub fn CGRectInset(rect: CGRect, dx: CGFloat, dy: CGFloat) -> CGRect;
|
||||
pub fn CGRectMakeWithDictionaryRepresentation(dict: CFDictionaryRef,
|
||||
rect: *mut CGRect) -> boolean_t;
|
||||
pub fn CGRectIsEmpty(rect: CGRect) -> boolean_t;
|
||||
pub fn CGRectIntersectsRect(rect1: CGRect, rect2: CGRect) -> boolean_t;
|
||||
pub fn CGRectEqualToRect(rect1: CGRect, rect2: CGRect) -> boolean_t;
|
||||
|
||||
pub fn CGAffineTransformInvert(t: CGAffineTransform) -> CGAffineTransform;
|
||||
pub fn CGAffineTransformEqualToTransform(t1: CGAffineTransform,
|
||||
t2: CGAffineTransform) -> boolean_t;
|
||||
|
||||
pub fn CGPointApplyAffineTransform(point: CGPoint, t: CGAffineTransform) -> CGPoint;
|
||||
pub fn CGRectApplyAffineTransform(rect: CGRect, t: CGAffineTransform) -> CGRect;
|
||||
pub fn CGSizeApplyAffineTransform(size: CGSize, t: CGAffineTransform) -> CGSize;
|
||||
}
|
||||
}
|
||||
|
||||
pub use core_graphics_types::geometry::*;
|
|
@ -0,0 +1,62 @@
|
|||
// Copyright 2013 The Servo Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#![allow(non_upper_case_globals)]
|
||||
|
||||
use base::CGFloat;
|
||||
use color::CGColor;
|
||||
use color_space::CGColorSpace;
|
||||
|
||||
use core_foundation::array::{ CFArray, CFArrayRef };
|
||||
use core_foundation::base::{CFRelease, CFRetain, TCFType};
|
||||
use foreign_types::ForeignType;
|
||||
|
||||
use libc::size_t;
|
||||
|
||||
bitflags! {
|
||||
#[repr(C)]
|
||||
pub struct CGGradientDrawingOptions: u32 {
|
||||
const CGGradientDrawsBeforeStartLocation = (1 << 0);
|
||||
const CGGradientDrawsAfterEndLocation = (1 << 1);
|
||||
}
|
||||
}
|
||||
|
||||
foreign_type! {
|
||||
#[doc(hidden)]
|
||||
type CType = ::sys::CGGradient;
|
||||
fn drop = |p| CFRelease(p as *mut _);
|
||||
fn clone = |p| CFRetain(p as *const _) as *mut _;
|
||||
pub struct CGGradient;
|
||||
pub struct CGGradientRef;
|
||||
}
|
||||
|
||||
impl CGGradient {
|
||||
pub fn create_with_color_components(color_space: &CGColorSpace, components: &[CGFloat], locations: &[CGFloat], count: usize) -> CGGradient {
|
||||
unsafe {
|
||||
let result = CGGradientCreateWithColorComponents(color_space.as_ptr(), components.as_ptr(), locations.as_ptr(), count);
|
||||
assert!(!result.is_null());
|
||||
Self::from_ptr(result)
|
||||
}
|
||||
}
|
||||
|
||||
pub fn create_with_colors(color_space: &CGColorSpace, colors: &CFArray<CGColor>, locations: &[CGFloat]) -> CGGradient {
|
||||
unsafe {
|
||||
let result = CGGradientCreateWithColors(color_space.as_ptr(), colors.as_concrete_TypeRef(), locations.as_ptr());
|
||||
assert!(!result.is_null());
|
||||
Self::from_ptr(result)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[link(name = "CoreGraphics", kind = "framework")]
|
||||
extern {
|
||||
fn CGGradientCreateWithColorComponents(color_space: ::sys::CGColorSpaceRef, components: *const CGFloat, locations: *const CGFloat, count: size_t) -> ::sys::CGGradientRef;
|
||||
fn CGGradientCreateWithColors(color_space: ::sys::CGColorSpaceRef, colors: CFArrayRef, locations: *const CGFloat) -> ::sys::CGGradientRef;
|
||||
}
|
||||
|
|
@ -24,10 +24,10 @@ pub enum CGImageAlphaInfo {
|
|||
#[repr(C)]
|
||||
pub enum CGImageByteOrderInfo {
|
||||
CGImageByteOrderMask = 0x7000,
|
||||
CGImageByteOrder16Little = (1 << 12),
|
||||
CGImageByteOrder32Little = (2 << 12),
|
||||
CGImageByteOrder16Big = (3 << 12),
|
||||
CGImageByteOrder32Big = (4 << 12)
|
||||
CGImageByteOrder16Little = 1 << 12,
|
||||
CGImageByteOrder32Little = 2 << 12,
|
||||
CGImageByteOrder16Big = 3 << 12,
|
||||
CGImageByteOrder32Big = 4 << 12
|
||||
}
|
||||
|
||||
foreign_type! {
|
||||
|
|
|
@ -13,12 +13,13 @@ extern crate libc;
|
|||
extern crate core_foundation;
|
||||
|
||||
#[macro_use]
|
||||
#[cfg(target_os = "macos")]
|
||||
extern crate bitflags;
|
||||
|
||||
#[macro_use]
|
||||
extern crate foreign_types;
|
||||
|
||||
extern crate core_graphics_types;
|
||||
|
||||
pub mod base;
|
||||
pub mod color;
|
||||
pub mod color_space;
|
||||
|
@ -32,10 +33,11 @@ pub mod event;
|
|||
pub mod event_source;
|
||||
pub mod font;
|
||||
pub mod geometry;
|
||||
pub mod gradient;
|
||||
#[cfg(target_os = "macos")]
|
||||
pub mod window;
|
||||
#[cfg(target_os = "macos")]
|
||||
pub mod private;
|
||||
pub mod image;
|
||||
pub mod path;
|
||||
mod sys;
|
||||
pub mod sys;
|
||||
|
|
|
@ -23,6 +23,9 @@ pub type CGFontRef = *mut CGFont;
|
|||
pub enum CGContext {}
|
||||
pub type CGContextRef = *mut CGContext;
|
||||
|
||||
pub enum CGGradient {}
|
||||
pub type CGGradientRef = *mut CGGradient;
|
||||
|
||||
#[cfg(target_os = "macos")]
|
||||
mod macos {
|
||||
pub enum CGEvent {}
|
||||
|
|
|
@ -1 +1 @@
|
|||
{"files":{"COPYRIGHT":"ec82b96487e9e778ee610c7ab245162464782cfa1f555c2299333f8dbe5c036a","Cargo.toml":"f45c41b63719e265b213500c162ffd643098b6d09b762a6f56ec4b9afab38c64","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3","README.md":"98d25015857a430aac32f34bdc979a1a66e672a0ea42c5f92dd9cfe23c1fccfd","src/font.rs":"aacf7a01fa8b4fe6fc598d08fcbec39cca368161806bcf8a68ca141115758638","src/font_collection.rs":"02de0ce2a61683314897a521d31ab9cc572a8b10ceda2ac47181fbe18bf4f235","src/font_descriptor.rs":"43910d733140861b8daf615b832d816a2e1a525af0a1c370c5e21dbaf5e42c65","src/font_manager.rs":"0abebafad90fc1cc74742493c812ec617a44a80969bab64807d6e32ae70033c0","src/frame.rs":"357691ef297a437ac88c2147312e3db0cb7f1c97c28bd6c22961b9931af961f6","src/framesetter.rs":"0f60f02dbb0673ec37914196b5c88f9533769e9015b5ec715b1bebd0b9d8d80c","src/lib.rs":"74646976f818f56abe5c68d67e7731080e2ca898ffd66f806625b92a8f3dd666","src/line.rs":"a53f2c36271eb9d0393af5e67ab4873b9326312f7c5af236bfe7145a109e1e24","src/run.rs":"9f127a6b6bde12f4e9ff6cf4524c1813d565dfbfe52c81d6e709792bdaf7fb17","src/string_attributes.rs":"ea0f854d64097d3626a03002323e2276e28affae7a698aaadd89dd6b744dd80f"},"package":"131b3fd1f8bd5db9f2b398fa4fdb6008c64afc04d447c306ac2c7e98fba2a61d"}
|
||||
{"files":{"COPYRIGHT":"ec82b96487e9e778ee610c7ab245162464782cfa1f555c2299333f8dbe5c036a","Cargo.toml":"fd13910a84ac160e2f17a693091bce523f7c88c5f58e923c78a37f7ea17511ce","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3","README.md":"98d25015857a430aac32f34bdc979a1a66e672a0ea42c5f92dd9cfe23c1fccfd","src/font.rs":"6c260c8e0ba08400b67835cfdfe0f1473bf94e4f385e8c509b48ae95164c3b75","src/font_collection.rs":"02de0ce2a61683314897a521d31ab9cc572a8b10ceda2ac47181fbe18bf4f235","src/font_descriptor.rs":"beba611e282150ff7d7551f858f1b001a0ec0863d708af035532d51ee307f5d0","src/font_manager.rs":"0abebafad90fc1cc74742493c812ec617a44a80969bab64807d6e32ae70033c0","src/frame.rs":"ed1e2aad7be9dafc3e9729f2caecefd4214a9552f834932a414239146142069a","src/framesetter.rs":"13e34b4111cee5f023aa05e2220d2a6f102e96fd18c51a356992bffd6c9fc7c1","src/lib.rs":"74646976f818f56abe5c68d67e7731080e2ca898ffd66f806625b92a8f3dd666","src/line.rs":"02fab7f07c3f6a003a7c35ffeb3d37546ae58e4da7fe05f26e520f283397a602","src/run.rs":"b86e9b9b39effe4a79c6002880d95f214742d448029a3111e288734abe75b827","src/string_attributes.rs":"ea0f854d64097d3626a03002323e2276e28affae7a698aaadd89dd6b744dd80f"},"package":"04dfae50af11e72657fe7174cddb1ecddc5398037f7f6f39533ad69207c9a4e2"}
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче