UI Windows slowly working
This commit is contained in:
@@ -32,8 +32,55 @@ pick_scene_view_at :: (camera: Camera, coordinates: Vector2) {
|
||||
}
|
||||
|
||||
editor_ui :: () {
|
||||
ui_window_begin("Entities");
|
||||
ui_label("TESTING ONE TWO", .{0,0.7,0,1});
|
||||
// Scene picking
|
||||
if key_down(.MOUSE_LEFT) {
|
||||
if engine.current_scene != null {
|
||||
coords := engine.input.normalized_viewport_mouse_position;
|
||||
pick_scene_view_at(engine.editor.camera, .{coords.x, 1.0-coords.y});
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
ui_window_begin("Create", 100, 5, 200, 200);
|
||||
new_entity := editor_ui_entity_creation();
|
||||
if new_entity != null {
|
||||
set_position(*new_entity.transform, engine.editor.camera.position + engine.editor.camera.forward * 20.0);
|
||||
engine.editor.selected_entities.count = 0;
|
||||
array_add(*engine.editor.selected_entities, new_entity);
|
||||
}
|
||||
|
||||
ui_window_end();
|
||||
}
|
||||
|
||||
ui_window_begin("Entities", 1, 5, 200, 600);
|
||||
if engine.current_scene != null {
|
||||
for engine.current_scene.entities {
|
||||
if it.flags & .DELETED continue;
|
||||
|
||||
ui_set_next_padding(20);
|
||||
clicked := false;
|
||||
selected := array_find(engine.editor.selected_entities, it);
|
||||
if it.name.count == 0 {
|
||||
clicked = ui_clickable_label(tprint("%", it.type), selected, it.id);
|
||||
} else {
|
||||
clicked = ui_clickable_label(it.name, selected, it.id);
|
||||
}
|
||||
|
||||
if clicked {
|
||||
if !key_pressed(.CTRL) {
|
||||
engine.editor.selected_entities.count = 0;
|
||||
array_add(*engine.editor.selected_entities, it);
|
||||
} else {
|
||||
if selected {
|
||||
array_unordered_remove_by_value(*engine.editor.selected_entities, it);
|
||||
} else {
|
||||
array_add(*engine.editor.selected_entities, it);
|
||||
}
|
||||
}
|
||||
}
|
||||
//ui_space(0, 5);
|
||||
}
|
||||
}
|
||||
ui_window_end();
|
||||
|
||||
ui_full_size_background();
|
||||
@@ -100,34 +147,34 @@ editor_ui :: () {
|
||||
ui_set_next_size_x(.PCT, 1.0);
|
||||
ui_tab_title_bar("ENTITIES");
|
||||
|
||||
if engine.current_scene != null {
|
||||
for engine.current_scene.entities {
|
||||
if it.flags & .DELETED continue;
|
||||
//if engine.current_scene != null {
|
||||
// for engine.current_scene.entities {
|
||||
// if it.flags & .DELETED continue;
|
||||
|
||||
ui_set_next_padding(20);
|
||||
clicked := false;
|
||||
selected := array_find(engine.editor.selected_entities, it);
|
||||
if it.name.count == 0 {
|
||||
clicked = ui_clickable_label(tprint("%", it.type), selected, it.id);
|
||||
} else {
|
||||
clicked = ui_clickable_label(it.name, selected, it.id);
|
||||
}
|
||||
// ui_set_next_padding(20);
|
||||
// clicked := false;
|
||||
// selected := array_find(engine.editor.selected_entities, it);
|
||||
// if it.name.count == 0 {
|
||||
// clicked = ui_clickable_label(tprint("%", it.type), selected, it.id);
|
||||
// } else {
|
||||
// clicked = ui_clickable_label(it.name, selected, it.id);
|
||||
// }
|
||||
|
||||
if clicked {
|
||||
if !key_pressed(.CTRL) {
|
||||
engine.editor.selected_entities.count = 0;
|
||||
array_add(*engine.editor.selected_entities, it);
|
||||
} else {
|
||||
if selected {
|
||||
array_unordered_remove_by_value(*engine.editor.selected_entities, it);
|
||||
} else {
|
||||
array_add(*engine.editor.selected_entities, it);
|
||||
}
|
||||
}
|
||||
}
|
||||
//ui_space(0, 5);
|
||||
}
|
||||
}
|
||||
// if clicked {
|
||||
// if !key_pressed(.CTRL) {
|
||||
// engine.editor.selected_entities.count = 0;
|
||||
// array_add(*engine.editor.selected_entities, it);
|
||||
// } else {
|
||||
// if selected {
|
||||
// array_unordered_remove_by_value(*engine.editor.selected_entities, it);
|
||||
// } else {
|
||||
// array_add(*engine.editor.selected_entities, it);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// //ui_space(0, 5);
|
||||
// }
|
||||
//}
|
||||
}
|
||||
ui_pop_parent();
|
||||
}
|
||||
@@ -174,32 +221,27 @@ editor_ui :: () {
|
||||
}
|
||||
ui_pop_parent();
|
||||
|
||||
ui_set_next_size_x(.PCT, 1.0);
|
||||
ui_set_next_size_y(.PCT, 0.65);
|
||||
//ui_set_next_size_x(.PCT, 1.0);
|
||||
//ui_set_next_size_y(.PCT, 0.65);
|
||||
|
||||
state := ui_interactable_texture(get_texture_from_pass("UI Blend Pass"));
|
||||
engine.input.viewport_mouse_position = state.local_mouse_coordinates;
|
||||
engine.input.normalized_viewport_mouse_position = state.normalized_local_mouse_coordinates;
|
||||
if state.left_mouse_down {
|
||||
if engine.current_scene != null {
|
||||
pick_scene_view_at(engine.editor.camera, .{state.normalized_local_mouse_coordinates.x, 1.0-state.normalized_local_mouse_coordinates.y});
|
||||
}
|
||||
//state := ui_interactable_texture(get_texture_from_pass("UI Blend Pass"));
|
||||
//engine.input.viewport_mouse_position = state.local_mouse_coordinates;
|
||||
//engine.input.normalized_viewport_mouse_position = state.normalized_local_mouse_coordinates;
|
||||
|
||||
|
||||
}
|
||||
//engine.editor.mouse_viewport_state = state;
|
||||
|
||||
engine.editor.mouse_viewport_state = state;
|
||||
|
||||
ui_set_next_size_x(.PCT, 1.0);
|
||||
ui_set_next_size_y(.PCT, 0.25);
|
||||
ui_tab_title_bar("Create entities");
|
||||
{
|
||||
new_entity := editor_ui_entity_creation();
|
||||
if new_entity != null {
|
||||
set_position(*new_entity.transform, engine.editor.camera.position + engine.editor.camera.forward * 20.0);
|
||||
engine.editor.selected_entities.count = 0;
|
||||
array_add(*engine.editor.selected_entities, new_entity);
|
||||
}
|
||||
}
|
||||
//ui_set_next_size_x(.PCT, 1.0);
|
||||
//ui_set_next_size_y(.PCT, 0.25);
|
||||
//ui_tab_title_bar("Create entities");
|
||||
//{
|
||||
// new_entity := editor_ui_entity_creation();
|
||||
// if new_entity != null {
|
||||
// set_position(*new_entity.transform, engine.editor.camera.position + engine.editor.camera.forward * 20.0);
|
||||
// engine.editor.selected_entities.count = 0;
|
||||
// array_add(*engine.editor.selected_entities, new_entity);
|
||||
// }
|
||||
//}
|
||||
}
|
||||
ui_pop_parent();
|
||||
|
||||
@@ -262,7 +304,10 @@ base_editor_update :: () {
|
||||
engine.editor.transform_gizmo.uniform_gizmo_scale = gizmo_scale;
|
||||
set_scale(*engine.editor.transform_gizmo.transform, .{gizmo_scale, gizmo_scale, gizmo_scale});
|
||||
|
||||
coordinates := Vector2.{engine.editor.mouse_viewport_state.normalized_local_mouse_coordinates.x, 1.0 - engine.editor.mouse_viewport_state.normalized_local_mouse_coordinates.y};
|
||||
coordinates := engine.input.normalized_viewport_mouse_position;
|
||||
coordinates.y = 1.0 - coordinates.y;
|
||||
|
||||
//coordinates := Vector2.{engine.editor.mouse_viewport_state.normalized_local_mouse_coordinates.x, 1.0 - engine.editor.mouse_viewport_state.normalized_local_mouse_coordinates.y};
|
||||
ray := normalized_screen_to_ray_v2(engine.editor.camera, coordinates);
|
||||
|
||||
if update_transform_gizmo(ray, coordinates) {
|
||||
|
||||
Reference in New Issue
Block a user