From bce2a0f9964b696b8dc1d1bcc434cd3bd609f441 Mon Sep 17 00:00:00 2001
From: StarToaster <startoaster23@gmail.com>
Date: Thu, 18 Aug 2022 11:08:08 -0400
Subject: [PATCH] Working bevy 0.8 build.

---
 Cargo.lock                                    | 836 +++++-------------
 bevy_kayak_renderer/src/camera/camera.rs      |  24 +-
 bevy_kayak_renderer/src/camera/mod.rs         |   5 +-
 bevy_kayak_renderer/src/render/mod.rs         |  31 +-
 bevy_kayak_renderer/src/render/ui_pass.rs     |   6 +-
 .../src/render/ui_pass_driver.rs              |  27 -
 bevy_kayak_renderer/src/render/unified/mod.rs |  10 +-
 .../src/render/unified/pipeline.rs            |  48 +-
 .../src/render/unified/shader.wgsl            |  57 +-
 bevy_kayak_ui/src/lib.rs                      |   8 +-
 bevy_kayak_ui/src/render/font/extract.rs      |   2 +-
 bevy_kayak_ui/src/render/mod.rs               |  16 +-
 examples/bevy_event.rs                        |  12 +-
 examples/image.rs                             |   2 +
 examples/world_interaction.rs                 |  12 +-
 kayak_font/examples/renderer/shader.wgsl      |   2 +-
 16 files changed, 335 insertions(+), 763 deletions(-)
 delete mode 100644 bevy_kayak_renderer/src/render/ui_pass_driver.rs

diff --git a/Cargo.lock b/Cargo.lock
index f8555f8..60ebffc 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -193,15 +193,7 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "55f08528a4e59d607460513a823b40f602d013c1a00f57b824f1075d5d48c3cd"
 dependencies = [
- "bevy_internal 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "bevy"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "bevy_internal 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
+ "bevy_internal",
 ]
 
 [[package]]
@@ -210,16 +202,16 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e243169af495ad616ff701247c0d3e40078a26ed8de231cf9e54bde6b3c4bb45"
 dependencies = [
- "bevy_app 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_asset 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_core 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_ecs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_hierarchy 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_math 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_reflect 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_time 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_transform 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bevy_app",
+ "bevy_asset",
+ "bevy_core",
+ "bevy_ecs",
+ "bevy_hierarchy",
+ "bevy_math",
+ "bevy_reflect",
+ "bevy_time",
+ "bevy_transform",
+ "bevy_utils",
 ]
 
 [[package]]
@@ -228,25 +220,11 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "53d26d6ffdf493609d2fedc1018a2ef0cb4d8e48f6d3bcea56fa2df81867e464"
 dependencies = [
- "bevy_derive 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_ecs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_reflect 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_tasks 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "wasm-bindgen",
- "web-sys",
-]
-
-[[package]]
-name = "bevy_app"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "bevy_derive 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_ecs 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_reflect 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_tasks 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_utils 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
+ "bevy_derive",
+ "bevy_ecs",
+ "bevy_reflect",
+ "bevy_tasks",
+ "bevy_utils",
  "wasm-bindgen",
  "web-sys",
 ]
@@ -258,13 +236,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3d8fb95306d5f18fa70df40632cd984993aeb71e91ce059ae99699098a4f9ce9"
 dependencies = [
  "anyhow",
- "bevy_app 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_diagnostic 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_ecs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_log 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_reflect 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_tasks 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bevy_app",
+ "bevy_diagnostic",
+ "bevy_ecs",
+ "bevy_log",
+ "bevy_reflect",
+ "bevy_tasks",
+ "bevy_utils",
  "crossbeam-channel",
  "downcast-rs",
  "fastrand",
@@ -279,32 +257,6 @@ dependencies = [
  "web-sys",
 ]
 
-[[package]]
-name = "bevy_asset"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "anyhow",
- "bevy_app 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_diagnostic 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_ecs 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_log 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_reflect 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_tasks 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_utils 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "crossbeam-channel",
- "downcast-rs",
- "fastrand",
- "js-sys",
- "ndk-glue 0.5.2",
- "parking_lot 0.12.1",
- "serde",
- "thiserror",
- "wasm-bindgen",
- "wasm-bindgen-futures",
- "web-sys",
-]
-
 [[package]]
 name = "bevy_audio"
 version = "0.8.0"
@@ -312,11 +264,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "eee08ac575397ce17477dd291862bafa15226334bdfb82c02bbc3d10bad7bdb8"
 dependencies = [
  "anyhow",
- "bevy_app 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_asset 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_ecs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_reflect 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bevy_app",
+ "bevy_asset",
+ "bevy_ecs",
+ "bevy_reflect",
+ "bevy_utils",
  "parking_lot 0.12.1",
  "rodio",
 ]
@@ -327,26 +279,12 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c6712146d54fff9e1865362e9f39a7b63c7b037ddb72a3d7bb05b959213fb61e"
 dependencies = [
- "bevy_app 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_ecs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_math 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_reflect 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_tasks 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bytemuck",
-]
-
-[[package]]
-name = "bevy_core"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "bevy_app 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_ecs 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_math 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_reflect 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_tasks 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_utils 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
+ "bevy_app",
+ "bevy_ecs",
+ "bevy_math",
+ "bevy_reflect",
+ "bevy_tasks",
+ "bevy_utils",
  "bytemuck",
 ]
 
@@ -356,31 +294,14 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "080bb00399b6d7697e505f871d67c6de8b52eb06b47b0cda2be80c2396805983"
 dependencies = [
- "bevy_app 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_asset 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_derive 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_ecs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_reflect 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_render 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_transform 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "radsort",
- "serde",
-]
-
-[[package]]
-name = "bevy_core_pipeline"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "bevy_app 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_asset 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_derive 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_ecs 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_reflect 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_render 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_transform 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_utils 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
+ "bevy_app",
+ "bevy_asset",
+ "bevy_derive",
+ "bevy_ecs",
+ "bevy_reflect",
+ "bevy_render",
+ "bevy_transform",
+ "bevy_utils",
  "radsort",
  "serde",
 ]
@@ -391,17 +312,7 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a4b8f0786d1fc7e0d35297917be463db3d0886f7bd8d4221ca3d565502579ffb"
 dependencies = [
- "bevy_macro_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "bevy_derive"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "bevy_macro_utils 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
+ "bevy_macro_utils",
  "quote",
  "syn",
 ]
@@ -412,23 +323,11 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "adab74ee5375fbf5d2b1d3da41de8d1491a8a706d17441b5e31214b65349d692"
 dependencies = [
- "bevy_app 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_ecs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_log 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_time 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "bevy_diagnostic"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "bevy_app 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_ecs 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_log 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_time 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_utils 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
+ "bevy_app",
+ "bevy_ecs",
+ "bevy_log",
+ "bevy_time",
+ "bevy_utils",
 ]
 
 [[package]]
@@ -438,29 +337,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a5643dc27b7d6778e3a66c8e0f6ad1fd33309aa2fa61d935f360ccc85b7be6a2"
 dependencies = [
  "async-channel",
- "bevy_ecs_macros 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_ptr 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_reflect 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_tasks 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "downcast-rs",
- "fixedbitset",
- "fxhash",
- "serde",
- "thread_local",
-]
-
-[[package]]
-name = "bevy_ecs"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "async-channel",
- "bevy_ecs_macros 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_ptr 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_reflect 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_tasks 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_utils 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
+ "bevy_ecs_macros",
+ "bevy_ptr",
+ "bevy_reflect",
+ "bevy_tasks",
+ "bevy_utils",
  "downcast-rs",
  "fixedbitset",
  "fxhash",
@@ -474,18 +355,7 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a5f2f12677f8725d40930d0a19652f007fe0ef5ac38e23817cfc4930c61f5680"
 dependencies = [
- "bevy_macro_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "bevy_ecs_macros"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "bevy_macro_utils 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
+ "bevy_macro_utils",
  "proc-macro2",
  "quote",
  "syn",
@@ -497,16 +367,7 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "76a767adc36ce1fc917a736843b026d4de7069d90ed5e669c852481ef69fd5aa"
 dependencies = [
- "bevy_macro_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "encase_derive_impl",
-]
-
-[[package]]
-name = "bevy_encase_derive"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "bevy_macro_utils 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
+ "bevy_macro_utils",
  "encase_derive_impl",
 ]
 
@@ -516,10 +377,10 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "963940426127533164af2a556971a03c493143c0afb95afadb4a070b6ab8c3df"
 dependencies = [
- "bevy_app 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_ecs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_input 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bevy_app",
+ "bevy_ecs",
+ "bevy_input",
+ "bevy_utils",
  "gilrs",
 ]
 
@@ -532,21 +393,21 @@ dependencies = [
  "anyhow",
  "base64",
  "bevy_animation",
- "bevy_app 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_asset 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_core 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_core_pipeline 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_ecs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_hierarchy 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_log 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_math 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_pbr 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_reflect 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_render 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bevy_app",
+ "bevy_asset",
+ "bevy_core",
+ "bevy_core_pipeline",
+ "bevy_ecs",
+ "bevy_hierarchy",
+ "bevy_log",
+ "bevy_math",
+ "bevy_pbr",
+ "bevy_reflect",
+ "bevy_render",
  "bevy_scene",
- "bevy_tasks 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_transform 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bevy_tasks",
+ "bevy_transform",
+ "bevy_utils",
  "gltf",
  "percent-encoding",
  "thiserror",
@@ -558,22 +419,10 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8e2e4c20d7c843cd26ef3c5d7b4c20e3e32c275943e2437ecaca1cfd6cfe3b30"
 dependencies = [
- "bevy_app 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_ecs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_reflect 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "smallvec",
-]
-
-[[package]]
-name = "bevy_hierarchy"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "bevy_app 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_ecs 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_reflect 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_utils 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
+ "bevy_app",
+ "bevy_ecs",
+ "bevy_reflect",
+ "bevy_utils",
  "smallvec",
 ]
 
@@ -583,21 +432,10 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a11c70573fb4d4c056ba32cfa553daa7e6e1245cb876ccfbe322640928b7ee1c"
 dependencies = [
- "bevy_app 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_ecs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_math 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "bevy_input"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "bevy_app 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_ecs 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_math 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_utils 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
+ "bevy_app",
+ "bevy_ecs",
+ "bevy_math",
+ "bevy_utils",
 ]
 
 [[package]]
@@ -607,70 +445,42 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0d603b597772130782eab6e604706cbb764fb037f9cf0a1904b6f342845b6f44"
 dependencies = [
  "bevy_animation",
- "bevy_app 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_asset 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bevy_app",
+ "bevy_asset",
  "bevy_audio",
- "bevy_core 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_core_pipeline 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_derive 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_diagnostic 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_ecs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bevy_core",
+ "bevy_core_pipeline",
+ "bevy_derive",
+ "bevy_diagnostic",
+ "bevy_ecs",
  "bevy_gilrs",
  "bevy_gltf",
- "bevy_hierarchy 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_input 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_log 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_math 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_pbr 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_ptr 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_reflect 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_render 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bevy_hierarchy",
+ "bevy_input",
+ "bevy_log",
+ "bevy_math",
+ "bevy_pbr",
+ "bevy_ptr",
+ "bevy_reflect",
+ "bevy_render",
  "bevy_scene",
  "bevy_sprite",
- "bevy_tasks 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bevy_tasks",
  "bevy_text",
- "bevy_time 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_transform 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bevy_time",
+ "bevy_transform",
  "bevy_ui",
- "bevy_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_window 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bevy_utils",
+ "bevy_window",
  "bevy_winit",
  "ndk-glue 0.5.2",
 ]
 
-[[package]]
-name = "bevy_internal"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "bevy_app 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_asset 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_core 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_core_pipeline 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_derive 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_diagnostic 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_ecs 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_hierarchy 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_input 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_log 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_math 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_pbr 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_ptr 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_reflect 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_render 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_tasks 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_time 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_transform 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_utils 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_window 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "ndk-glue 0.5.2",
-]
-
 [[package]]
 name = "bevy_kayak_renderer"
 version = "0.0.1"
 dependencies = [
- "bevy 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bevy",
  "bytemuck",
  "kayak_font",
  "serde",
@@ -682,7 +492,7 @@ dependencies = [
 name = "bevy_kayak_ui"
 version = "0.0.1"
 dependencies = [
- "bevy 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bevy",
  "bevy_kayak_renderer",
  "bytemuck",
  "kayak_core",
@@ -699,22 +509,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8cafb12fc84734236e36f407ab62c72d5d4279fa4777e40a95d7cc973cbabcd1"
 dependencies = [
  "android_log-sys",
- "bevy_app 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "console_error_panic_hook",
- "tracing-log",
- "tracing-subscriber",
- "tracing-wasm",
-]
-
-[[package]]
-name = "bevy_log"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "android_log-sys",
- "bevy_app 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_utils 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
+ "bevy_app",
+ "bevy_utils",
  "console_error_panic_hook",
  "tracing-log",
  "tracing-subscriber",
@@ -732,16 +528,6 @@ dependencies = [
  "toml",
 ]
 
-[[package]]
-name = "bevy_macro_utils"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "quote",
- "syn",
- "toml",
-]
-
 [[package]]
 name = "bevy_math"
 version = "0.8.0"
@@ -751,14 +537,6 @@ dependencies = [
  "glam",
 ]
 
-[[package]]
-name = "bevy_math"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "glam",
-]
-
 [[package]]
 name = "bevy_mikktspace"
 version = "0.8.0"
@@ -768,50 +546,22 @@ dependencies = [
  "glam",
 ]
 
-[[package]]
-name = "bevy_mikktspace"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "glam",
-]
-
 [[package]]
 name = "bevy_pbr"
 version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ed9a81bbd02f5e0a57899a41aec37d9cb14965e1e4d510547f3f680323d05c0f"
 dependencies = [
- "bevy_app 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_asset 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_core_pipeline 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_ecs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_math 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_reflect 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_render 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_transform 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_window 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bitflags",
- "bytemuck",
- "radsort",
-]
-
-[[package]]
-name = "bevy_pbr"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "bevy_app 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_asset 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_core_pipeline 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_ecs 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_math 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_reflect 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_render 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_transform 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_utils 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_window 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
+ "bevy_app",
+ "bevy_asset",
+ "bevy_core_pipeline",
+ "bevy_ecs",
+ "bevy_math",
+ "bevy_reflect",
+ "bevy_render",
+ "bevy_transform",
+ "bevy_utils",
+ "bevy_window",
  "bitflags",
  "bytemuck",
  "radsort",
@@ -823,38 +573,15 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d92d5679e89602a18682a37846573dcd1979410179e14204280460ba9fb8713a"
 
-[[package]]
-name = "bevy_ptr"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-
 [[package]]
 name = "bevy_reflect"
 version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "08798e67f2d4e6898ef117d8c99cf3b50a8eebc8da4159e6dad2657a0fbe9a4e"
 dependencies = [
- "bevy_ptr 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_reflect_derive 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "downcast-rs",
- "erased-serde",
- "glam",
- "once_cell",
- "parking_lot 0.12.1",
- "serde",
- "smallvec",
- "thiserror",
-]
-
-[[package]]
-name = "bevy_reflect"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "bevy_ptr 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_reflect_derive 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_utils 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
+ "bevy_ptr",
+ "bevy_reflect_derive",
+ "bevy_utils",
  "downcast-rs",
  "erased-serde",
  "glam",
@@ -871,19 +598,7 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "19209a7f0238053802b7de04e6724bd90d4ed7d90e87101dbd1b64cca64ff694"
 dependencies = [
- "bevy_macro_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "proc-macro2",
- "quote",
- "syn",
- "uuid 1.1.2",
-]
-
-[[package]]
-name = "bevy_reflect_derive"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "bevy_macro_utils 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
+ "bevy_macro_utils",
  "proc-macro2",
  "quote",
  "syn",
@@ -897,64 +612,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bb49530388ef17cff3fb8bd5e47372fb3cfeb4befc73e3036f6462ac20f049ef"
 dependencies = [
  "anyhow",
- "bevy_app 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_asset 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_core 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_derive 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_ecs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_encase_derive 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_hierarchy 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_log 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_math 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_mikktspace 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_reflect 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_render_macros 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_time 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_transform 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_window 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bitflags",
- "codespan-reporting",
- "copyless",
- "downcast-rs",
- "encase",
- "futures-lite",
- "hex",
- "hexasphere",
- "image",
- "naga",
- "once_cell",
- "parking_lot 0.12.1",
- "regex",
- "serde",
- "smallvec",
- "thiserror",
- "thread_local",
- "wgpu",
-]
-
-[[package]]
-name = "bevy_render"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "anyhow",
- "bevy_app 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_asset 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_core 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_derive 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_ecs 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_encase_derive 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_hierarchy 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_log 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_math 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_mikktspace 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_reflect 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_render_macros 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_time 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_transform 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_utils 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_window 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
+ "bevy_app",
+ "bevy_asset",
+ "bevy_core",
+ "bevy_derive",
+ "bevy_ecs",
+ "bevy_encase_derive",
+ "bevy_hierarchy",
+ "bevy_log",
+ "bevy_math",
+ "bevy_mikktspace",
+ "bevy_reflect",
+ "bevy_render_macros",
+ "bevy_time",
+ "bevy_transform",
+ "bevy_utils",
+ "bevy_window",
  "bitflags",
  "codespan-reporting",
  "copyless",
@@ -981,18 +654,7 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e7d0b7a51fa819c20c64f43856c5aaea40f853050bbb09b9ba3672e5ff2688a5"
 dependencies = [
- "bevy_macro_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "bevy_render_macros"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "bevy_macro_utils 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
+ "bevy_macro_utils",
  "proc-macro2",
  "quote",
  "syn",
@@ -1005,15 +667,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0064d73ebb0de39901478b493604a1a6d448fd337b66803004c60f41f1fa6c37"
 dependencies = [
  "anyhow",
- "bevy_app 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_asset 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_derive 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_ecs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_hierarchy 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_reflect 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_render 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_transform 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bevy_app",
+ "bevy_asset",
+ "bevy_derive",
+ "bevy_ecs",
+ "bevy_hierarchy",
+ "bevy_reflect",
+ "bevy_render",
+ "bevy_transform",
+ "bevy_utils",
  "ron",
  "serde",
  "thiserror",
@@ -1026,16 +688,16 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1f83dfe8897d6c0d9d5ce3818d49a13e58ae2b9b9ecf4f4bb85aa31bb0678f68"
 dependencies = [
- "bevy_app 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_asset 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_core_pipeline 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_ecs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_log 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_math 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_reflect 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_render 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_transform 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bevy_app",
+ "bevy_asset",
+ "bevy_core_pipeline",
+ "bevy_ecs",
+ "bevy_log",
+ "bevy_math",
+ "bevy_reflect",
+ "bevy_render",
+ "bevy_transform",
+ "bevy_utils",
  "bitflags",
  "bytemuck",
  "copyless",
@@ -1061,20 +723,6 @@ dependencies = [
  "wasm-bindgen-futures",
 ]
 
-[[package]]
-name = "bevy_tasks"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "async-channel",
- "async-executor",
- "event-listener",
- "futures-lite",
- "num_cpus",
- "once_cell",
- "wasm-bindgen-futures",
-]
-
 [[package]]
 name = "bevy_text"
 version = "0.8.0"
@@ -1083,16 +731,16 @@ checksum = "ef05a788c2c04aaa5db95b22a8f0fff0d3a0b08a7bcd1a71f050a628b38eec6e"
 dependencies = [
  "ab_glyph",
  "anyhow",
- "bevy_app 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_asset 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_ecs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_math 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_reflect 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_render 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bevy_app",
+ "bevy_asset",
+ "bevy_ecs",
+ "bevy_math",
+ "bevy_reflect",
+ "bevy_render",
  "bevy_sprite",
- "bevy_transform 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_window 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bevy_transform",
+ "bevy_utils",
+ "bevy_window",
  "glyph_brush_layout",
  "serde",
  "thiserror",
@@ -1104,22 +752,10 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "74ec681d641371df81d7bfbcb0eea725ed873f38a094f34b5f7b436f0889e77c"
 dependencies = [
- "bevy_app 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_ecs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_reflect 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "crossbeam-channel",
-]
-
-[[package]]
-name = "bevy_time"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "bevy_app 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_ecs 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_reflect 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_utils 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
+ "bevy_app",
+ "bevy_ecs",
+ "bevy_reflect",
+ "bevy_utils",
  "crossbeam-channel",
 ]
 
@@ -1129,23 +765,11 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "42e1528e35f30bede46a50ee4134f150efc01f5c1002c340b3b2e6a0bfcb8aa5"
 dependencies = [
- "bevy_app 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_ecs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_hierarchy 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_math 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_reflect 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "bevy_transform"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "bevy_app 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_ecs 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_hierarchy 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_math 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_reflect 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
+ "bevy_app",
+ "bevy_ecs",
+ "bevy_hierarchy",
+ "bevy_math",
+ "bevy_reflect",
 ]
 
 [[package]]
@@ -1154,22 +778,22 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ac181a7b637da61fad72981ff9d2e5b899283ca7d54b2b7ea49c431121331c53"
 dependencies = [
- "bevy_app 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_asset 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_core_pipeline 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_derive 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_ecs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_hierarchy 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_input 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_log 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_math 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_reflect 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_render 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bevy_app",
+ "bevy_asset",
+ "bevy_core_pipeline",
+ "bevy_derive",
+ "bevy_ecs",
+ "bevy_hierarchy",
+ "bevy_input",
+ "bevy_log",
+ "bevy_math",
+ "bevy_reflect",
+ "bevy_render",
  "bevy_sprite",
  "bevy_text",
- "bevy_transform 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_window 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bevy_transform",
+ "bevy_utils",
+ "bevy_window",
  "bytemuck",
  "serde",
  "smallvec",
@@ -1190,44 +814,17 @@ dependencies = [
  "uuid 1.1.2",
 ]
 
-[[package]]
-name = "bevy_utils"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "ahash",
- "getrandom",
- "hashbrown 0.12.3",
- "instant",
- "tracing",
- "uuid 1.1.2",
-]
-
 [[package]]
 name = "bevy_window"
 version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a3bdc3a220a9bb2fad9bd30d5f44c6645725398fe1bc588fc87abf09f092696e"
 dependencies = [
- "bevy_app 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_ecs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_input 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_math 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "raw-window-handle",
- "web-sys",
-]
-
-[[package]]
-name = "bevy_window"
-version = "0.8.0"
-source = "git+https://github.com/bevyengine/bevy.git#0149c4145f0f398e9fba85c2584d0481a260f57c"
-dependencies = [
- "bevy_app 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_ecs 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_input 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_math 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
- "bevy_utils 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
+ "bevy_app",
+ "bevy_ecs",
+ "bevy_input",
+ "bevy_math",
+ "bevy_utils",
  "raw-window-handle",
  "web-sys",
 ]
@@ -1239,12 +836,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "57537a56ac4f4e1ffcad95227bcab37cd17b51770dacff82374a2d88be376322"
 dependencies = [
  "approx",
- "bevy_app 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_ecs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_input 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_math 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_utils 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bevy_window 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bevy_app",
+ "bevy_ecs",
+ "bevy_input",
+ "bevy_math",
+ "bevy_utils",
+ "bevy_window",
  "crossbeam-channel",
  "raw-window-handle",
  "wasm-bindgen",
@@ -1306,18 +903,18 @@ checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3"
 
 [[package]]
 name = "bytemuck"
-version = "1.11.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5377c8865e74a160d21f29c2d40669f53286db6eab59b88540cbb12ffc8b835"
+checksum = "2f5715e491b5a1598fc2bef5a606847b5dc1d48ea625bd3c02c00de8285591da"
 dependencies = [
  "bytemuck_derive",
 ]
 
 [[package]]
 name = "bytemuck_derive"
-version = "1.1.1"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cfd2f4180c5721da6335cc9e9061cce522b87a35e51cc57636d28d22a9863c80"
+checksum = "1b9e1f5fa78f69496407a27ae9ed989e3c3b072310286f5ef385525e4cbc24a9"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2355,7 +1952,7 @@ name = "kayak_core"
 version = "0.1.0"
 dependencies = [
  "as-any",
- "bevy 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bevy",
  "desync",
  "flo_rope",
  "futures",
@@ -2372,11 +1969,9 @@ name = "kayak_font"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "bevy 0.8.0 (git+https://github.com/bevyengine/bevy.git)",
+ "bevy",
  "bytemuck",
- "serde",
- "serde_json",
- "serde_path_to_error",
+ "nanoserde",
  "unicode-segmentation",
  "xi-unicode",
 ]
@@ -2398,7 +1993,7 @@ dependencies = [
 name = "kayak_ui"
 version = "0.1.0"
 dependencies = [
- "bevy 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bevy",
  "bevy_kayak_ui",
  "kayak_core",
  "kayak_font",
@@ -2619,6 +2214,21 @@ dependencies = [
  "unicode-xid",
 ]
 
+[[package]]
+name = "nanoserde"
+version = "0.1.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ada81c67664d8256507a2d427273ed307631f0e4bb2bbb56beffd8fe42a1c4d"
+dependencies = [
+ "nanoserde-derive",
+]
+
+[[package]]
+name = "nanoserde-derive"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290eec6719d68aef1f5ca0e695f8ad6421adcf8791fc17641c4ccc6c5388fb39"
+
 [[package]]
 name = "ndk"
 version = "0.5.0"
@@ -3386,9 +2996,9 @@ checksum = "8fb1df15f412ee2e9dfc1c504260fa695c1c3f10fe9f4a6ee2d2184d7d6450e2"
 
 [[package]]
 name = "syn"
-version = "1.0.98"
+version = "1.0.99"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"
+checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13"
 dependencies = [
  "proc-macro2",
  "quote",
diff --git a/bevy_kayak_renderer/src/camera/camera.rs b/bevy_kayak_renderer/src/camera/camera.rs
index 90eb4aa..a3e5ba4 100644
--- a/bevy_kayak_renderer/src/camera/camera.rs
+++ b/bevy_kayak_renderer/src/camera/camera.rs
@@ -1,7 +1,9 @@
 use bevy::{
-    prelude::{Bundle, Component, GlobalTransform, Transform},
+    ecs::query::QueryItem,
+    prelude::{Bundle, Component, GlobalTransform, Transform, With},
     render::{
-        camera::{Camera, CameraProjection, DepthCalculation, WindowOrigin},
+        camera::{Camera, CameraProjection, CameraRenderGraph, DepthCalculation, WindowOrigin},
+        extract_component::ExtractComponent,
         primitives::Frustum,
         view::VisibleEntities,
     },
@@ -9,12 +11,22 @@ use bevy::{
 
 use super::ortho::UIOrthographicProjection;
 
-#[derive(Component, Default)]
+#[derive(Component, Clone, Default)]
 pub struct CameraUiKayak;
 
+impl ExtractComponent for CameraUiKayak {
+    type Query = &'static Self;
+    type Filter = With<Camera>;
+
+    fn extract_component(item: QueryItem<Self::Query>) -> Self {
+        item.clone()
+    }
+}
+
 #[derive(Bundle)]
 pub struct UICameraBundle {
     pub camera: Camera,
+    pub camera_render_graph: CameraRenderGraph,
     pub orthographic_projection: UIOrthographicProjection,
     pub visible_entities: VisibleEntities,
     pub frustum: Frustum,
@@ -48,7 +60,11 @@ impl UICameraBundle {
             orthographic_projection.far(),
         );
         UICameraBundle {
-            camera: Default::default(),
+            camera: Camera {
+                priority: isize::MAX - 1,
+                ..Default::default()
+            },
+            camera_render_graph: CameraRenderGraph::new(crate::render::draw_ui_graph::NAME),
             orthographic_projection,
             frustum,
             visible_entities: VisibleEntities::default(),
diff --git a/bevy_kayak_renderer/src/camera/mod.rs b/bevy_kayak_renderer/src/camera/mod.rs
index 529f199..03e5781 100644
--- a/bevy_kayak_renderer/src/camera/mod.rs
+++ b/bevy_kayak_renderer/src/camera/mod.rs
@@ -1,6 +1,6 @@
 use bevy::{
     prelude::{CoreStage, Plugin},
-    render::camera::CameraTypePlugin,
+    render::{camera::CameraProjectionPlugin, extract_component::ExtractComponentPlugin},
 };
 
 mod camera;
@@ -17,6 +17,7 @@ impl Plugin for KayakUICameraPlugin {
             CoreStage::PostUpdate,
             bevy::render::camera::camera_system::<UIOrthographicProjection>,
         )
-        .add_plugin(CameraTypePlugin::<CameraUiKayak>::default());
+        .add_plugin(CameraProjectionPlugin::<UIOrthographicProjection>::default())
+        .add_plugin(ExtractComponentPlugin::<CameraUiKayak>::default());
     }
 }
diff --git a/bevy_kayak_renderer/src/render/mod.rs b/bevy_kayak_renderer/src/render/mod.rs
index 1717e94..c75adb5 100644
--- a/bevy_kayak_renderer/src/render/mod.rs
+++ b/bevy_kayak_renderer/src/render/mod.rs
@@ -1,32 +1,22 @@
 use bevy::{
-    core_pipeline::node::MAIN_PASS_DRIVER,
-    prelude::{Commands, Plugin, Res},
+    prelude::{Commands, Entity, Plugin, Query, With},
     render::{
-        camera::ActiveCamera,
-        render_graph::{EmptyNode, RenderGraph, SlotInfo, SlotType},
+        render_graph::{RenderGraph, SlotInfo, SlotType},
         render_phase::{DrawFunctions, RenderPhase},
-        RenderApp, RenderStage,
+        Extract, RenderApp, RenderStage,
     },
 };
 
 use crate::{
-    render::{
-        ui_pass::MainPassUINode, ui_pass_driver::UIPassDriverNode, unified::UnifiedRenderPlugin,
-    },
+    render::{ui_pass::MainPassUINode, unified::UnifiedRenderPlugin},
     CameraUiKayak,
 };
 
 use self::ui_pass::TransparentUI;
 
 mod ui_pass;
-mod ui_pass_driver;
 pub mod unified;
 
-pub mod node {
-    pub const UI_PASS_DEPENDENCIES: &str = "kayak_ui_pass_dependencies";
-    pub const UI_PASS_DRIVER: &str = "kayak_ui_pass_driver";
-}
-
 pub mod draw_ui_graph {
     pub const NAME: &str = "kayak_draw_ui";
     pub mod input {
@@ -66,14 +56,7 @@ impl Plugin for BevyKayakUIRenderPlugin {
             .unwrap();
         graph.add_sub_graph(draw_ui_graph::NAME, draw_ui_graph);
 
-        graph.add_node(node::UI_PASS_DEPENDENCIES, EmptyNode);
-        graph.add_node(node::UI_PASS_DRIVER, UIPassDriverNode);
-        graph
-            .add_node_edge(node::UI_PASS_DEPENDENCIES, node::UI_PASS_DRIVER)
-            .unwrap();
-        graph
-            .add_node_edge(MAIN_PASS_DRIVER, node::UI_PASS_DRIVER)
-            .unwrap();
+        // graph.add_node_edge(MAIN_PASS, draw_ui_graph::NAME).unwrap();
 
         app.add_plugin(UnifiedRenderPlugin);
     }
@@ -81,9 +64,9 @@ impl Plugin for BevyKayakUIRenderPlugin {
 
 pub fn extract_core_pipeline_camera_phases(
     mut commands: Commands,
-    active_camera: Res<ActiveCamera<CameraUiKayak>>,
+    active_camera: Extract<Query<Entity, With<CameraUiKayak>>>,
 ) {
-    if let Some(entity) = active_camera.get() {
+    if let Ok(entity) = active_camera.get_single() {
         commands
             .get_or_spawn(entity)
             .insert(RenderPhase::<TransparentUI>::default());
diff --git a/bevy_kayak_renderer/src/render/ui_pass.rs b/bevy_kayak_renderer/src/render/ui_pass.rs
index 7b258a6..13a5c8d 100644
--- a/bevy_kayak_renderer/src/render/ui_pass.rs
+++ b/bevy_kayak_renderer/src/render/ui_pass.rs
@@ -1,4 +1,3 @@
-use bevy::core::FloatOrd;
 use bevy::ecs::prelude::*;
 use bevy::render::render_phase::{DrawFunctionId, PhaseItem};
 use bevy::render::render_resource::{CachedRenderPipelineId, RenderPassColorAttachment};
@@ -9,6 +8,7 @@ use bevy::render::{
     renderer::RenderContext,
     view::{ExtractedView, ViewTarget},
 };
+use bevy::utils::FloatOrd;
 
 pub struct TransparentUI {
     pub sort_key: FloatOrd,
@@ -72,14 +72,14 @@ impl Node for MainPassUINode {
         {
             let pass_descriptor = RenderPassDescriptor {
                 label: Some("main_transparent_pass_UI"),
-                color_attachments: &[RenderPassColorAttachment {
+                color_attachments: &[Some(RenderPassColorAttachment {
                     view: &target.view,
                     resolve_target: None,
                     ops: Operations {
                         load: LoadOp::Load, //Clear(clear_color.0.into()),
                         store: true,
                     },
-                }],
+                })],
                 depth_stencil_attachment: None,
             };
 
diff --git a/bevy_kayak_renderer/src/render/ui_pass_driver.rs b/bevy_kayak_renderer/src/render/ui_pass_driver.rs
deleted file mode 100644
index ac24266..0000000
--- a/bevy_kayak_renderer/src/render/ui_pass_driver.rs
+++ /dev/null
@@ -1,27 +0,0 @@
-use bevy::render::{
-    render_graph::{Node, NodeRunError, RenderGraphContext, SlotValue},
-    renderer::RenderContext,
-};
-use bevy::{ecs::world::World, render::camera::ActiveCamera};
-
-use crate::CameraUiKayak;
-
-pub struct UIPassDriverNode;
-
-impl Node for UIPassDriverNode {
-    fn run(
-        &self,
-        graph: &mut RenderGraphContext,
-        _render_context: &mut RenderContext,
-        world: &World,
-    ) -> Result<(), NodeRunError> {
-        if let Some(camera_ui) = world.resource::<ActiveCamera<CameraUiKayak>>().get() {
-            graph.run_sub_graph(
-                super::draw_ui_graph::NAME,
-                vec![SlotValue::Entity(camera_ui)],
-            )?;
-        }
-
-        Ok(())
-    }
-}
diff --git a/bevy_kayak_renderer/src/render/unified/mod.rs b/bevy_kayak_renderer/src/render/unified/mod.rs
index 7831cc0..1283d64 100644
--- a/bevy_kayak_renderer/src/render/unified/mod.rs
+++ b/bevy_kayak_renderer/src/render/unified/mod.rs
@@ -1,7 +1,9 @@
 use bevy::{
     prelude::{Assets, Commands, HandleUntyped, Plugin, Res},
     reflect::TypeUuid,
-    render::{render_phase::DrawFunctions, render_resource::Shader, RenderApp, RenderStage},
+    render::{
+        render_phase::DrawFunctions, render_resource::Shader, Extract, RenderApp, RenderStage,
+    },
     window::Windows,
 };
 
@@ -55,8 +57,8 @@ pub struct Dpi(f32);
 
 pub fn extract_baseline(
     mut commands: Commands,
-    windows: Res<Windows>,
-    window_size: Res<WindowSize>,
+    windows: Extract<Res<Windows>>,
+    window_size: Extract<Res<WindowSize>>,
 ) {
     let dpi = if let Some(window) = windows.get_primary() {
         window.scale_factor() as f32
@@ -64,6 +66,6 @@ pub fn extract_baseline(
         1.0
     };
 
-    commands.insert_resource(*window_size);
+    commands.insert_resource(window_size.clone());
     commands.insert_resource(Dpi(dpi));
 }
diff --git a/bevy_kayak_renderer/src/render/unified/pipeline.rs b/bevy_kayak_renderer/src/render/unified/pipeline.rs
index 6079343..58e01bf 100644
--- a/bevy_kayak_renderer/src/render/unified/pipeline.rs
+++ b/bevy_kayak_renderer/src/render/unified/pipeline.rs
@@ -1,12 +1,11 @@
-use bevy::math::Size;
-use bevy::render::render_resource::std140::AsStd140;
+use bevy::render::render_resource::{DynamicUniformBuffer, ShaderType};
+use bevy::utils::FloatOrd;
 use bevy::{
-    core::FloatOrd,
     ecs::system::{
         lifetimeless::{Read, SQuery, SRes},
         SystemState,
     },
-    math::{const_vec3, Mat4, Quat, Vec2, Vec3, Vec4},
+    math::{Mat4, Quat, Vec2, Vec3, Vec4},
     prelude::{Bundle, Component, Entity, FromWorld, Handle, Query, Res, ResMut, World},
     render::{
         color::Color,
@@ -17,12 +16,12 @@ use bevy::{
             BindGroupLayoutDescriptor, BindGroupLayoutEntry, BindingResource, BindingType,
             BlendComponent, BlendFactor, BlendOperation, BlendState, BufferBindingType, BufferSize,
             BufferUsages, BufferVec, CachedRenderPipelineId, ColorTargetState, ColorWrites,
-            DynamicUniformVec, Extent3d, FragmentState, FrontFace, MultisampleState, PipelineCache,
-            PolygonMode, PrimitiveState, PrimitiveTopology, RenderPipelineDescriptor,
-            SamplerBindingType, SamplerDescriptor, Shader, ShaderStages, TextureDescriptor,
-            TextureDimension, TextureFormat, TextureSampleType, TextureUsages,
-            TextureViewDescriptor, TextureViewDimension, VertexAttribute, VertexBufferLayout,
-            VertexFormat, VertexState, VertexStepMode,
+            Extent3d, FragmentState, FrontFace, MultisampleState, PipelineCache, PolygonMode,
+            PrimitiveState, PrimitiveTopology, RenderPipelineDescriptor, SamplerBindingType,
+            SamplerDescriptor, Shader, ShaderStages, TextureDescriptor, TextureDimension,
+            TextureFormat, TextureSampleType, TextureUsages, TextureViewDescriptor,
+            TextureViewDimension, VertexAttribute, VertexBufferLayout, VertexFormat, VertexState,
+            VertexStepMode,
         },
         renderer::{RenderDevice, RenderQueue},
         texture::{BevyDefault, GpuImage, Image},
@@ -52,12 +51,12 @@ pub struct UnifiedPipeline {
 }
 
 const QUAD_VERTEX_POSITIONS: &[Vec3] = &[
-    const_vec3!([0.0, 1.0, 0.0]),
-    const_vec3!([1.0, 0.0, 0.0]),
-    const_vec3!([0.0, 0.0, 0.0]),
-    const_vec3!([0.0, 1.0, 0.0]),
-    const_vec3!([1.0, 1.0, 0.0]),
-    const_vec3!([1.0, 0.0, 0.0]),
+    Vec3::from_array([0.0, 1.0, 0.0]),
+    Vec3::from_array([1.0, 0.0, 0.0]),
+    Vec3::from_array([0.0, 0.0, 0.0]),
+    Vec3::from_array([0.0, 1.0, 0.0]),
+    Vec3::from_array([1.0, 1.0, 0.0]),
+    Vec3::from_array([1.0, 0.0, 0.0]),
 ];
 
 impl FontRenderingPipeline for UnifiedPipeline {
@@ -190,7 +189,7 @@ impl FromWorld for UnifiedPipeline {
                 shader: UNIFIED_SHADER_HANDLE.typed::<Shader>(),
                 shader_defs: vec![],
                 entry_point: "fragment".into(),
-                targets: vec![ColorTargetState {
+                targets: vec![Some(ColorTargetState {
                     format: TextureFormat::bevy_default(),
                     blend: Some(BlendState {
                         color: BlendComponent {
@@ -205,7 +204,7 @@ impl FromWorld for UnifiedPipeline {
                         },
                     }),
                     write_mask: ColorWrites::ALL,
-                }],
+                })],
             }),
             layout: Some(vec![
                 view_layout.clone(),
@@ -265,10 +264,7 @@ impl FromWorld for UnifiedPipeline {
             texture,
             sampler,
             texture_view,
-            size: Size {
-                width: 1.0,
-                height: 1.0,
-            },
+            size: Vec2::new(1.0, 1.0),
             texture_format: TextureFormat::Rgba8UnormSrgb,
         };
 
@@ -338,7 +334,7 @@ struct QuadVertex {
 }
 
 #[repr(C)]
-#[derive(Copy, Clone, AsStd140)]
+#[derive(Copy, Clone, ShaderType)]
 struct QuadType {
     pub t: i32,
 }
@@ -346,7 +342,7 @@ struct QuadType {
 pub struct QuadMeta {
     vertices: BufferVec<QuadVertex>,
     view_bind_group: Option<BindGroup>,
-    types_buffer: DynamicUniformVec<QuadType>,
+    types_buffer: DynamicUniformBuffer<QuadType>,
     types_bind_group: Option<BindGroup>,
 }
 
@@ -355,7 +351,7 @@ impl Default for QuadMeta {
         Self {
             vertices: BufferVec::new(BufferUsages::VERTEX),
             view_bind_group: None,
-            types_buffer: DynamicUniformVec::default(),
+            types_buffer: DynamicUniformBuffer::default(),
             types_bind_group: None,
         }
     }
@@ -379,7 +375,7 @@ pub fn prepare_quads(
     }
 
     sprite_meta.types_buffer.clear();
-    sprite_meta.types_buffer.reserve(2, &render_device);
+    // sprite_meta.types_buffer.reserve(2, &render_device);
     let quad_type_offset = sprite_meta.types_buffer.push(QuadType { t: 0 });
     let text_type_offset = sprite_meta.types_buffer.push(QuadType { t: 1 });
     let image_type_offset = sprite_meta.types_buffer.push(QuadType { t: 2 });
diff --git a/bevy_kayak_renderer/src/render/unified/shader.wgsl b/bevy_kayak_renderer/src/render/unified/shader.wgsl
index a08eb38..293d4f9 100644
--- a/bevy_kayak_renderer/src/render/unified/shader.wgsl
+++ b/bevy_kayak_renderer/src/render/unified/shader.wgsl
@@ -1,32 +1,32 @@
 struct View {
-    view_proj: mat4x4<f32>;
-    world_position: vec3<f32>;
+    view_proj: mat4x4<f32>,
+    world_position: vec3<f32>,
 };
-[[group(0), binding(0)]]
+@group(0) @binding(0)
 var<uniform> view: View;
 
 struct QuadType {
-    t: i32;
+    t: i32,
 };
-[[group(2), binding(0)]]
+@group(2) @binding(0)
 var<uniform> quad_type: QuadType;
 
 struct VertexOutput {
-    [[builtin(position)]] position: vec4<f32>;
-    [[location(0)]] color: vec4<f32>;
-    [[location(1)]] uv: vec3<f32>;
-    [[location(2)]] pos: vec2<f32>;
-    [[location(3)]] size: vec2<f32>;
-    [[location(4)]] border_radius: f32;
-    [[location(5)]] pixel_position: vec2<f32>;
+    @builtin(position) position: vec4<f32>,
+    @location(0) color: vec4<f32>,
+    @location(1) uv: vec3<f32>,
+    @location(2) pos: vec2<f32>,
+    @location(3) size: vec2<f32>,
+    @location(4) border_radius: f32,
+    @location(5) pixel_position: vec2<f32>,
 };
 
-[[stage(vertex)]]
+@vertex
 fn vertex(
-    [[location(0)]] vertex_position: vec3<f32>,
-    [[location(1)]] vertex_color: vec4<f32>,
-    [[location(2)]] vertex_uv: vec4<f32>,
-    [[location(3)]] vertex_pos_size: vec4<f32>,
+    @location(0) vertex_position: vec3<f32>,
+    @location(1) vertex_color: vec4<f32>,
+    @location(2) vertex_uv: vec4<f32>,
+    @location(3) vertex_pos_size: vec4<f32>,
 ) -> VertexOutput {
     var out: VertexOutput;
     out.color = vertex_color;
@@ -39,27 +39,26 @@ fn vertex(
     return out;
 }
 
-[[group(1), binding(0)]]
+@group(1) @binding(0)
 var font_texture: texture_2d_array<f32>;
-[[group(1), binding(1)]]
+@group(1) @binding(1)
 var font_sampler: sampler;
 
-[[group(3), binding(0)]]
+@group(3) @binding(0)
 var image_texture: texture_2d<f32>;
-[[group(3), binding(1)]]
+@group(3) @binding(1)
 var image_sampler: sampler;
 
 let RADIUS: f32 = 0.1;
 
 // Where P is the position in pixel space, B is the size of the box adn R is the radius of the current corner.
-fn sdRoundBox(p: vec2<f32>, b: vec2<f32>, r: f32) -> f32 
-{
-    var q = abs(p)-b+r;
+fn sdRoundBox(p: vec2<f32>, b: vec2<f32>, r: f32) -> f32 {
+    var q = abs(p) - b + r;
     return min(max(q.x, q.y), 0.0) + length(max(q, vec2<f32>(0.0))) - r;
 }
 
-[[stage(fragment)]]
-fn fragment(in: VertexOutput) -> [[location(0)]] vec4<f32> {
+@fragment
+fn fragment(in: VertexOutput) -> @location(0) vec4<f32> {
     if (quad_type.t == 0) {
         var size = in.size;
         var pos = in.pos.xy * 2.0;
@@ -70,14 +69,14 @@ fn fragment(in: VertexOutput) -> [[location(0)]] vec4<f32> {
             size,
             bs,
         );
-        rect_dist = 1.0 - smoothStep(0.0, fwidth(rect_dist), rect_dist);
+        rect_dist = 1.0 - smoothstep(0.0, fwidth(rect_dist), rect_dist);
         return vec4<f32>(in.color.rgb, rect_dist * in.color.a);
     }
     if (quad_type.t == 1) {
         var px_range = 3.5;
         var tex_dimensions = textureDimensions(font_texture);
         var msdf_unit = vec2<f32>(px_range, px_range) / vec2<f32>(f32(tex_dimensions.x), f32(tex_dimensions.y));
-        var x = textureSample(font_texture, font_sampler, vec2<f32>(in.uv.x, 1.0 - in.uv.y), i32(in.uv.z)); 
+        var x = textureSample(font_texture, font_sampler, vec2<f32>(in.uv.x, 1.0 - in.uv.y), i32(in.uv.z));
         var v = max(min(x.r, x.g), min(max(x.r, x.g), x.b));
         var sig_dist = (v - 0.5) * dot(msdf_unit, 0.5 / fwidth(in.uv.xy));
         var a = clamp(sig_dist + 0.5, 0.0, 1.0);
@@ -90,7 +89,7 @@ fn fragment(in: VertexOutput) -> [[location(0)]] vec4<f32> {
             in.size.xy,
             bs,
         );
-        mask = 1.0 - smoothStep(0.0, fwidth(mask), mask);
+        mask = 1.0 - smoothstep(0.0, fwidth(mask), mask);
         var color = textureSample(image_texture, image_sampler, vec2<f32>(in.uv.x, 1.0 - in.uv.y));
         return vec4<f32>(color.rgb * in.color.rgb, color.a * in.color.a * mask);
     }
diff --git a/bevy_kayak_ui/src/lib.rs b/bevy_kayak_ui/src/lib.rs
index 2d1a27a..65e6ebb 100644
--- a/bevy_kayak_ui/src/lib.rs
+++ b/bevy_kayak_ui/src/lib.rs
@@ -2,7 +2,7 @@ use bevy::{
     input::{
         keyboard::KeyboardInput,
         mouse::{MouseButtonInput, MouseScrollUnit, MouseWheel},
-        ElementState,
+        ButtonState,
     },
     math::Vec2,
     prelude::{EventReader, IntoExclusiveSystem, MouseButton, Plugin, Res, World},
@@ -99,9 +99,9 @@ pub fn process_events(world: &mut World) {
                     for event in mouse_button_input_events.iter() {
                         match event.button {
                             MouseButton::Left => {
-                                if event.state == ElementState::Pressed {
+                                if event.state == ButtonState::Pressed {
                                     input_events.push(InputEvent::MouseLeftPress);
-                                } else if event.state == ElementState::Released {
+                                } else if event.state == ButtonState::Released {
                                     input_events.push(InputEvent::MouseLeftRelease);
                                 }
                             }
@@ -126,7 +126,7 @@ pub fn process_events(world: &mut World) {
                             let kayak_key_code = key::convert_virtual_key_code(key_code);
                             input_events.push(InputEvent::Keyboard {
                                 key: kayak_key_code,
-                                is_pressed: matches!(event.state, ElementState::Pressed),
+                                is_pressed: matches!(event.state, ButtonState::Pressed),
                             });
                         }
                     }
diff --git a/bevy_kayak_ui/src/render/font/extract.rs b/bevy_kayak_ui/src/render/font/extract.rs
index 61b8380..569f5e6 100644
--- a/bevy_kayak_ui/src/render/font/extract.rs
+++ b/bevy_kayak_ui/src/render/font/extract.rs
@@ -34,7 +34,7 @@ pub fn extract_texts(
     };
 
     let font_handle = font_mapping.get_handle(font.clone()).unwrap();
-    let font = match fonts.get(font_handle.clone()) {
+    let font = match fonts.get(&font_handle) {
         Some(font) => font,
         None => return Vec::new(),
     };
diff --git a/bevy_kayak_ui/src/render/mod.rs b/bevy_kayak_ui/src/render/mod.rs
index 4a60b6e..69215ae 100644
--- a/bevy_kayak_ui/src/render/mod.rs
+++ b/bevy_kayak_ui/src/render/mod.rs
@@ -2,7 +2,7 @@ use crate::{BevyContext, FontMapping, ImageManager};
 use bevy::{
     math::Vec2,
     prelude::{Assets, Commands, Plugin, Res},
-    render::{color::Color, texture::Image, RenderApp, RenderStage},
+    render::{color::Color, texture::Image, Extract, RenderApp, RenderStage},
     sprite::Rect,
     window::Windows,
 };
@@ -32,18 +32,18 @@ impl Plugin for BevyKayakUIExtractPlugin {
 
 pub fn extract(
     mut commands: Commands,
-    context: Option<Res<BevyContext>>,
-    fonts: Res<Assets<KayakFont>>,
-    font_mapping: Res<FontMapping>,
-    image_manager: Res<ImageManager>,
-    images: Res<Assets<Image>>,
-    windows: Res<Windows>,
+    context: Extract<Option<Res<BevyContext>>>,
+    fonts: Extract<Res<Assets<KayakFont>>>,
+    font_mapping: Extract<Res<FontMapping>>,
+    image_manager: Extract<Res<ImageManager>>,
+    images: Extract<Res<Assets<Image>>>,
+    windows: Extract<Res<Windows>>,
 ) {
     if context.is_none() {
         return;
     }
 
-    let context = context.unwrap();
+    let context = context.as_ref().unwrap();
 
     let render_primitives = if let Ok(context) = context.kayak_context.read() {
         context.widget_manager.build_render_primitives()
diff --git a/examples/bevy_event.rs b/examples/bevy_event.rs
index e1d55b7..5b8365f 100644
--- a/examples/bevy_event.rs
+++ b/examples/bevy_event.rs
@@ -7,7 +7,7 @@ use kayak_ui::bevy::{BevyContext, BevyKayakUIPlugin, FontMapping, UICameraBundle
 use kayak_ui::core::{
     render, rsx,
     styles::{Style, StyleProp, Units},
-    use_state, widget, EventType, OnEvent,
+    widget, EventType, OnEvent,
 };
 use kayak_ui::widgets::{App, Button, Text, Window};
 
@@ -15,16 +15,6 @@ pub struct MyEvent;
 
 #[widget]
 fn EventWindow() {
-    let text_styles = Style {
-        bottom: StyleProp::Value(Units::Stretch(1.0)),
-        left: StyleProp::Value(Units::Stretch(0.1)),
-        right: StyleProp::Value(Units::Stretch(0.1)),
-        top: StyleProp::Value(Units::Stretch(1.0)),
-        width: StyleProp::Value(Units::Stretch(1.0)),
-        height: StyleProp::Value(Units::Pixels(28.0)),
-        ..Default::default()
-    };
-
     let button_text_styles = Style {
         left: StyleProp::Value(Units::Stretch(1.0)),
         right: StyleProp::Value(Units::Stretch(1.0)),
diff --git a/examples/image.rs b/examples/image.rs
index b7bcad0..fb6d6cb 100644
--- a/examples/image.rs
+++ b/examples/image.rs
@@ -1,5 +1,6 @@
 use bevy::{
     prelude::{App as BevyApp, AssetServer, Commands, Handle, Res, ResMut},
+    render::texture::ImageSettings,
     window::WindowDescriptor,
     DefaultPlugins,
 };
@@ -50,6 +51,7 @@ fn main() {
             title: String::from("UI Example"),
             ..Default::default()
         })
+        .insert_resource(ImageSettings::default_nearest())
         .add_plugins(DefaultPlugins)
         .add_plugin(BevyKayakUIPlugin)
         .add_startup_system(startup)
diff --git a/examples/world_interaction.rs b/examples/world_interaction.rs
index c6c3e5c..bd2621e 100644
--- a/examples/world_interaction.rs
+++ b/examples/world_interaction.rs
@@ -6,11 +6,11 @@
 //! behavior.
 
 use bevy::{
-    math::{const_vec2, Vec3Swizzles, Vec4Swizzles},
+    math::{Vec3Swizzles, Vec4Swizzles},
     prelude::{
-        App as BevyApp, AssetServer, Color as BevyColor, Commands, Component, CursorMoved,
-        EventReader, GlobalTransform, Input, MouseButton, OrthographicCameraBundle, Query, Res,
-        ResMut, Sprite, SpriteBundle, Transform, Vec2, Windows, With, Without,
+        App as BevyApp, AssetServer, Camera2dBundle, Color as BevyColor, Commands, Component,
+        CursorMoved, EventReader, GlobalTransform, Input, MouseButton, Query, Res, ResMut, Sprite,
+        SpriteBundle, Transform, Vec2, Windows, With, Without,
     },
     window::WindowDescriptor,
     DefaultPlugins,
@@ -25,7 +25,7 @@ use kayak_ui::{
     widgets::{App, Button, Text, Window},
 };
 
-const TILE_SIZE: Vec2 = const_vec2!([50.0, 50.0]);
+const TILE_SIZE: Vec2 = Vec2::from_array([50.0, 50.0]);
 const COLORS: &[BevyColor] = &[BevyColor::TEAL, BevyColor::MAROON, BevyColor::INDIGO];
 
 /// This is the system that sets the active tile's target position
@@ -223,7 +223,7 @@ fn on_color_change(
 /// A system that sets up the world
 fn world_setup(mut commands: Commands, active_color: Res<ActiveColor>) {
     commands
-        .spawn_bundle(OrthographicCameraBundle::new_2d())
+        .spawn_bundle(Camera2dBundle::default())
         .insert(WorldCamera);
     commands
         .spawn_bundle(SpriteBundle {
diff --git a/kayak_font/examples/renderer/shader.wgsl b/kayak_font/examples/renderer/shader.wgsl
index 7d251ec..4bfdf8f 100644
--- a/kayak_font/examples/renderer/shader.wgsl
+++ b/kayak_font/examples/renderer/shader.wgsl
@@ -44,7 +44,7 @@ fn fragment(in: VertexOutput) -> @location(0) vec4<f32> {
     var px_range = 2.5;
     var tex_dimensions = textureDimensions(font_texture);
     var msdf_unit = vec2<f32>(px_range, px_range) / vec2<f32>(f32(tex_dimensions.x), f32(tex_dimensions.y));
-    var x = textureSample(font_texture, font_sampler, vec2<f32>(in.uv.x, in.uv.y), i32(in.uv.z)); 
+    var x = textureSample(font_texture, font_sampler, vec2<f32>(in.uv.x, in.uv.y), i32(in.uv.z));
     var v = max(min(x.r, x.g), min(max(x.r, x.g), x.b));
     var sig_dist = (v - 0.5) * dot(msdf_unit, 0.5 / fwidth(in.uv.xy));
     var a = clamp(sig_dist + 0.5, 0.0, 1.0);
-- 
GitLab