diff options
Diffstat (limited to 'engine/src/ui/dear_imgui.rs')
| -rw-r--r-- | engine/src/ui/dear_imgui.rs | 50 |
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) |
