diff --git a/app/.idea/deploymentTargetDropDown.xml b/app/.idea/deploymentTargetDropDown.xml new file mode 100644 index 00000000..8318e2ff --- /dev/null +++ b/app/.idea/deploymentTargetDropDown.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/.idea/gradle.xml b/app/.idea/gradle.xml index fb5ea566..17987e82 100644 --- a/app/.idea/gradle.xml +++ b/app/.idea/gradle.xml @@ -4,16 +4,15 @@ diff --git a/app/.idea/migrations.xml b/app/.idea/migrations.xml new file mode 100644 index 00000000..f8051a6f --- /dev/null +++ b/app/.idea/migrations.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 56b5a41b..c8e08a83 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,7 +1,7 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { - id 'com.android.application' version '8.1.0' apply false - id 'com.android.library' version '8.1.0' apply false + id 'com.android.application' version '8.2.1' apply false + id 'com.android.library' version '8.2.1' apply false } task clean(type: Delete) { diff --git a/app/gradle.properties b/app/gradle.properties index ec63151a..95c615a5 100644 --- a/app/gradle.properties +++ b/app/gradle.properties @@ -19,5 +19,4 @@ android.useAndroidX=true # resources declared in the library itself and none from the library's dependencies, # thereby reducing the size of the R class for that library android.nonTransitiveRClass=true -android.defaults.buildfeatures.buildconfig=true android.nonFinalResIds=false \ No newline at end of file diff --git a/app/gradle/wrapper/gradle-wrapper.properties b/app/gradle/wrapper/gradle-wrapper.properties index 9893ff3e..3f1fc710 100644 --- a/app/gradle/wrapper/gradle-wrapper.properties +++ b/app/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Thu Mar 24 17:39:17 CET 2022 +#Tue Jan 16 22:20:46 CET 2024 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip distributionPath=wrapper/dists -zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/app/ruffle/build.gradle b/app/ruffle/build.gradle index 6f1df3b1..d1f163f9 100644 --- a/app/ruffle/build.gradle +++ b/app/ruffle/build.gradle @@ -4,7 +4,7 @@ plugins { } android { - compileSdk 33 + compileSdk 34 buildFeatures { prefab true @@ -66,7 +66,7 @@ android { dependencies { implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'com.google.android.material:material:1.9.0' + implementation 'com.google.android.material:material:1.11.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' @@ -79,7 +79,7 @@ dependencies { //implementation "androidx.games:games-performance-tuner:1.5.0" // To use the Games Activity library - implementation "androidx.games:games-activity:1.1.0" + implementation "androidx.games:games-activity:2.0.2" // To use the Games Controller Library //implementation "androidx.games:games-controller:1.1.0" diff --git a/native/.idea/native.iml b/native/.idea/native.iml new file mode 100644 index 00000000..d6ebd480 --- /dev/null +++ b/native/.idea/native.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/native/Cargo.lock b/native/Cargo.lock index a8a66c9e..9a8e9b64 100644 --- a/native/Cargo.lock +++ b/native/Cargo.lock @@ -2,22 +2,6 @@ # It is not intended for manual editing. version = 3 -[[package]] -name = "ab_glyph" -version = "0.2.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80179d7dd5d7e8c285d67c4a1e652972a92de7475beddfb92028c76463b13225" -dependencies = [ - "ab_glyph_rasterizer", - "owned_ttf_parser", -] - -[[package]] -name = "ab_glyph_rasterizer" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046" - [[package]] name = "addr2line" version = "0.21.0" @@ -35,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" +checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" dependencies = [ "cfg-if", "once_cell", @@ -68,20 +52,23 @@ checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" [[package]] name = "android-activity" -version = "0.4.3" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64529721f27c2314ced0890ce45e469574a73e5e6fdd6e9da1860eb29285f5e0" +checksum = "39b801912a977c3fd52d80511fe1c0c8480c6f957f21ae2ce1b92ffe970cf4b9" dependencies = [ "android-properties", - "bitflags 1.3.2", + "bitflags 2.4.2", "cc", + "cesu8", + "jni", "jni-sys", "libc", "log", - "ndk 0.7.0", + "ndk", "ndk-context", - "ndk-sys 0.4.1+23.1.7779620", - "num_enum 0.6.1", + "ndk-sys", + "num_enum", + "thiserror", ] [[package]] @@ -125,9 +112,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.5" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6" +checksum = "3fde6067df7359f2d6335ec1a50c1f8f825801687d10da0cc4c6b08e3f6afd15" dependencies = [ "anstyle", "anstyle-parse", @@ -173,9 +160,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.76" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59d2a3357dde987206219e78ecfbbb6e8dad06cbb65292758d3270e6254f7355" +checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" [[package]] name = "arc-swap" @@ -183,12 +170,6 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" -[[package]] -name = "arrayref" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" - [[package]] name = "arrayvec" version = "0.7.4" @@ -217,6 +198,12 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + [[package]] name = "autocfg" version = "1.1.0" @@ -261,9 +248,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.1" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" [[package]] name = "bitstream-io" @@ -285,28 +272,28 @@ checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" [[package]] name = "block-sys" -version = "0.1.0-beta.1" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa55741ee90902547802152aaf3f8e5248aab7e21468089560d4c8840561146" +checksum = "ae85a0696e7ea3b835a453750bf002770776609115e6d25c6d2ff28a8200f7e7" dependencies = [ "objc-sys", ] [[package]] name = "block2" -version = "0.2.0-alpha.6" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dd9e63c1744f755c2f60332b88de39d341e5e86239014ad839bd71c106dec42" +checksum = "15b55663a85f33501257357e6421bb33e769d5c9ffb5ba0921c975a123e35e68" dependencies = [ "block-sys", - "objc2-encode", + "objc2", ] [[package]] name = "bstr" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c" +checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc" dependencies = [ "memchr", "serde", @@ -315,7 +302,7 @@ dependencies = [ [[package]] name = "build_playerglobal" version = "0.1.0" -source = "git+https://github.com/ruffle-rs/ruffle.git?branch=master#f60ba002402776146676d9b6e6e5d91f462f65ae" +source = "git+https://github.com/ruffle-rs/ruffle.git?branch=master#9aff95316310cbd06f82a6026626d24c7dbf397d" dependencies = [ "clap", "colored", @@ -352,7 +339,7 @@ checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.48", ] [[package]] @@ -369,16 +356,16 @@ checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] name = "calloop" -version = "0.10.6" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e0d00eb1ea24371a97d2da6201c6747a633dc6dc1988ef503403b4c59504a8" +checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.2", "log", - "nix 0.25.1", - "slotmap", + "polling", + "rustix", + "slab", "thiserror", - "vec_map", ] [[package]] @@ -423,9 +410,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.11" +version = "4.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2" +checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c" dependencies = [ "clap_builder", "clap_derive", @@ -433,9 +420,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.11" +version = "4.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb" +checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7" dependencies = [ "anstream", "anstyle", @@ -452,7 +439,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.48", ] [[package]] @@ -551,14 +538,14 @@ checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "core-graphics" -version = "0.22.3" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +checksum = "970a29baf4110c26fedbc7f82107d42c23f7e88e404c4577ed73fe99ff85a212" dependencies = [ "bitflags 1.3.2", "core-foundation", "core-graphics-types", - "foreign-types 0.3.2", + "foreign-types", "libc", ] @@ -599,34 +586,34 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" dependencies = [ - "cfg-if", "crossbeam-epoch", "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" -version = "0.9.17" +version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e3681d554572a651dda4186cd47240627c3d0114d45a95f6ad27f2f22e7548d" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" dependencies = [ - "autocfg", - "cfg-if", "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.18" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c" -dependencies = [ - "cfg-if", -] +checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" + +[[package]] +name = "cursor-icon" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991" [[package]] name = "d3d12" @@ -634,7 +621,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e16e44ab292b1dddfdaf7be62cfd8877df52f2f3fde5858d95bab606be259f20" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "libloading 0.8.1", "winapi", ] @@ -659,7 +646,7 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.48", ] [[package]] @@ -670,7 +657,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" dependencies = [ "darling_core", "quote", - "syn 2.0.43", + "syn 2.0.48", ] [[package]] @@ -800,9 +787,9 @@ checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" [[package]] name = "deranged" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", ] @@ -821,7 +808,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.48", ] [[package]] @@ -877,7 +864,7 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.48", ] [[package]] @@ -898,14 +885,14 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.48", ] [[package]] name = "env_logger" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece" +checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" dependencies = [ "log", "regex", @@ -917,6 +904,16 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +[[package]] +name = "errno" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + [[package]] name = "euclid" version = "0.22.9" @@ -928,9 +925,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "4.0.1" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84f2cdcf274580f2d63697192d744727b3198894b1bf02923643bf59e2c26712" +checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" dependencies = [ "concurrent-queue", "parking", @@ -949,9 +946,9 @@ dependencies = [ [[package]] name = "fdeflate" -version = "0.3.1" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64d6dafc854908ff5da46ff3f8f473c6984119a2876a383a860246dd7841a868" +checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645" dependencies = [ "simd-adler32", ] @@ -1090,9 +1087,9 @@ dependencies = [ [[package]] name = "flv-rs" version = "0.1.0" -source = "git+https://github.com/ruffle-rs/ruffle.git?branch=master#f60ba002402776146676d9b6e6e5d91f462f65ae" +source = "git+https://github.com/ruffle-rs/ruffle.git?branch=master#9aff95316310cbd06f82a6026626d24c7dbf397d" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "thiserror", ] @@ -1102,15 +1099,6 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared 0.1.1", -] - [[package]] name = "foreign-types" version = "0.5.0" @@ -1118,7 +1106,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" dependencies = [ "foreign-types-macros", - "foreign-types-shared 0.3.1", + "foreign-types-shared", ] [[package]] @@ -1129,15 +1117,9 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.48", ] -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - [[package]] name = "foreign-types-shared" version = "0.3.1" @@ -1209,7 +1191,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.48", ] [[package]] @@ -1244,8 +1226,9 @@ dependencies = [ [[package]] name = "gc-arena" -version = "0.3.3" -source = "git+https://github.com/kyren/gc-arena?rev=efd89fc683c6bb456af3e226c33763cb822645e9#efd89fc683c6bb456af3e226c33763cb822645e9" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57b2e43b3fc51b9900cc9ced1c4630dcbfae1859573102a84d2231ac744c1208" dependencies = [ "gc-arena-derive", "hashbrown 0.14.3", @@ -1254,12 +1237,13 @@ dependencies = [ [[package]] name = "gc-arena-derive" -version = "0.3.3" -source = "git+https://github.com/kyren/gc-arena?rev=efd89fc683c6bb456af3e226c33763cb822645e9#efd89fc683c6bb456af3e226c33763cb822645e9" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96f3c487d429eaa928334f7f2ca7b14734f1c2f4020d2b08c1f0b4d9c70e4f17" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.48", "synstructure", ] @@ -1274,9 +1258,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" dependencies = [ "cfg-if", "js-sys", @@ -1327,9 +1311,9 @@ dependencies = [ [[package]] name = "glow" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "886c2a30b160c4c6fec8f987430c26b526b7988ca71f664e6a699ddf6f9601e4" +checksum = "bd348e04c43b32574f2de31c8bb397d96c9fcfa1371bd4ca6d8bdc464ab121b1" dependencies = [ "js-sys", "slotmap", @@ -1352,7 +1336,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "gpu-alloc-types", ] @@ -1362,7 +1346,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", ] [[package]] @@ -1385,7 +1369,7 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "gpu-descriptor-types", "hashbrown 0.14.3", ] @@ -1396,7 +1380,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", ] [[package]] @@ -1404,7 +1388,7 @@ name = "h263-rs" version = "0.1.0" source = "git+https://github.com/ruffle-rs/h263-rs?rev=16700664e2b3334f0a930f99af86011aebee14cc#16700664e2b3334f0a930f99af86011aebee14cc" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "lazy_static", "num-traits", "thiserror", @@ -1415,7 +1399,7 @@ name = "h263-rs-deblock" version = "0.1.0" source = "git+https://github.com/ruffle-rs/h263-rs?rev=16700664e2b3334f0a930f99af86011aebee14cc#16700664e2b3334f0a930f99af86011aebee14cc" dependencies = [ - "itertools", + "itertools 0.11.0", "wide", ] @@ -1476,16 +1460,16 @@ checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" [[package]] name = "iana-time-zone" -version = "0.1.58" +version = "0.1.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows-core", + "windows-core 0.52.0", ] [[package]] @@ -1497,6 +1481,17 @@ dependencies = [ "cc", ] +[[package]] +name = "icrate" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d3aaff8a54577104bafdf686ff18565c3b6903ca5782a2026ef06e2c7aa319" +dependencies = [ + "block2", + "dispatch", + "objc2", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -1515,9 +1510,9 @@ dependencies = [ [[package]] name = "ignore" -version = "0.4.21" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "747ad1b4ae841a78e8aba0d63adbfbeaea26b517b63705d47856b73015d27060" +checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1" dependencies = [ "crossbeam-deque", "globset", @@ -1531,14 +1526,13 @@ dependencies = [ [[package]] name = "image" -version = "0.24.7" +version = "0.24.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711" +checksum = "034bbe799d1909622a74d1193aa50147769440040ff36cb2baa947609b0a4e23" dependencies = [ "bytemuck", "byteorder", "color_quant", - "num-rational", "num-traits", "tiff", ] @@ -1553,18 +1547,6 @@ dependencies = [ "hashbrown 0.14.3", ] -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - [[package]] name = "intl-memoizer" version = "0.5.1" @@ -1593,6 +1575,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.10" @@ -1632,15 +1623,15 @@ dependencies = [ [[package]] name = "jpeg-decoder" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e" +checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" [[package]] name = "js-sys" -version = "0.3.66" +version = "0.3.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1" dependencies = [ "wasm-bindgen", ] @@ -1670,9 +1661,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.151" +version = "0.2.152" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" +checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7" [[package]] name = "libloading" @@ -1706,11 +1697,17 @@ version = "0.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "libc", "redox_syscall 0.4.1", ] +[[package]] +name = "linux-raw-sys" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" + [[package]] name = "lock_api" version = "0.4.11" @@ -1768,9 +1765,9 @@ dependencies = [ [[package]] name = "lyon_geom" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74df1ff0a0147282eb10699537a03baa7d31972b58984a1d44ce0624043fe8ad" +checksum = "edecfb8d234a2b0be031ab02ebcdd9f3b9ee418fb35e265f7a540a48d197bff9" dependencies = [ "arrayvec", "euclid", @@ -1819,27 +1816,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.6.4" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" - -[[package]] -name = "memmap2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" -dependencies = [ - "libc", -] - -[[package]] -name = "memoffset" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" -dependencies = [ - "autocfg", -] +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" [[package]] name = "metal" @@ -1847,10 +1826,10 @@ version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "block", "core-graphics-types", - "foreign-types 0.5.0", + "foreign-types", "log", "objc", "paste", @@ -1872,25 +1851,13 @@ dependencies = [ "simd-adler32", ] -[[package]] -name = "mio" -version = "0.8.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" -dependencies = [ - "libc", - "log", - "wasi", - "windows-sys 0.48.0", -] - [[package]] name = "naga" version = "0.14.2" source = "git+https://github.com/gfx-rs/wgpu?branch=v0.18#daedf03f0617aab6b3ab7380132dc9cb07f62d32" dependencies = [ "bit-set", - "bitflags 2.4.1", + "bitflags 2.4.2", "codespan-reporting", "hexf-parse", "indexmap", @@ -1907,9 +1874,9 @@ dependencies = [ [[package]] name = "naga-agal" version = "0.1.0" -source = "git+https://github.com/ruffle-rs/ruffle.git?branch=master#f60ba002402776146676d9b6e6e5d91f462f65ae" +source = "git+https://github.com/ruffle-rs/ruffle.git?branch=master#9aff95316310cbd06f82a6026626d24c7dbf397d" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "naga", "num-derive", "num-traits", @@ -1918,10 +1885,10 @@ dependencies = [ [[package]] name = "naga-pixelbender" version = "0.1.0" -source = "git+https://github.com/ruffle-rs/ruffle.git?branch=master#f60ba002402776146676d9b6e6e5d91f462f65ae" +source = "git+https://github.com/ruffle-rs/ruffle.git?branch=master#9aff95316310cbd06f82a6026626d24c7dbf397d" dependencies = [ "anyhow", - "bitflags 2.4.1", + "bitflags 2.4.2", "naga", "naga_oil", "ruffle_render", @@ -1957,32 +1924,18 @@ dependencies = [ "getrandom", ] -[[package]] -name = "ndk" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0" -dependencies = [ - "bitflags 1.3.2", - "jni-sys", - "ndk-sys 0.4.1+23.1.7779620", - "num_enum 0.5.11", - "raw-window-handle 0.5.2", - "thiserror", -] - [[package]] name = "ndk" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "jni-sys", "log", - "ndk-sys 0.5.0+25.2.9519653", - "num_enum 0.7.1", - "raw-window-handle 0.6.0", + "ndk-sys", + "num_enum", + "raw-window-handle", "thiserror", ] @@ -1992,15 +1945,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" -[[package]] -name = "ndk-sys" -version = "0.4.1+23.1.7779620" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3" -dependencies = [ - "jni-sys", -] - [[package]] name = "ndk-sys" version = "0.5.0+25.2.9519653" @@ -2042,31 +1986,6 @@ dependencies = [ "nihav_core", ] -[[package]] -name = "nix" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" -dependencies = [ - "bitflags 1.3.2", - "cfg-if", - "libc", - "memoffset", -] - -[[package]] -name = "nix" -version = "0.25.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4" -dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if", - "libc", - "memoffset", -] - [[package]] name = "nom" version = "7.1.3" @@ -2105,7 +2024,7 @@ checksum = "cfb77679af88f8b125209d354a202862602672222e7f2313fdd6dc349bad4712" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.48", ] [[package]] @@ -2118,17 +2037,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-rational" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.17" @@ -2141,65 +2049,23 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.5.11" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" dependencies = [ - "num_enum_derive 0.5.11", -] - -[[package]] -name = "num_enum" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" -dependencies = [ - "num_enum_derive 0.6.1", -] - -[[package]] -name = "num_enum" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683751d591e6d81200c39fb0d1032608b77724f34114db54f571ff1317b337c0" -dependencies = [ - "num_enum_derive 0.7.1", -] - -[[package]] -name = "num_enum_derive" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" -dependencies = [ - "proc-macro-crate 1.3.1", - "proc-macro2", - "quote", - "syn 1.0.109", + "num_enum_derive", ] [[package]] name = "num_enum_derive" -version = "0.6.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.43", -] - -[[package]] -name = "num_enum_derive" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c11e44798ad209ccdd91fc192f0526a369a01234f7373e1b141c96d7cee4f0e" -dependencies = [ - "proc-macro-crate 2.0.1", - "proc-macro2", - "quote", - "syn 2.0.43", + "syn 2.0.48", ] [[package]] @@ -2214,29 +2080,25 @@ dependencies = [ [[package]] name = "objc-sys" -version = "0.2.0-beta.2" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7" +checksum = "c7c71324e4180d0899963fc83d9d241ac39e699609fc1025a850aadac8257459" [[package]] name = "objc2" -version = "0.3.0-beta.3.patch-leaks.3" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e01640f9f2cb1220bbe80325e179e532cb3379ebcd1bf2279d703c19fe3a468" +checksum = "559c5a40fdd30eb5e344fbceacf7595a81e242529fb4e21cf5f43fb4f11ff98d" dependencies = [ - "block2", "objc-sys", "objc2-encode", ] [[package]] name = "objc2-encode" -version = "2.0.0-pre.2" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abfcac41015b00a120608fdaa6938c44cb983fee294351cc4bac7638b4e50512" -dependencies = [ - "objc-sys", -] +checksum = "d079845b37af429bfe5dfa76e6d087d788031045b25cfc6fd898486fd9847666" [[package]] name = "objc_exception" @@ -2273,9 +2135,9 @@ dependencies = [ [[package]] name = "ouroboros" -version = "0.18.1" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aab3e3891cfef81d47b93c6e0aeaf4828b2dc19c0bde389f4a988fbbfe5a8f4b" +checksum = "a50b637ffd883b2733a8483599fb6136b9dcedaa1850f7ac08b9b6f9f2061208" dependencies = [ "aliasable", "ouroboros_macro", @@ -2284,25 +2146,16 @@ dependencies = [ [[package]] name = "ouroboros_macro" -version = "0.18.1" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1dd5c45035b07108752f091edb8fcc13dcaffcdb8d9f40cc017e3c9afc1a5bd" +checksum = "3633d65683f13b9bcfaa3150880b018899fb0e5d0542f4adaea4f503fdb5eabf" dependencies = [ "heck", - "itertools", - "proc-macro-error", + "itertools 0.12.0", "proc-macro2", + "proc-macro2-diagnostics", "quote", - "syn 2.0.43", -] - -[[package]] -name = "owned_ttf_parser" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4586edfe4c648c71797a74c84bacb32b52b212eff5dfe2bb9f2c599844023e7" -dependencies = [ - "ttf-parser", + "syn 2.0.48", ] [[package]] @@ -2360,15 +2213,15 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" +checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" [[package]] name = "png" -version = "0.17.10" +version = "0.17.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64" +checksum = "1f6c3c3e617595665b8ea2ff95a86066be38fb121ff920a9c0eb282abcd1da5a" dependencies = [ "bitflags 1.3.2", "crc32fast", @@ -2377,6 +2230,20 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "polling" +version = "3.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "545c980a3880efd47b2e262f6a4bb6daad6555cf3367aa9c4e52895f69537a41" +dependencies = [ + "cfg-if", + "concurrent-queue", + "pin-project-lite", + "rustix", + "tracing", + "windows-sys 0.52.0", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -2415,61 +2282,39 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "1.3.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" dependencies = [ - "once_cell", - "toml_edit 0.19.15", + "toml_edit", ] [[package]] -name = "proc-macro-crate" -version = "2.0.1" +name = "proc-macro-hack" +version = "0.5.20+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a" -dependencies = [ - "toml_datetime", - "toml_edit 0.20.2", -] +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] -name = "proc-macro-error" -version = "1.0.4" +name = "proc-macro2" +version = "1.0.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c" dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", + "unicode-ident", ] [[package]] -name = "proc-macro-error-attr" -version = "1.0.4" +name = "proc-macro2-diagnostics" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", + "syn 2.0.48", "version_check", -] - -[[package]] -name = "proc-macro-hack" -version = "0.5.20+deprecated" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" - -[[package]] -name = "proc-macro2" -version = "1.0.71" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75cb1540fadbd5b8fbccc4dddad2734eba435053f725621c070711a14bb5f4b8" -dependencies = [ - "unicode-ident", + "yansi", ] [[package]] @@ -2489,9 +2334,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.33" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ "proc-macro2", ] @@ -2538,12 +2383,6 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" -[[package]] -name = "raw-window-handle" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42a9830a0e1b9fb145ebb365b8bc4ccd75f290f98c0247deafbbe2c75cefb544" - [[package]] name = "realfft" version = "3.3.0" @@ -2633,7 +2472,7 @@ dependencies = [ "jni", "log", "log-panics", - "ndk 0.8.0", + "ndk", "ndk-context", "ruffle_core", "ruffle_render_wgpu", @@ -2647,10 +2486,10 @@ dependencies = [ [[package]] name = "ruffle_core" version = "0.1.0" -source = "git+https://github.com/ruffle-rs/ruffle.git?branch=master#f60ba002402776146676d9b6e6e5d91f462f65ae" +source = "git+https://github.com/ruffle-rs/ruffle.git?branch=master#9aff95316310cbd06f82a6026626d24c7dbf397d" dependencies = [ "async-channel", - "bitflags 2.4.1", + "bitflags 2.4.2", "bitstream-io 2.2.0", "build_playerglobal", "bytemuck", @@ -2673,6 +2512,7 @@ dependencies = [ "indexmap", "lzma-rs", "nellymoser-rs", + "num-bigint", "num-derive", "num-traits", "percent-encoding", @@ -2693,6 +2533,7 @@ dependencies = [ "symphonia", "thiserror", "tracing", + "ttf-parser", "url", "wasm-bindgen-futures", "weak-table", @@ -2702,7 +2543,7 @@ dependencies = [ [[package]] name = "ruffle_gc_arena" version = "0.0.0" -source = "git+https://github.com/ruffle-rs/ruffle.git?branch=master#f60ba002402776146676d9b6e6e5d91f462f65ae" +source = "git+https://github.com/ruffle-rs/ruffle.git?branch=master#9aff95316310cbd06f82a6026626d24c7dbf397d" dependencies = [ "gc-arena", ] @@ -2710,16 +2551,16 @@ dependencies = [ [[package]] name = "ruffle_macros" version = "0.1.0" -source = "git+https://github.com/ruffle-rs/ruffle.git?branch=master#f60ba002402776146676d9b6e6e5d91f462f65ae" +source = "git+https://github.com/ruffle-rs/ruffle.git?branch=master#9aff95316310cbd06f82a6026626d24c7dbf397d" dependencies = [ "quote", - "syn 2.0.43", + "syn 2.0.48", ] [[package]] name = "ruffle_render" version = "0.1.0" -source = "git+https://github.com/ruffle-rs/ruffle.git?branch=master#f60ba002402776146676d9b6e6e5d91f462f65ae" +source = "git+https://github.com/ruffle-rs/ruffle.git?branch=master#9aff95316310cbd06f82a6026626d24c7dbf397d" dependencies = [ "byteorder", "downcast-rs", @@ -2746,7 +2587,7 @@ dependencies = [ [[package]] name = "ruffle_render_wgpu" version = "0.1.0" -source = "git+https://github.com/ruffle-rs/ruffle.git?branch=master#f60ba002402776146676d9b6e6e5d91f462f65ae" +source = "git+https://github.com/ruffle-rs/ruffle.git?branch=master#9aff95316310cbd06f82a6026626d24c7dbf397d" dependencies = [ "bytemuck", "downcast-rs", @@ -2761,7 +2602,7 @@ dependencies = [ "naga-pixelbender", "naga_oil", "ouroboros", - "raw-window-handle 0.5.2", + "raw-window-handle", "ruffle_render", "swf", "tracing", @@ -2773,7 +2614,7 @@ dependencies = [ [[package]] name = "ruffle_video" version = "0.1.0" -source = "git+https://github.com/ruffle-rs/ruffle.git?branch=master#f60ba002402776146676d9b6e6e5d91f462f65ae" +source = "git+https://github.com/ruffle-rs/ruffle.git?branch=master#9aff95316310cbd06f82a6026626d24c7dbf397d" dependencies = [ "generational-arena", "ruffle_render", @@ -2784,7 +2625,7 @@ dependencies = [ [[package]] name = "ruffle_video_software" version = "0.1.0" -source = "git+https://github.com/ruffle-rs/ruffle.git?branch=master#f60ba002402776146676d9b6e6e5d91f462f65ae" +source = "git+https://github.com/ruffle-rs/ruffle.git?branch=master#9aff95316310cbd06f82a6026626d24c7dbf397d" dependencies = [ "flate2", "generational-arena", @@ -2803,7 +2644,7 @@ dependencies = [ [[package]] name = "ruffle_wstr" version = "0.1.0" -source = "git+https://github.com/ruffle-rs/ruffle.git?branch=master#f60ba002402776146676d9b6e6e5d91f462f65ae" +source = "git+https://github.com/ruffle-rs/ruffle.git?branch=master#9aff95316310cbd06f82a6026626d24c7dbf397d" [[package]] name = "rustc-demangle" @@ -2841,6 +2682,19 @@ dependencies = [ "version_check", ] +[[package]] +name = "rustix" +version = "0.38.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca" +dependencies = [ + "bitflags 2.4.2", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + [[package]] name = "ryu" version = "1.0.16" @@ -2865,31 +2719,12 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "scoped-tls" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" - [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "sctk-adwaita" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda4e97be1fd174ccc2aae81c8b694e803fa99b34e8fd0f057a9d70698e3ed09" -dependencies = [ - "ab_glyph", - "log", - "memmap2", - "smithay-client-toolkit", - "tiny-skia", -] - [[package]] name = "self_cell" version = "0.10.3" @@ -2907,9 +2742,9 @@ checksum = "58bf37232d3bb9a2c4e641ca2a11d83b5062066f88df7fed36c28772046d65ba" [[package]] name = "serde" -version = "1.0.193" +version = "1.0.195" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02" dependencies = [ "serde_derive", ] @@ -2928,20 +2763,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.193" +version = "1.0.195" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.48", ] [[package]] name = "serde_json" -version = "1.0.108" +version = "1.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4" dependencies = [ "indexmap", "itoa", @@ -2987,27 +2822,17 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.2" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" +checksum = "2593d31f82ead8df961d8bd23a64c2ccf2eb5dd34b0a34bfb4dd54011c72009e" [[package]] -name = "smithay-client-toolkit" -version = "0.16.1" +name = "smol_str" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870427e30b8f2cbe64bf43ec4b86e88fe39b0a84b3f15efd9c9c2d020bc86eb9" +checksum = "e6845563ada680337a52d43bb0b29f396f2d911616f6573012645b9e3d048a49" dependencies = [ - "bitflags 1.3.2", - "calloop", - "dlib", - "lazy_static", - "log", - "memmap2", - "nix 0.24.3", - "pkg-config", - "wayland-client", - "wayland-cursor", - "wayland-protocols", + "serde", ] [[package]] @@ -3069,12 +2894,6 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe895eb47f22e2ddd4dabc02bce419d2e643c8e3b585c78158b349195bc24d82" -[[package]] -name = "strict-num" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" - [[package]] name = "strsim" version = "0.10.0" @@ -3084,9 +2903,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "swf" version = "0.2.0" -source = "git+https://github.com/ruffle-rs/ruffle.git?branch=master#f60ba002402776146676d9b6e6e5d91f462f65ae" +source = "git+https://github.com/ruffle-rs/ruffle.git?branch=master#9aff95316310cbd06f82a6026626d24c7dbf397d" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "bitstream-io 2.2.0", "byteorder", "encoding_rs", @@ -3162,9 +2981,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.43" +version = "2.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee659fb5f3d355364e1f3e5bc10fb82068efbf824a1e9d1c9504244a6469ad53" +checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" dependencies = [ "proc-macro2", "quote", @@ -3179,44 +2998,44 @@ checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.48", "unicode-xid", ] [[package]] name = "termcolor" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" dependencies = [ "winapi-util", ] [[package]] name = "thiserror" -version = "1.0.51" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7" +checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.51" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df" +checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.48", ] [[package]] name = "tiff" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d172b0f4d3fba17ba89811858b9d3d97f928aece846475bbda076ca46736211" +checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e" dependencies = [ "flate2", "jpeg-decoder", @@ -3252,31 +3071,6 @@ dependencies = [ "time-core", ] -[[package]] -name = "tiny-skia" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df8493a203431061e901613751931f047d1971337153f96d0e5e363d6dbf6a67" -dependencies = [ - "arrayref", - "arrayvec", - "bytemuck", - "cfg-if", - "png", - "tiny-skia-path", -] - -[[package]] -name = "tiny-skia-path" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adbfb5d3f3dd57a0e11d12f4f13d4ebbbc1b5c15b7ab0a156d030b21da5f677c" -dependencies = [ - "arrayref", - "bytemuck", - "strict-num", -] - [[package]] name = "tinystr" version = "0.7.5" @@ -3303,26 +3097,15 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "toml_datetime" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" - -[[package]] -name = "toml_edit" -version = "0.19.15" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" -dependencies = [ - "indexmap", - "toml_datetime", - "winnow", -] +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" [[package]] name = "toml_edit" -version = "0.20.2" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" dependencies = [ "indexmap", "toml_datetime", @@ -3348,7 +3131,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.48", ] [[package]] @@ -3430,15 +3213,15 @@ checksum = "fea2a4c80deb4fb3ca51f66b5e2dd91e3642bbce52234bcf22e41668281208e4" dependencies = [ "proc-macro-hack", "quote", - "syn 2.0.43", + "syn 2.0.48", "unic-langid-impl", ] [[package]] name = "unicode-bidi" -version = "0.3.14" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" @@ -3490,12 +3273,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" -[[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.4" @@ -3520,9 +3297,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -3530,24 +3307,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.48", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.39" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" +checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461" dependencies = [ "cfg-if", "js-sys", @@ -3557,9 +3334,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3567,95 +3344,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.48", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" - -[[package]] -name = "wayland-client" -version = "0.29.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715" -dependencies = [ - "bitflags 1.3.2", - "downcast-rs", - "libc", - "nix 0.24.3", - "scoped-tls", - "wayland-commons", - "wayland-scanner", - "wayland-sys", -] - -[[package]] -name = "wayland-commons" -version = "0.29.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902" -dependencies = [ - "nix 0.24.3", - "once_cell", - "smallvec", - "wayland-sys", -] - -[[package]] -name = "wayland-cursor" -version = "0.29.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661" -dependencies = [ - "nix 0.24.3", - "wayland-client", - "xcursor", -] - -[[package]] -name = "wayland-protocols" -version = "0.29.5" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6" -dependencies = [ - "bitflags 1.3.2", - "wayland-client", - "wayland-commons", - "wayland-scanner", -] - -[[package]] -name = "wayland-scanner" -version = "0.29.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53" -dependencies = [ - "proc-macro2", - "quote", - "xml-rs", -] - -[[package]] -name = "wayland-sys" -version = "0.29.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4" -dependencies = [ - "dlib", - "lazy_static", - "pkg-config", -] +checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" [[package]] name = "weak-table" @@ -3665,9 +3369,9 @@ checksum = "323f4da9523e9a669e1eaf9c6e763892769b1d38c623913647bfdc1532fe4549" [[package]] name = "web-sys" -version = "0.3.66" +version = "0.3.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" +checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed" dependencies = [ "js-sys", "wasm-bindgen", @@ -3702,7 +3406,7 @@ dependencies = [ "naga", "parking_lot", "profiling", - "raw-window-handle 0.5.2", + "raw-window-handle", "smallvec", "static_assertions", "wasm-bindgen", @@ -3720,13 +3424,13 @@ source = "git+https://github.com/gfx-rs/wgpu?branch=v0.18#daedf03f0617aab6b3ab73 dependencies = [ "arrayvec", "bit-vec", - "bitflags 2.4.1", + "bitflags 2.4.2", "codespan-reporting", "log", "naga", "parking_lot", "profiling", - "raw-window-handle 0.5.2", + "raw-window-handle", "rustc-hash", "smallvec", "thiserror", @@ -3744,7 +3448,7 @@ dependencies = [ "arrayvec", "ash", "bit-set", - "bitflags 2.4.1", + "bitflags 2.4.2", "block", "core-graphics-types", "d3d12", @@ -3766,7 +3470,7 @@ dependencies = [ "parking_lot", "profiling", "range-alloc", - "raw-window-handle 0.5.2", + "raw-window-handle", "renderdoc-sys", "rustc-hash", "smallvec", @@ -3782,7 +3486,7 @@ name = "wgpu-types" version = "0.18.0" source = "git+https://github.com/gfx-rs/wgpu?branch=v0.18#daedf03f0617aab6b3ab7380132dc9cb07f62d32" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "js-sys", "web-sys", ] @@ -3840,7 +3544,7 @@ version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" dependencies = [ - "windows-core", + "windows-core 0.51.1", "windows-targets 0.48.5", ] @@ -3853,6 +3557,15 @@ dependencies = [ "windows-targets 0.48.5", ] +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.0", +] + [[package]] name = "windows-sys" version = "0.45.0" @@ -4053,64 +3766,67 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "winit" -version = "0.28.7" +version = "0.29.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9596d90b45384f5281384ab204224876e8e8bf7d58366d9b795ad99aa9894b94" +checksum = "4c824f11941eeae66ec71111cc2674373c772f482b58939bb4066b642aa2ffcf" dependencies = [ "android-activity", - "bitflags 1.3.2", + "atomic-waker", + "bitflags 2.4.2", + "calloop", "cfg_aliases", "core-foundation", "core-graphics", - "dispatch", - "instant", + "cursor-icon", + "icrate", + "js-sys", "libc", "log", - "mio", - "ndk 0.7.0", + "ndk", + "ndk-sys", "objc2", "once_cell", "orbclient", - "percent-encoding", - "raw-window-handle 0.5.2", + "raw-window-handle", "redox_syscall 0.3.5", - "sctk-adwaita", - "smithay-client-toolkit", + "rustix", + "smol_str", + "unicode-segmentation", "wasm-bindgen", - "wayland-client", - "wayland-commons", - "wayland-protocols", - "wayland-scanner", + "wasm-bindgen-futures", "web-sys", - "windows-sys 0.45.0", - "x11-dl", + "web-time", + "windows-sys 0.48.0", + "xkbcommon-dl", ] [[package]] name = "winnow" -version = "0.5.30" +version = "0.5.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b5c3db89721d50d0e2a673f5043fc4722f76dcc352d7b1ab8b8288bed4ed2c5" +checksum = "b7cf47b659b318dccbd69cc4797a39ae128f533dce7902a1096044d1967b9c16" dependencies = [ "memchr", ] [[package]] -name = "x11-dl" -version = "2.21.0" +name = "xkbcommon-dl" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +checksum = "6924668544c48c0133152e7eec86d644a056ca3d09275eb8d5cdb9855f9d8699" dependencies = [ - "libc", + "bitflags 2.4.2", + "dlib", + "log", "once_cell", - "pkg-config", + "xkeysym", ] [[package]] -name = "xcursor" -version = "0.3.5" +name = "xkeysym" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a0ccd7b4a5345edfcd0c3535718a4e9ff7798ffc536bb5b5a0e26ff84732911" +checksum = "054a8e68b76250b253f671d1268cb7f1ae089ec35e195b2efb2a4e9a836d0621" [[package]] name = "xml-rs" @@ -4118,6 +3834,12 @@ version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a" +[[package]] +name = "yansi" +version = "1.0.0-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1367295b8f788d371ce2dbc842c7b709c73ee1364d30351dd300ec2203b12377" + [[package]] name = "zerocopy" version = "0.7.32" @@ -4135,5 +3857,5 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.48", ] diff --git a/native/Cargo.toml b/native/Cargo.toml index 77d4657e..c203b645 100644 --- a/native/Cargo.toml +++ b/native/Cargo.toml @@ -14,14 +14,15 @@ strip = "symbols" [dependencies] -android-activity = { version = "0.4.3", features = ["game-activity"] } +android-activity = { version = "0.5.1", features = ["game-activity"] } android_logger = "0.13.3" jni = "0.21.1" -ndk = { version = "0.8.0", features = ["audio"] } +# rwh 0.6 is enabled by default, we're not there yet +ndk = { version = "0.8.0", features = ["audio"], default-features = false } ndk-context = "0.1.1" -winit = { version = "0.28.7", features = ["android-game-activity"] } +winit = { version = "0.29.10", features = ["android-game-activity", "rwh_05"], default-features = false } # Have to follow Ruffle with this. wgpu = { git = "https://github.com/gfx-rs/wgpu", branch = "v0.18" } diff --git a/native/src/keycodes.rs b/native/src/keycodes.rs index 8985cc1f..c6fbae9e 100644 --- a/native/src/keycodes.rs +++ b/native/src/keycodes.rs @@ -1,220 +1,120 @@ use ruffle_core::events::KeyCode; -use winit::event::VirtualKeyCode; +use winit::event::KeyEvent; +use winit::keyboard::Key; +use winit::keyboard::KeyLocation; +use winit::keyboard::NamedKey; -/// Convert a winit `VirtualKeyCode` into a Ruffle `KeyCode`. +/// Convert a winit event into a Ruffle `KeyCode`. /// Return `KeyCode::Unknown` if there is no matching Flash key code. -pub fn winit_to_ruffle_key_code(key_code: VirtualKeyCode) -> KeyCode { - match key_code { - VirtualKeyCode::Back => KeyCode::Backspace, - VirtualKeyCode::Tab => KeyCode::Tab, - VirtualKeyCode::Return => KeyCode::Return, - VirtualKeyCode::LShift | VirtualKeyCode::RShift => KeyCode::Shift, - VirtualKeyCode::LControl | VirtualKeyCode::RControl => KeyCode::Control, - VirtualKeyCode::LAlt | VirtualKeyCode::RAlt => KeyCode::Alt, - VirtualKeyCode::Capital => KeyCode::CapsLock, - VirtualKeyCode::Escape => KeyCode::Escape, - VirtualKeyCode::Space => KeyCode::Space, - VirtualKeyCode::Key0 => KeyCode::Key0, - VirtualKeyCode::Key1 => KeyCode::Key1, - VirtualKeyCode::Key2 => KeyCode::Key2, - VirtualKeyCode::Key3 => KeyCode::Key3, - VirtualKeyCode::Key4 => KeyCode::Key4, - VirtualKeyCode::Key5 => KeyCode::Key5, - VirtualKeyCode::Key6 => KeyCode::Key6, - VirtualKeyCode::Key7 => KeyCode::Key7, - VirtualKeyCode::Key8 => KeyCode::Key8, - VirtualKeyCode::Key9 => KeyCode::Key9, - VirtualKeyCode::A => KeyCode::A, - VirtualKeyCode::B => KeyCode::B, - VirtualKeyCode::C => KeyCode::C, - VirtualKeyCode::D => KeyCode::D, - VirtualKeyCode::E => KeyCode::E, - VirtualKeyCode::F => KeyCode::F, - VirtualKeyCode::G => KeyCode::G, - VirtualKeyCode::H => KeyCode::H, - VirtualKeyCode::I => KeyCode::I, - VirtualKeyCode::J => KeyCode::J, - VirtualKeyCode::K => KeyCode::K, - VirtualKeyCode::L => KeyCode::L, - VirtualKeyCode::M => KeyCode::M, - VirtualKeyCode::N => KeyCode::N, - VirtualKeyCode::O => KeyCode::O, - VirtualKeyCode::P => KeyCode::P, - VirtualKeyCode::Q => KeyCode::Q, - VirtualKeyCode::R => KeyCode::R, - VirtualKeyCode::S => KeyCode::S, - VirtualKeyCode::T => KeyCode::T, - VirtualKeyCode::U => KeyCode::U, - VirtualKeyCode::V => KeyCode::V, - VirtualKeyCode::W => KeyCode::W, - VirtualKeyCode::X => KeyCode::X, - VirtualKeyCode::Y => KeyCode::Y, - VirtualKeyCode::Z => KeyCode::Z, - VirtualKeyCode::Semicolon => KeyCode::Semicolon, - VirtualKeyCode::Equals => KeyCode::Equals, - VirtualKeyCode::Comma => KeyCode::Comma, - VirtualKeyCode::Minus => KeyCode::Minus, - VirtualKeyCode::Period => KeyCode::Period, - VirtualKeyCode::Slash => KeyCode::Slash, - VirtualKeyCode::Grave => KeyCode::Grave, - VirtualKeyCode::LBracket => KeyCode::LBracket, - VirtualKeyCode::Backslash => KeyCode::Backslash, - VirtualKeyCode::RBracket => KeyCode::RBracket, - VirtualKeyCode::Apostrophe => KeyCode::Apostrophe, - VirtualKeyCode::Numpad0 => KeyCode::Numpad0, - VirtualKeyCode::Numpad1 => KeyCode::Numpad1, - VirtualKeyCode::Numpad2 => KeyCode::Numpad2, - VirtualKeyCode::Numpad3 => KeyCode::Numpad3, - VirtualKeyCode::Numpad4 => KeyCode::Numpad4, - VirtualKeyCode::Numpad5 => KeyCode::Numpad5, - VirtualKeyCode::Numpad6 => KeyCode::Numpad6, - VirtualKeyCode::Numpad7 => KeyCode::Numpad7, - VirtualKeyCode::Numpad8 => KeyCode::Numpad8, - VirtualKeyCode::Numpad9 => KeyCode::Numpad9, - VirtualKeyCode::NumpadMultiply => KeyCode::Multiply, - VirtualKeyCode::NumpadAdd => KeyCode::Plus, - VirtualKeyCode::NumpadSubtract => KeyCode::NumpadMinus, - VirtualKeyCode::NumpadDecimal => KeyCode::NumpadPeriod, - VirtualKeyCode::NumpadDivide => KeyCode::NumpadSlash, - VirtualKeyCode::PageUp => KeyCode::PgUp, - VirtualKeyCode::PageDown => KeyCode::PgDown, - VirtualKeyCode::End => KeyCode::End, - VirtualKeyCode::Home => KeyCode::Home, - VirtualKeyCode::Left => KeyCode::Left, - VirtualKeyCode::Up => KeyCode::Up, - VirtualKeyCode::Right => KeyCode::Right, - VirtualKeyCode::Down => KeyCode::Down, - VirtualKeyCode::Insert => KeyCode::Insert, - VirtualKeyCode::Delete => KeyCode::Delete, - VirtualKeyCode::Pause => KeyCode::Pause, - VirtualKeyCode::Scroll => KeyCode::ScrollLock, - VirtualKeyCode::F1 => KeyCode::F1, - VirtualKeyCode::F2 => KeyCode::F2, - VirtualKeyCode::F3 => KeyCode::F3, - VirtualKeyCode::F4 => KeyCode::F4, - VirtualKeyCode::F5 => KeyCode::F5, - VirtualKeyCode::F6 => KeyCode::F6, - VirtualKeyCode::F7 => KeyCode::F7, - VirtualKeyCode::F8 => KeyCode::F8, - VirtualKeyCode::F9 => KeyCode::F9, - VirtualKeyCode::F10 => KeyCode::F10, - VirtualKeyCode::F11 => KeyCode::F11, - VirtualKeyCode::F12 => KeyCode::F12, +pub fn winit_to_ruffle_key_code(event: &KeyEvent) -> KeyCode { + match event.logical_key.as_ref() { + Key::Named(NamedKey::Backspace) => KeyCode::Backspace, + Key::Named(NamedKey::Tab) => KeyCode::Tab, + Key::Named(NamedKey::Enter) => KeyCode::Return, + Key::Named(NamedKey::Shift) => KeyCode::Shift, + Key::Named(NamedKey::Control) => KeyCode::Control, + Key::Named(NamedKey::Alt) => KeyCode::Alt, + Key::Named(NamedKey::CapsLock) => KeyCode::CapsLock, + Key::Named(NamedKey::Escape) => KeyCode::Escape, + Key::Named(NamedKey::Space) => KeyCode::Space, + Key::Character("0") if event.location == KeyLocation::Numpad => KeyCode::Numpad0, + Key::Character("1") if event.location == KeyLocation::Numpad => KeyCode::Numpad1, + Key::Character("2") if event.location == KeyLocation::Numpad => KeyCode::Numpad2, + Key::Character("3") if event.location == KeyLocation::Numpad => KeyCode::Numpad3, + Key::Character("4") if event.location == KeyLocation::Numpad => KeyCode::Numpad4, + Key::Character("5") if event.location == KeyLocation::Numpad => KeyCode::Numpad5, + Key::Character("6") if event.location == KeyLocation::Numpad => KeyCode::Numpad6, + Key::Character("7") if event.location == KeyLocation::Numpad => KeyCode::Numpad7, + Key::Character("8") if event.location == KeyLocation::Numpad => KeyCode::Numpad8, + Key::Character("9") if event.location == KeyLocation::Numpad => KeyCode::Numpad9, + Key::Character("0") => KeyCode::Key0, + Key::Character("1") => KeyCode::Key1, + Key::Character("2") => KeyCode::Key2, + Key::Character("3") => KeyCode::Key3, + Key::Character("4") => KeyCode::Key4, + Key::Character("5") => KeyCode::Key5, + Key::Character("6") => KeyCode::Key6, + Key::Character("7") => KeyCode::Key7, + Key::Character("8") => KeyCode::Key8, + Key::Character("9") => KeyCode::Key9, + Key::Character("a") => KeyCode::A, + Key::Character("b") => KeyCode::B, + Key::Character("c") => KeyCode::C, + Key::Character("d") => KeyCode::D, + Key::Character("e") => KeyCode::E, + Key::Character("f") => KeyCode::F, + Key::Character("g") => KeyCode::G, + Key::Character("h") => KeyCode::H, + Key::Character("i") => KeyCode::I, + Key::Character("j") => KeyCode::J, + Key::Character("k") => KeyCode::K, + Key::Character("l") => KeyCode::L, + Key::Character("m") => KeyCode::M, + Key::Character("n") => KeyCode::N, + Key::Character("o") => KeyCode::O, + Key::Character("p") => KeyCode::P, + Key::Character("q") => KeyCode::Q, + Key::Character("r") => KeyCode::R, + Key::Character("s") => KeyCode::S, + Key::Character("t") => KeyCode::T, + Key::Character("u") => KeyCode::U, + Key::Character("v") => KeyCode::V, + Key::Character("w") => KeyCode::W, + Key::Character("x") => KeyCode::X, + Key::Character("y") => KeyCode::Y, + Key::Character("z") => KeyCode::Z, + Key::Character(";") => KeyCode::Semicolon, + Key::Character("=") => KeyCode::Equals, + Key::Character(",") => KeyCode::Comma, + Key::Character("-") if event.location == KeyLocation::Numpad => KeyCode::NumpadMinus, + Key::Character("-") => KeyCode::Minus, + Key::Character(".") if event.location == KeyLocation::Numpad => KeyCode::NumpadPeriod, + Key::Character(".") => KeyCode::Period, + Key::Character("/") if event.location == KeyLocation::Numpad => KeyCode::NumpadSlash, + Key::Character("/") => KeyCode::Slash, + Key::Character("`") => KeyCode::Grave, + Key::Character("[") => KeyCode::LBracket, + Key::Character("\\") => KeyCode::Backslash, + Key::Character("]") => KeyCode::RBracket, + Key::Character("'") => KeyCode::Apostrophe, + Key::Character("*") => KeyCode::Multiply, + Key::Character("+") => KeyCode::Plus, + Key::Named(NamedKey::PageUp) => KeyCode::PgUp, + Key::Named(NamedKey::PageDown) => KeyCode::PgDown, + Key::Named(NamedKey::End) => KeyCode::End, + Key::Named(NamedKey::Home) => KeyCode::Home, + Key::Named(NamedKey::ArrowLeft) => KeyCode::Left, + Key::Named(NamedKey::ArrowUp) => KeyCode::Up, + Key::Named(NamedKey::ArrowRight) => KeyCode::Right, + Key::Named(NamedKey::ArrowDown) => KeyCode::Down, + Key::Named(NamedKey::Insert) => KeyCode::Insert, + Key::Named(NamedKey::Delete) => KeyCode::Delete, + Key::Named(NamedKey::Pause) => KeyCode::Pause, + Key::Named(NamedKey::ScrollLock) => KeyCode::ScrollLock, + Key::Named(NamedKey::F1) => KeyCode::F1, + Key::Named(NamedKey::F2) => KeyCode::F2, + Key::Named(NamedKey::F3) => KeyCode::F3, + Key::Named(NamedKey::F4) => KeyCode::F4, + Key::Named(NamedKey::F5) => KeyCode::F5, + Key::Named(NamedKey::F6) => KeyCode::F6, + Key::Named(NamedKey::F7) => KeyCode::F7, + Key::Named(NamedKey::F8) => KeyCode::F8, + Key::Named(NamedKey::F9) => KeyCode::F9, + Key::Named(NamedKey::F10) => KeyCode::F10, + Key::Named(NamedKey::F11) => KeyCode::F11, + Key::Named(NamedKey::F12) => KeyCode::F12, + Key::Named(NamedKey::F13) => KeyCode::F13, + Key::Named(NamedKey::F14) => KeyCode::F14, + Key::Named(NamedKey::F15) => KeyCode::F15, + Key::Named(NamedKey::F16) => KeyCode::F16, + Key::Named(NamedKey::F17) => KeyCode::F17, + Key::Named(NamedKey::F18) => KeyCode::F18, + Key::Named(NamedKey::F19) => KeyCode::F19, + Key::Named(NamedKey::F20) => KeyCode::F20, + Key::Named(NamedKey::F21) => KeyCode::F21, + Key::Named(NamedKey::F22) => KeyCode::F22, + Key::Named(NamedKey::F23) => KeyCode::F23, + Key::Named(NamedKey::F24) => KeyCode::F24, _ => KeyCode::Unknown, } } - -/// Return a character for the given key code and shift state. -pub fn winit_key_to_char(key_code: VirtualKeyCode, is_shift_down: bool) -> Option { - // We need to know the character that a keypress outputs for both key down and key up events, - // but the winit keyboard API does not provide a way to do this (winit/#753). - // CharacterReceived events are insufficent because they only fire on key down, not on key up. - // This is a half-measure to map from keyboard keys back to a character, but does will not work fully - // for international layouts. - Some(match (key_code, is_shift_down) { - (VirtualKeyCode::Space, _) => ' ', - (VirtualKeyCode::Key0, _) => '0', - (VirtualKeyCode::Key1, _) => '1', - (VirtualKeyCode::Key2, _) => '2', - (VirtualKeyCode::Key3, _) => '3', - (VirtualKeyCode::Key4, _) => '4', - (VirtualKeyCode::Key5, _) => '5', - (VirtualKeyCode::Key6, _) => '6', - (VirtualKeyCode::Key7, _) => '7', - (VirtualKeyCode::Key8, _) => '8', - (VirtualKeyCode::Key9, _) => '9', - (VirtualKeyCode::A, false) => 'a', - (VirtualKeyCode::A, true) => 'A', - (VirtualKeyCode::B, false) => 'b', - (VirtualKeyCode::B, true) => 'B', - (VirtualKeyCode::C, false) => 'c', - (VirtualKeyCode::C, true) => 'C', - (VirtualKeyCode::D, false) => 'd', - (VirtualKeyCode::D, true) => 'D', - (VirtualKeyCode::E, false) => 'e', - (VirtualKeyCode::E, true) => 'E', - (VirtualKeyCode::F, false) => 'f', - (VirtualKeyCode::F, true) => 'F', - (VirtualKeyCode::G, false) => 'g', - (VirtualKeyCode::G, true) => 'G', - (VirtualKeyCode::H, false) => 'h', - (VirtualKeyCode::H, true) => 'H', - (VirtualKeyCode::I, false) => 'i', - (VirtualKeyCode::I, true) => 'I', - (VirtualKeyCode::J, false) => 'j', - (VirtualKeyCode::J, true) => 'J', - (VirtualKeyCode::K, false) => 'k', - (VirtualKeyCode::K, true) => 'K', - (VirtualKeyCode::L, false) => 'l', - (VirtualKeyCode::L, true) => 'L', - (VirtualKeyCode::M, false) => 'm', - (VirtualKeyCode::M, true) => 'M', - (VirtualKeyCode::N, false) => 'n', - (VirtualKeyCode::N, true) => 'N', - (VirtualKeyCode::O, false) => 'o', - (VirtualKeyCode::O, true) => 'O', - (VirtualKeyCode::P, false) => 'p', - (VirtualKeyCode::P, true) => 'P', - (VirtualKeyCode::Q, false) => 'q', - (VirtualKeyCode::Q, true) => 'Q', - (VirtualKeyCode::R, false) => 'r', - (VirtualKeyCode::R, true) => 'R', - (VirtualKeyCode::S, false) => 's', - (VirtualKeyCode::S, true) => 'S', - (VirtualKeyCode::T, false) => 't', - (VirtualKeyCode::T, true) => 'T', - (VirtualKeyCode::U, false) => 'u', - (VirtualKeyCode::U, true) => 'U', - (VirtualKeyCode::V, false) => 'v', - (VirtualKeyCode::V, true) => 'V', - (VirtualKeyCode::W, false) => 'w', - (VirtualKeyCode::W, true) => 'W', - (VirtualKeyCode::X, false) => 'x', - (VirtualKeyCode::X, true) => 'X', - (VirtualKeyCode::Y, false) => 'y', - (VirtualKeyCode::Y, true) => 'Y', - (VirtualKeyCode::Z, false) => 'z', - (VirtualKeyCode::Z, true) => 'Z', - - (VirtualKeyCode::Semicolon, false) => ';', - (VirtualKeyCode::Semicolon, true) => ':', - (VirtualKeyCode::Equals, false) => '=', - (VirtualKeyCode::Equals, true) => '+', - (VirtualKeyCode::Comma, false) => ',', - (VirtualKeyCode::Comma, true) => '<', - (VirtualKeyCode::Minus, false) => '-', - (VirtualKeyCode::Minus, true) => '_', - (VirtualKeyCode::Period, false) => '.', - (VirtualKeyCode::Period, true) => '>', - (VirtualKeyCode::Slash, false) => '/', - (VirtualKeyCode::Slash, true) => '?', - (VirtualKeyCode::Grave, false) => '`', - (VirtualKeyCode::Grave, true) => '~', - (VirtualKeyCode::LBracket, false) => '[', - (VirtualKeyCode::LBracket, true) => '{', - (VirtualKeyCode::Backslash, false) => '\\', - (VirtualKeyCode::Backslash, true) => '|', - (VirtualKeyCode::RBracket, false) => ']', - (VirtualKeyCode::RBracket, true) => '}', - (VirtualKeyCode::Apostrophe, false) => '\'', - (VirtualKeyCode::Apostrophe, true) => '"', - (VirtualKeyCode::NumpadMultiply, _) => '*', - (VirtualKeyCode::NumpadAdd, _) => '+', - (VirtualKeyCode::NumpadSubtract, _) => '-', - (VirtualKeyCode::NumpadDecimal, _) => '.', - (VirtualKeyCode::NumpadDivide, _) => '/', - - (VirtualKeyCode::Numpad0, false) => '0', - (VirtualKeyCode::Numpad1, false) => '1', - (VirtualKeyCode::Numpad2, false) => '2', - (VirtualKeyCode::Numpad3, false) => '3', - (VirtualKeyCode::Numpad4, false) => '4', - (VirtualKeyCode::Numpad5, false) => '5', - (VirtualKeyCode::Numpad6, false) => '6', - (VirtualKeyCode::Numpad7, false) => '7', - (VirtualKeyCode::Numpad8, false) => '8', - (VirtualKeyCode::Numpad9, false) => '9', - - _ => return None, - }) -} diff --git a/native/src/lib.rs b/native/src/lib.rs index 70a475a8..84d18a10 100644 --- a/native/src/lib.rs +++ b/native/src/lib.rs @@ -18,14 +18,14 @@ use std::{ use android_activity::AndroidApp; use winit::{ - event::{DeviceEvent, ElementState, Event, ModifiersState, TouchPhase, WindowEvent}, + event::{DeviceEvent, ElementState, Event, TouchPhase, WindowEvent}, event_loop::{ControlFlow, EventLoop, EventLoopBuilder}, platform::android::EventLoopBuilderExtAndroid, window::Window, }; use audio::AAudioAudioBackend; -use keycodes::{winit_key_to_char, winit_to_ruffle_key_code}; +use keycodes::winit_to_ruffle_key_code; use navigator::ExternalNavigatorBackend; use ruffle_core::backend::storage::MemoryStorageBackend; use url::Url; @@ -58,13 +58,14 @@ fn run(event_loop: EventLoop, window: Window) { let event_loop_proxy = event_loop.create_proxy(); - event_loop.run(move |event, _, control_flow| { - *control_flow = ControlFlow::Poll; + event_loop.run(move |event, elwt| { + elwt.set_control_flow(ControlFlow::Poll); + match event { Event::WindowEvent { event: WindowEvent::CloseRequested, .. - } => *control_flow = ControlFlow::Exit, + } => elwt.exit(), Event::WindowEvent { event, .. } => match event { WindowEvent::Resized(size) => { @@ -90,6 +91,24 @@ fn run(event_loop: EventLoop, window: Window) { window.request_redraw(); } + // Render + WindowEvent::RedrawRequested => { + // TODO: Don't render when minimized to avoid potential swap chain errors in `wgpu`. + // TODO: also disable when suspended! + + if unsafe { playerbox.is_some() } { + let player = unsafe { &playerbox.as_ref().unwrap().player }; + + let mut player_lock = player.lock().unwrap(); + if player_lock.is_playing() { + log::info!("playing, rendering"); + player_lock.render(); + } else { + log::info!("not playing, not rendering"); + } + } + } + WindowEvent::Touch(touch) => { log::info!("touch: {:?}", touch); let player = unsafe { &playerbox.as_ref().unwrap().player }; @@ -128,51 +147,34 @@ fn run(event_loop: EventLoop, window: Window) { } } - WindowEvent::KeyboardInput { input, .. } => { + WindowEvent::KeyboardInput { + event: key_event, .. + } => { let player = unsafe { &playerbox.as_ref().unwrap().player }; - log::info!("keyboard input: {:?}", input); + log::info!("keyboard event: {:?}", key_event); let mut player_lock = player.lock().unwrap(); - if let Some(key) = input.virtual_keycode { - let key_code = winit_to_ruffle_key_code(key); - let key_char = - winit_key_to_char(key, input.modifiers.contains(ModifiersState::SHIFT)); - let event = match input.state { - ElementState::Pressed => PlayerEvent::KeyDown { key_code, key_char }, - ElementState::Released => PlayerEvent::KeyUp { key_code, key_char }, - }; - log::warn!("Ruffle key event: {:?}", event); - player_lock.handle_event(event); - - // NOTE: this is a HACK - if input.state == ElementState::Pressed { - if let Some(key) = key_char { - let event = PlayerEvent::TextInput { codepoint: key }; - log::info!("faking text input: {:?}", key); - player_lock.handle_event(event); - } - } - if player_lock.needs_render() { - window.request_redraw(); - } - } - } + let key_code = winit_to_ruffle_key_code(&key_event); + let key_char = key_event.text.clone().and_then(|text| text.chars().last()); + let event = match key_event.state { + ElementState::Pressed => PlayerEvent::KeyDown { key_code, key_char }, + ElementState::Released => PlayerEvent::KeyUp { key_code, key_char }, + }; + log::warn!("Ruffle key event: {:?}", event); + player_lock.handle_event(event); - // NOTE: this never happens at the moment - WindowEvent::ReceivedCharacter(codepoint) => { - log::info!("keyboard character: {:?}", codepoint); - let player = unsafe { &playerbox.as_ref().unwrap().player }; - let mut player_lock = player.lock().unwrap(); + key_event.text.unwrap_or_default().chars().for_each(|c| { + let event = PlayerEvent::TextInput { codepoint: c }; + log::warn!("Ruffle text input event: {:?}", event); + player_lock.handle_event(event); + }); - let event = PlayerEvent::TextInput { codepoint }; - player_lock.handle_event(event); if player_lock.needs_render() { window.request_redraw(); } } - _ => {} }, @@ -231,9 +233,13 @@ fn run(event_loop: EventLoop, window: Window) { match get_swf_bytes() { Ok(bytes) => { - let movie = SwfMovie::from_data(&bytes, "file://movie.swf".to_string(), None).unwrap(); + let movie = + SwfMovie::from_data(&bytes, "file://movie.swf".to_string(), None) + .unwrap(); - player_lock.set_root_movie(movie); + player_lock.mutate_with_update_context(|context| { + context.set_root_movie(movie); + }); player_lock.set_is_playing(true); // Desktop player will auto-play. let viewport_size = window.inner_size(); @@ -291,7 +297,7 @@ fn run(event_loop: EventLoop, window: Window) { player_lock.set_is_playing(false); } - Event::MainEventsCleared => { + Event::AboutToWait => { let new_time = Instant::now(); let dt = new_time.duration_since(time).as_micros(); @@ -328,31 +334,10 @@ fn run(event_loop: EventLoop, window: Window) { } } - // Render - Event::RedrawRequested(_) => { - // TODO: Don't render when minimized to avoid potential swap chain errors in `wgpu`. - // TODO: also disable when suspended! - - if unsafe { playerbox.is_some() } { - let player = unsafe { &playerbox.as_ref().unwrap().player }; - - let mut player_lock = player.lock().unwrap(); - if player_lock.is_playing() { - log::info!("playing, rendering"); - player_lock.render(); - } else { - log::info!("not playing, not rendering"); - } - } - } - _ => {} } - // After polling events, sleep the event loop until the next event or the next frame. - if *control_flow != ControlFlow::Exit { - *control_flow = ControlFlow::WaitUntil(next_frame_time); - } + elwt.set_control_flow(ControlFlow::WaitUntil(next_frame_time)); }); } @@ -562,7 +547,8 @@ fn android_main(app: AndroidApp) { let event_loop = EventLoopBuilder::with_user_event() .with_android_app(app) - .build(); + .build() + .expect("Failed to create event loop"); let window = Window::new(&event_loop).unwrap(); run(event_loop, window);