summaryrefslogtreecommitdiff
path: root/engine/src/ui/view/world.rs
diff options
context:
space:
mode:
Diffstat (limited to 'engine/src/ui/view/world.rs')
-rw-r--r--engine/src/ui/view/world.rs47
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",