summaryrefslogtreecommitdiff
path: root/engine/src/ui
diff options
context:
space:
mode:
Diffstat (limited to 'engine/src/ui')
-rw-r--r--engine/src/ui/dear_imgui.rs32
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,
+ },
},
});
}