From 9881516b4d4ada830fc002f183b676ed33fa2af3 Mon Sep 17 00:00:00 2001 From: Dzmitry Malyshau Date: Sat, 27 Sep 2025 00:21:24 -0700 Subject: [PATCH] Update deps and release graphics-0.7 --- Cargo.toml | 12 ++++++------ blade-egui/Cargo.toml | 2 +- blade-egui/src/lib.rs | 21 +-------------------- blade-graphics/Cargo.toml | 6 +++--- blade-graphics/src/shader.rs | 6 +++--- blade-graphics/src/util.rs | 10 +++++----- blade-macros/Cargo.toml | 2 +- blade-render/Cargo.toml | 2 +- blade-util/Cargo.toml | 2 +- docs/CHANGELOG.md | 4 +++- 10 files changed, 25 insertions(+), 42 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index a8eabf9f..b4a324f8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,15 +16,15 @@ base64 = "0.21" bitflags = "2" bytemuck = { version = "1", features = ["derive"] } choir = "0.7" -egui = "0.29" -glam = { version = "0.28", features = ["mint"] } +egui = "0.32" +glam = { version = "0.30", features = ["mint"] } gltf = { version = "1.1", default-features = false } log = "0.4" mint = "0.5" naga = { version = "25.0", features = ["wgsl-in"] } profiling = "1" slab = "0.4" -strum = { version = "0.26", features = ["derive"] } +strum = { version = "0.27", features = ["derive"] } web-sys = "0.3.60" winit = { version = "0.30" } @@ -46,7 +46,7 @@ readme = "docs/README.md" [dependencies] blade-asset = { version = "0.2", path = "blade-asset" } blade-egui = { version = "0.6", path = "blade-egui" } -blade-graphics = { version = "0.6", path = "blade-graphics" } +blade-graphics = { version = "0.7", path = "blade-graphics" } blade-helpers = { version = "0.1", path = "blade-helpers" } blade-util = { version = "0.2", path = "blade-util" } base64 = { workspace = true } @@ -72,10 +72,10 @@ blade-macros = { version = "0.3", path = "blade-macros" } bytemuck = { workspace = true } choir = { workspace = true } egui = { workspace = true } -egui-winit = { version = "0.29", default-features = false, features = [ +egui-winit = { version = "0.32", default-features = false, features = [ "links", ] } -transform-gizmo-egui = "0.4" +transform-gizmo-egui = "0.7" env_logger = "0.11" glam = { workspace = true } log = { workspace = true } diff --git a/blade-egui/Cargo.toml b/blade-egui/Cargo.toml index d3aa9d48..ff861c1b 100644 --- a/blade-egui/Cargo.toml +++ b/blade-egui/Cargo.toml @@ -10,7 +10,7 @@ repository = "https://github.com/kvark/blade" [lib] [dependencies] -blade-graphics = { version = "0.6", path = "../blade-graphics" } +blade-graphics = { version = "0.7", path = "../blade-graphics" } blade-macros = { version = "0.3", path = "../blade-macros" } blade-util = { version = "0.2", path = "../blade-util" } egui = { workspace = true, features = ["bytemuck"] } diff --git a/blade-egui/src/lib.rs b/blade-egui/src/lib.rs index bb70922c..2f8d0bf1 100644 --- a/blade-egui/src/lib.rs +++ b/blade-egui/src/lib.rs @@ -16,11 +16,7 @@ const SHADER_SOURCE: &'static str = include_str!("../shader.wgsl"); use blade_util::{BufferBelt, BufferBeltDescriptor}; -use std::{ - collections::hash_map::{Entry, HashMap}, - mem::size_of, - ptr, -}; +use std::collections::hash_map::{Entry, HashMap}; #[repr(C)] #[derive(Clone, Copy, bytemuck::Zeroable, bytemuck::Pod)] @@ -250,21 +246,6 @@ impl GuiPainter { for &(texture_id, ref image_delta) in textures_delta.set.iter() { let src = match image_delta.image { egui::ImageData::Color(ref c) => self.belt.alloc_pod(c.pixels.as_slice(), context), - egui::ImageData::Font(ref a) => { - let color_iter = a.srgba_pixels(None); - let stage = self.belt.alloc( - (color_iter.len() * size_of::()) as u64, - context, - ); - let mut ptr = stage.data() as *mut egui::Color32; - for color in color_iter { - unsafe { - ptr::write(ptr, color); - ptr = ptr.offset(1); - } - } - stage - } }; let image_size = image_delta.image.size(); diff --git a/blade-graphics/Cargo.toml b/blade-graphics/Cargo.toml index dce2f0de..b13e2c26 100644 --- a/blade-graphics/Cargo.toml +++ b/blade-graphics/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "blade-graphics" -version = "0.6.0" +version = "0.7.0" edition = "2021" description = "Graphics abstraction for Blade" keywords = ["graphics"] @@ -12,7 +12,7 @@ repository = "https://github.com/kvark/blade" [dependencies] bitflags = { workspace = true } bytemuck = { workspace = true } -codespan-reporting = "0.11" +codespan-reporting = "0.12" hidden-trait = "0.1" log = { workspace = true } mint = { workspace = true } @@ -104,7 +104,7 @@ naga = { workspace = true, features = ["spv-out"] } slab = { workspace = true } [target.'cfg(any(gles, target_arch = "wasm32"))'.dependencies] -glow = "0.14" +glow = "0.16" naga = { workspace = true, features = ["glsl-out"] } [target.'cfg(all(gles, not(target_arch = "wasm32")))'.dependencies] diff --git a/blade-graphics/src/shader.rs b/blade-graphics/src/shader.rs index 6496e41a..ae2fbadf 100644 --- a/blade-graphics/src/shader.rs +++ b/blade-graphics/src/shader.rs @@ -74,10 +74,10 @@ impl super::Shader { } } - pub fn resolve_constants( - &self, + pub fn resolve_constants<'a>( + &'a self, constants: &super::PipelineConstants, - ) -> (naga::Module, Cow) { + ) -> (naga::Module, Cow<'a, naga::valid::ModuleInfo>) { let (module, info) = naga::back::pipeline_constants::process_overrides(&self.module, &self.info, constants) .unwrap(); diff --git a/blade-graphics/src/util.rs b/blade-graphics/src/util.rs index fee0cbdf..f7025810 100644 --- a/blade-graphics/src/util.rs +++ b/blade-graphics/src/util.rs @@ -42,14 +42,14 @@ pub fn emit_annotated_error(ann_err: &naga::WithSpan, filename: &st } impl super::TextureFormat { - pub fn block_info(&self) -> super::TexelBlockInfo { - fn uncompressed(size: u8) -> super::TexelBlockInfo { + pub const fn block_info(&self) -> super::TexelBlockInfo { + const fn uncompressed(size: u8) -> super::TexelBlockInfo { super::TexelBlockInfo { dimensions: (1, 1), size, } } - fn cx_bc(size: u8) -> super::TexelBlockInfo { + const fn cx_bc(size: u8) -> super::TexelBlockInfo { super::TexelBlockInfo { dimensions: (4, 4), size, @@ -112,7 +112,7 @@ impl super::TextureFormat { } impl super::TextureColor { - pub fn stencil_clear_value(&self) -> u32 { + pub const fn stencil_clear_value(&self) -> u32 { match self { crate::TextureColor::TransparentBlack => 0, crate::TextureColor::OpaqueBlack => !0, @@ -120,7 +120,7 @@ impl super::TextureColor { } } - pub fn depth_clear_value(&self) -> f32 { + pub const fn depth_clear_value(&self) -> f32 { match self { crate::TextureColor::TransparentBlack => 0.0, crate::TextureColor::OpaqueBlack => 0.0, diff --git a/blade-macros/Cargo.toml b/blade-macros/Cargo.toml index f3fb2122..fc849546 100644 --- a/blade-macros/Cargo.toml +++ b/blade-macros/Cargo.toml @@ -16,7 +16,7 @@ proc-macro2 = "1" quote = "1.0" [dev-dependencies] -blade-graphics = { version = "0.6", path = "../blade-graphics" } +blade-graphics = { version = "0.7", path = "../blade-graphics" } blade-asset = { version = "0.2", path = "../blade-asset" } bytemuck = { workspace = true } mint = { workspace = true } diff --git a/blade-render/Cargo.toml b/blade-render/Cargo.toml index 8af90a4a..3afe10c6 100644 --- a/blade-render/Cargo.toml +++ b/blade-render/Cargo.toml @@ -28,7 +28,7 @@ asset = [ [dependencies] base64 = { workspace = true, optional = true } bitflags = { workspace = true } -blade-graphics = { version = "0.6", path = "../blade-graphics" } +blade-graphics = { version = "0.7", path = "../blade-graphics" } blade-asset = { version = "0.2", path = "../blade-asset" } blade-macros = { version = "0.3", path = "../blade-macros" } bytemuck = { workspace = true } diff --git a/blade-util/Cargo.toml b/blade-util/Cargo.toml index 8745c90a..5a4725f5 100644 --- a/blade-util/Cargo.toml +++ b/blade-util/Cargo.toml @@ -10,7 +10,7 @@ repository = "https://github.com/kvark/blade" [lib] [dependencies] -blade-graphics = { version = "0.6", path = "../blade-graphics" } +blade-graphics = { version = "0.7", path = "../blade-graphics" } bytemuck = { workspace = true } log = { workspace = true } profiling = { workspace = true } diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index ab1adc31..103ba5c6 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,11 +1,13 @@ Changelog for *Blade* project -## blade-graphics-0.7 (TBD) +## blade-graphics-0.7 (27 Sep 2025) - graphics - pipeline constants API - allow buffer bindings for uniform data - supported MSAA samples are now returned in context `Capabilities` + - Vulkan: + - improve correctness of present synchronization ## blade-graphics-0.6, blade-util-0.2, blade-egui-0.6, blade-render-0.4, blade-0.3 (21 Dec 2024)