From c6e1450d880bd2ec3896809ea3c171196d9c76b0 Mon Sep 17 00:00:00 2001 From: jacob Date: Mon, 20 Jan 2025 09:29:34 -0600 Subject: [PATCH] rename viewport -> ui --- src/user.c | 194 ++++++++++++++++++++++++++--------------------------- 1 file changed, 97 insertions(+), 97 deletions(-) diff --git a/src/user.c b/src/user.c index 0be1fa71..eb5f762f 100644 --- a/src/user.c +++ b/src/user.c @@ -54,7 +54,7 @@ GLOBAL struct { struct renderer_cmd_buffer *ui_cmd_buffer; struct renderer_cmd_buffer *final_cmd_buffer; struct renderer_cmd_buffer *backbuffer_cmd_buffer; - struct xform world_view; + struct xform world_to_ui_xf; struct blend_tick *head_free_blend_tick; struct blend_tick *head_blend_tick; @@ -77,10 +77,10 @@ GLOBAL struct { f64 dt; struct v2 screen_size; struct v2 screen_cursor; - struct v2 viewport_screen_offset; - struct v2 viewport_size; - struct v2 viewport_center; - struct v2 viewport_cursor; + struct v2 ui_screen_offset; + struct v2 ui_size; + struct v2 ui_center; + struct v2 ui_cursor; struct v2 world_cursor; } G = ZI, DEBUG_ALIAS(G, G_user); @@ -154,7 +154,7 @@ struct user_startup_receipt user_startup(struct work_startup_receipt *work_sr, G.sys_events_arena = arena_alloc(GIGABYTE(64)); world_alloc(&G.world); - G.world_view = XFORM_TRS(.t = V2(0, 0), .r = 0, .s = V2(PIXELS_PER_UNIT, PIXELS_PER_UNIT)); + G.world_to_ui_xf = XFORM_TRS(.t = V2(0, 0), .r = 0, .s = V2(PIXELS_PER_UNIT, PIXELS_PER_UNIT)); G.world_cmd_buffer = renderer_cmd_buffer_alloc(); G.ui_cmd_buffer = renderer_cmd_buffer_alloc(); G.final_cmd_buffer = renderer_cmd_buffer_alloc(); @@ -410,9 +410,9 @@ INTERNAL void debug_draw_xform(struct xform xf, u32 color_x, u32 color_y) f32 thickness = 2.f; f32 arrowhead_len = 15.f; - struct v2 pos = xform_mul_v2(G.world_view, xf.og); - struct v2 x_ray = xform_basis_mul_v2(G.world_view, xform_get_right(xf)); - struct v2 y_ray = xform_basis_mul_v2(G.world_view, xform_get_up(xf)); + struct v2 pos = xform_mul_v2(G.world_to_ui_xf, xf.og); + struct v2 x_ray = xform_basis_mul_v2(G.world_to_ui_xf, xform_get_right(xf)); + struct v2 y_ray = xform_basis_mul_v2(G.world_to_ui_xf, xform_get_up(xf)); f32 ray_scale = 1; x_ray = v2_mul(x_ray, ray_scale); @@ -438,8 +438,8 @@ INTERNAL void debug_draw_movement(struct entity *ent) struct xform xf = entity_get_xform(ent); struct v2 velocity = ent->linear_velocity; - struct v2 pos = xform_mul_v2(G.world_view, xf.og); - struct v2 vel_ray = xform_basis_mul_v2(G.world_view, velocity); + struct v2 pos = xform_mul_v2(G.world_to_ui_xf, xf.og); + struct v2 vel_ray = xform_basis_mul_v2(G.world_to_ui_xf, velocity); draw_arrow_ray(G.ui_cmd_buffer, pos, vel_ray, thickness, arrow_len, color_vel); } @@ -642,10 +642,10 @@ INTERNAL void user_update(void) b32 pressed = event->kind == SYS_EVENT_KIND_BUTTON_DOWN; #if 0 b32 out_of_bounds = button >= SYS_BTN_M1 && button <= SYS_BTN_M5 && - (G.viewport_cursor.x < 0 || - G.viewport_cursor.y < 0 || - G.viewport_cursor.x > G.viewport_size.x || - G.viewport_cursor.y > G.viewport_size.y); + (G.ui_cursor.x < 0 || + G.ui_cursor.y < 0 || + G.ui_cursor.x > G.ui_size.x || + G.ui_cursor.y > G.ui_size.y); #else b32 out_of_bounds = false; #endif @@ -759,16 +759,16 @@ INTERNAL void user_update(void) } /* ========================== * - * Update viewport from camera + * Update ui from camera * ========================== */ - /* Calculate screen viewport dimensions */ + /* Calculate ui dimensions */ if (G.debug_camera) { - G.viewport_size = G.screen_size; - G.viewport_screen_offset = V2(0, 0); + G.ui_size = G.screen_size; + G.ui_screen_offset = V2(0, 0); } else { - /* Determine viewport size by camera & window dimensions */ + /* Determine ui size by camera & window dimensions */ f32 aspect_ratio = 1.0; { struct xform quad_xf = xform_mul(entity_get_xform(active_camera), active_camera->camera_quad_xform); @@ -784,35 +784,35 @@ INTERNAL void user_update(void) } else { height = math_ceil(width / aspect_ratio); } - G.viewport_size = V2(width, height); + G.ui_size = V2(width, height); - /* Center viewport in window */ + /* Center ui in window */ f32 x = 0; f32 y = 0; x = math_round(G.screen_size.x / 2 - width / 2); y = math_round(G.screen_size.y / 2 - height / 2); - G.viewport_screen_offset = V2(x, y); + G.ui_screen_offset = V2(x, y); } - G.viewport_center = v2_mul(G.viewport_size, 0.5); - G.viewport_cursor = v2_sub(G.screen_cursor, G.viewport_screen_offset); + G.ui_center = v2_mul(G.ui_size, 0.5); + G.ui_cursor = v2_sub(G.screen_cursor, G.ui_screen_offset); /* ========================== * * Update view from camera * ========================== */ if (G.debug_camera) { - G.world_view = xform_basis_with_rotation_world(G.world_view, 0); + G.world_to_ui_xf = xform_basis_with_rotation_world(G.world_to_ui_xf, 0); /* Pan view */ if (G.bind_states[USER_BIND_KIND_PAN].is_held) { if (!G.debug_camera_panning) { - G.debug_camera_pan_start = xform_invert_mul_v2(G.world_view, G.viewport_cursor); + G.debug_camera_pan_start = xform_invert_mul_v2(G.world_to_ui_xf, G.ui_cursor); } G.debug_camera_panning = true; - struct v2 offset = v2_sub(G.debug_camera_pan_start, xform_invert_mul_v2(G.world_view, G.viewport_cursor)); - G.world_view = xform_translated(G.world_view, v2_neg(offset)); - G.debug_camera_pan_start = xform_invert_mul_v2(G.world_view, G.viewport_cursor); + struct v2 offset = v2_sub(G.debug_camera_pan_start, xform_invert_mul_v2(G.world_to_ui_xf, G.ui_cursor)); + G.world_to_ui_xf = xform_translated(G.world_to_ui_xf, v2_neg(offset)); + G.debug_camera_pan_start = xform_invert_mul_v2(G.world_to_ui_xf, G.ui_cursor); } else { G.debug_camera_panning = false; } @@ -823,10 +823,10 @@ INTERNAL void user_update(void) /* Zoom to cursor */ f32 zoom_rate = 2; f32 zoom = math_pow(zoom_rate, input_zooms); - struct v2 world_cursor = xform_invert_mul_v2(G.world_view, G.viewport_cursor); - G.world_view = xform_translated(G.world_view, world_cursor); - G.world_view = xform_scaled(G.world_view, V2(zoom, zoom)); - G.world_view = xform_translated(G.world_view, v2_neg(world_cursor)); + struct v2 world_cursor = xform_invert_mul_v2(G.world_to_ui_xf, G.ui_cursor); + G.world_to_ui_xf = xform_translated(G.world_to_ui_xf, world_cursor); + G.world_to_ui_xf = xform_scaled(G.world_to_ui_xf, V2(zoom, zoom)); + G.world_to_ui_xf = xform_translated(G.world_to_ui_xf, v2_neg(world_cursor)); } } else { struct xform xf = entity_get_xform(active_camera); @@ -835,7 +835,7 @@ INTERNAL void user_update(void) f32 rot = xform_get_rotation(xf); /* Scale view into viewport based on camera size */ - struct v2 size = G.viewport_size; + struct v2 size = G.ui_size; { struct xform quad_xf = xform_mul(xf, active_camera->camera_quad_xform); struct v2 camera_size = xform_get_scale(quad_xf); @@ -846,20 +846,20 @@ INTERNAL void user_update(void) f32 scale = min_f32(size.x, size.y); struct trs trs = TRS( - .t = v2_sub(G.viewport_center, center), + .t = v2_sub(G.ui_center, center), .r = rot, .s = V2(scale, scale) ); struct v2 pivot = center; - G.world_view = XFORM_IDENT; - G.world_view = xform_translated(G.world_view, pivot); - G.world_view = xform_translated(G.world_view, trs.t); - G.world_view = xform_rotated(G.world_view, trs.r); - G.world_view = xform_scaled(G.world_view, trs.s); - G.world_view = xform_translated(G.world_view, v2_neg(pivot)); + G.world_to_ui_xf = XFORM_IDENT; + G.world_to_ui_xf = xform_translated(G.world_to_ui_xf, pivot); + G.world_to_ui_xf = xform_translated(G.world_to_ui_xf, trs.t); + G.world_to_ui_xf = xform_rotated(G.world_to_ui_xf, trs.r); + G.world_to_ui_xf = xform_scaled(G.world_to_ui_xf, trs.s); + G.world_to_ui_xf = xform_translated(G.world_to_ui_xf, v2_neg(pivot)); } - G.world_cursor = xform_invert_mul_v2(G.world_view, G.viewport_cursor); + G.world_cursor = xform_invert_mul_v2(G.world_to_ui_xf, G.ui_cursor); /* ========================== * * Update listener from view @@ -867,8 +867,8 @@ INTERNAL void user_update(void) { struct v2 up = V2(0, -1); - struct v2 listener_pos = xform_invert_mul_v2(G.world_view, G.viewport_center); - struct v2 listener_dir = v2_norm(xform_basis_invert_mul_v2(G.world_view, up)); + struct v2 listener_pos = xform_invert_mul_v2(G.world_to_ui_xf, G.ui_center); + struct v2 listener_dir = v2_norm(xform_basis_invert_mul_v2(G.world_to_ui_xf, up)); mixer_set_listener(listener_pos, listener_dir); } @@ -880,11 +880,11 @@ INTERNAL void user_update(void) f32 thickness = 2; u32 color = RGBA_32(0x3f, 0x3f, 0x3f, 0xFF); - struct v2 offset = v2_neg(xform_mul_v2(G.world_view, V2(0, 0))); - f32 spacing = xform_get_scale(G.world_view).x; + struct v2 offset = v2_neg(xform_mul_v2(G.world_to_ui_xf, V2(0, 0))); + f32 spacing = xform_get_scale(G.world_to_ui_xf).x; - struct v2 pos = xform_invert_mul_v2(G.world_view, V2(0, 0)); - struct v2 size = xform_basis_invert_mul_v2(G.world_view, G.viewport_size); + struct v2 pos = xform_invert_mul_v2(G.world_to_ui_xf, V2(0, 0)); + struct v2 size = xform_basis_invert_mul_v2(G.world_to_ui_xf, G.ui_size); draw_grid(G.world_cmd_buffer, RECT_FROM_V2(pos, size), color, thickness, spacing, offset); } @@ -1014,9 +1014,9 @@ INTERNAL void user_update(void) struct sprite_sheet *sheet = sprite_sheet_from_tag_async(sprite_frame_scope, ent->sprite); struct sprite_sheet_slice slice = sprite_sheet_get_slice(sheet, STR("attach.wep"), ent->animation_frame); struct v2 start = xform_mul_v2(sprite_xform, slice.center); - start = xform_mul_v2(G.world_view, start); + start = xform_mul_v2(G.world_to_ui_xf, start); struct v2 end = v2_add(xf.og, ent->control.focus); - end = xform_mul_v2(G.world_view, end); + end = xform_mul_v2(G.world_to_ui_xf, end); draw_arrow_line(G.ui_cmd_buffer, start, end, 3, 10, RGBA_32_F(1, 1, 1, 0.5)); } @@ -1041,12 +1041,12 @@ INTERNAL void user_update(void) struct sprite_sheet_slice slice = group->frame_slices[(ent->animation_frame * group->per_frame_count) + j]; struct v2 center = xform_mul_v2(sprite_xform, slice.center); - center = xform_mul_v2(G.world_view, center); + center = xform_mul_v2(G.world_to_ui_xf, center); if (!slice.has_ray) { struct quad quad = quad_from_rect(slice.rect); quad = xform_mul_quad(sprite_xform, quad); - quad = xform_mul_quad(G.world_view, quad); + quad = xform_mul_quad(G.world_to_ui_xf, quad); draw_quad_line(G.ui_cmd_buffer, quad, 2, quad_color); } @@ -1054,7 +1054,7 @@ INTERNAL void user_update(void) if (slice.has_ray) { struct v2 ray = xform_basis_mul_v2(sprite_xform, slice.dir); - ray = xform_basis_mul_v2(G.world_view, ray); + ray = xform_basis_mul_v2(G.world_to_ui_xf, ray); ray = v2_with_len(ray, 25); draw_arrow_ray(G.ui_cmd_buffer, center, ray, 2, 10, ray_color); } @@ -1072,12 +1072,12 @@ INTERNAL void user_update(void) /* Draw collider using support points */ //u32 detail = 64; u32 detail = 512; - draw_collider_line(G.ui_cmd_buffer, G.world_view, collider, xf, thickness, color, detail); + draw_collider_line(G.ui_cmd_buffer, G.world_to_ui_xf, collider, xf, thickness, color, detail); } { /* Draw collider shape points */ for (u32 i = 0; i < collider.count; ++i) { - struct v2 p = xform_mul_v2(xform_mul(G.world_view, xf), collider.points[i]); + struct v2 p = xform_mul_v2(xform_mul(G.world_to_ui_xf, xf), collider.points[i]); draw_circle(G.ui_cmd_buffer, p, 3, COLOR_BLUE, 10); } } @@ -1085,15 +1085,15 @@ INTERNAL void user_update(void) /* Draw upwards line for circle */ struct v2 start = xf.og; struct v2 end = collider_get_support_point(&collider, xf, v2_neg(xf.by)).p; - start = xform_mul_v2(G.world_view, start); - end = xform_mul_v2(G.world_view, end); + start = xform_mul_v2(G.world_to_ui_xf, start); + end = xform_mul_v2(G.world_to_ui_xf, end); draw_line(G.ui_cmd_buffer, start, end, thickness, color); } #if 0 /* Draw support point at focus dir */ { struct v2 p = collider_support_point(&collider, xf, ent->control.focus); - p = xform_mul_v2(G.world_view, p); + p = xform_mul_v2(G.world_to_ui_xf, p); draw_circle(G.ui_cmd_buffer, p, 3, COLOR_RED, 10); } #endif @@ -1126,7 +1126,7 @@ INTERNAL void user_update(void) u32 color = RGBA_32_F(1, 1, 0, 0.50); //struct v2 point = xform_mul_v2(e0_xf, contact.p0_local); //struct v2 point = contact.p0_initial_world; - draw_circle(G.ui_cmd_buffer, xform_mul_v2(G.world_view, dbg_pt), radius, color, 10); + draw_circle(G.ui_cmd_buffer, xform_mul_v2(G.world_to_ui_xf, dbg_pt), radius, color, 10); } /* Draw normal */ { @@ -1134,8 +1134,8 @@ INTERNAL void user_update(void) f32 len = 0.1f; f32 arrow_thickness = 2; f32 arrow_height = 5; - struct v2 start = xform_mul_v2(G.world_view, dbg_pt); - struct v2 end = xform_mul_v2(G.world_view, v2_add(dbg_pt, v2_mul(v2_norm(data->normal), len))); + struct v2 start = xform_mul_v2(G.world_to_ui_xf, dbg_pt); + struct v2 end = xform_mul_v2(G.world_to_ui_xf, v2_add(dbg_pt, v2_mul(v2_norm(data->normal), len))); draw_arrow_line(G.ui_cmd_buffer, start, end, arrow_thickness, arrow_height, color); } #if 0 @@ -1166,7 +1166,7 @@ INTERNAL void user_update(void) FMT_UINT(data->num_points)); - draw_text(G.ui_cmd_buffer, disp_font, v2_add(v2_round(xform_mul_v2(G.world_view, dbg_pt)), V2(0, offset_px)), text); + draw_text(G.ui_cmd_buffer, disp_font, v2_add(v2_round(xform_mul_v2(G.world_to_ui_xf, dbg_pt)), V2(0, offset_px)), text); } } #endif @@ -1191,8 +1191,8 @@ INTERNAL void user_update(void) { f32 radius = 4; u32 color = RGBA_32_F(1, 1, 0, 0.5); - struct v2 a = xform_mul_v2(G.world_view, data->closest0); - struct v2 b = xform_mul_v2(G.world_view, data->closest1); + struct v2 a = xform_mul_v2(G.world_to_ui_xf, data->closest0); + struct v2 b = xform_mul_v2(G.world_to_ui_xf, data->closest1); draw_circle(G.ui_cmd_buffer, a, radius, color, 10); draw_circle(G.ui_cmd_buffer, b, radius, color, 10); } @@ -1209,27 +1209,27 @@ INTERNAL void user_update(void) u32 color_a_clipped = RGBA_32_F(1, 0, 0, 1); u32 color_b_clipped = RGBA_32_F(0, 1, 0, 1); { - struct v2 a = xform_mul_v2(G.world_view, collider_res.a0); - struct v2 b = xform_mul_v2(G.world_view, collider_res.b0); + struct v2 a = xform_mul_v2(G.world_to_ui_xf, collider_res.a0); + struct v2 b = xform_mul_v2(G.world_to_ui_xf, collider_res.b0); draw_line(G.ui_cmd_buffer, a, b, thickness, color_line); draw_circle(G.ui_cmd_buffer, a, radius, color_a, 10); draw_circle(G.ui_cmd_buffer, b, radius, color_b, 10); - struct v2 a_clipped = xform_mul_v2(G.world_view, collider_res.a0_clipped); - struct v2 b_clipped = xform_mul_v2(G.world_view, collider_res.b0_clipped); + struct v2 a_clipped = xform_mul_v2(G.world_to_ui_xf, collider_res.a0_clipped); + struct v2 b_clipped = xform_mul_v2(G.world_to_ui_xf, collider_res.b0_clipped); draw_line(G.ui_cmd_buffer, a_clipped, b_clipped, thickness, color_line_clipped); draw_circle(G.ui_cmd_buffer, a_clipped, radius, color_a_clipped, 10); draw_circle(G.ui_cmd_buffer, b_clipped, radius, color_b_clipped, 10); } { - struct v2 a = xform_mul_v2(G.world_view, collider_res.a1); - struct v2 b = xform_mul_v2(G.world_view, collider_res.b1); + struct v2 a = xform_mul_v2(G.world_to_ui_xf, collider_res.a1); + struct v2 b = xform_mul_v2(G.world_to_ui_xf, collider_res.b1); draw_line(G.ui_cmd_buffer, a, b, thickness, color_line); draw_circle(G.ui_cmd_buffer, a, radius, color_a, 10); draw_circle(G.ui_cmd_buffer, b, radius, color_b, 10); - struct v2 a_clipped = xform_mul_v2(G.world_view, collider_res.a1_clipped); - struct v2 b_clipped = xform_mul_v2(G.world_view, collider_res.b1_clipped); + struct v2 a_clipped = xform_mul_v2(G.world_to_ui_xf, collider_res.a1_clipped); + struct v2 b_clipped = xform_mul_v2(G.world_to_ui_xf, collider_res.b1_clipped); draw_line(G.ui_cmd_buffer, a_clipped, b_clipped, thickness, color_line_clipped); draw_circle(G.ui_cmd_buffer, a_clipped, radius, color_a_clipped, 10); draw_circle(G.ui_cmd_buffer, b_clipped, radius, color_b_clipped, 10); @@ -1273,7 +1273,7 @@ INTERNAL void user_update(void) FMT_FLOAT_P(xform_get_rotation(e1_xf), 24)); - draw_text(G.ui_cmd_buffer, disp_font, v2_add(v2_round(xform_mul_v2(G.world_view, V2(0, 0))), V2(0, offset_px)), text); + draw_text(G.ui_cmd_buffer, disp_font, v2_add(v2_round(xform_mul_v2(G.world_to_ui_xf, V2(0, 0))), V2(0, offset_px)), text); } } #endif @@ -1288,7 +1288,7 @@ INTERNAL void user_update(void) struct v2_array m = menkowski(temp.arena, &e0_collider, &e1_collider, e0_xf, e1_xf, detail); - for (u64 i = 0; i < m.count; ++i) m.points[i] = xform_mul_v2(G.world_view, m.points[i]); + for (u64 i = 0; i < m.count; ++i) m.points[i] = xform_mul_v2(G.world_to_ui_xf, m.points[i]); draw_poly_line(G.ui_cmd_buffer, m, true, thickness, color); //draw_poly(G.ui_cmd_buffer, m, color); } @@ -1301,7 +1301,7 @@ INTERNAL void user_update(void) struct v2_array m = cloud(temp.arena, &e0_collider, &e1_collider, e0_xf, e1_xf); for (u64 i = 0; i < m.count; ++i) { - struct v2 p = xform_mul_v2(G.world_view, m.points[i]); + struct v2 p = xform_mul_v2(G.world_to_ui_xf, m.points[i]); draw_circle(G.ui_cmd_buffer, p, radius, color, 10); } } @@ -1312,8 +1312,8 @@ INTERNAL void user_update(void) f32 len = 0.1f; f32 arrow_thickness = 2; f32 arrow_height = 5; - struct v2 start = xform_mul_v2(G.world_view, V2(0, 0)); - struct v2 end = xform_mul_v2(G.world_view, v2_mul(v2_norm(collider_res.normal), len)); + struct v2 start = xform_mul_v2(G.world_to_ui_xf, V2(0, 0)); + struct v2 end = xform_mul_v2(G.world_to_ui_xf, v2_mul(v2_norm(collider_res.normal), len)); draw_arrow_line(G.ui_cmd_buffer, start, end, arrow_thickness, arrow_height, color); } @@ -1326,7 +1326,7 @@ INTERNAL void user_update(void) .points = collider_res.prototype.points, .count = collider_res.prototype.len }; - for (u64 i = 0; i < m.count; ++i) m.points[i] = xform_mul_v2(G.world_view, m.points[i]); + for (u64 i = 0; i < m.count; ++i) m.points[i] = xform_mul_v2(G.world_to_ui_xf, m.points[i]); draw_poly_line(G.ui_cmd_buffer, m, true, thickness, color); for (u64 i = 0; i < m.count; ++i) draw_circle(G.ui_cmd_buffer, m.points[i], 10, color, 10); } @@ -1341,7 +1341,7 @@ INTERNAL void user_update(void) struct collider_menkowski_simplex simplex = collider_res.simplex; struct v2 simplex_points[] = { simplex.a.p, simplex.b.p, simplex.c.p }; - for (u64 i = 0; i < ARRAY_COUNT(simplex_points); ++i) simplex_points[i] = xform_mul_v2(G.world_view, simplex_points[i]); + for (u64 i = 0; i < ARRAY_COUNT(simplex_points); ++i) simplex_points[i] = xform_mul_v2(G.world_to_ui_xf, simplex_points[i]); struct v2_array simplex_array = { .count = simplex.len, .points = simplex_points }; if (simplex.len >= 1) { @@ -1372,8 +1372,8 @@ INTERNAL void user_update(void) f32 thickness = 2; f32 arrow_height = 15; - struct v2 start = xform_mul_v2(G.world_view, xf.og); - struct v2 end = xform_mul_v2(G.world_view, parent_xf.og); + struct v2 start = xform_mul_v2(G.world_to_ui_xf, xf.og); + struct v2 end = xform_mul_v2(G.world_to_ui_xf, parent_xf.og); draw_arrow_line(G.ui_cmd_buffer, start, end, thickness, arrow_height, color); } @@ -1384,7 +1384,7 @@ INTERNAL void user_update(void) struct xform quad_xf = xform_mul(xf, ent->camera_quad_xform); struct quad quad = xform_mul_quad(quad_xf, QUAD_UNIT_SQUARE_CENTERED); - quad = xform_mul_quad(G.world_view, quad); + quad = xform_mul_quad(G.world_to_ui_xf, quad); draw_quad_line(G.ui_cmd_buffer, quad, thickness, color); } @@ -1396,7 +1396,7 @@ INTERNAL void user_update(void) /* Draw crosshair or show cursor */ if (!G.debug_camera) { - struct v2 crosshair_pos = G.viewport_cursor; + struct v2 crosshair_pos = G.ui_cursor; u32 tint = RGBA_32_F(1, 1, 1, 1); struct sprite_tag crosshair_tag = sprite_tag_from_path(STR("res/graphics/crosshair.ase")); @@ -1407,7 +1407,7 @@ INTERNAL void user_update(void) struct quad quad = xform_mul_quad(xf, QUAD_UNIT_SQUARE_CENTERED); draw_quad_texture(G.ui_cmd_buffer, DRAW_TEXTURE_PARAMS(.sprite = crosshair_tag, .tint = tint), quad); - struct rect cursor_clip = RECT_FROM_V2(G.viewport_screen_offset, G.viewport_size); + struct rect cursor_clip = RECT_FROM_V2(G.ui_screen_offset, G.ui_size); cursor_clip.pos = v2_add(cursor_clip.pos, v2_mul(size, 0.5f)); cursor_clip.pos = v2_add(cursor_clip.pos, V2(1, 1)); cursor_clip.size = v2_sub(cursor_clip.size, size); @@ -1462,7 +1462,7 @@ INTERNAL void user_update(void) } } - input_move_dir = xform_basis_invert_mul_v2(G.world_view, input_move_dir); /* Make move dir relative to world view */ + input_move_dir = xform_basis_invert_mul_v2(G.world_to_ui_xf, input_move_dir); /* Make move dir relative to world view */ input_move_dir = v2_mul(v2_norm(input_move_dir), move_speed); } struct v2 input_aim_dir = v2_sub(G.world_cursor, entity_get_xform(active_player).og); @@ -1542,25 +1542,25 @@ INTERNAL void user_update(void) draw_text(G.ui_cmd_buffer, font, pos, string_format(temp.arena, STR("screen_cursor: (%F, %F)"), FMT_FLOAT((f64)G.screen_cursor.x), FMT_FLOAT((f64)G.screen_cursor.y))); pos.y += spacing; - draw_text(G.ui_cmd_buffer, font, pos, string_format(temp.arena, STR("viewport_screen_offset: (%F, %F)"), FMT_FLOAT((f64)G.viewport_screen_offset.x), FMT_FLOAT((f64)G.viewport_screen_offset.y))); + draw_text(G.ui_cmd_buffer, font, pos, string_format(temp.arena, STR("ui_screen_offset: (%F, %F)"), FMT_FLOAT((f64)G.ui_screen_offset.x), FMT_FLOAT((f64)G.ui_screen_offset.y))); pos.y += spacing; - draw_text(G.ui_cmd_buffer, font, pos, string_format(temp.arena, STR("viewport_size: (%F, %F)"), FMT_FLOAT((f64)G.viewport_size.x), FMT_FLOAT((f64)G.viewport_size.y))); + draw_text(G.ui_cmd_buffer, font, pos, string_format(temp.arena, STR("ui_size: (%F, %F)"), FMT_FLOAT((f64)G.ui_size.x), FMT_FLOAT((f64)G.ui_size.y))); pos.y += spacing; - draw_text(G.ui_cmd_buffer, font, pos, string_format(temp.arena, STR("viewport_center: (%F, %F)"), FMT_FLOAT((f64)G.viewport_center.x), FMT_FLOAT((f64)G.viewport_center.y))); + draw_text(G.ui_cmd_buffer, font, pos, string_format(temp.arena, STR("ui_center: (%F, %F)"), FMT_FLOAT((f64)G.ui_center.x), FMT_FLOAT((f64)G.ui_center.y))); pos.y += spacing; - draw_text(G.ui_cmd_buffer, font, pos, string_format(temp.arena, STR("viewport_cursor: (%F, %F)"), FMT_FLOAT((f64)G.viewport_cursor.x), FMT_FLOAT((f64)G.viewport_cursor.y))); + draw_text(G.ui_cmd_buffer, font, pos, string_format(temp.arena, STR("ui_cursor: (%F, %F)"), FMT_FLOAT((f64)G.ui_cursor.x), FMT_FLOAT((f64)G.ui_cursor.y))); pos.y += spacing; - draw_text(G.ui_cmd_buffer, font, pos, string_format(temp.arena, STR("world_view.og: (%F, %F)"), FMT_FLOAT((f64)G.world_view.og.x), FMT_FLOAT((f64)G.world_view.og.y))); + draw_text(G.ui_cmd_buffer, font, pos, string_format(temp.arena, STR("world_to_ui_xf.og: (%F, %F)"), FMT_FLOAT((f64)G.world_to_ui_xf.og.x), FMT_FLOAT((f64)G.world_to_ui_xf.og.y))); pos.y += spacing; - draw_text(G.ui_cmd_buffer, font, pos, string_format(temp.arena, STR("world_view rotation: %F"), FMT_FLOAT((f64)xform_get_rotation(G.world_view)))); + draw_text(G.ui_cmd_buffer, font, pos, string_format(temp.arena, STR("world_to_ui_xf rotation: %F"), FMT_FLOAT((f64)xform_get_rotation(G.world_to_ui_xf)))); pos.y += spacing; - draw_text(G.ui_cmd_buffer, font, pos, string_format(temp.arena, STR("world_view scale: (%F, %F)"), FMT_FLOAT((f64)xform_get_scale(G.world_view).x), FMT_FLOAT((f64)xform_get_scale(G.world_view).x))); + draw_text(G.ui_cmd_buffer, font, pos, string_format(temp.arena, STR("world_to_ui_xf scale: (%F, %F)"), FMT_FLOAT((f64)xform_get_scale(G.world_to_ui_xf).x), FMT_FLOAT((f64)xform_get_scale(G.world_to_ui_xf).x))); pos.y += spacing; draw_text(G.ui_cmd_buffer, font, pos, string_format(temp.arena, STR("world_cursor: (%F, %F)"), FMT_FLOAT((f64)G.world_cursor.x), FMT_FLOAT((f64)G.world_cursor.y))); @@ -1600,11 +1600,11 @@ INTERNAL void user_update(void) { __profscope(render); - struct rect target_viewport = RECT_FROM_V2(V2(0, 0), G.viewport_size); + struct rect target_viewport = RECT_FROM_V2(V2(0, 0), G.ui_size); struct rect backbuffer_viewport = RECT_FROM_V2(V2(0, 0), G.screen_size); /* Allocate rt textures */ - struct v2 ui_rt_resolution = G.viewport_size; + struct v2 ui_rt_resolution = G.ui_size; struct v2 world_rt_resolution = V2(target_viewport.width + target_viewport.x, target_viewport.height + target_viewport.y); { /* World rt */ @@ -1654,7 +1654,7 @@ INTERNAL void user_update(void) /* Draw final texture to backbuffer */ { struct draw_texture_params params = DRAW_TEXTURE_PARAMS(.texture = G.final_rt); - struct quad quad = quad_from_rect(RECT_FROM_V2(G.viewport_screen_offset, G.viewport_size)); + struct quad quad = quad_from_rect(RECT_FROM_V2(G.ui_screen_offset, G.ui_size)); draw_quad_texture(G.backbuffer_cmd_buffer, params, quad); } } @@ -1674,7 +1674,7 @@ INTERNAL void user_update(void) renderer_clear_backbuffer(RGBA_32_F(0, 0, 0, 1)); /* Render to world texture */ - renderer_render_to_texture(G.world_rt, G.world_cmd_buffer, G.world_view, target_viewport, sprite_frame_scope); + renderer_render_to_texture(G.world_rt, G.world_cmd_buffer, G.world_to_ui_xf, target_viewport, sprite_frame_scope); /* Render to UI texture */ renderer_render_to_texture(G.ui_rt, G.ui_cmd_buffer, XFORM_IDENT, target_viewport, sprite_frame_scope);