From bc6cdd13c9b332504645ca82491f31ad14f83952 Mon Sep 17 00:00:00 2001 From: iris <2+iris@noreply.localhost> Date: Sun, 13 Sep 2026 00:38:29 -0400 Subject: [PATCH] Decouple iris-core from winit --- Cargo.lock | 1 - core/Cargo.toml | 1 - core/src/render/mod.rs | 11 ++++++----- src/default/render.rs | 2 +- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0796ff1..78e9db3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1070,7 +1070,6 @@ dependencies = [ "fxhash", "image", "wgpu", - "winit", ] [[package]] diff --git a/core/Cargo.toml b/core/Cargo.toml index a85a26d..71edca5 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -4,7 +4,6 @@ version.workspace = true edition.workspace = true [dependencies] -winit = { workspace = true } wgpu = { workspace = true } bytemuck ={ workspace = true } image = { workspace = true } diff --git a/core/src/render/mod.rs b/core/src/render/mod.rs index 1695efa..3144a05 100644 --- a/core/src/render/mod.rs +++ b/core/src/render/mod.rs @@ -3,14 +3,13 @@ use std::num::NonZero; use crate::{ UiData, UiRenderState, render::{data::PrimitiveInstance, texture::GpuTextures, util::ArrBuf}, - util::HashMap, + util::{HashMap, Vec2}, }; use data::WindowUniform; use wgpu::{ util::{BufferInitDescriptor, DeviceExt}, *, }; -use winit::dpi::PhysicalSize; mod data; mod primitive; @@ -118,10 +117,12 @@ impl UiRenderNode { } } - pub fn resize(&mut self, size: &PhysicalSize, queue: &Queue) { + /// Updates the render target dimensions without depending on a window backend. + pub fn resize(&mut self, size: impl Into, queue: &Queue) { + let size = size.into(); let slice = &[WindowUniform { - width: size.width as f32, - height: size.height as f32, + width: size.x, + height: size.y, }]; queue.write_buffer(&self.window_buffer, 0, bytemuck::cast_slice(slice)); } diff --git a/src/default/render.rs b/src/default/render.rs index 625a9fa..970d44c 100644 --- a/src/default/render.rs +++ b/src/default/render.rs @@ -52,7 +52,7 @@ impl UiRenderer { self.config.width = size.width; self.config.height = size.height; self.surface.configure(&self.device, &self.config); - self.ui.resize(size, &self.queue); + self.ui.resize((size.width, size.height), &self.queue); } fn create_encoder(device: &Device) -> CommandEncoder {