From 8c3249a7bc50960e7803f4c6c733256ef126cb39 Mon Sep 17 00:00:00 2001 From: HampusM Date: Wed, 26 Aug 2026 18:27:01 +0200 Subject: refactor(engine): make UpdateTexture rendering command not take Image --- engine/src/ui/dear_imgui.rs | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) (limited to 'engine/src/ui/dear_imgui.rs') diff --git a/engine/src/ui/dear_imgui.rs b/engine/src/ui/dear_imgui.rs index fbe4ed8..6bf075b 100644 --- a/engine/src/ui/dear_imgui.rs +++ b/engine/src/ui/dear_imgui.rs @@ -1,5 +1,4 @@ use std::collections::HashMap; -use std::hint::cold_path; use std::path::{Path, PathBuf}; use std::sync::atomic::{AtomicU64, Ordering}; use std::sync::LazyLock; @@ -69,6 +68,7 @@ use crate::rendering::{ MeshUsage, RenderPass, RenderPasses, + RgbaTextureDataType, ScissorBox, Surface, SurfaceId, @@ -610,27 +610,21 @@ fn add_drawing_render_pass( render_pass.commands.reserve(rects.len()); for rect in rects { - let Ok(rect_image) = - Image::from_pixels(ImagePixelBuffer::, _>::new( - rect.data.as_slice(), - Dimens:: { + render_pass.commands.push(RenderingCommand::UpdateTexture { + obj_id: *texture_object_id, + pixels: rect.data.clone().into_boxed_slice(), + pixel_data_format: crate::rendering::TexturePixelDataFormat::Rgba( + RgbaTextureDataType::UnsignedByte, + ), + update: TextureUpdate::Texture2D { + size: Dimens:: { width: rect.rect.w.into(), height: rect.rect.h.into(), }, - )) - else { - cold_path(); - tracing::error!("Texture update rect size is incorrect"); - continue; - }; - - render_pass.commands.push(RenderingCommand::UpdateTexture { - obj_id: *texture_object_id, - image: rect_image, - update: TextureUpdate::Texture2D, - offset: Vec2 { - x: rect.rect.x as u32, - y: rect.rect.y as u32, + offset: Vec2 { + x: rect.rect.x as u32, + y: rect.rect.y as u32, + }, }, }); } -- cgit v1.2.3-18-g5258