|
|
|
@ -121,7 +121,7 @@ static void draw_lead(UIState *s, float d_rel, float v_rel, float y_rel){ |
|
|
|
|
fillAlpha = (int)(fmin(fillAlpha, 255)); |
|
|
|
|
} |
|
|
|
|
draw_chevron(s, d_rel, y_rel, 25, |
|
|
|
|
nvgRGBA(201, 34, 49, fillAlpha), nvgRGBA(218, 202, 37, 255)); |
|
|
|
|
nvgRGBA(201, 34, 49, fillAlpha), COLOR_YELLOW); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void ui_draw_lane_line(UIState *s, const model_path_vertices_data *pvd, NVGcolor color) { |
|
|
|
@ -260,7 +260,7 @@ static void ui_draw_track(UIState *s, bool is_mpc, track_vertices_data *pvd) { |
|
|
|
|
} else { |
|
|
|
|
// Draw white vision track
|
|
|
|
|
track_bg = nvgLinearGradient(s->vg, vwp_w, vwp_h, vwp_w, vwp_h*.4, |
|
|
|
|
nvgRGBA(255, 255, 255, 255), nvgRGBA(255, 255, 255, 0)); |
|
|
|
|
COLOR_WHITE, COLOR_WHITE_ALPHA(0)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
nvgFillPaint(s->vg, track_bg); |
|
|
|
@ -456,7 +456,7 @@ static void ui_draw_vision_maxspeed(UIState *s) { |
|
|
|
|
if (is_set_over_limit) { |
|
|
|
|
nvgFillColor(s->vg, nvgRGBA(218, 111, 37, 180)); |
|
|
|
|
} else { |
|
|
|
|
nvgFillColor(s->vg, nvgRGBA(0, 0, 0, 100)); |
|
|
|
|
nvgFillColor(s->vg, COLOR_BLACK_ALPHA(100)); |
|
|
|
|
} |
|
|
|
|
nvgFill(s->vg); |
|
|
|
|
|
|
|
|
@ -464,13 +464,13 @@ static void ui_draw_vision_maxspeed(UIState *s) { |
|
|
|
|
nvgBeginPath(s->vg); |
|
|
|
|
nvgRoundedRect(s->vg, viz_maxspeed_x, viz_maxspeed_y, viz_maxspeed_w, viz_maxspeed_h, 20); |
|
|
|
|
if (is_set_over_limit) { |
|
|
|
|
nvgStrokeColor(s->vg, nvgRGBA(218, 111, 37, 255)); |
|
|
|
|
nvgStrokeColor(s->vg, COLOR_OCHRE); |
|
|
|
|
} else if (is_speedlim_valid && !s->is_ego_over_limit) { |
|
|
|
|
nvgStrokeColor(s->vg, nvgRGBA(255, 255, 255, 255)); |
|
|
|
|
nvgStrokeColor(s->vg, COLOR_WHITE); |
|
|
|
|
} else if (is_speedlim_valid && s->is_ego_over_limit) { |
|
|
|
|
nvgStrokeColor(s->vg, nvgRGBA(255, 255, 255, 20)); |
|
|
|
|
nvgStrokeColor(s->vg, COLOR_WHITE_ALPHA(20)); |
|
|
|
|
} else { |
|
|
|
|
nvgStrokeColor(s->vg, nvgRGBA(255, 255, 255, 100)); |
|
|
|
|
nvgStrokeColor(s->vg, COLOR_WHITE_ALPHA(100)); |
|
|
|
|
} |
|
|
|
|
nvgStrokeWidth(s->vg, 10); |
|
|
|
|
nvgStroke(s->vg); |
|
|
|
@ -480,9 +480,9 @@ static void ui_draw_vision_maxspeed(UIState *s) { |
|
|
|
|
nvgFontFaceId(s->vg, s->font_sans_regular); |
|
|
|
|
nvgFontSize(s->vg, 26*2.5); |
|
|
|
|
if (is_cruise_set) { |
|
|
|
|
nvgFillColor(s->vg, nvgRGBA(255, 255, 255, 200)); |
|
|
|
|
nvgFillColor(s->vg, COLOR_WHITE_ALPHA(200)); |
|
|
|
|
} else { |
|
|
|
|
nvgFillColor(s->vg, nvgRGBA(255, 255, 255, 100)); |
|
|
|
|
nvgFillColor(s->vg, COLOR_WHITE_ALPHA(100)); |
|
|
|
|
} |
|
|
|
|
nvgText(s->vg, viz_maxspeed_x+(viz_maxspeed_xo/2)+(viz_maxspeed_w/2), 148, "MAX", NULL); |
|
|
|
|
|
|
|
|
@ -491,12 +491,12 @@ static void ui_draw_vision_maxspeed(UIState *s) { |
|
|
|
|
nvgFontSize(s->vg, 48*2.5); |
|
|
|
|
if (is_cruise_set) { |
|
|
|
|
snprintf(maxspeed_str, sizeof(maxspeed_str), "%d", maxspeed_calc); |
|
|
|
|
nvgFillColor(s->vg, nvgRGBA(255, 255, 255, 255)); |
|
|
|
|
nvgFillColor(s->vg, COLOR_WHITE); |
|
|
|
|
nvgText(s->vg, viz_maxspeed_x+(viz_maxspeed_xo/2)+(viz_maxspeed_w/2), 242, maxspeed_str, NULL); |
|
|
|
|
} else { |
|
|
|
|
nvgFontFaceId(s->vg, s->font_sans_semibold); |
|
|
|
|
nvgFontSize(s->vg, 42*2.5); |
|
|
|
|
nvgFillColor(s->vg, nvgRGBA(255, 255, 255, 100)); |
|
|
|
|
nvgFillColor(s->vg, COLOR_WHITE_ALPHA(100)); |
|
|
|
|
nvgText(s->vg, viz_maxspeed_x+(viz_maxspeed_xo/2)+(viz_maxspeed_w/2), 242, "N/A", NULL); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -539,9 +539,9 @@ static void ui_draw_vision_speedlimit(UIState *s) { |
|
|
|
|
if (is_speedlim_valid && s->is_ego_over_limit) { |
|
|
|
|
nvgFillColor(s->vg, nvgRGBA(218, 111, 37, 180)); |
|
|
|
|
} else if (is_speedlim_valid) { |
|
|
|
|
nvgFillColor(s->vg, nvgRGBA(255, 255, 255, 255)); |
|
|
|
|
nvgFillColor(s->vg, COLOR_WHITE); |
|
|
|
|
} else { |
|
|
|
|
nvgFillColor(s->vg, nvgRGBA(255, 255, 255, 100)); |
|
|
|
|
nvgFillColor(s->vg, COLOR_WHITE_ALPHA(100)); |
|
|
|
|
} |
|
|
|
|
nvgFill(s->vg); |
|
|
|
|
|
|
|
|
@ -552,9 +552,9 @@ static void ui_draw_vision_speedlimit(UIState *s) { |
|
|
|
|
nvgBeginPath(s->vg); |
|
|
|
|
nvgRoundedRect(s->vg, viz_speedlim_x, viz_speedlim_y, viz_speedlim_w, viz_speedlim_h, 20); |
|
|
|
|
if (s->is_ego_over_limit) { |
|
|
|
|
nvgStrokeColor(s->vg, nvgRGBA(218, 111, 37, 255)); |
|
|
|
|
nvgStrokeColor(s->vg, COLOR_OCHRE); |
|
|
|
|
} else if (is_speedlim_valid) { |
|
|
|
|
nvgStrokeColor(s->vg, nvgRGBA(255, 255, 255, 255)); |
|
|
|
|
nvgStrokeColor(s->vg, COLOR_WHITE); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -562,9 +562,9 @@ static void ui_draw_vision_speedlimit(UIState *s) { |
|
|
|
|
nvgTextAlign(s->vg, NVG_ALIGN_CENTER | NVG_ALIGN_BASELINE); |
|
|
|
|
nvgFontFaceId(s->vg, s->font_sans_semibold); |
|
|
|
|
nvgFontSize(s->vg, 50); |
|
|
|
|
nvgFillColor(s->vg, nvgRGBA(0, 0, 0, 255)); |
|
|
|
|
nvgFillColor(s->vg, COLOR_BLACK); |
|
|
|
|
if (is_speedlim_valid && s->is_ego_over_limit) { |
|
|
|
|
nvgFillColor(s->vg, nvgRGBA(255, 255, 255, 255)); |
|
|
|
|
nvgFillColor(s->vg, COLOR_WHITE); |
|
|
|
|
} |
|
|
|
|
nvgText(s->vg, viz_speedlim_x+viz_speedlim_w/2 + (is_speedlim_valid ? 6 : 0), viz_speedlim_y + (is_speedlim_valid ? 50 : 45), "SMART", NULL); |
|
|
|
|
nvgText(s->vg, viz_speedlim_x+viz_speedlim_w/2 + (is_speedlim_valid ? 6 : 0), viz_speedlim_y + (is_speedlim_valid ? 90 : 85), "SPEED", NULL); |
|
|
|
@ -573,9 +573,9 @@ static void ui_draw_vision_speedlimit(UIState *s) { |
|
|
|
|
nvgFontFaceId(s->vg, s->font_sans_bold); |
|
|
|
|
nvgFontSize(s->vg, 48*2.5); |
|
|
|
|
if (s->is_ego_over_limit) { |
|
|
|
|
nvgFillColor(s->vg, nvgRGBA(255, 255, 255, 255)); |
|
|
|
|
nvgFillColor(s->vg, COLOR_WHITE); |
|
|
|
|
} else { |
|
|
|
|
nvgFillColor(s->vg, nvgRGBA(0, 0, 0, 255)); |
|
|
|
|
nvgFillColor(s->vg, COLOR_BLACK); |
|
|
|
|
} |
|
|
|
|
if (is_speedlim_valid) { |
|
|
|
|
snprintf(speedlim_str, sizeof(speedlim_str), "%d", speedlim_calc); |
|
|
|
@ -608,12 +608,12 @@ static void ui_draw_vision_speed(UIState *s) { |
|
|
|
|
} |
|
|
|
|
nvgFontFaceId(s->vg, s->font_sans_bold); |
|
|
|
|
nvgFontSize(s->vg, 96*2.5); |
|
|
|
|
nvgFillColor(s->vg, nvgRGBA(255, 255, 255, 255)); |
|
|
|
|
nvgFillColor(s->vg, COLOR_WHITE); |
|
|
|
|
nvgText(s->vg, viz_speed_x+viz_speed_w/2, 240, speed_str, NULL); |
|
|
|
|
|
|
|
|
|
nvgFontFaceId(s->vg, s->font_sans_regular); |
|
|
|
|
nvgFontSize(s->vg, 36*2.5); |
|
|
|
|
nvgFillColor(s->vg, nvgRGBA(255, 255, 255, 200)); |
|
|
|
|
nvgFillColor(s->vg, COLOR_WHITE_ALPHA(200)); |
|
|
|
|
|
|
|
|
|
if (s->is_metric) { |
|
|
|
|
nvgText(s->vg, viz_speed_x+viz_speed_w/2, 320, "kph", NULL); |
|
|
|
@ -660,7 +660,7 @@ static void ui_draw_vision_event(UIState *s) { |
|
|
|
|
if (is_engaged) { |
|
|
|
|
nvgFillColor(s->vg, nvgRGBA(23, 134, 68, 255)); |
|
|
|
|
} else if (is_warning) { |
|
|
|
|
nvgFillColor(s->vg, nvgRGBA(218, 111, 37, 255)); |
|
|
|
|
nvgFillColor(s->vg, COLOR_OCHRE); |
|
|
|
|
} else if (is_engageable) { |
|
|
|
|
nvgFillColor(s->vg, nvgRGBA(23, 51, 73, 255)); |
|
|
|
|
} |
|
|
|
@ -794,7 +794,7 @@ void ui_draw_vision_alert(UIState *s, int va_size, int va_color, |
|
|
|
|
nvgRect(s->vg, alr_x, alr_y, alr_w, alr_h); |
|
|
|
|
nvgFill(s->vg); |
|
|
|
|
|
|
|
|
|
nvgFillColor(s->vg, nvgRGBA(255, 255, 255, 255)); |
|
|
|
|
nvgFillColor(s->vg, COLOR_WHITE); |
|
|
|
|
nvgTextAlign(s->vg, NVG_ALIGN_CENTER | NVG_ALIGN_BASELINE); |
|
|
|
|
|
|
|
|
|
if (va_size == ALERTSIZE_SMALL) { |
|
|
|
|