diff options
Diffstat (limited to 'engine/src/ui/view/world.rs')
| -rw-r--r-- | engine/src/ui/view/world.rs | 47 |
1 files changed, 19 insertions, 28 deletions
diff --git a/engine/src/ui/view/world.rs b/engine/src/ui/view/world.rs index 2bf3ca5..3ea0611 100644 --- a/engine/src/ui/view/world.rs +++ b/engine/src/ui/view/world.rs @@ -38,8 +38,8 @@ pub struct State { spawning_entity: Option<Uid>, add_component_popup_state: Option<AddComponentPopupState>, - despawn_icon_tex: Option<dear_imgui_bindings::OwnedTextureData>, - warning_icon_tex: Option<dear_imgui_bindings::OwnedTextureData>, + despawn_icon_tex_id: Option<dear_imgui_bindings::ManagedTextureId>, + warning_icon_tex_id: Option<dear_imgui_bindings::ManagedTextureId>, } impl Default for State @@ -49,8 +49,8 @@ impl Default for State Self { spawning_entity: None, add_component_popup_state: None, - despawn_icon_tex: None, - warning_icon_tex: None, + despawn_icon_tex_id: None, + warning_icon_tex_id: None, } } } @@ -80,11 +80,11 @@ pub fn show( let State { spawning_entity, add_component_popup_state, - despawn_icon_tex, - warning_icon_tex, + despawn_icon_tex_id, + warning_icon_tex_id, } = &mut *state; - let despawn_icon_tex = despawn_icon_tex.get_or_insert_with(|| { + let despawn_icon_tex_id = *despawn_icon_tex_id.get_or_insert_with(|| { create_texture( dear_imgui_context, Image::from_reader( @@ -95,7 +95,7 @@ pub fn show( ) }); - let warning_icon_tex = warning_icon_tex.get_or_insert_with(|| { + let warning_icon_tex_id = *warning_icon_tex_id.get_or_insert_with(|| { create_texture( dear_imgui_context, Image::from_reader( @@ -129,8 +129,8 @@ pub fn show( create_entity_widgets( frame, add_component_popup_state, - despawn_icon_tex, - warning_icon_tex, + despawn_icon_tex_id, + warning_icon_tex_id, &ent_handle, world, &mut actions, @@ -150,7 +150,7 @@ pub fn show( fn create_texture( dear_imgui_context: &mut DearImguiContext, image: Image, -) -> dear_imgui_bindings::OwnedTextureData +) -> dear_imgui_bindings::ManagedTextureId { let image = image.into_rgba8(); @@ -164,11 +164,7 @@ fn create_texture( texture_data.set_data(image.as_bytes()); - texture_data.set_status(dear_imgui_bindings::TextureStatus::WantCreate); - - dear_imgui_context.register_texture(&mut texture_data); - - texture_data + dear_imgui_context.register_texture(texture_data) } fn create_spawn_button_widgets( @@ -206,8 +202,8 @@ fn create_spawn_button_widgets( fn create_entity_widgets( frame: &dear_imgui_bindings::Ui, add_component_popup_state: &mut Option<AddComponentPopupState>, - despawn_icon_tex: &mut dear_imgui_bindings::OwnedTextureData, - warning_icon_tex: &mut dear_imgui_bindings::OwnedTextureData, + despawn_icon_tex: dear_imgui_bindings::ManagedTextureId, + warning_icon_tex: dear_imgui_bindings::ManagedTextureId, ent_handle: &EntityHandle, world: &World, actions: &mut Actions, @@ -370,7 +366,7 @@ fn create_component_widgets( fn create_pair_component_widgets( frame: &dear_imgui_bindings::Ui, - warning_icon_tex: &mut dear_imgui_bindings::OwnedTextureData, + warning_icon_tex_id: dear_imgui_bindings::ManagedTextureId, ent_handle: &EntityHandle, pair_id: Uid, world: &World, @@ -446,7 +442,7 @@ fn create_pair_component_widgets( let Some(pair_data_ty) = pair_data_comp_info.type_reflection else { frame.same_line(); - frame.image(&mut **warning_icon_tex, [16.0, 16.0]); + frame.image(warning_icon_tex_id, [16.0, 16.0]); if frame.is_item_hovered() { frame.tooltip_text(format!( @@ -559,7 +555,7 @@ fn create_add_component_button_widget( fn create_despawn_button_widget( frame: &dear_imgui_bindings::Ui, - despawn_icon_tex: &mut dear_imgui_bindings::OwnedTextureData, + despawn_icon_tex: dear_imgui_bindings::ManagedTextureId, ent_handle: &EntityHandle, actions: &mut Actions, ) @@ -582,7 +578,7 @@ fn create_despawn_button_widget( if frame .image_button_config( &format!("ent_{}_despawn_button", ent_handle.uid()), - despawn_icon_tex.as_mut(), + despawn_icon_tex, [14.0, 14.0], ) .build() @@ -777,12 +773,7 @@ fn show_add_component_popup( add_component_popup_state.new_component.is_none(), ); - let add_text_size = frame.current_font().calc_text_size( - frame.clone_style().font_size_base(), - frame.content_region_avail_width(), - 0.0, - "Add", - ); + let add_text_size = frame.calc_text_size("Add"); if frame.button_with_size( "Add##add_component_popup_add_button", |
