Upgrade to Blitz 0.1.0-alpha.4 (#4335)

* Use new replace_node_with name for replace_placeholder_with_nodes

* Setup tracing for wgpu-texture support

* Use asset macro in wgpu-texture example

* Use src attribute rather than data for canvas source

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Upgrade to blitz 0.1.0-alpha.4

Signed-off-by: Nico Burns <nico@nicoburns.com>

---------

Signed-off-by: Nico Burns <nico@nicoburns.com>
This commit is contained in:
Nico Burns authored and GitHub committed 2025-06-30 16:26:01 -07:00
1 parent 2071be2b67
commit 6eba7e8641
6 files changed
+69 -62

No files matched your search

Generated
+49 -48
View File
@@ -381,9 +381,9 @@ checksum = "d301b3b94cb4b2f23d7917810addbbaff90738e0ca2be692bd027e70d7e0330c"
[[package]] [[package]]
name = "anyrender" name = "anyrender"
version = "0.2.0" version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d137e07d59da00378857d3b740e34d9ebedd339e181a23e85d3f936c51b9797e" checksum = "e5e27059c655004e0f54b4f41f9a42dd607dde74e1cc5186eff4f32bc169783d"
dependencies = [ dependencies = [
"kurbo", "kurbo",
"peniko", "peniko",
@@ -392,9 +392,9 @@ dependencies = [
[[package]] [[package]]
name = "anyrender_svg" name = "anyrender_svg"
version = "0.2.0" version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eb57f18ae458825c213b5c359fb8bc1466a80b89f2c9e2f03812b021fc87b3ea" checksum = "f3414003d42ba672258f3f83d0c92c6e97ee617d06f6b9ec6f19b895eb29a24a"
dependencies = [ dependencies = [
"anyrender", "anyrender",
"image", "image",
@@ -406,9 +406,9 @@ dependencies = [
[[package]] [[package]]
name = "anyrender_vello" name = "anyrender_vello"
version = "0.2.0" version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3807802b3aeb615b281a393400fd31be883944334d153829c10cffb087c78b97" checksum = "21c4f6e7781da69eab51dd170301963a60eb443b3c23b2f5c5b01094fde65bed"
dependencies = [ dependencies = [
"anyrender", "anyrender",
"futures-intrusive", "futures-intrusive",
@@ -1602,13 +1602,14 @@ dependencies = [
[[package]] [[package]]
name = "blitz-dom" name = "blitz-dom"
version = "0.1.0-alpha.3" version = "0.1.0-alpha.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2cc790ddadcbdb833c644e39d1d0bbda4f83e6a45c513c04c91bbe093cd98a3" checksum = "6d0f5c53216da39251e7039c99322c03ac16f23b1b68d5d5ece03f5bb92f139b"
dependencies = [ dependencies = [
"accesskit", "accesskit",
"app_units", "app_units",
"atomic_refcell", "atomic_refcell",
"bitflags 2.9.1",
"blitz-traits", "blitz-traits",
"color", "color",
"cursor-icon", "cursor-icon",
@@ -1616,12 +1617,12 @@ dependencies = [
"html-escape", "html-escape",
"image", "image",
"keyboard-types", "keyboard-types",
"markup5ever 0.16.1", "markup5ever 0.16.2",
"objc2 0.6.1", "objc2 0.6.1",
"parley", "parley",
"peniko", "peniko",
"percent-encoding", "percent-encoding",
"selectors 0.28.0", "selectors 0.29.0",
"slab", "slab",
"smallvec", "smallvec",
"stylo", "stylo",
@@ -1637,9 +1638,9 @@ dependencies = [
[[package]] [[package]]
name = "blitz-net" name = "blitz-net"
version = "0.1.0-alpha.3" version = "0.1.0-alpha.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5da042609b43982f5aa269f55c19a10579ecad2a18361b825f28c84981b64835" checksum = "c17d660462f6ebf8045f94045586a6ec9c46d4d0b4dcf8bb09390b3b4dc956e7"
dependencies = [ dependencies = [
"blitz-traits", "blitz-traits",
"data-url 0.3.1", "data-url 0.3.1",
@@ -1649,9 +1650,9 @@ dependencies = [
[[package]] [[package]]
name = "blitz-paint" name = "blitz-paint"
version = "0.1.0-alpha.3" version = "0.1.0-alpha.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a9592d2235bdd5d840ed1e212d9337324d9e43fc11ff3fa5dd723d280c63f85c" checksum = "91e1eb842e5620c41f3059f35d7365d892247d024785b319787e5a1a8b46c247"
dependencies = [ dependencies = [
"anyrender", "anyrender",
"anyrender_svg", "anyrender_svg",
@@ -1670,9 +1671,9 @@ dependencies = [
[[package]] [[package]]
name = "blitz-shell" name = "blitz-shell"
version = "0.1.0-alpha.3" version = "0.1.0-alpha.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d120ea1f2676bf09ba5c324d0904acc1af2337931b9c32d68b68f1bf5160512" checksum = "7efc5fc3258cac0b4fa24fa2610e88980acb6526c66bfc9a79355ec042541d1b"
dependencies = [ dependencies = [
"accesskit", "accesskit",
"accesskit_winit", "accesskit_winit",
@@ -1689,9 +1690,9 @@ dependencies = [
[[package]] [[package]]
name = "blitz-traits" name = "blitz-traits"
version = "0.1.0-alpha.3" version = "0.1.0-alpha.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f7891c8d148d85371940a4baa48a29a09a039136f14e8c83714f855b3743e91" checksum = "e17bc003ba7744d19ef07ff86a2214d46d761caef0026676fc7216c5242fc284"
dependencies = [ dependencies = [
"bitflags 2.9.1", "bitflags 2.9.1",
"bytes", "bytes",
@@ -8682,9 +8683,9 @@ dependencies = [
[[package]] [[package]]
name = "markup5ever" name = "markup5ever"
version = "0.16.1" version = "0.16.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d0a8096766c229e8c88a3900c9b44b7e06aa7f7343cc229158c3e58ef8f9973a" checksum = "2e4cd8c02f18a011991a039855480c64d74291c5792fcc160d55d77dc4de4a39"
dependencies = [ dependencies = [
"log", "log",
"tendril", "tendril",
@@ -12211,13 +12212,13 @@ dependencies = [
[[package]] [[package]]
name = "selectors" name = "selectors"
version = "0.28.0" version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "db3079aef7a4383aff1e60eca2818995d3de8168e85ae4b6ea8fb2804b182c54" checksum = "d61a96a0a2d04f964888e003ec83e3172159a16e81b35de9f6ab85d8767cf2b1"
dependencies = [ dependencies = [
"bitflags 2.9.1", "bitflags 2.9.1",
"cssparser 0.35.0", "cssparser 0.35.0",
"derive_more 0.99.20", "derive_more 2.0.1",
"fxhash", "fxhash",
"log", "log",
"new_debug_unreachable", "new_debug_unreachable",
@@ -13356,9 +13357,9 @@ dependencies = [
[[package]] [[package]]
name = "stylo" name = "stylo"
version = "0.3.0" version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d6034deda3e062865c4011d70a97ba8691bb00777f14c4575bee41451e46594d" checksum = "d1cdb2ebcdd49e8e2524d3045202eb472c4261bb9956294fd52ccc1200b8e0af"
dependencies = [ dependencies = [
"app_units", "app_units",
"arrayvec", "arrayvec",
@@ -13366,7 +13367,7 @@ dependencies = [
"bitflags 2.9.1", "bitflags 2.9.1",
"byteorder", "byteorder",
"cssparser 0.35.0", "cssparser 0.35.0",
"derive_more 0.99.20", "derive_more 2.0.1",
"encoding_rs", "encoding_rs",
"euclid", "euclid",
"fxhash", "fxhash",
@@ -13388,7 +13389,7 @@ dependencies = [
"precomputed-hash", "precomputed-hash",
"rayon", "rayon",
"rayon-core", "rayon-core",
"selectors 0.28.0", "selectors 0.29.0",
"serde", "serde",
"servo_arc 0.4.0", "servo_arc 0.4.0",
"smallbitvec", "smallbitvec",
@@ -13406,7 +13407,6 @@ dependencies = [
"to_shmem", "to_shmem",
"to_shmem_derive", "to_shmem_derive",
"uluru", "uluru",
"unicode-bidi",
"url", "url",
"void", "void",
"walkdir", "walkdir",
@@ -13415,9 +13415,9 @@ dependencies = [
[[package]] [[package]]
name = "stylo_atoms" name = "stylo_atoms"
version = "0.3.0" version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4b7dacdd62700078300263cece93a9c41823305d461ee5b3b65a51d6cdce3d38" checksum = "4a2e2d0a6532ae003a87e9a44d35e74175af06cbba191ba80947ba8e9ea369b3"
dependencies = [ dependencies = [
"string_cache", "string_cache",
"string_cache_codegen", "string_cache_codegen",
@@ -13425,15 +13425,15 @@ dependencies = [
[[package]] [[package]]
name = "stylo_config" name = "stylo_config"
version = "0.3.0" version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fe07c673f8989e237e544c17723a8831d37d80b1a55437ac67bec8fe877e3cb" checksum = "1a308fdc37610b1b9c6dbce4244a91f7bdf88bf8a13ccfbc50c212e09b29bc7d"
[[package]] [[package]]
name = "stylo_derive" name = "stylo_derive"
version = "0.3.0" version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a2c2bf677324ef587e97b8f5fc055f97a50bd26493411100e1442824ab289b8" checksum = "8384a2ebb61abbde4466dfc9d5dcda134dfa939b77bfb2df878d1c7dffe081f1"
dependencies = [ dependencies = [
"darling", "darling",
"proc-macro2", "proc-macro2",
@@ -13444,9 +13444,9 @@ dependencies = [
[[package]] [[package]]
name = "stylo_dom" name = "stylo_dom"
version = "0.3.0" version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "183a89dc60a136308a1c83056660692bb598b3a99db2ac79b1b53f935cf3c87d" checksum = "d6bce5a8c7b6d5657952caeeec50213d356d1ca2f2b042cf4594a897701282e9"
dependencies = [ dependencies = [
"bitflags 2.9.1", "bitflags 2.9.1",
"stylo_malloc_size_of", "stylo_malloc_size_of",
@@ -13454,14 +13454,14 @@ dependencies = [
[[package]] [[package]]
name = "stylo_malloc_size_of" name = "stylo_malloc_size_of"
version = "0.3.0" version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "150243bffdabaeafc7370354f6102559fec103b63d84875383fb657dd9c8549c" checksum = "fc88bd0d890c656478a8bfaab59e0e25d405149ef1117917d792540ab75b47cc"
dependencies = [ dependencies = [
"app_units", "app_units",
"cssparser 0.35.0", "cssparser 0.35.0",
"euclid", "euclid",
"selectors 0.28.0", "selectors 0.29.0",
"servo_arc 0.4.0", "servo_arc 0.4.0",
"smallbitvec", "smallbitvec",
"smallvec", "smallvec",
@@ -13472,15 +13472,15 @@ dependencies = [
[[package]] [[package]]
name = "stylo_static_prefs" name = "stylo_static_prefs"
version = "0.3.0" version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9600d11cdad6c275426272f35fbe085c4362be1d67bb9775f378fd2be7942d3a" checksum = "500f379645e8a87fd03fe88607a5edcb0d8e4e423baa74ba52db198a06a0c261"
[[package]] [[package]]
name = "stylo_taffy" name = "stylo_taffy"
version = "0.1.0-alpha.3" version = "0.1.0-alpha.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d30240f1de39be7dc0b645febe4247bbe10f018c0e42875717ee1d45bb35cbdf" checksum = "626338f08849d841c21e9a4910dbe0cbbf10f2812942c29ac360bed1327bf3ec"
dependencies = [ dependencies = [
"stylo", "stylo",
"taffy", "taffy",
@@ -13488,16 +13488,16 @@ dependencies = [
[[package]] [[package]]
name = "stylo_traits" name = "stylo_traits"
version = "0.3.0" version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a24b6eb257a1e68e184e113a3a426dd9e38e4a0017b805fcf43a44c939e5642" checksum = "244bfd473f321ff0258f5b2986e218d5f72507fa405fd131b8dbb5ebac166663"
dependencies = [ dependencies = [
"app_units", "app_units",
"bitflags 2.9.1", "bitflags 2.9.1",
"cssparser 0.35.0", "cssparser 0.35.0",
"euclid", "euclid",
"malloc_size_of_derive", "malloc_size_of_derive",
"selectors 0.28.0", "selectors 0.29.0",
"serde", "serde",
"servo_arc 0.4.0", "servo_arc 0.4.0",
"stylo_atoms", "stylo_atoms",
@@ -16192,9 +16192,9 @@ dependencies = [
[[package]] [[package]]
name = "web_atoms" name = "web_atoms"
version = "0.1.2" version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b9c5f0bc545ea3b20b423e33b9b457764de0b3730cd957f6c6aa6c301785f6e" checksum = "57ffde1dc01240bdf9992e3205668b235e59421fd085e8a317ed98da0178d414"
dependencies = [ dependencies = [
"phf 0.11.3", "phf 0.11.3",
"phf_codegen 0.11.3", "phf_codegen 0.11.3",
@@ -16513,6 +16513,7 @@ dependencies = [
"color", "color",
"dioxus", "dioxus",
"dioxus-native", "dioxus-native",
"tracing-subscriber",
"wgpu 24.0.5", "wgpu 24.0.5",
] ]
+2
View File
@@ -12,6 +12,7 @@ publish = false
default = ["desktop"] default = ["desktop"]
desktop = ["dioxus/desktop"] desktop = ["dioxus/desktop"]
native = ["dioxus/native"] native = ["dioxus/native"]
tracing = ["dep:tracing-subscriber", "dioxus-native/tracing"]
[dependencies] [dependencies]
dioxus-native = { path = "../../packages/native" } dioxus-native = { path = "../../packages/native" }
@@ -19,3 +20,4 @@ dioxus = { workspace = true }
wgpu = "24" wgpu = "24"
bytemuck = "1" bytemuck = "1"
color = "0.3" color = "0.3"
tracing-subscriber = { workspace = true, optional = true }
+8 -5
View File
@@ -9,7 +9,7 @@ use wgpu::{Features, Limits};
mod demo_renderer; mod demo_renderer;
// CSS Styles // CSS Styles
static STYLES: &str = include_str!("./styles.css"); static STYLES: Asset = asset!("./src/styles.css");
// WGPU settings required by this example // WGPU settings required by this example
const FEATURES: Features = Features::PUSH_CONSTANTS; const FEATURES: Features = Features::PUSH_CONSTANTS;
@@ -23,6 +23,9 @@ fn limits() -> Limits {
type Color = OpaqueColor<Srgb>; type Color = OpaqueColor<Srgb>;
fn main() { fn main() {
#[cfg(feature = "tracing")]
tracing_subscriber::fmt::init();
let config: Vec<Box<dyn Any>> = vec![Box::new(FEATURES), Box::new(limits())]; let config: Vec<Box<dyn Any>> = vec![Box::new(FEATURES), Box::new(limits())];
dioxus_native::launch_cfg(app, Vec::new(), config); dioxus_native::launch_cfg(app, Vec::new(), config);
} }
@@ -42,11 +45,11 @@ fn app() -> Element {
use_effect(move || println!("{:?}", color().components)); use_effect(move || println!("{:?}", color().components));
rsx!( rsx!(
style { {STYLES} } document::Link { rel: "stylesheet", href: STYLES }
div { id:"overlay", div { id:"overlay",
h2 { "Control Panel" }, h2 { "Control Panel" },
button { button {
onclick: move |_| *show_cube.write() = !show_cube(), onclick: move |_| show_cube.toggle(),
if show_cube() { if show_cube() {
"Hide cube" "Hide cube"
} else { } else {
@@ -62,7 +65,7 @@ fn app() -> Element {
p { "This underlay demonstrates that the custom WGPU content can be rendered above layers and blended with the content underneath" } p { "This underlay demonstrates that the custom WGPU content can be rendered above layers and blended with the content underneath" }
} }
header { header {
h2 { "Blitz WGPU Demo" } h1 { "Blitz WGPU Demo" }
} }
if show_cube() { if show_cube() {
SpinningCube { color } SpinningCube { color }
@@ -99,7 +102,7 @@ fn SpinningCube(color: Memo<Color>) -> Element {
div { id:"canvas-container", div { id:"canvas-container",
canvas { canvas {
id: "demo-canvas", id: "demo-canvas",
"data": paint_source_id "src": paint_source_id
} }
} }
) )
+2
View File
@@ -18,12 +18,14 @@ main {
#canvas-container { #canvas-container {
display: grid; display: grid;
opacity: 0.8; opacity: 0.8;
grid-row: 2;
} }
header { header {
padding: 10px 40px; padding: 10px 40px;
background-color: white; background-color: white;
z-index: 100; z-index: 100;
grid-row: 1;
} }
#overlay { #overlay {
+7 -7
View File
@@ -21,13 +21,13 @@ autofocus = []
[dependencies] [dependencies]
# Blitz dependencies # Blitz dependencies
anyrender = { version = "0.2", default-features = false } anyrender = { version = "0.3", default-features = false }
anyrender_vello = { version = "0.2", default-features = false } anyrender_vello = { version = "0.3", default-features = false }
blitz-dom = { version = "0.1.0-alpha.3", default-features = false } blitz-dom = { version = "=0.1.0-alpha.4", default-features = false }
blitz-net = { version = "0.1.0-alpha.3", optional = true } blitz-net = { version = "=0.1.0-alpha.4", optional = true }
blitz-paint = { version = "0.1.0-alpha.3", optional = true } blitz-paint = { version = "=0.1.0-alpha.4", optional = true }
blitz-traits = { version = "0.1.0-alpha.3" } blitz-traits = { version = "=0.1.0-alpha.4" }
blitz-shell = { version = "0.1.0-alpha.3", default-features = false } blitz-shell = { version = "=0.1.0-alpha.4", default-features = false }
# DioxusLabs dependencies # DioxusLabs dependencies
dioxus-core = { workspace = true } dioxus-core = { workspace = true }
+1 -2
View File
@@ -149,8 +149,7 @@ impl WriteMutations for MutationWriter<'_> {
// the stack and then "load_child" reads from the top of the stack. // the stack and then "load_child" reads from the top of the stack.
let new_node_ids = self.state.m_stack_nodes(m); let new_node_ids = self.state.m_stack_nodes(m);
let anchor_node_id = self.load_child(path); let anchor_node_id = self.load_child(path);
self.docm self.docm.replace_node_with(anchor_node_id, &new_node_ids);
.replace_placeholder_with_nodes(anchor_node_id, &new_node_ids);
} }
fn remove_node(&mut self, id: ElementId) { fn remove_node(&mut self, id: ElementId) {