| 86 | /////////////////////////////////////////// |
| 87 | |
| 88 | void ui_theming_init() { |
| 89 | skui_tint = { 1,1,1,1 }; |
| 90 | skui_font_stack = {}; |
| 91 | skui_tint_stack = {}; |
| 92 | skui_grab_aura_stack = {}; |
| 93 | memset(skui_visuals, 0, sizeof(skui_visuals)); |
| 94 | memset(skui_palette, 0, sizeof(skui_palette)); |
| 95 | memset(skui_anim_id, 0, sizeof(skui_anim_id)); |
| 96 | memset(skui_anim_time, 0, sizeof(skui_anim_time)); |
| 97 | |
| 98 | ui_set_color(color_hsv(0.07f, 0.5f, 0.75f, 1)); |
| 99 | |
| 100 | skui_font_mat = material_find(default_id_material_font); |
| 101 | material_set_queue_offset(skui_font_mat, -12); |
| 102 | skui_font = font_find(default_id_font); |
| 103 | skui_font_stack.add(text_make_style_mat(skui_font, 10 * mm2m, skui_font_mat, {1,1,1,1})); |
| 104 | |
| 105 | // TODO: v0.4, this sets up default values when zeroed out, with a |
| 106 | // ui_get_settings, this isn't really necessary anymore! |
| 107 | ui_settings_t settings = {}; |
| 108 | ui_settings(settings); |
| 109 | |
| 110 | // Create default sprites for the toggles |
| 111 | |
| 112 | // #defines because we can't capture anything in these lambdas D: |
| 113 | #define OUTER_RADIUS 31 |
| 114 | #define RING_WIDTH 8 |
| 115 | #define RADIUS (OUTER_RADIUS - RING_WIDTH) |
| 116 | #define INNER_RADIUS (OUTER_RADIUS - RING_WIDTH*2) |
| 117 | |
| 118 | skui_toggle_on = sdf_create_sprite(ui_default_id_spr_toggle_on, 64, 64, [](vec2 pt) { |
| 119 | return |
| 120 | sdf_union( |
| 121 | sdf_box(pt, {INNER_RADIUS, INNER_RADIUS}), |
| 122 | sdf_subtract( |
| 123 | sdf_box_round(pt, {RADIUS, RADIUS}, 4), |
| 124 | sdf_box_round(pt, {OUTER_RADIUS,OUTER_RADIUS}, 8)))/32.0f; |
| 125 | }, 40); |
| 126 | skui_toggle_off = sdf_create_sprite(ui_default_id_spr_toggle_off, 64, 64, [](vec2 pt) { |
| 127 | return |
| 128 | sdf_subtract( |
| 129 | sdf_box_round(pt, {RADIUS, RADIUS}, 4), |
| 130 | sdf_box_round(pt, {OUTER_RADIUS,OUTER_RADIUS}, 8))/32.0f; |
| 131 | }, 40); |
| 132 | skui_radio_on = sdf_create_sprite(ui_default_id_spr_radio_on, 64, 64, [](vec2 pt) { |
| 133 | float dist = vec2_magnitude(pt); |
| 134 | return |
| 135 | sdf_union( |
| 136 | dist - INNER_RADIUS, |
| 137 | sdf_subtract( |
| 138 | dist - (OUTER_RADIUS - RING_WIDTH), |
| 139 | dist - OUTER_RADIUS)) / 32.0f; |
| 140 | }, 40); |
| 141 | skui_radio_off = sdf_create_sprite(ui_default_id_spr_radio_off, 64, 64, [](vec2 pt) { |
| 142 | float dist = vec2_magnitude(pt); |
| 143 | return sdf_subtract(dist - (OUTER_RADIUS - RING_WIDTH), dist - OUTER_RADIUS)/32.0f; |
| 144 | }, 40); |
| 145 |
no test coverage detected