mirror of
https://github.com/neovide/neovide.git
synced 2026-09-10 07:16:25 -04:00
shaper progress
This commit is contained in:
parent
293bd23f9e
commit
e42355937a
101
Cargo.lock
generated
101
Cargo.lock
generated
|
|
@ -74,29 +74,9 @@ name = "autocfg"
|
|||
version = "0.1.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "backtrace"
|
||||
version = "0.3.40"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"backtrace-sys 0.1.32 (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.65 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "backtrace-sys"
|
||||
version = "0.1.32"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"cc 1.0.47 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bindgen"
|
||||
version = "0.51.0"
|
||||
version = "0.52.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)",
|
||||
|
|
@ -104,16 +84,17 @@ dependencies = [
|
|||
"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.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.4.8 (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 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"which 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"which 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -306,18 +287,6 @@ name = "downcast-rs"
|
|||
version = "1.1.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "env_logger"
|
||||
version = "0.6.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"atty 0.2.13 (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.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "env_logger"
|
||||
version = "0.7.1"
|
||||
|
|
@ -330,14 +299,6 @@ dependencies = [
|
|||
"termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "failure"
|
||||
version = "0.1.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"backtrace 0.3.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "filetime"
|
||||
version = "0.2.8"
|
||||
|
|
@ -387,14 +348,6 @@ name = "fuchsia-zircon-sys"
|
|||
version = "0.3.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "fxhash"
|
||||
version = "0.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "glob"
|
||||
version = "0.3.0"
|
||||
|
|
@ -599,8 +552,7 @@ dependencies = [
|
|||
"env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"neovim-lib 0.6.0 (git+https://github.com/daa84/neovim-lib)",
|
||||
"rmpv 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"skia-safe 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"skulpin 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"skulpin 0.3.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -818,9 +770,12 @@ dependencies = [
|
|||
]
|
||||
|
||||
[[package]]
|
||||
name = "rustc-demangle"
|
||||
version = "0.1.16"
|
||||
name = "rustc-hash"
|
||||
version = "1.0.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rusttype"
|
||||
|
|
@ -907,10 +862,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
|
||||
[[package]]
|
||||
name = "skia-bindings"
|
||||
version = "0.17.0"
|
||||
version = "0.21.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"bindgen 0.51.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bindgen 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cc 1.0.47 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"curl 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"flate2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
|
@ -923,18 +878,17 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "skia-safe"
|
||||
version = "0.17.0"
|
||||
version = "0.21.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)",
|
||||
"lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"skia-bindings 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"skia-bindings 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "skulpin"
|
||||
version = "0.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"ash 0.29.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cocoa 0.19.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
|
@ -942,7 +896,7 @@ dependencies = [
|
|||
"metal 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"objc 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"skia-safe 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"skia-safe 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"winit 0.20.0-alpha5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
|
@ -1165,10 +1119,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "which"
|
||||
version = "2.0.1"
|
||||
version = "3.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
|
|
@ -1294,9 +1247,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
"checksum ash 0.29.0 (registry+https://github.com/rust-lang/crates.io-index)" = "003d1fb2eb12eb06d4a03dbe02eea67a9fac910fa97932ab9e3a75b96a1ea5e5"
|
||||
"checksum atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1803c647a3ec87095e7ae7acfca019e98de5ec9a7d01343f611cf3152ed71a90"
|
||||
"checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
|
||||
"checksum backtrace 0.3.40 (registry+https://github.com/rust-lang/crates.io-index)" = "924c76597f0d9ca25d762c25a4d369d51267536465dc5064bdf0eb073ed477ea"
|
||||
"checksum backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6575f128516de27e3ce99689419835fce9643a9b215a14d2b5b685be018491"
|
||||
"checksum bindgen 0.51.0 (registry+https://github.com/rust-lang/crates.io-index)" = "18270cdd7065ec045a6bb4bdcd5144d14a78b3aedb3bc5111e688773ac8b9ad0"
|
||||
"checksum bindgen 0.52.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f1c85344eb535a31b62f0af37be84441ba9e7f0f4111eb0530f43d15e513fe57"
|
||||
"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 byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5"
|
||||
|
|
@ -1319,16 +1270,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
"checksum dispatch 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "04e93ca78226c51902d7aa8c12c988338aadd9e85ed9c6be8aaac39192ff3605"
|
||||
"checksum dlib 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "77e51249a9d823a4cb79e3eca6dcd756153e8ed0157b6c04775d04bf1b13b76a"
|
||||
"checksum downcast-rs 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "52ba6eb47c2131e784a38b726eb54c1e1484904f013e576a25354d0124161af6"
|
||||
"checksum env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3"
|
||||
"checksum env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
|
||||
"checksum failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "f8273f13c977665c5db7eb2b99ae520952fe5ac831ae4cd09d80c4c7042b5ed9"
|
||||
"checksum filetime 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "1ff6d4dab0aa0c8e6346d46052e93b13a16cf847b54ed357087c35011048cc7d"
|
||||
"checksum flate2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6bd6d6f4752952feb71363cffc9ebac9411b75b87c6ab6058c40c8900cf43c0f"
|
||||
"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 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"
|
||||
"checksum fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
|
||||
"checksum glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
|
||||
"checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
|
||||
"checksum humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
|
||||
|
|
@ -1379,7 +1327,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
"checksum regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "11a7e20d1cce64ef2fed88b66d347f88bd9babb82845b2b858f3edbf59a4f716"
|
||||
"checksum rmp 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)" = "0f594cb7ff8f1c5a7907f6be91f15795c8301e0d5718eb007fb5832723dd716e"
|
||||
"checksum rmpv 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "83caf745acbd99179ab6ce95398ddf548edfa2d3a99ff195248b30cd1524c43f"
|
||||
"checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
|
||||
"checksum rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7540fc8b0c49f096ee9c961cda096467dce8084bec6bdca2fc83895fd9b28cb8"
|
||||
"checksum rusttype 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)" = "310942406a39981bed7e12b09182a221a29e0990f3e7e0c971f131922ed135d5"
|
||||
"checksum rusttype 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "14a911032fb5791ccbeec9f28fdcb9bf0983b81f227bafdfd227c658d0731c8a"
|
||||
"checksum ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bfa8506c1de11c9c4e4c38863ccbe02a305c8188e85a05a784c9e11e1c3910c8"
|
||||
|
|
@ -1391,9 +1339,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
"checksum serde_json 1.0.44 (registry+https://github.com/rust-lang/crates.io-index)" = "48c575e0cc52bdd09b47f330f646cf59afc586e9c4e3ccd6fc1f625b8ea1dad7"
|
||||
"checksum shared_library 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "5a9e7e0f2bfae24d8a5b5a66c5b257a83c7412304311512a0c054cd5e619da11"
|
||||
"checksum shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
|
||||
"checksum skia-bindings 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5bdbd04d97a8ec122434cf7a4c697513590885cdc88bd99db03a26d724cc1c1b"
|
||||
"checksum skia-safe 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9f596f1a190aecfeffcf7505cda29f915683c5f28a1f689e131bdd108519bb62"
|
||||
"checksum skulpin 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6f5939306fa9292d75caf655f37cd6639071760e9a02712af6b721c517115833"
|
||||
"checksum skia-bindings 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c2eee489fbdc6fe3004f95e4457d7f3bd184b7902982cca0a2d8d01b7438328b"
|
||||
"checksum skia-safe 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e86d7ad9a51df1fcc8a4942907c65c81573bcfe6bcaea8baedcb008167dc6650"
|
||||
"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
|
||||
"checksum smallvec 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4ecf3b85f68e8abaa7555aa5abdb1153079387e60b718283d732f03897fcfc86"
|
||||
"checksum smithay-client-toolkit 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "93960e8975909fcb14cc755de93af2149d8b8f4eb368315537d40cfd0f324054"
|
||||
|
|
@ -1421,7 +1368,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
"checksum wayland-protocols 0.23.6 (registry+https://github.com/rust-lang/crates.io-index)" = "6cc286643656742777d55dc8e70d144fa4699e426ca8e9d4ef454f4bf15ffcf9"
|
||||
"checksum wayland-scanner 0.23.6 (registry+https://github.com/rust-lang/crates.io-index)" = "93b02247366f395b9258054f964fe293ddd019c3237afba9be2ccbe9e1651c3d"
|
||||
"checksum wayland-sys 0.23.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d94e89a86e6d6d7c7c9b19ebf48a03afaac4af6bc22ae570e9a24124b75358f4"
|
||||
"checksum which 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b57acb10231b9493c8472b20cb57317d0679a49e0bdbee44b3b803a6473af164"
|
||||
"checksum which 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5475d47078209a02e60614f7ba5e645ef3ed60f771920ac1906d7c1cc65024c8"
|
||||
"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
|
||||
"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
|
||||
"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
|
||||
|
|
|
|||
|
|
@ -5,8 +5,7 @@ authors = ["keith <keith@the-simmons.net>"]
|
|||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
skulpin = "0.3"
|
||||
skia-safe = { version = "0.17", features = ["vulkan"] }
|
||||
skulpin = { path = "c:/dev/Projects/skulpin" }
|
||||
derive-new = "0.5"
|
||||
env_logger = "0.7.1"
|
||||
neovim-lib = { git = "https://github.com/daa84/neovim-lib", version = "0.6" }
|
||||
|
|
|
|||
|
|
@ -82,13 +82,14 @@ fn parse_keycode(keycode: VirtualKeyCode) -> Option<(String, bool)> {
|
|||
VirtualKeyCode::Backslash => Some(("Bslash".to_string(), true)),
|
||||
VirtualKeyCode::Comma => Some((",".to_string(), false)),
|
||||
VirtualKeyCode::Equals => Some(("=".to_string(), false)),
|
||||
VirtualKeyCode::Grave => Some(("`".to_string(), false)),
|
||||
VirtualKeyCode::LBracket => Some(("[".to_string(), false)),
|
||||
VirtualKeyCode::Minus => Some(("-".to_string(), false)),
|
||||
VirtualKeyCode::Period => Some((".".to_string(), false)),
|
||||
VirtualKeyCode::RBracket => Some(("]".to_string(), false)),
|
||||
VirtualKeyCode::Semicolon => Some((";".to_string(), false)),
|
||||
VirtualKeyCode::Slash => Some(("/".to_string(), false)),
|
||||
VirtualKeyCode::Tab => Some(("<Tab>".to_string(), false)),
|
||||
VirtualKeyCode::Tab => Some(("Tab".to_string(), true)),
|
||||
_ => None
|
||||
}
|
||||
}
|
||||
|
|
@ -111,8 +112,12 @@ fn append_modifiers(modifiers: ModifiersState, keycode_text: String, special: bo
|
|||
"0" => ")".to_string(),
|
||||
"'" => "\"".to_string(),
|
||||
"Bslash" => "|".to_string(),
|
||||
"," => "<".to_string(),
|
||||
"," => {
|
||||
special = true;
|
||||
"lt".to_string()
|
||||
},
|
||||
"=" => "+".to_string(),
|
||||
"`" => "~".to_string(),
|
||||
"[" => "{".to_string(),
|
||||
"-" => "_".to_string(),
|
||||
"." => ">".to_string(),
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#![windows_subsystem = "windows"]
|
||||
// #![windows_subsystem = "windows"]
|
||||
|
||||
mod editor;
|
||||
mod events;
|
||||
|
|
|
|||
|
|
@ -2,9 +2,10 @@ use std::sync::{Arc, Mutex};
|
|||
use std::any::Any;
|
||||
|
||||
use skulpin::{CoordinateSystem, CoordinateSystemHelper, RendererBuilder};
|
||||
use skulpin::skia_safe::{Canvas, Color4f, Font, FontStyle, Point, Paint, Rect, Typeface};
|
||||
use skulpin::skia_safe::{Canvas, colors, Color4f, Font, FontStyle, Point, Paint, Rect, Shaper, Typeface};
|
||||
use skulpin::skia_safe::paint::Style;
|
||||
use skulpin::skia_safe::matrix::ScaleToFit;
|
||||
use skulpin::skia_safe::icu;
|
||||
use skulpin::winit::dpi::{LogicalSize, LogicalPosition};
|
||||
use skulpin::winit::event::{ElementState, Event, KeyboardInput, VirtualKeyCode, WindowEvent};
|
||||
use skulpin::winit::event_loop::{ControlFlow, EventLoop};
|
||||
|
|
@ -22,15 +23,11 @@ fn draw(
|
|||
editor: &Arc<Mutex<Editor>>,
|
||||
canvas: &mut Canvas,
|
||||
cursor_pos: &mut (f32, f32),
|
||||
shaper: &Shaper,
|
||||
font: &Font,
|
||||
font_width: f32,
|
||||
font_height: f32
|
||||
) {
|
||||
// let shaper = Shaper::new(None);
|
||||
// if let Some((blob, _)) = shaper.shape_text_blob("This is a test ~==", font, false, 10000.0, Point::default()) {
|
||||
// canvas.draw_text_blob(&blob, (50, 50), &paint);
|
||||
// }
|
||||
|
||||
let (draw_commands, default_colors, cursor_grid_pos, cursor_type) = {
|
||||
let editor = editor.lock().unwrap();
|
||||
(
|
||||
|
|
@ -52,9 +49,14 @@ fn draw(
|
|||
let region = Rect::new(x, top, x + width, top + height);
|
||||
let background_paint = Paint::new(command.style.colors.background.unwrap_or(default_colors.background.clone().unwrap()), None);
|
||||
canvas.draw_rect(region, &background_paint);
|
||||
|
||||
let foreground_paint = Paint::new(command.style.colors.foreground.unwrap_or(default_colors.foreground.clone().unwrap()), None);
|
||||
canvas.draw_str(&command.text, (x, y), &font, &foreground_paint);
|
||||
|
||||
let mut foreground_paint = Paint::new(command.style.colors.foreground.unwrap_or(default_colors.foreground.clone().unwrap()), None);
|
||||
let text = command.text.trim_end();
|
||||
if text.len() > 0 {
|
||||
if let Some((blob, _)) = shaper.shape_text_blob(&text, font, false, 10000.0, Point::default()) {
|
||||
canvas.draw_text_blob(&blob, (x, top), &foreground_paint);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let (cursor_grid_x, cursor_grid_y) = cursor_grid_pos;
|
||||
|
|
@ -87,14 +89,17 @@ fn draw(
|
|||
let text_y = cursor_y + font_height - font_height * 0.2;
|
||||
canvas.draw_str(character.to_string(), (cursor_x, text_y), &font, &text_paint);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
pub fn ui_loop(editor: Arc<Mutex<Editor>>) {
|
||||
let shaper = Shaper::new(None);
|
||||
let typeface = Typeface::new(FONT_NAME, FontStyle::default()).expect("Could not load font file.");
|
||||
let font = Font::from_typeface(typeface, FONT_SIZE);
|
||||
let paint = Paint::new(colors::WHITE, None);
|
||||
|
||||
let (width, bounds) = font.measure_str("0", None);
|
||||
let font_width = width;
|
||||
let (width, bounds) = font.measure_str("0".repeat(1000), Some(&paint));
|
||||
let font_width = bounds.width() / 1000.0;
|
||||
let font_height = bounds.height() * 1.68;
|
||||
|
||||
let event_loop = EventLoop::<()>::with_user_event();
|
||||
|
|
@ -121,7 +126,7 @@ pub fn ui_loop(editor: Arc<Mutex<Editor>>) {
|
|||
|
||||
let mut cursor_pos = (0.0, 0.0);
|
||||
|
||||
// icu::init();
|
||||
icu::init();
|
||||
|
||||
event_loop.run(move |event, _window_target, control_flow| {
|
||||
match event {
|
||||
|
|
@ -164,7 +169,7 @@ pub fn ui_loop(editor: Arc<Mutex<Editor>>) {
|
|||
..
|
||||
} => {
|
||||
if let Err(e) = renderer.draw(&window, |canvas, _coordinate_system_helper| {
|
||||
draw(&editor, canvas, &mut cursor_pos, &font, font_width, font_height);
|
||||
draw(&editor, canvas, &mut cursor_pos, &shaper, &font, font_width, font_height);
|
||||
}) {
|
||||
println!("Error during draw: {:?}", e);
|
||||
*control_flow = ControlFlow::Exit
|
||||
|
|
|
|||
Loading…
Reference in a new issue