Blending stuff

This commit is contained in:
2024-10-27 22:00:03 +01:00
parent 36375c2d15
commit a3e5cf7e4a
8 changed files with 579 additions and 357 deletions

View File

@@ -112,8 +112,8 @@ init_transform_gizmo :: () {
// Transform gizmo shader
{
vs := create_vertex_shader_from_source(engine.renderer, TRANSFORM_GIZMO_SHADER, "VS", mesh_data_types = .[.POSITION]);
ps := create_pixel_shader_from_source(engine.renderer, TRANSFORM_GIZMO_SHADER, "PS");
vs := create_vertex_shader_from_source(engine.renderer, "Transform Gizmo", TRANSFORM_GIZMO_SHADER, "VS", mesh_data_types = .[.POSITION]);
ps := create_pixel_shader_from_source(engine.renderer, "Transform Gizmo", TRANSFORM_GIZMO_SHADER, "PS");
engine.editor.transform_gizmo.pipeline = create_pipeline_state2(engine.renderer, vs, ps, blend_type=.OPAQUE);
}

View File

@@ -98,29 +98,31 @@ editor_ui :: () {
ui_set_next_size_x(.PCT, 1.0);
ui_tab_title_bar("ENTITIES");
for engine.current_scene.entities {
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_index);
} else {
clicked = ui_clickable_label(it.name, selected, it_index);
}
if clicked {
if !key_pressed(.CTRL) {
engine.editor.selected_entities.count = 0;
array_add(*engine.editor.selected_entities, it);
if engine.current_scene != null {
for engine.current_scene.entities {
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_index);
} else {
if selected {
array_unordered_remove_by_value(*engine.editor.selected_entities, it);
} else {
clicked = ui_clickable_label(it.name, selected, it_index);
}
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_space(0, 5);
}
}
ui_pop_parent();
@@ -141,7 +143,9 @@ editor_ui :: () {
state := ui_interactable_texture(get_texture_from_pass("UI Blend Pass"));
if state.left_mouse_down {
pick_scene_view_at(engine.editor.camera, .{state.normalized_local_mouse_coordinates.x, 1.0-state.normalized_local_mouse_coordinates.y});
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});
}
}