Example compiles to emscripten
This commit is contained in:
parent
0b58cd5a40
commit
2f591a4858
8 changed files with 1801 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
/target
|
926
Cargo.lock
generated
Normal file
926
Cargo.lock
generated
Normal file
|
@ -0,0 +1,926 @@
|
||||||
|
# This file is automatically @generated by Cargo.
|
||||||
|
# It is not intended for manual editing.
|
||||||
|
[[package]]
|
||||||
|
name = "Inflector"
|
||||||
|
version = "0.11.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
|
||||||
|
dependencies = [
|
||||||
|
"lazy_static",
|
||||||
|
"regex",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "adler32"
|
||||||
|
version = "1.2.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "aho-corasick"
|
||||||
|
version = "0.7.13"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86"
|
||||||
|
dependencies = [
|
||||||
|
"memchr",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ansi_term"
|
||||||
|
version = "0.11.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
|
||||||
|
dependencies = [
|
||||||
|
"winapi",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "atty"
|
||||||
|
version = "0.2.14"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
|
||||||
|
dependencies = [
|
||||||
|
"hermit-abi",
|
||||||
|
"libc",
|
||||||
|
"winapi",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "autocfg"
|
||||||
|
version = "0.1.7"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "autocfg"
|
||||||
|
version = "1.0.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "base64"
|
||||||
|
version = "0.12.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bindgen"
|
||||||
|
version = "0.54.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "66c0bb6167449588ff70803f4127f0684f9063097eca5016f37eb52b92c2cf36"
|
||||||
|
dependencies = [
|
||||||
|
"bitflags",
|
||||||
|
"cexpr",
|
||||||
|
"cfg-if",
|
||||||
|
"clang-sys",
|
||||||
|
"clap",
|
||||||
|
"env_logger",
|
||||||
|
"lazy_static",
|
||||||
|
"lazycell",
|
||||||
|
"log",
|
||||||
|
"peeking_take_while",
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"regex",
|
||||||
|
"rustc-hash",
|
||||||
|
"shlex",
|
||||||
|
"which",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bitflags"
|
||||||
|
version = "1.2.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bytemuck"
|
||||||
|
version = "1.4.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "41aa2ec95ca3b5c54cf73c91acf06d24f4495d5f1b1c12506ae3483d646177ac"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "byteorder"
|
||||||
|
version = "1.3.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cc"
|
||||||
|
version = "1.0.60"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ef611cc68ff783f18535d77ddd080185275713d852c4f5cbb6122c462a7a825c"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cexpr"
|
||||||
|
version = "0.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27"
|
||||||
|
dependencies = [
|
||||||
|
"nom",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cfg-if"
|
||||||
|
version = "0.1.10"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "clang-sys"
|
||||||
|
version = "0.29.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "fe6837df1d5cba2397b835c8530f51723267e16abbf83892e9e5af4f0e5dd10a"
|
||||||
|
dependencies = [
|
||||||
|
"glob",
|
||||||
|
"libc",
|
||||||
|
"libloading",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "clap"
|
||||||
|
version = "2.33.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
|
||||||
|
dependencies = [
|
||||||
|
"ansi_term",
|
||||||
|
"atty",
|
||||||
|
"bitflags",
|
||||||
|
"strsim",
|
||||||
|
"textwrap",
|
||||||
|
"unicode-width",
|
||||||
|
"vec_map",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cloudabi"
|
||||||
|
version = "0.0.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
|
||||||
|
dependencies = [
|
||||||
|
"bitflags",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "color_quant"
|
||||||
|
version = "1.0.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "0dbbb57365263e881e805dc77d94697c9118fd94d8da011240555aa7b23445bd"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "crc32fast"
|
||||||
|
version = "1.2.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "crossbeam-channel"
|
||||||
|
version = "0.4.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87"
|
||||||
|
dependencies = [
|
||||||
|
"crossbeam-utils",
|
||||||
|
"maybe-uninit",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "crossbeam-deque"
|
||||||
|
version = "0.7.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
|
||||||
|
dependencies = [
|
||||||
|
"crossbeam-epoch",
|
||||||
|
"crossbeam-utils",
|
||||||
|
"maybe-uninit",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "crossbeam-epoch"
|
||||||
|
version = "0.8.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg 1.0.1",
|
||||||
|
"cfg-if",
|
||||||
|
"crossbeam-utils",
|
||||||
|
"lazy_static",
|
||||||
|
"maybe-uninit",
|
||||||
|
"memoffset",
|
||||||
|
"scopeguard",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "crossbeam-utils"
|
||||||
|
version = "0.7.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg 1.0.1",
|
||||||
|
"cfg-if",
|
||||||
|
"lazy_static",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cstr_core"
|
||||||
|
version = "0.2.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "26bdf52fc09b421407bd990b4662a380420b6b6f61708bcba417731dca1b65ef"
|
||||||
|
dependencies = [
|
||||||
|
"cty",
|
||||||
|
"memchr",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cty"
|
||||||
|
version = "0.2.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7313c0d620d0cb4dbd9d019e461a4beb501071ff46ec0ab933efb4daa76d73e3"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "deflate"
|
||||||
|
version = "0.8.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "73770f8e1fe7d64df17ca66ad28994a0a623ea497fa69486e14984e715c5d174"
|
||||||
|
dependencies = [
|
||||||
|
"adler32",
|
||||||
|
"byteorder",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "either"
|
||||||
|
version = "1.6.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "embedded-graphics"
|
||||||
|
version = "0.6.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "40a69991ceb896bd4810a0cf2bcc46fc94b7860573c71f965d8e5b3d66942fed"
|
||||||
|
dependencies = [
|
||||||
|
"byteorder",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "embedded-graphics-simulator"
|
||||||
|
version = "0.2.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b883133c9145b701673de9eb3b6e107aa0b53b934d48b7a5cb47f7d0263b6002"
|
||||||
|
dependencies = [
|
||||||
|
"base64",
|
||||||
|
"embedded-graphics",
|
||||||
|
"image",
|
||||||
|
"sdl2",
|
||||||
|
"tinytga",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "env_logger"
|
||||||
|
version = "0.7.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
|
||||||
|
dependencies = [
|
||||||
|
"atty",
|
||||||
|
"humantime",
|
||||||
|
"log",
|
||||||
|
"regex",
|
||||||
|
"termcolor",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "fuchsia-cprng"
|
||||||
|
version = "0.1.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "gif"
|
||||||
|
version = "0.10.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "471d90201b3b223f3451cd4ad53e34295f16a1df17b1edf3736d47761c3981af"
|
||||||
|
dependencies = [
|
||||||
|
"color_quant",
|
||||||
|
"lzw",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "glob"
|
||||||
|
version = "0.3.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "hermit-abi"
|
||||||
|
version = "0.1.15"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "humantime"
|
||||||
|
version = "1.3.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
|
||||||
|
dependencies = [
|
||||||
|
"quick-error",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "image"
|
||||||
|
version = "0.23.9"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "974e194911d1f7efe3cd8a8f9db3b767e43536327e899e8bc9a12ef5711b74d2"
|
||||||
|
dependencies = [
|
||||||
|
"bytemuck",
|
||||||
|
"byteorder",
|
||||||
|
"gif",
|
||||||
|
"jpeg-decoder",
|
||||||
|
"num-iter",
|
||||||
|
"num-rational",
|
||||||
|
"num-traits",
|
||||||
|
"png",
|
||||||
|
"scoped_threadpool",
|
||||||
|
"tiff",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "jpeg-decoder"
|
||||||
|
version = "0.1.20"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "cc797adac5f083b8ff0ca6f6294a999393d76e197c36488e2ef732c4715f6fa3"
|
||||||
|
dependencies = [
|
||||||
|
"byteorder",
|
||||||
|
"rayon",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "lazy_static"
|
||||||
|
version = "1.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "lazycell"
|
||||||
|
version = "1.3.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libc"
|
||||||
|
version = "0.2.77"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f2f96b10ec2560088a8e76961b00d47107b3a625fecb76dedb29ee7ccbf98235"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libloading"
|
||||||
|
version = "0.5.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753"
|
||||||
|
dependencies = [
|
||||||
|
"cc",
|
||||||
|
"winapi",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "log"
|
||||||
|
version = "0.4.11"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "lvgl"
|
||||||
|
version = "0.4.0"
|
||||||
|
dependencies = [
|
||||||
|
"bitflags",
|
||||||
|
"cstr_core",
|
||||||
|
"cty",
|
||||||
|
"embedded-graphics",
|
||||||
|
"lvgl-codegen",
|
||||||
|
"lvgl-sys",
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "lvgl-codegen"
|
||||||
|
version = "0.4.0"
|
||||||
|
dependencies = [
|
||||||
|
"Inflector",
|
||||||
|
"lazy_static",
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"regex",
|
||||||
|
"syn",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "lvgl-example"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"cstr_core",
|
||||||
|
"embedded-graphics",
|
||||||
|
"embedded-graphics-simulator",
|
||||||
|
"lvgl",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "lvgl-sys"
|
||||||
|
version = "0.4.0"
|
||||||
|
dependencies = [
|
||||||
|
"bindgen",
|
||||||
|
"cc",
|
||||||
|
"cty",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "lzw"
|
||||||
|
version = "0.10.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7d947cbb889ed21c2a84be6ffbaebf5b4e0f4340638cba0444907e38b56be084"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "maybe-uninit"
|
||||||
|
version = "2.0.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "memchr"
|
||||||
|
version = "2.3.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "memoffset"
|
||||||
|
version = "0.5.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg 1.0.1",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "miniz_oxide"
|
||||||
|
version = "0.3.7"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435"
|
||||||
|
dependencies = [
|
||||||
|
"adler32",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "nom"
|
||||||
|
version = "5.1.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
|
||||||
|
dependencies = [
|
||||||
|
"memchr",
|
||||||
|
"version_check",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num"
|
||||||
|
version = "0.1.42"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e"
|
||||||
|
dependencies = [
|
||||||
|
"num-integer",
|
||||||
|
"num-iter",
|
||||||
|
"num-traits",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num-integer"
|
||||||
|
version = "0.1.43"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg 1.0.1",
|
||||||
|
"num-traits",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num-iter"
|
||||||
|
version = "0.1.41"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7a6e6b7c748f995c4c29c5f5ae0248536e04a5739927c74ec0fa564805094b9f"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg 1.0.1",
|
||||||
|
"num-integer",
|
||||||
|
"num-traits",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num-rational"
|
||||||
|
version = "0.3.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a5b4d7360f362cfb50dde8143501e6940b22f644be75a4cc90b2d81968908138"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg 1.0.1",
|
||||||
|
"num-integer",
|
||||||
|
"num-traits",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num-traits"
|
||||||
|
version = "0.2.12"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg 1.0.1",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num_cpus"
|
||||||
|
version = "1.13.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
|
||||||
|
dependencies = [
|
||||||
|
"hermit-abi",
|
||||||
|
"libc",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "peeking_take_while"
|
||||||
|
version = "0.1.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "png"
|
||||||
|
version = "0.16.7"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "dfe7f9f1c730833200b134370e1d5098964231af8450bce9b78ee3ab5278b970"
|
||||||
|
dependencies = [
|
||||||
|
"bitflags",
|
||||||
|
"crc32fast",
|
||||||
|
"deflate",
|
||||||
|
"miniz_oxide",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "proc-macro2"
|
||||||
|
version = "1.0.21"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "36e28516df94f3dd551a587da5357459d9b36d945a7c37c3557928c1c2ff2a2c"
|
||||||
|
dependencies = [
|
||||||
|
"unicode-xid",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "quick-error"
|
||||||
|
version = "1.2.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "quote"
|
||||||
|
version = "1.0.7"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rand"
|
||||||
|
version = "0.6.5"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg 0.1.7",
|
||||||
|
"libc",
|
||||||
|
"rand_chacha",
|
||||||
|
"rand_core 0.4.2",
|
||||||
|
"rand_hc",
|
||||||
|
"rand_isaac",
|
||||||
|
"rand_jitter",
|
||||||
|
"rand_os",
|
||||||
|
"rand_pcg",
|
||||||
|
"rand_xorshift",
|
||||||
|
"winapi",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rand_chacha"
|
||||||
|
version = "0.1.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg 0.1.7",
|
||||||
|
"rand_core 0.3.1",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rand_core"
|
||||||
|
version = "0.3.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
|
||||||
|
dependencies = [
|
||||||
|
"rand_core 0.4.2",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rand_core"
|
||||||
|
version = "0.4.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rand_hc"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
|
||||||
|
dependencies = [
|
||||||
|
"rand_core 0.3.1",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rand_isaac"
|
||||||
|
version = "0.1.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
|
||||||
|
dependencies = [
|
||||||
|
"rand_core 0.3.1",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rand_jitter"
|
||||||
|
version = "0.1.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
"rand_core 0.4.2",
|
||||||
|
"winapi",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rand_os"
|
||||||
|
version = "0.1.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
|
||||||
|
dependencies = [
|
||||||
|
"cloudabi",
|
||||||
|
"fuchsia-cprng",
|
||||||
|
"libc",
|
||||||
|
"rand_core 0.4.2",
|
||||||
|
"rdrand",
|
||||||
|
"winapi",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rand_pcg"
|
||||||
|
version = "0.1.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg 0.1.7",
|
||||||
|
"rand_core 0.4.2",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rand_xorshift"
|
||||||
|
version = "0.1.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
|
||||||
|
dependencies = [
|
||||||
|
"rand_core 0.3.1",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rayon"
|
||||||
|
version = "1.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "cfd016f0c045ad38b5251be2c9c0ab806917f82da4d36b2a327e5166adad9270"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg 1.0.1",
|
||||||
|
"crossbeam-deque",
|
||||||
|
"either",
|
||||||
|
"rayon-core",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rayon-core"
|
||||||
|
version = "1.8.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e8c4fec834fb6e6d2dd5eece3c7b432a52f0ba887cf40e595190c4107edc08bf"
|
||||||
|
dependencies = [
|
||||||
|
"crossbeam-channel",
|
||||||
|
"crossbeam-deque",
|
||||||
|
"crossbeam-utils",
|
||||||
|
"lazy_static",
|
||||||
|
"num_cpus",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rdrand"
|
||||||
|
version = "0.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
|
||||||
|
dependencies = [
|
||||||
|
"rand_core 0.3.1",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "regex"
|
||||||
|
version = "1.3.9"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
|
||||||
|
dependencies = [
|
||||||
|
"aho-corasick",
|
||||||
|
"memchr",
|
||||||
|
"regex-syntax",
|
||||||
|
"thread_local",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "regex-syntax"
|
||||||
|
version = "0.6.18"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rustc-hash"
|
||||||
|
version = "1.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "scoped_threadpool"
|
||||||
|
version = "0.1.9"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "scopeguard"
|
||||||
|
version = "1.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "sdl2"
|
||||||
|
version = "0.32.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d051a07231e303f5f719da78cb6f7394f6d5b54f733aef5b0b447804a83edd7b"
|
||||||
|
dependencies = [
|
||||||
|
"bitflags",
|
||||||
|
"lazy_static",
|
||||||
|
"libc",
|
||||||
|
"num",
|
||||||
|
"rand",
|
||||||
|
"sdl2-sys",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "sdl2-sys"
|
||||||
|
version = "0.32.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "34e71125077d297d57e4c1acfe8981b5bdfbf5a20e7b589abfdcb33bf1127f86"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if",
|
||||||
|
"libc",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "shlex"
|
||||||
|
version = "0.1.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "strsim"
|
||||||
|
version = "0.8.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "syn"
|
||||||
|
version = "1.0.41"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6690e3e9f692504b941dc6c3b188fd28df054f7fb8469ab40680df52fdcc842b"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"unicode-xid",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "termcolor"
|
||||||
|
version = "1.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
|
||||||
|
dependencies = [
|
||||||
|
"winapi-util",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "textwrap"
|
||||||
|
version = "0.11.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
|
||||||
|
dependencies = [
|
||||||
|
"unicode-width",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "thread_local"
|
||||||
|
version = "1.0.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
|
||||||
|
dependencies = [
|
||||||
|
"lazy_static",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "tiff"
|
||||||
|
version = "0.5.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "3f3b8a87c4da944c3f27e5943289171ac71a6150a79ff6bacfff06d159dfff2f"
|
||||||
|
dependencies = [
|
||||||
|
"byteorder",
|
||||||
|
"lzw",
|
||||||
|
"miniz_oxide",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "tinytga"
|
||||||
|
version = "0.3.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "fefeaa83b75c6d5db01bc7023487e887870537134e5a7b3f06c0b3d10baeeae8"
|
||||||
|
dependencies = [
|
||||||
|
"embedded-graphics",
|
||||||
|
"nom",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "unicode-width"
|
||||||
|
version = "0.1.8"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "unicode-xid"
|
||||||
|
version = "0.2.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "vec_map"
|
||||||
|
version = "0.8.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "version_check"
|
||||||
|
version = "0.9.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "which"
|
||||||
|
version = "3.1.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi"
|
||||||
|
version = "0.3.9"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
|
||||||
|
dependencies = [
|
||||||
|
"winapi-i686-pc-windows-gnu",
|
||||||
|
"winapi-x86_64-pc-windows-gnu",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi-i686-pc-windows-gnu"
|
||||||
|
version = "0.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi-util"
|
||||||
|
version = "0.1.5"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
|
||||||
|
dependencies = [
|
||||||
|
"winapi",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi-x86_64-pc-windows-gnu"
|
||||||
|
version = "0.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
17
Cargo.toml
Normal file
17
Cargo.toml
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
[package]
|
||||||
|
name = "lvgl-example"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["Rafael Caricio <rafael@caricio.com>"]
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
|
[profile.release]
|
||||||
|
# This makes the compiled code faster and smaller, but it makes compiling slower,
|
||||||
|
# so it's only enabled in release mode.
|
||||||
|
lto = true
|
||||||
|
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
cstr_core = { version = "0.2.0", features = ["alloc"] }
|
||||||
|
lvgl = { version = "0.4", path = "../lvgl-rs/lvgl" }
|
||||||
|
embedded-graphics = "0.6"
|
||||||
|
embedded-graphics-simulator = "0.2"
|
11
README.md
Normal file
11
README.md
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
Install Emscripten
|
||||||
|
https://puddleofcode.com/story/definitive-guide-to-rust-sdl2-and-emscriptem
|
||||||
|
|
||||||
|
```
|
||||||
|
$ embuilder.py build sdl2
|
||||||
|
$ export EMMAKEN_CFLAGS="-s USE_SDL=2"
|
||||||
|
```
|
17
Web.toml
Normal file
17
Web.toml
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
# The default value of `--target` used when building this crate
|
||||||
|
# in cases where it's not specified on the command line.
|
||||||
|
default-target = "wasm32-unknown-emscripten"
|
||||||
|
|
||||||
|
[cargo-web]
|
||||||
|
# Asserts the minimum required version of `cargo-web` necessary
|
||||||
|
# to compile this crate; supported since 0.6.0.
|
||||||
|
minimum-version = "0.6.0"
|
||||||
|
|
||||||
|
# These will only take effect on *-emscripten targets.
|
||||||
|
[target.emscripten]
|
||||||
|
# You can have a target-specific `prepend-js` key.
|
||||||
|
# `prepend-js = "src/emscripten_runtime.js"`
|
||||||
|
|
||||||
|
# This will enable Emscripten's SDL2 port. Consult Emscripten's documentation
|
||||||
|
# for more details.
|
||||||
|
link-args = ["-s", "USE_SDL=2"]
|
701
include/lv_conf.h
Normal file
701
include/lv_conf.h
Normal file
|
@ -0,0 +1,701 @@
|
||||||
|
/**
|
||||||
|
* @file lv_conf.h
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* COPY THIS FILE AS `lv_conf.h` NEXT TO the `lvgl` FOLDER
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if 1 /*Set it to "1" to enable content*/
|
||||||
|
|
||||||
|
#ifndef LV_CONF_H
|
||||||
|
#define LV_CONF_H
|
||||||
|
/* clang-format off */
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
/*====================
|
||||||
|
Graphical settings
|
||||||
|
*====================*/
|
||||||
|
|
||||||
|
/* Maximal horizontal and vertical resolution to support by the library.*/
|
||||||
|
#define LV_HOR_RES_MAX (240)
|
||||||
|
#define LV_VER_RES_MAX (240)
|
||||||
|
|
||||||
|
/* Color depth:
|
||||||
|
* - 1: 1 byte per pixel
|
||||||
|
* - 8: RGB332
|
||||||
|
* - 16: RGB565
|
||||||
|
* - 32: ARGB8888
|
||||||
|
*/
|
||||||
|
#define LV_COLOR_DEPTH 16
|
||||||
|
|
||||||
|
/* Swap the 2 bytes of RGB565 color.
|
||||||
|
* Useful if the display has a 8 bit interface (e.g. SPI)*/
|
||||||
|
#define LV_COLOR_16_SWAP 0
|
||||||
|
|
||||||
|
/* 1: Enable screen transparency.
|
||||||
|
* Useful for OSD or other overlapping GUIs.
|
||||||
|
* Requires `LV_COLOR_DEPTH = 32` colors and the screen's style should be modified: `style.body.opa = ...`*/
|
||||||
|
#define LV_COLOR_SCREEN_TRANSP 0
|
||||||
|
|
||||||
|
/*Images pixels with this color will not be drawn (with chroma keying)*/
|
||||||
|
#define LV_COLOR_TRANSP LV_COLOR_LIME /*LV_COLOR_LIME: pure green*/
|
||||||
|
|
||||||
|
/* Enable anti-aliasing (lines, and radiuses will be smoothed) */
|
||||||
|
#define LV_ANTIALIAS 1
|
||||||
|
|
||||||
|
/* Default display refresh period.
|
||||||
|
* Can be changed in the display driver (`lv_disp_drv_t`).*/
|
||||||
|
#define LV_DISP_DEF_REFR_PERIOD 30 /*[ms]*/
|
||||||
|
|
||||||
|
/* Dot Per Inch: used to initialize default sizes.
|
||||||
|
* E.g. a button with width = LV_DPI / 2 -> half inch wide
|
||||||
|
* (Not so important, you can adjust it to modify default sizes and spaces)*/
|
||||||
|
#define LV_DPI 130 /*[px]*/
|
||||||
|
|
||||||
|
/* The the real width of the display changes some default values:
|
||||||
|
* default object sizes, layout of examples, etc.
|
||||||
|
* According to the width of the display (hor. res. / dpi)
|
||||||
|
* the displays fall in 4 categories.
|
||||||
|
* The 4th is extra large which has no upper limit so not listed here
|
||||||
|
* The upper limit of the categories are set below in 0.1 inch unit.
|
||||||
|
*/
|
||||||
|
#define LV_DISP_SMALL_LIMIT 30
|
||||||
|
#define LV_DISP_MEDIUM_LIMIT 50
|
||||||
|
#define LV_DISP_LARGE_LIMIT 70
|
||||||
|
|
||||||
|
/* Type of coordinates. Should be `int16_t` (or `int32_t` for extreme cases) */
|
||||||
|
typedef int16_t lv_coord_t;
|
||||||
|
|
||||||
|
/*=========================
|
||||||
|
Memory manager settings
|
||||||
|
*=========================*/
|
||||||
|
|
||||||
|
/* LittelvGL's internal memory manager's settings.
|
||||||
|
* The graphical objects and other related data are stored here. */
|
||||||
|
|
||||||
|
/* 1: use custom malloc/free, 0: use the built-in `lv_mem_alloc` and `lv_mem_free` */
|
||||||
|
#define LV_MEM_CUSTOM 0
|
||||||
|
#if LV_MEM_CUSTOM == 0
|
||||||
|
/* Size of the memory used by `lv_mem_alloc` in bytes (>= 2kB)*/
|
||||||
|
# define LV_MEM_SIZE (32U * 1024U)
|
||||||
|
|
||||||
|
/* Complier prefix for a big array declaration */
|
||||||
|
# define LV_MEM_ATTR
|
||||||
|
|
||||||
|
/* Set an address for the memory pool instead of allocating it as an array.
|
||||||
|
* Can be in external SRAM too. */
|
||||||
|
# define LV_MEM_ADR 0
|
||||||
|
|
||||||
|
/* Automatically defrag. on free. Defrag. means joining the adjacent free cells. */
|
||||||
|
# define LV_MEM_AUTO_DEFRAG 1
|
||||||
|
#else /*LV_MEM_CUSTOM*/
|
||||||
|
# define LV_MEM_CUSTOM_INCLUDE <stdlib.h> /*Header for the dynamic memory function*/
|
||||||
|
# define LV_MEM_CUSTOM_ALLOC malloc /*Wrapper to malloc*/
|
||||||
|
# define LV_MEM_CUSTOM_FREE free /*Wrapper to free*/
|
||||||
|
#endif /*LV_MEM_CUSTOM*/
|
||||||
|
|
||||||
|
/* Garbage Collector settings
|
||||||
|
* Used if lvgl is binded to higher level language and the memory is managed by that language */
|
||||||
|
#define LV_ENABLE_GC 0
|
||||||
|
#if LV_ENABLE_GC != 0
|
||||||
|
# define LV_GC_INCLUDE "gc.h" /*Include Garbage Collector related things*/
|
||||||
|
# define LV_MEM_CUSTOM_REALLOC your_realloc /*Wrapper to realloc*/
|
||||||
|
# define LV_MEM_CUSTOM_GET_SIZE your_mem_get_size /*Wrapper to lv_mem_get_size*/
|
||||||
|
#endif /* LV_ENABLE_GC */
|
||||||
|
|
||||||
|
/*=======================
|
||||||
|
Input device settings
|
||||||
|
*=======================*/
|
||||||
|
|
||||||
|
/* Input device default settings.
|
||||||
|
* Can be changed in the Input device driver (`lv_indev_drv_t`)*/
|
||||||
|
|
||||||
|
/* Input device read period in milliseconds */
|
||||||
|
#define LV_INDEV_DEF_READ_PERIOD 30
|
||||||
|
|
||||||
|
/* Drag threshold in pixels */
|
||||||
|
#define LV_INDEV_DEF_DRAG_LIMIT 10
|
||||||
|
|
||||||
|
/* Drag throw slow-down in [%]. Greater value -> faster slow-down */
|
||||||
|
#define LV_INDEV_DEF_DRAG_THROW 10
|
||||||
|
|
||||||
|
/* Long press time in milliseconds.
|
||||||
|
* Time to send `LV_EVENT_LONG_PRESSSED`) */
|
||||||
|
#define LV_INDEV_DEF_LONG_PRESS_TIME 400
|
||||||
|
|
||||||
|
/* Repeated trigger period in long press [ms]
|
||||||
|
* Time between `LV_EVENT_LONG_PRESSED_REPEAT */
|
||||||
|
#define LV_INDEV_DEF_LONG_PRESS_REP_TIME 100
|
||||||
|
|
||||||
|
|
||||||
|
/* Gesture threshold in pixels */
|
||||||
|
#define LV_INDEV_DEF_GESTURE_LIMIT 50
|
||||||
|
|
||||||
|
/* Gesture min velocity at release before swipe (pixels)*/
|
||||||
|
#define LV_INDEV_DEF_GESTURE_MIN_VELOCITY 3
|
||||||
|
|
||||||
|
/*==================
|
||||||
|
* Feature usage
|
||||||
|
*==================*/
|
||||||
|
|
||||||
|
/*1: Enable the Animations */
|
||||||
|
#define LV_USE_ANIMATION 1
|
||||||
|
#if LV_USE_ANIMATION
|
||||||
|
|
||||||
|
/*Declare the type of the user data of animations (can be e.g. `void *`, `int`, `struct`)*/
|
||||||
|
typedef void * lv_anim_user_data_t;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* 1: Enable shadow drawing*/
|
||||||
|
#define LV_USE_SHADOW 1
|
||||||
|
#if LV_USE_SHADOW
|
||||||
|
/* Allow buffering some shadow calculation
|
||||||
|
* LV_SHADOW_CACHE_SIZE is the max. shadow size to buffer,
|
||||||
|
* where shadow size is `shadow_width + radius`
|
||||||
|
* Caching has LV_SHADOW_CACHE_SIZE^2 RAM cost*/
|
||||||
|
#define LV_SHADOW_CACHE_SIZE 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* 1: Use other blend modes than normal (`LV_BLEND_MODE_...`)*/
|
||||||
|
#define LV_USE_BLEND_MODES 1
|
||||||
|
|
||||||
|
/* 1: Use the `opa_scale` style property to set the opacity of an object and its children at once*/
|
||||||
|
#define LV_USE_OPA_SCALE 1
|
||||||
|
|
||||||
|
/* 1: Use image zoom and rotation*/
|
||||||
|
#define LV_USE_IMG_TRANSFORM 1
|
||||||
|
|
||||||
|
/* 1: Enable object groups (for keyboard/encoder navigation) */
|
||||||
|
#define LV_USE_GROUP 1
|
||||||
|
#if LV_USE_GROUP
|
||||||
|
typedef void * lv_group_user_data_t;
|
||||||
|
#endif /*LV_USE_GROUP*/
|
||||||
|
|
||||||
|
/* 1: Enable GPU interface*/
|
||||||
|
#define LV_USE_GPU 1 /*Only enables `gpu_fill_cb` and `gpu_blend_cb` in the disp. drv- */
|
||||||
|
#define LV_USE_GPU_STM32_DMA2D 0
|
||||||
|
|
||||||
|
/* 1: Enable file system (might be required for images */
|
||||||
|
#define LV_USE_FILESYSTEM 1
|
||||||
|
#if LV_USE_FILESYSTEM
|
||||||
|
/*Declare the type of the user data of file system drivers (can be e.g. `void *`, `int`, `struct`)*/
|
||||||
|
typedef void * lv_fs_drv_user_data_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*1: Add a `user_data` to drivers and objects*/
|
||||||
|
#define LV_USE_USER_DATA 1
|
||||||
|
|
||||||
|
/*1: Show CPU usage and FPS count in the right bottom corner*/
|
||||||
|
#define LV_USE_PERF_MONITOR 0
|
||||||
|
|
||||||
|
/*1: Use the functions and types from the older API if possible */
|
||||||
|
#define LV_USE_API_EXTENSION_V6 1
|
||||||
|
|
||||||
|
/*========================
|
||||||
|
* Image decoder and cache
|
||||||
|
*========================*/
|
||||||
|
|
||||||
|
/* 1: Enable indexed (palette) images */
|
||||||
|
#define LV_IMG_CF_INDEXED 1
|
||||||
|
|
||||||
|
/* 1: Enable alpha indexed images */
|
||||||
|
#define LV_IMG_CF_ALPHA 1
|
||||||
|
|
||||||
|
/* Default image cache size. Image caching keeps the images opened.
|
||||||
|
* If only the built-in image formats are used there is no real advantage of caching.
|
||||||
|
* (I.e. no new image decoder is added)
|
||||||
|
* With complex image decoders (e.g. PNG or JPG) caching can save the continuous open/decode of images.
|
||||||
|
* However the opened images might consume additional RAM.
|
||||||
|
* LV_IMG_CACHE_DEF_SIZE must be >= 1 */
|
||||||
|
#define LV_IMG_CACHE_DEF_SIZE 1
|
||||||
|
|
||||||
|
/*Declare the type of the user data of image decoder (can be e.g. `void *`, `int`, `struct`)*/
|
||||||
|
typedef void * lv_img_decoder_user_data_t;
|
||||||
|
|
||||||
|
/*=====================
|
||||||
|
* Compiler settings
|
||||||
|
*====================*/
|
||||||
|
/* Define a custom attribute to `lv_tick_inc` function */
|
||||||
|
#define LV_ATTRIBUTE_TICK_INC
|
||||||
|
|
||||||
|
/* Define a custom attribute to `lv_task_handler` function */
|
||||||
|
#define LV_ATTRIBUTE_TASK_HANDLER
|
||||||
|
|
||||||
|
/* Define a custom attribute to `lv_disp_flush_ready` function */
|
||||||
|
#define LV_ATTRIBUTE_FLUSH_READY
|
||||||
|
|
||||||
|
/* With size optimization (-Os) the compiler might not align data to
|
||||||
|
* 4 or 8 byte boundary. This alignment will be explicitly applied where needed.
|
||||||
|
* E.g. __attribute__((aligned(4))) */
|
||||||
|
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
|
||||||
|
/* Attribute to mark large constant arrays for example
|
||||||
|
* font's bitmaps */
|
||||||
|
#define LV_ATTRIBUTE_LARGE_CONST
|
||||||
|
|
||||||
|
/* Prefix performance critical functions to place them into a faster memory (e.g RAM)
|
||||||
|
* Uses 15-20 kB extra memory */
|
||||||
|
#define LV_ATTRIBUTE_FAST_MEM
|
||||||
|
|
||||||
|
/* Export integer constant to binding.
|
||||||
|
* This macro is used with constants in the form of LV_<CONST> that
|
||||||
|
* should also appear on lvgl binding API such as Micropython
|
||||||
|
*
|
||||||
|
* The default value just prevents a GCC warning.
|
||||||
|
*/
|
||||||
|
#define LV_EXPORT_CONST_INT(int_value) struct _silence_gcc_warning
|
||||||
|
|
||||||
|
/*===================
|
||||||
|
* HAL settings
|
||||||
|
*==================*/
|
||||||
|
|
||||||
|
/* 1: use a custom tick source.
|
||||||
|
* It removes the need to manually update the tick with `lv_tick_inc`) */
|
||||||
|
#define LV_TICK_CUSTOM 0
|
||||||
|
#if LV_TICK_CUSTOM == 1
|
||||||
|
#define LV_TICK_CUSTOM_INCLUDE "something.h" /*Header for the sys time function*/
|
||||||
|
#define LV_TICK_CUSTOM_SYS_TIME_EXPR (millis()) /*Expression evaluating to current systime in ms*/
|
||||||
|
#endif /*LV_TICK_CUSTOM*/
|
||||||
|
|
||||||
|
typedef void * lv_disp_drv_user_data_t; /*Type of user data in the display driver*/
|
||||||
|
typedef void * lv_indev_drv_user_data_t; /*Type of user data in the input device driver*/
|
||||||
|
|
||||||
|
/*================
|
||||||
|
* Log settings
|
||||||
|
*===============*/
|
||||||
|
|
||||||
|
/*1: Enable the log module*/
|
||||||
|
#define LV_USE_LOG 0
|
||||||
|
#if LV_USE_LOG
|
||||||
|
/* How important log should be added:
|
||||||
|
* LV_LOG_LEVEL_TRACE A lot of logs to give detailed information
|
||||||
|
* LV_LOG_LEVEL_INFO Log important events
|
||||||
|
* LV_LOG_LEVEL_WARN Log if something unwanted happened but didn't cause a problem
|
||||||
|
* LV_LOG_LEVEL_ERROR Only critical issue, when the system may fail
|
||||||
|
* LV_LOG_LEVEL_NONE Do not log anything
|
||||||
|
*/
|
||||||
|
# define LV_LOG_LEVEL LV_LOG_LEVEL_WARN
|
||||||
|
|
||||||
|
/* 1: Print the log with 'printf';
|
||||||
|
* 0: user need to register a callback with `lv_log_register_print_cb`*/
|
||||||
|
# define LV_LOG_PRINTF 0
|
||||||
|
#endif /*LV_USE_LOG*/
|
||||||
|
|
||||||
|
/*=================
|
||||||
|
* Debug settings
|
||||||
|
*================*/
|
||||||
|
|
||||||
|
/* If Debug is enabled LittelvGL validates the parameters of the functions.
|
||||||
|
* If an invalid parameter is found an error log message is printed and
|
||||||
|
* the MCU halts at the error. (`LV_USE_LOG` should be enabled)
|
||||||
|
* If you are debugging the MCU you can pause
|
||||||
|
* the debugger to see exactly where the issue is.
|
||||||
|
*
|
||||||
|
* The behavior of asserts can be overwritten by redefining them here.
|
||||||
|
* E.g. #define LV_ASSERT_MEM(p) <my_assert_code>
|
||||||
|
*/
|
||||||
|
#define LV_USE_DEBUG 1
|
||||||
|
#if LV_USE_DEBUG
|
||||||
|
|
||||||
|
/*Check if the parameter is NULL. (Quite fast) */
|
||||||
|
#define LV_USE_ASSERT_NULL 1
|
||||||
|
|
||||||
|
/*Checks is the memory is successfully allocated or no. (Quite fast)*/
|
||||||
|
#define LV_USE_ASSERT_MEM 1
|
||||||
|
|
||||||
|
/*Check the integrity of `lv_mem` after critical operations. (Slow)*/
|
||||||
|
#define LV_USE_ASSERT_MEM_INTEGRITY 0
|
||||||
|
|
||||||
|
/* Check the strings.
|
||||||
|
* Search for NULL, very long strings, invalid characters, and unnatural repetitions. (Slow)
|
||||||
|
* If disabled `LV_USE_ASSERT_NULL` will be performed instead (if it's enabled) */
|
||||||
|
#define LV_USE_ASSERT_STR 0
|
||||||
|
|
||||||
|
/* Check NULL, the object's type and existence (e.g. not deleted). (Quite slow)
|
||||||
|
* If disabled `LV_USE_ASSERT_NULL` will be performed instead (if it's enabled) */
|
||||||
|
#define LV_USE_ASSERT_OBJ 0
|
||||||
|
|
||||||
|
/*Check if the styles are properly initialized. (Fast)*/
|
||||||
|
#define LV_USE_ASSERT_STYLE 0
|
||||||
|
|
||||||
|
#endif /*LV_USE_DEBUG*/
|
||||||
|
|
||||||
|
/*==================
|
||||||
|
* FONT USAGE
|
||||||
|
*===================*/
|
||||||
|
|
||||||
|
/* The built-in fonts contains the ASCII range and some Symbols with 4 bit-per-pixel.
|
||||||
|
* The symbols are available via `LV_SYMBOL_...` defines
|
||||||
|
* More info about fonts: https://docs.lvgl.com/#Fonts
|
||||||
|
* To create a new font go to: https://lvgl.com/ttf-font-to-c-array
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Montserrat fonts with bpp = 4
|
||||||
|
* https://fonts.google.com/specimen/Montserrat */
|
||||||
|
#define LV_FONT_MONTSERRAT_12 0
|
||||||
|
#define LV_FONT_MONTSERRAT_14 0
|
||||||
|
#define LV_FONT_MONTSERRAT_16 1
|
||||||
|
#define LV_FONT_MONTSERRAT_18 0
|
||||||
|
#define LV_FONT_MONTSERRAT_20 0
|
||||||
|
#define LV_FONT_MONTSERRAT_22 0
|
||||||
|
#define LV_FONT_MONTSERRAT_24 0
|
||||||
|
#define LV_FONT_MONTSERRAT_26 0
|
||||||
|
#define LV_FONT_MONTSERRAT_28 0
|
||||||
|
#define LV_FONT_MONTSERRAT_30 0
|
||||||
|
#define LV_FONT_MONTSERRAT_32 0
|
||||||
|
#define LV_FONT_MONTSERRAT_34 0
|
||||||
|
#define LV_FONT_MONTSERRAT_36 0
|
||||||
|
#define LV_FONT_MONTSERRAT_38 0
|
||||||
|
#define LV_FONT_MONTSERRAT_40 0
|
||||||
|
#define LV_FONT_MONTSERRAT_42 0
|
||||||
|
#define LV_FONT_MONTSERRAT_44 0
|
||||||
|
#define LV_FONT_MONTSERRAT_46 0
|
||||||
|
#define LV_FONT_MONTSERRAT_48 0
|
||||||
|
|
||||||
|
/* Demonstrate special features */
|
||||||
|
#define LV_FONT_MONTSERRAT_12_SUBPX 0
|
||||||
|
#define LV_FONT_MONTSERRAT_28_COMPRESSED 0 /*bpp = 3*/
|
||||||
|
#define LV_FONT_DEJAVU_16_PERSIAN_HEBREW 0 /*Hebrew, Arabic, PErisan letters and all their forms*/
|
||||||
|
#define LV_FONT_SIMSUN_16_CJK 0 /*1000 most common CJK radicals*/
|
||||||
|
|
||||||
|
/*Pixel perfect monospace font
|
||||||
|
* http://pelulamu.net/unscii/ */
|
||||||
|
#define LV_FONT_UNSCII_8 0
|
||||||
|
|
||||||
|
/* Optionally declare your custom fonts here.
|
||||||
|
* You can use these fonts as default font too
|
||||||
|
* and they will be available globally. E.g.
|
||||||
|
* #define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(my_font_1) \
|
||||||
|
* LV_FONT_DECLARE(my_font_2)
|
||||||
|
*/
|
||||||
|
#define LV_FONT_CUSTOM_DECLARE
|
||||||
|
|
||||||
|
/* Enable it if you have fonts with a lot of characters.
|
||||||
|
* The limit depends on the font size, font face and bpp
|
||||||
|
* but with > 10,000 characters if you see issues probably you need to enable it.*/
|
||||||
|
#define LV_FONT_FMT_TXT_LARGE 0
|
||||||
|
|
||||||
|
/* Set the pixel order of the display.
|
||||||
|
* Important only if "subpx fonts" are used.
|
||||||
|
* With "normal" font it doesn't matter.
|
||||||
|
*/
|
||||||
|
#define LV_FONT_SUBPX_BGR 0
|
||||||
|
|
||||||
|
/*Declare the type of the user data of fonts (can be e.g. `void *`, `int`, `struct`)*/
|
||||||
|
typedef void * lv_font_user_data_t;
|
||||||
|
|
||||||
|
/*================
|
||||||
|
* THEME USAGE
|
||||||
|
*================*/
|
||||||
|
|
||||||
|
/*Always enable at least on theme*/
|
||||||
|
|
||||||
|
/* No theme, you can apply your styles as you need
|
||||||
|
* No flags. Set LV_THEME_DEFAULT_FLAG 0 */
|
||||||
|
#define LV_USE_THEME_EMPTY 1
|
||||||
|
|
||||||
|
/*Simple to the create your theme based on it
|
||||||
|
* No flags. Set LV_THEME_DEFAULT_FLAG 0 */
|
||||||
|
#define LV_USE_THEME_TEMPLATE 1
|
||||||
|
|
||||||
|
/* A fast and impressive theme.
|
||||||
|
* Flags:
|
||||||
|
* LV_THEME_MATERIAL_FLAG_LIGHT: light theme
|
||||||
|
* LV_THEME_MATERIAL_FLAG_DARK: dark theme*/
|
||||||
|
#define LV_USE_THEME_MATERIAL 1
|
||||||
|
|
||||||
|
/* Mono-color theme for monochrome displays.
|
||||||
|
* If LV_THEME_DEFAULT_COLOR_PRIMARY is LV_COLOR_BLACK the
|
||||||
|
* texts and borders will be black and the background will be
|
||||||
|
* white. Else the colors are inverted.
|
||||||
|
* No flags. Set LV_THEME_DEFAULT_FLAG 0 */
|
||||||
|
#define LV_USE_THEME_MONO 1
|
||||||
|
|
||||||
|
#define LV_THEME_DEFAULT_INCLUDE <stdint.h> /*Include a header for the init. function*/
|
||||||
|
#define LV_THEME_DEFAULT_INIT lv_theme_material_init
|
||||||
|
#define LV_THEME_DEFAULT_COLOR_PRIMARY LV_COLOR_RED
|
||||||
|
#define LV_THEME_DEFAULT_COLOR_SECONDARY LV_COLOR_BLUE
|
||||||
|
#define LV_THEME_DEFAULT_FLAG LV_THEME_MATERIAL_FLAG_LIGHT
|
||||||
|
#define LV_THEME_DEFAULT_FONT_SMALL &lv_font_montserrat_16
|
||||||
|
#define LV_THEME_DEFAULT_FONT_NORMAL &lv_font_montserrat_16
|
||||||
|
#define LV_THEME_DEFAULT_FONT_SUBTITLE &lv_font_montserrat_16
|
||||||
|
#define LV_THEME_DEFAULT_FONT_TITLE &lv_font_montserrat_16
|
||||||
|
|
||||||
|
/*=================
|
||||||
|
* Text settings
|
||||||
|
*=================*/
|
||||||
|
|
||||||
|
/* Select a character encoding for strings.
|
||||||
|
* Your IDE or editor should have the same character encoding
|
||||||
|
* - LV_TXT_ENC_UTF8
|
||||||
|
* - LV_TXT_ENC_ASCII
|
||||||
|
* */
|
||||||
|
#define LV_TXT_ENC LV_TXT_ENC_UTF8
|
||||||
|
|
||||||
|
/*Can break (wrap) texts on these chars*/
|
||||||
|
#define LV_TXT_BREAK_CHARS " ,.;:-_"
|
||||||
|
|
||||||
|
/* If a word is at least this long, will break wherever "prettiest"
|
||||||
|
* To disable, set to a value <= 0 */
|
||||||
|
#define LV_TXT_LINE_BREAK_LONG_LEN 0
|
||||||
|
|
||||||
|
/* Minimum number of characters in a long word to put on a line before a break.
|
||||||
|
* Depends on LV_TXT_LINE_BREAK_LONG_LEN. */
|
||||||
|
#define LV_TXT_LINE_BREAK_LONG_PRE_MIN_LEN 3
|
||||||
|
|
||||||
|
/* Minimum number of characters in a long word to put on a line after a break.
|
||||||
|
* Depends on LV_TXT_LINE_BREAK_LONG_LEN. */
|
||||||
|
#define LV_TXT_LINE_BREAK_LONG_POST_MIN_LEN 3
|
||||||
|
|
||||||
|
/* The control character to use for signalling text recoloring. */
|
||||||
|
#define LV_TXT_COLOR_CMD "#"
|
||||||
|
|
||||||
|
/* Support bidirectional texts.
|
||||||
|
* Allows mixing Left-to-Right and Right-to-Left texts.
|
||||||
|
* The direction will be processed according to the Unicode Bidirectioanl Algorithm:
|
||||||
|
* https://www.w3.org/International/articles/inline-bidi-markup/uba-basics*/
|
||||||
|
#define LV_USE_BIDI 0
|
||||||
|
#if LV_USE_BIDI
|
||||||
|
/* Set the default direction. Supported values:
|
||||||
|
* `LV_BIDI_DIR_LTR` Left-to-Right
|
||||||
|
* `LV_BIDI_DIR_RTL` Right-to-Left
|
||||||
|
* `LV_BIDI_DIR_AUTO` detect texts base direction */
|
||||||
|
#define LV_BIDI_BASE_DIR_DEF LV_BIDI_DIR_AUTO
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Enable Arabic/Persian processing
|
||||||
|
* In these languages characters should be replaced with
|
||||||
|
* an other form based on their position in the text */
|
||||||
|
#define LV_USE_ARABIC_PERSIAN_CHARS 0
|
||||||
|
|
||||||
|
/*Change the built in (v)snprintf functions*/
|
||||||
|
#define LV_SPRINTF_CUSTOM 0
|
||||||
|
#if LV_SPRINTF_CUSTOM
|
||||||
|
# define LV_SPRINTF_INCLUDE <stdio.h>
|
||||||
|
# define lv_snprintf snprintf
|
||||||
|
# define lv_vsnprintf vsnprintf
|
||||||
|
#else /*!LV_SPRINTF_CUSTOM*/
|
||||||
|
# define LV_SPRINTF_DISABLE_FLOAT 1
|
||||||
|
#endif /*LV_SPRINTF_CUSTOM*/
|
||||||
|
|
||||||
|
/*===================
|
||||||
|
* LV_OBJ SETTINGS
|
||||||
|
*==================*/
|
||||||
|
|
||||||
|
#if LV_USE_USER_DATA
|
||||||
|
/*Declare the type of the user data of object (can be e.g. `void *`, `int`, `struct`)*/
|
||||||
|
typedef void * lv_obj_user_data_t;
|
||||||
|
/*Provide a function to free user data*/
|
||||||
|
#define LV_USE_USER_DATA_FREE 0
|
||||||
|
#if LV_USE_USER_DATA_FREE
|
||||||
|
# define LV_USER_DATA_FREE_INCLUDE "something.h" /*Header for user data free function*/
|
||||||
|
/* Function prototype : void user_data_free(lv_obj_t * obj); */
|
||||||
|
# define LV_USER_DATA_FREE (user_data_free) /*Invoking for user data free function*/
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*1: enable `lv_obj_realaign()` based on `lv_obj_align()` parameters*/
|
||||||
|
#define LV_USE_OBJ_REALIGN 1
|
||||||
|
|
||||||
|
/* Enable to make the object clickable on a larger area.
|
||||||
|
* LV_EXT_CLICK_AREA_OFF or 0: Disable this feature
|
||||||
|
* LV_EXT_CLICK_AREA_TINY: The extra area can be adjusted horizontally and vertically (0..255 px)
|
||||||
|
* LV_EXT_CLICK_AREA_FULL: The extra area can be adjusted in all 4 directions (-32k..+32k px)
|
||||||
|
*/
|
||||||
|
#define LV_USE_EXT_CLICK_AREA LV_EXT_CLICK_AREA_TINY
|
||||||
|
|
||||||
|
/*==================
|
||||||
|
* LV OBJ X USAGE
|
||||||
|
*================*/
|
||||||
|
/*
|
||||||
|
* Documentation of the object types: https://docs.lvgl.com/#Object-types
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*Arc (dependencies: -)*/
|
||||||
|
#define LV_USE_ARC 1
|
||||||
|
|
||||||
|
/*Bar (dependencies: -)*/
|
||||||
|
#define LV_USE_BAR 1
|
||||||
|
|
||||||
|
/*Button (dependencies: lv_cont*/
|
||||||
|
#define LV_USE_BTN 1
|
||||||
|
|
||||||
|
/*Button matrix (dependencies: -)*/
|
||||||
|
#define LV_USE_BTNMATRIX 1
|
||||||
|
|
||||||
|
/*Calendar (dependencies: -)*/
|
||||||
|
#define LV_USE_CALENDAR 1
|
||||||
|
|
||||||
|
/*Canvas (dependencies: lv_img)*/
|
||||||
|
#define LV_USE_CANVAS 1
|
||||||
|
|
||||||
|
/*Check box (dependencies: lv_btn, lv_label)*/
|
||||||
|
#define LV_USE_CHECKBOX 1
|
||||||
|
|
||||||
|
/*Chart (dependencies: -)*/
|
||||||
|
#define LV_USE_CHART 1
|
||||||
|
#if LV_USE_CHART
|
||||||
|
# define LV_CHART_AXIS_TICK_LABEL_MAX_LEN 256
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Container (dependencies: -*/
|
||||||
|
#define LV_USE_CONT 1
|
||||||
|
|
||||||
|
/*Color picker (dependencies: -*/
|
||||||
|
#define LV_USE_CPICKER 1
|
||||||
|
|
||||||
|
/*Drop down list (dependencies: lv_page, lv_label, lv_symbol_def.h)*/
|
||||||
|
#define LV_USE_DROPDOWN 1
|
||||||
|
#if LV_USE_DROPDOWN != 0
|
||||||
|
/*Open and close default animation time [ms] (0: no animation)*/
|
||||||
|
# define LV_DROPDOWN_DEF_ANIM_TIME 200
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Gauge (dependencies:lv_bar, lv_linemeter)*/
|
||||||
|
#define LV_USE_GAUGE 1
|
||||||
|
|
||||||
|
/*Image (dependencies: lv_label*/
|
||||||
|
#define LV_USE_IMG 1
|
||||||
|
|
||||||
|
/*Image Button (dependencies: lv_btn*/
|
||||||
|
#define LV_USE_IMGBTN 1
|
||||||
|
#if LV_USE_IMGBTN
|
||||||
|
/*1: The imgbtn requires left, mid and right parts and the width can be set freely*/
|
||||||
|
# define LV_IMGBTN_TILED 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Keyboard (dependencies: lv_btnm)*/
|
||||||
|
#define LV_USE_KEYBOARD 1
|
||||||
|
|
||||||
|
/*Label (dependencies: -*/
|
||||||
|
#define LV_USE_LABEL 1
|
||||||
|
#if LV_USE_LABEL != 0
|
||||||
|
/*Hor, or ver. scroll speed [px/sec] in 'LV_LABEL_LONG_ROLL/ROLL_CIRC' mode*/
|
||||||
|
# define LV_LABEL_DEF_SCROLL_SPEED 25
|
||||||
|
|
||||||
|
/* Waiting period at beginning/end of animation cycle */
|
||||||
|
# define LV_LABEL_WAIT_CHAR_COUNT 3
|
||||||
|
|
||||||
|
/*Enable selecting text of the label */
|
||||||
|
# define LV_LABEL_TEXT_SEL 0
|
||||||
|
|
||||||
|
/*Store extra some info in labels (12 bytes) to speed up drawing of very long texts*/
|
||||||
|
# define LV_LABEL_LONG_TXT_HINT 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*LED (dependencies: -)*/
|
||||||
|
#define LV_USE_LED 1
|
||||||
|
#if LV_USE_LED
|
||||||
|
# define LV_LED_BRIGHT_MIN 120 /*Minimal brightness*/
|
||||||
|
# define LV_LED_BRIGHT_MAX 255 /*Maximal brightness*/
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Line (dependencies: -*/
|
||||||
|
#define LV_USE_LINE 1
|
||||||
|
|
||||||
|
/*List (dependencies: lv_page, lv_btn, lv_label, (lv_img optionally for icons ))*/
|
||||||
|
#define LV_USE_LIST 1
|
||||||
|
#if LV_USE_LIST != 0
|
||||||
|
/*Default animation time of focusing to a list element [ms] (0: no animation) */
|
||||||
|
# define LV_LIST_DEF_ANIM_TIME 100
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Line meter (dependencies: *;)*/
|
||||||
|
#define LV_USE_LINEMETER 1
|
||||||
|
#if LV_USE_LINEMETER
|
||||||
|
/* Draw line more precisely at cost of performance.
|
||||||
|
* Useful if there are lot of lines any minor are visible
|
||||||
|
* 0: No extra precision
|
||||||
|
* 1: Some extra precision
|
||||||
|
* 2: Best precision
|
||||||
|
*/
|
||||||
|
# define LV_LINEMETER_PRECISE 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Mask (dependencies: -)*/
|
||||||
|
#define LV_USE_OBJMASK 1
|
||||||
|
|
||||||
|
/*Message box (dependencies: lv_rect, lv_btnm, lv_label)*/
|
||||||
|
#define LV_USE_MSGBOX 1
|
||||||
|
|
||||||
|
/*Page (dependencies: lv_cont)*/
|
||||||
|
#define LV_USE_PAGE 1
|
||||||
|
#if LV_USE_PAGE != 0
|
||||||
|
/*Focus default animation time [ms] (0: no animation)*/
|
||||||
|
# define LV_PAGE_DEF_ANIM_TIME 400
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Preload (dependencies: lv_arc, lv_anim)*/
|
||||||
|
#define LV_USE_SPINNER 1
|
||||||
|
#if LV_USE_SPINNER != 0
|
||||||
|
# define LV_SPINNER_DEF_ARC_LENGTH 60 /*[deg]*/
|
||||||
|
# define LV_SPINNER_DEF_SPIN_TIME 1000 /*[ms]*/
|
||||||
|
# define LV_SPINNER_DEF_ANIM LV_SPINNER_TYPE_SPINNING_ARC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Roller (dependencies: lv_ddlist)*/
|
||||||
|
#define LV_USE_ROLLER 1
|
||||||
|
#if LV_USE_ROLLER != 0
|
||||||
|
/*Focus animation time [ms] (0: no animation)*/
|
||||||
|
# define LV_ROLLER_DEF_ANIM_TIME 200
|
||||||
|
|
||||||
|
/*Number of extra "pages" when the roller is infinite*/
|
||||||
|
# define LV_ROLLER_INF_PAGES 7
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Slider (dependencies: lv_bar)*/
|
||||||
|
#define LV_USE_SLIDER 1
|
||||||
|
|
||||||
|
/*Spinbox (dependencies: lv_ta)*/
|
||||||
|
#define LV_USE_SPINBOX 1
|
||||||
|
|
||||||
|
/*Switch (dependencies: lv_slider)*/
|
||||||
|
#define LV_USE_SWITCH 1
|
||||||
|
|
||||||
|
/*Text area (dependencies: lv_label, lv_page)*/
|
||||||
|
#define LV_USE_TEXTAREA 1
|
||||||
|
#if LV_USE_TEXTAREA != 0
|
||||||
|
# define LV_TEXTAREA_DEF_CURSOR_BLINK_TIME 400 /*ms*/
|
||||||
|
# define LV_TEXTAREA_DEF_PWD_SHOW_TIME 1500 /*ms*/
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Table (dependencies: lv_label)*/
|
||||||
|
#define LV_USE_TABLE 1
|
||||||
|
#if LV_USE_TABLE
|
||||||
|
# define LV_TABLE_COL_MAX 12
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Tab (dependencies: lv_page, lv_btnm)*/
|
||||||
|
#define LV_USE_TABVIEW 1
|
||||||
|
# if LV_USE_TABVIEW != 0
|
||||||
|
/*Time of slide animation [ms] (0: no animation)*/
|
||||||
|
# define LV_TABVIEW_DEF_ANIM_TIME 300
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Tileview (dependencies: lv_page) */
|
||||||
|
#define LV_USE_TILEVIEW 1
|
||||||
|
#if LV_USE_TILEVIEW
|
||||||
|
/*Time of slide animation [ms] (0: no animation)*/
|
||||||
|
# define LV_TILEVIEW_DEF_ANIM_TIME 300
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Window (dependencies: lv_cont, lv_btn, lv_label, lv_img, lv_page)*/
|
||||||
|
#define LV_USE_WIN 1
|
||||||
|
|
||||||
|
/*==================
|
||||||
|
* Non-user section
|
||||||
|
*==================*/
|
||||||
|
|
||||||
|
#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS) /* Disable warnings for Visual Studio*/
|
||||||
|
# define _CRT_SECURE_NO_WARNINGS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*--END OF LV_CONF_H--*/
|
||||||
|
|
||||||
|
#endif /*LV_CONF_H*/
|
||||||
|
|
||||||
|
#endif /*End of "Content enable"*/
|
32
src/emscripten.rs
Normal file
32
src/emscripten.rs
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
#[cfg(target_os = "emscripten")]
|
||||||
|
pub mod emscripten {
|
||||||
|
use std::cell::RefCell;
|
||||||
|
use std::ptr::null_mut;
|
||||||
|
use std::os::raw::{c_int, c_void, c_float};
|
||||||
|
|
||||||
|
#[allow(non_camel_case_types)]
|
||||||
|
type em_callback_func = unsafe extern fn();
|
||||||
|
|
||||||
|
extern {
|
||||||
|
pub fn emscripten_set_main_loop(func: em_callback_func, fps: c_int, simulate_infinite_loop: c_int);
|
||||||
|
pub fn emscripten_cancel_main_loop();
|
||||||
|
pub fn emscripten_get_now() -> c_float;
|
||||||
|
}
|
||||||
|
|
||||||
|
thread_local!(static MAIN_LOOP_CALLBACK: RefCell<*mut c_void> = RefCell::new(null_mut()));
|
||||||
|
|
||||||
|
pub fn set_main_loop_callback<F>(callback: F) where F: FnMut() {
|
||||||
|
MAIN_LOOP_CALLBACK.with(|log| {
|
||||||
|
*log.borrow_mut() = &callback as *const _ as *mut c_void;
|
||||||
|
});
|
||||||
|
|
||||||
|
unsafe { emscripten_set_main_loop(wrapper::<F>, 0, 1); }
|
||||||
|
|
||||||
|
unsafe extern "C" fn wrapper<F>() where F: FnMut() {
|
||||||
|
MAIN_LOOP_CALLBACK.with(|z| {
|
||||||
|
let closure = *z.borrow_mut() as *mut F;
|
||||||
|
(*closure)();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
96
src/main.rs
Normal file
96
src/main.rs
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
use cstr_core::CString;
|
||||||
|
use embedded_graphics::pixelcolor::Rgb565;
|
||||||
|
use embedded_graphics::prelude::*;
|
||||||
|
use embedded_graphics_simulator::{
|
||||||
|
OutputSettingsBuilder, SimulatorDisplay, SimulatorEvent, Window,
|
||||||
|
};
|
||||||
|
use lvgl::style::Style;
|
||||||
|
use lvgl::widgets::{Bar, Label, LabelAlign};
|
||||||
|
use lvgl::{self, Align, Animation, Color, Event, LvError, Part, State, Widget, UI};
|
||||||
|
use std::time::Instant;
|
||||||
|
use std::process;
|
||||||
|
|
||||||
|
#[cfg(target_os = "emscripten")]
|
||||||
|
pub mod emscripten;
|
||||||
|
|
||||||
|
fn main() -> Result<(), LvError> {
|
||||||
|
let display: SimulatorDisplay<Rgb565> = SimulatorDisplay::new(Size::new(
|
||||||
|
240,
|
||||||
|
240,
|
||||||
|
));
|
||||||
|
|
||||||
|
let output_settings = OutputSettingsBuilder::new().scale(2).build();
|
||||||
|
let mut window = Window::new("Bar Example", &output_settings);
|
||||||
|
|
||||||
|
let mut ui = UI::init()?;
|
||||||
|
|
||||||
|
// Implement and register your display:
|
||||||
|
ui.disp_drv_register(display)?;
|
||||||
|
|
||||||
|
// Create screen and widgets
|
||||||
|
let mut screen = ui.scr_act()?;
|
||||||
|
|
||||||
|
let mut screen_style = Style::default();
|
||||||
|
screen_style.set_bg_color(State::DEFAULT, Color::from_rgb((255, 255, 255)));
|
||||||
|
screen_style.set_radius(State::DEFAULT, 0);
|
||||||
|
screen.add_style(Part::Main, screen_style)?;
|
||||||
|
|
||||||
|
// Create the bar object
|
||||||
|
let mut bar = Bar::new(&mut screen)?;
|
||||||
|
bar.set_size(175, 20)?;
|
||||||
|
bar.set_align(&mut screen, Align::Center, 0, 10)?;
|
||||||
|
bar.set_range(0, 100)?;
|
||||||
|
bar.on_event(|_b, _e| {
|
||||||
|
println!("Completed!");
|
||||||
|
})?;
|
||||||
|
|
||||||
|
// // Set the indicator style for the bar object
|
||||||
|
let mut ind_style = Style::default();
|
||||||
|
ind_style.set_bg_color(State::DEFAULT, Color::from_rgb((100, 245, 100)));
|
||||||
|
bar.add_style(Part::All, ind_style)?;
|
||||||
|
|
||||||
|
let mut loading_lbl = Label::new(&mut screen)?;
|
||||||
|
loading_lbl.set_text(CString::new("Loading...").unwrap().as_c_str())?;
|
||||||
|
loading_lbl.set_align(&mut bar, Align::OutTopMid, 0, -10)?;
|
||||||
|
loading_lbl.set_label_align(LabelAlign::Center)?;
|
||||||
|
|
||||||
|
let mut loading_style = Style::default();
|
||||||
|
loading_style.set_text_color(State::DEFAULT, Color::from_rgb((0, 0, 0)));
|
||||||
|
loading_lbl.add_style(Part::Main, loading_style)?;
|
||||||
|
|
||||||
|
let mut i = 0;
|
||||||
|
let mut loop_started = Instant::now();
|
||||||
|
let mut main_loop = || {
|
||||||
|
if i > 100 {
|
||||||
|
i = 0;
|
||||||
|
ui.event_send(&mut bar, Event::Clicked).unwrap();
|
||||||
|
}
|
||||||
|
bar.set_value(i, Animation::ON).unwrap();
|
||||||
|
i += 1;
|
||||||
|
|
||||||
|
ui.task_handler();
|
||||||
|
window.update(ui.get_display_ref().unwrap());
|
||||||
|
|
||||||
|
for event in window.events() {
|
||||||
|
match event {
|
||||||
|
SimulatorEvent::Quit => process::exit(1),
|
||||||
|
_ => {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ui.tick_inc(loop_started.elapsed());
|
||||||
|
loop_started = Instant::now();
|
||||||
|
};
|
||||||
|
|
||||||
|
#[cfg(target_os = "emscripten")]
|
||||||
|
use emscripten::{emscripten};
|
||||||
|
|
||||||
|
#[cfg(target_os = "emscripten")]
|
||||||
|
emscripten::set_main_loop_callback(main_loop);
|
||||||
|
|
||||||
|
#[cfg(not(target_os = "emscripten"))]
|
||||||
|
loop { main_loop(); }
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue