From f20593d9ab4dbd79778a53a8e00d1237af499c5e4a68154a4c6f08c6e3fb32f9 Mon Sep 17 00:00:00 2001 From: Kira Date: Fri, 17 Apr 2026 20:15:44 +0200 Subject: [PATCH] Add image feture for iced, and add image logo into Welvom stage. --- Cargo.lock | 668 +++++++++++++++++++++++++++++- Cargo.toml | 2 +- src/stages/welcome/media/logo.png | Bin 0 -> 57385 bytes src/stages/welcome/mod.rs | 37 +- 4 files changed, 693 insertions(+), 14 deletions(-) create mode 100644 src/stages/welcome/media/logo.png diff --git a/Cargo.lock b/Cargo.lock index f3f247e..8b61a15 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -18,6 +18,12 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618" +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + [[package]] name = "ahash" version = "0.8.12" @@ -40,6 +46,24 @@ dependencies = [ "memchr", ] +[[package]] +name = "aligned" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee4508988c62edf04abd8d92897fca0c2995d907ce1dfeaf369dac3716a40685" +dependencies = [ + "as-slice", +] + +[[package]] +name = "aligned-vec" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc890384c8602f339876ded803c97ad529f3842aba97f6392b3dba0dd171769b" +dependencies = [ + "equator", +] + [[package]] name = "android-activity" version = "0.6.1" @@ -89,6 +113,12 @@ version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" +[[package]] +name = "arbitrary" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" + [[package]] name = "arc-swap" version = "1.9.1" @@ -98,6 +128,17 @@ dependencies = [ "rustversion", ] +[[package]] +name = "arg_enum_proc_macro" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "arrayref" version = "0.3.9" @@ -116,6 +157,15 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" +[[package]] +name = "as-slice" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "516b6b4f0e40d50dcda9365d53964ec74560ad4284da2e7fc97122cd83174516" +dependencies = [ + "stable_deref_trait", +] + [[package]] name = "ash" version = "0.38.0+1.3.281" @@ -290,6 +340,49 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +[[package]] +name = "av-scenechange" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f321d77c20e19b92c39e7471cf986812cbb46659d2af674adc4331ef3f18394" +dependencies = [ + "aligned", + "anyhow", + "arg_enum_proc_macro", + "arrayvec", + "log", + "num-rational", + "num-traits", + "pastey", + "rayon", + "thiserror 2.0.18", + "v_frame", + "y4m", +] + +[[package]] +name = "av1-grain" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cfddb07216410377231960af4fcab838eaa12e013417781b78bd95ee22077f8" +dependencies = [ + "anyhow", + "arrayvec", + "log", + "nom", + "num-rational", + "v_frame", +] + +[[package]] +name = "avif-serialize" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "375082f007bd67184fb9c0374614b29f9aaa604ec301635f72338bb65386a53d" +dependencies = [ + "arrayvec", +] + [[package]] name = "base62" version = "2.2.4" @@ -311,6 +404,12 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" +[[package]] +name = "bit_field" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e4b40c7323adcfc0a41c4b88143ed58346ff65a288fc144329c5c45e05d70c6" + [[package]] name = "bitflags" version = "1.3.2" @@ -323,6 +422,15 @@ version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" +[[package]] +name = "bitstream-io" +version = "4.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60d4bd9d1db2c6bdf285e223a7fa369d5ce98ec767dec949c6ca62863ce61757" +dependencies = [ + "core2", +] + [[package]] name = "block" version = "0.1.6" @@ -370,6 +478,12 @@ dependencies = [ "serde", ] +[[package]] +name = "built" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4ad8f11f288f48ca24471bbd51ac257aaeaaa07adae295591266b792902ae64" + [[package]] name = "bumpalo" version = "3.20.2" @@ -396,6 +510,12 @@ dependencies = [ "syn", ] +[[package]] +name = "byteorder-lite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" + [[package]] name = "bytes" version = "1.11.1" @@ -533,6 +653,12 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + [[package]] name = "combine" version = "4.6.7" @@ -613,6 +739,15 @@ dependencies = [ "libc", ] +[[package]] +name = "core2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" +dependencies = [ + "memchr", +] + [[package]] name = "core_maths" version = "0.1.1" @@ -646,6 +781,15 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + [[package]] name = "crossbeam-deque" version = "0.8.6" @@ -781,6 +925,26 @@ dependencies = [ "syn", ] +[[package]] +name = "equator" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4711b213838dfee0117e3be6ac926007d7f433d7bbe33595975d4190cb07e6fc" +dependencies = [ + "equator-macro", +] + +[[package]] +name = "equator-macro" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44f23cf4b44bfce11a86ace86f8a73ffdec849c9fd00a386a53d278bd9e81fb3" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "equivalent" version = "1.0.2" @@ -843,18 +1007,72 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "exr" +version = "1.74.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4300e043a56aa2cb633c01af81ca8f699a321879a7854d3896a0ba89056363be" +dependencies = [ + "bit_field", + "half", + "lebe", + "miniz_oxide", + "rayon-core", + "smallvec", + "zune-inflate", +] + [[package]] name = "fastrand" version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" +[[package]] +name = "fax" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05de7d48f37cd6730705cbca900770cab77a89f413d23e100ad7fad7795a0ab" +dependencies = [ + "fax_derive", +] + +[[package]] +name = "fax_derive" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0aca10fb742cb43f9e7bb8467c91aa9bcb8e3ffbc6a6f7389bb93ffc920577d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "fdeflate" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" +dependencies = [ + "simd-adler32", +] + [[package]] name = "find-msvc-tools" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" +[[package]] +name = "flate2" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + [[package]] name = "foldhash" version = "0.1.5" @@ -1071,6 +1289,16 @@ dependencies = [ "wasip3", ] +[[package]] +name = "gif" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5df2ba84018d80c213569363bdcd0c64e6933c67fe4c1d60ecf822971a3c35e" +dependencies = [ + "color_quant", + "weezl", +] + [[package]] name = "gl_generator" version = "0.14.0" @@ -1286,6 +1514,7 @@ dependencies = [ "iced_runtime", "iced_widget", "iced_winit", + "image", "thiserror 2.0.18", ] @@ -1345,6 +1574,8 @@ dependencies = [ "half", "iced_core", "iced_futures", + "image", + "kamadak-exif", "log", "raw-window-handle", "rustc-hash 2.1.2", @@ -1480,6 +1711,46 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "image" +version = "0.25.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85ab80394333c02fe689eaf900ab500fbd0c2213da414687ebf995a65d5a6104" +dependencies = [ + "bytemuck", + "byteorder-lite", + "color_quant", + "exr", + "gif", + "image-webp", + "moxcms", + "num-traits", + "png", + "qoi", + "ravif", + "rayon", + "rgb", + "tiff", + "zune-core", + "zune-jpeg", +] + +[[package]] +name = "image-webp" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525e9ff3e1a4be2fbea1fdf0e98686a6d98b4d8f937e1bf7402245af1909e8c3" +dependencies = [ + "byteorder-lite", + "quick-error", +] + +[[package]] +name = "imgref" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c5cedc30da3a610cac6b4ba17597bdf7152cf974e8aab3afb3d54455e371c8" + [[package]] name = "indexmap" version = "2.14.0" @@ -1492,6 +1763,17 @@ dependencies = [ "serde_core", ] +[[package]] +name = "interpolate_name" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "itertools" version = "0.11.0" @@ -1501,6 +1783,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.18" @@ -1603,6 +1894,15 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "kamadak-exif" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1130d80c7374efad55a117d715a3af9368f0fa7a2c54573afc15a188cd984837" +dependencies = [ + "mutate_once", +] + [[package]] name = "khronos-egl" version = "6.0.0" @@ -1651,12 +1951,28 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" +[[package]] +name = "lebe" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8" + [[package]] name = "libc" version = "0.2.185" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52ff2c0fe9bc6cb6b14a0592c2ff4fa9ceb83eea9db979b0487cd054946a2b8f" +[[package]] +name = "libfuzzer-sys" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f12a681b7dd8ce12bff52488013ba614b869148d54dd79836ab85aafdd53f08d" +dependencies = [ + "arbitrary", + "cc", +] + [[package]] name = "libloading" version = "0.8.9" @@ -1733,6 +2049,15 @@ version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +[[package]] +name = "loop9" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fae87c125b03c1d2c0150c90365d7d6bcc53fb73a9acaef207d2d065860f062" +dependencies = [ + "imgref", +] + [[package]] name = "lru" version = "0.16.4" @@ -1748,6 +2073,16 @@ dependencies = [ "libc", ] +[[package]] +name = "maybe-rayon" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" +dependencies = [ + "cfg-if", + "rayon", +] + [[package]] name = "memchr" version = "2.8.0" @@ -1787,6 +2122,26 @@ dependencies = [ "paste", ] +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "moxcms" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb85c154ba489f01b25c0d36ae69a87e4a1c73a72631fc6c0eb6dde34a73e44b" +dependencies = [ + "num-traits", + "pxfm", +] + [[package]] name = "mundy" version = "0.2.2" @@ -1812,6 +2167,12 @@ dependencies = [ "zbus", ] +[[package]] +name = "mutate_once" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13d2233c9842d08cfe13f9eac96e207ca6a2ea10b80259ebe8ad0268be27d2af" + [[package]] name = "naga" version = "27.0.3" @@ -1868,6 +2229,27 @@ dependencies = [ "jni-sys 0.3.1", ] +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "nom" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405" +dependencies = [ + "memchr", +] + +[[package]] +name = "noop_proc_macro" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8" + [[package]] name = "normpath" version = "1.5.0" @@ -1877,6 +2259,47 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint", + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.19" @@ -2347,6 +2770,12 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +[[package]] +name = "pastey" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35fb2e5f958ec131621fdd531e9fc186ed768cbe395337403ae56c17a74c68ec" + [[package]] name = "percent-encoding" version = "2.3.2" @@ -2408,6 +2837,19 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" +[[package]] +name = "png" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" +dependencies = [ + "bitflags 2.11.0", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + [[package]] name = "polling" version = "3.11.0" @@ -2437,6 +2879,15 @@ dependencies = [ "portable-atomic", ] +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + [[package]] name = "presser" version = "0.3.1" @@ -2476,6 +2927,40 @@ name = "profiling" version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3eb8486b569e12e2c32ad3e204dbaba5e4b5b216e9367044f25f1dba42341773" +dependencies = [ + "profiling-procmacros", +] + +[[package]] +name = "profiling-procmacros" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "pxfm" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5a041e753da8b807c9255f28de81879c78c876392ff2469cde94799b2896b9d" + +[[package]] +name = "qoi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "quick-error" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" [[package]] name = "quick-xml" @@ -2507,6 +2992,35 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" +[[package]] +name = "rand" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +dependencies = [ + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", +] + [[package]] name = "range-alloc" version = "0.1.5" @@ -2519,12 +3033,82 @@ version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "973443cf09a9c8656b574a866ab68dfa19f0867d0340648c7d2f6a71b8a8ea68" +[[package]] +name = "rav1e" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43b6dd56e85d9483277cde964fd1bdb0428de4fec5ebba7540995639a21cb32b" +dependencies = [ + "aligned-vec", + "arbitrary", + "arg_enum_proc_macro", + "arrayvec", + "av-scenechange", + "av1-grain", + "bitstream-io", + "built", + "cfg-if", + "interpolate_name", + "itertools 0.14.0", + "libc", + "libfuzzer-sys", + "log", + "maybe-rayon", + "new_debug_unreachable", + "noop_proc_macro", + "num-derive", + "num-traits", + "paste", + "profiling", + "rand", + "rand_chacha", + "simd_helpers", + "thiserror 2.0.18", + "v_frame", + "wasm-bindgen", +] + +[[package]] +name = "ravif" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e52310197d971b0f5be7fe6b57530dcd27beb35c1b013f29d66c1ad73fbbcc45" +dependencies = [ + "avif-serialize", + "imgref", + "loop9", + "quick-error", + "rav1e", + "rayon", + "rgb", +] + [[package]] name = "raw-window-handle" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" +[[package]] +name = "rayon" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + [[package]] name = "read-fonts" version = "0.35.0" @@ -2608,6 +3192,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" +[[package]] +name = "rgb" +version = "0.8.53" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b34b781b31e5d73e9fbc8689c70551fd1ade9a19e3e28cfec8580a79290cc4" + [[package]] name = "roxmltree" version = "0.20.0" @@ -2654,7 +3244,7 @@ dependencies = [ "arc-swap", "base62", "globwalk", - "itertools", + "itertools 0.11.0", "lazy_static", "normpath", "once_cell", @@ -2874,6 +3464,12 @@ dependencies = [ "libc", ] +[[package]] +name = "simd-adler32" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" + [[package]] name = "simd_cesu8" version = "1.1.1" @@ -2884,6 +3480,15 @@ dependencies = [ "simdutf8", ] +[[package]] +name = "simd_helpers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95890f873bec569a0362c235787f3aca6e1e887302ba4840839bcc6459c42da6" +dependencies = [ + "quote", +] + [[package]] name = "simdutf8" version = "0.1.5" @@ -3183,6 +3788,20 @@ dependencies = [ "syn", ] +[[package]] +name = "tiff" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b63feaf3343d35b6ca4d50483f94843803b0f51634937cc2ec519fc32232bc52" +dependencies = [ + "fax", + "flate2", + "half", + "quick-error", + "weezl", + "zune-jpeg", +] + [[package]] name = "tiny-skia" version = "0.11.4" @@ -3450,6 +4069,17 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "v_frame" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "666b7727c8875d6ab5db9533418d7c764233ac9c0cff1d469aec8fa127597be2" +dependencies = [ + "aligned-vec", + "num-traits", + "wasm-bindgen", +] + [[package]] name = "version_check" version = "0.9.5" @@ -3742,6 +4372,12 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "weezl" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" + [[package]] name = "wgpu" version = "27.0.1" @@ -4468,6 +5104,12 @@ version = "0.8.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ae8337f8a065cfc972643663ea4279e04e7256de865aa66fe25cec5fb912d3f" +[[package]] +name = "y4m" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5a4b21e1a62b67a2970e6831bc091d7b87e119e7f9791aef9702e3bef04448" + [[package]] name = "yazi" version = "0.2.1" @@ -4567,6 +5209,30 @@ version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" +[[package]] +name = "zune-core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb8a0807f7c01457d0379ba880ba6322660448ddebc890ce29bb64da71fb40f9" + +[[package]] +name = "zune-inflate" +version = "0.2.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "zune-jpeg" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec5f41c76397b7da451efd19915684f727d7e1d516384ca6bd0ec43ec94de23c" +dependencies = [ + "zune-core", +] + [[package]] name = "zvariant" version = "5.10.0" diff --git a/Cargo.toml b/Cargo.toml index dc27b85..48b347e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,6 +4,6 @@ version = "0.1.0" edition = "2024" [dependencies] -iced = { version = "0.14", features = ["smol"] } +iced = { version = "0.14", features = ["smol", "image"] } rust-i18n = "3" toml = "1" diff --git a/src/stages/welcome/media/logo.png b/src/stages/welcome/media/logo.png new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..d7b96695273c3bef5d62075a914c338abe79135ee26a8b7d237a2267cd57e2cc GIT binary patch literal 57385 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

8!|0+D%ATrBR!3?Z{7c7$2st36u?36n0ZeLNNm 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 literal 0 HcmV?d00001 diff --git a/src/stages/welcome/mod.rs b/src/stages/welcome/mod.rs index 6f5e50c..1647f2b 100644 --- a/src/stages/welcome/mod.rs +++ b/src/stages/welcome/mod.rs @@ -30,7 +30,7 @@ pub enum Message { impl WelcomeStage { pub fn new() -> Self { - println!("{:?}", rust_i18n::available_locales!()); + Self { locale: Some(LocData { name: "English".into(), @@ -98,17 +98,29 @@ impl WelcomeStage { let next_button = widget::button(widget::text(t!("button.next"))).on_press(Message::Next); let exit_button = widget::button(widget::text(t!("button.exit"))).on_press(Message::Exit); + // Embed the image bytes into the executable + let welcom_logo_handle = + widget::image::Handle::from_bytes(include_bytes!("media/logo.png").to_vec()); + widget::column![ - widget::container(widget::column![ - widget::text(t!("wellcome.text")), - widget::text(t!("wellcome.choose_language")), - widget::pick_list( - self.locales.clone(), - self.locale.clone(), - Message::SelectLocale, - ) - .placeholder("Select Language") - ].padding(10).spacing(10).align_x(Alignment::Center)) + widget::container( + widget::column![ + widget::image(welcom_logo_handle) + .width(iced::Pixels(128.0)) + .height(iced::Pixels(128.0)), + widget::text(t!("wellcome.text")), + widget::text(t!("wellcome.choose_language")), + widget::pick_list( + self.locales.clone(), + self.locale.clone(), + Message::SelectLocale, + ) + .placeholder("Select Language") + ] + .padding(10) + .spacing(10) + .align_x(Alignment::Center) + ) .height(iced::Length::Fill) .width(iced::Length::Fill) .align_x(Alignment::Center) @@ -119,7 +131,8 @@ impl WelcomeStage { next_button ] .width(iced::Length::Fill) - .align_y(Alignment::End).padding(10), + .align_y(Alignment::End) + .padding(10), ] .align_x(Alignment::Center) .spacing(10)