diff options
| author | HampusM <hampus@hampusmat.com> | 2026-08-26 18:27:01 +0200 |
|---|---|---|
| committer | HampusM <hampus@hampusmat.com> | 2026-08-26 18:27:01 +0200 |
| commit | 8c3249a7bc50960e7803f4c6c733256ef126cb39 (patch) | |
| tree | 82423536d827d81f0b26c2747f408bb7427b6469 /engine/src/ui/dear_imgui.rs | |
| parent | 7abe3894137f55aaa7aa0e0c491795342b6124bc (diff) | |
refactor(engine): make UpdateTexture rendering command not take Image
Diffstat (limited to 'engine/src/ui/dear_imgui.rs')
| -rw-r--r-- | engine/src/ui/dear_imgui.rs | 32 |
1 files changed, 13 insertions, 19 deletions
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::<Rgba<u8>, _>::new( - rect.data.as_slice(), - Dimens::<u32> { + 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::<u32> { 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, + }, }, }); } |
