summaryrefslogtreecommitdiff
path: root/engine/src/ui/dear_imgui.rs
diff options
context:
space:
mode:
Diffstat (limited to 'engine/src/ui/dear_imgui.rs')
-rw-r--r--engine/src/ui/dear_imgui.rs50
1 files changed, 26 insertions, 24 deletions
diff --git a/engine/src/ui/dear_imgui.rs b/engine/src/ui/dear_imgui.rs
index c5f7ce2..0047394 100644
--- a/engine/src/ui/dear_imgui.rs
+++ b/engine/src/ui/dear_imgui.rs
@@ -173,21 +173,20 @@ impl ecs::extension::Extension for Extension
);
}
- unsafe {
- context.ctx.font_atlas().add_font_from_memory_ttf(
+ context.ctx.font_atlas().add_font(&[unsafe {
+ dear_imgui_rs::FontSource::ttf_data_with_size(
include_bytes!("../../res/FiraMono-Regular.ttf"),
14.0,
- Some(
- &dear_imgui_rs::FontConfig::default()
- .name("FiraMono-Regular.ttf")
- .font_loader_flags(
- dear_imgui_rs::FontLoaderFlags::BITMAP
- | dear_imgui_rs::FontLoaderFlags::FORCE_AUTOHINT,
- ),
- ),
- None,
- );
- }
+ )
+ .with_config(
+ dear_imgui_rs::FontConfig::default()
+ .name("FiraMono-Regular.ttf")
+ .font_loader_flags(
+ dear_imgui_rs::FontLoaderFlags::BITMAP
+ | dear_imgui_rs::FontLoaderFlags::FORCE_AUTOHINT,
+ ),
+ )
+ }]);
collector.add_sole(context).ok();
@@ -521,7 +520,7 @@ fn add_drawing_render_pass(
texture_id_lookup,
} = context;
- let mut render_frame = ctx.render();
+ let render_frame = ctx.render();
let mut tex_feedbacks = Vec::with_capacity(render_frame.texture_requests().len());
@@ -570,7 +569,8 @@ fn add_drawing_render_pass(
Ok(texture_feedback) => texture_feedback,
Err(
dear_imgui_rs::TextureFeedbackError::UploadForDestroy
- | dear_imgui_rs::TextureFeedbackError::DestroyForUpload,
+ | dear_imgui_rs::TextureFeedbackError::DestroyForUpload
+ | dear_imgui_rs::TextureFeedbackError::NullTextureId,
) => unreachable!(),
};
@@ -627,7 +627,8 @@ fn add_drawing_render_pass(
Ok(texture_feedback) => texture_feedback,
Err(
dear_imgui_rs::TextureFeedbackError::UploadForDestroy
- | dear_imgui_rs::TextureFeedbackError::DestroyForUpload,
+ | dear_imgui_rs::TextureFeedbackError::DestroyForUpload
+ | dear_imgui_rs::TextureFeedbackError::NullTextureId,
) => unreachable!(),
};
@@ -660,7 +661,8 @@ fn add_drawing_render_pass(
Ok(texture_feedback) => texture_feedback,
Err(
dear_imgui_rs::TextureFeedbackError::UploadForDestroy
- | dear_imgui_rs::TextureFeedbackError::DestroyForUpload,
+ | dear_imgui_rs::TextureFeedbackError::DestroyForUpload
+ | dear_imgui_rs::TextureFeedbackError::NullTextureId,
) => unreachable!(),
};
@@ -669,11 +671,11 @@ fn add_drawing_render_pass(
}
}
- render_frame
+ let frame = render_frame
.reconcile_texture_feedback(tex_feedbacks)
.with_context(|| "Failed to reconcile texture feedback")?;
- let draw_data = render_frame.draw_data();
+ let draw_data = frame.draw_data();
let [display_width, display_height] = draw_data.display_size();
@@ -959,7 +961,7 @@ mod inner_context_wrapper
{
ctx: Pin<Box<dear_imgui_rs::Context>>,
frame: *mut dear_imgui_rs::Ui,
- _renderer_consumer: dear_imgui_rs::RendererConsumer,
+ renderer_consumer: dear_imgui_rs::SynchronousRendererConsumer,
}
impl InnerContextWrapper
@@ -974,12 +976,12 @@ mod inner_context_wrapper
ctx.io_mut()
.set_backend_flags(dear_imgui_rs::BackendFlags::RENDERER_HAS_TEXTURES);
- let renderer_consumer = ctx.create_renderer_consumer().unwrap();
+ let renderer_consumer = ctx.create_synchronous_renderer_consumer().unwrap();
Self {
ctx,
frame: null_mut(),
- _renderer_consumer: renderer_consumer,
+ renderer_consumer,
}
}
@@ -1014,9 +1016,9 @@ mod inner_context_wrapper
// self.ctx.create_renderer_consumer().unwrap()
// }
- pub fn render(&mut self) -> dear_imgui_rs::RenderedFrame<'_>
+ pub fn render(&mut self) -> dear_imgui_rs::PendingFrame<'_>
{
- self.ctx.render()
+ self.ctx.render(&self.renderer_consumer)
}
pub fn new_frame(&mut self)