diff --git a/src/gui/plot_nolerp.cpp b/src/gui/plot_nolerp.cpp index eefb4ea1b5..f4d03717d2 100644 --- a/src/gui/plot_nolerp.cpp +++ b/src/gui/plot_nolerp.cpp @@ -394,6 +394,8 @@ int PlotCustomEx(ImGuiPlotType plot_type, const char* label, float (*values_gett window->DrawList->AddLine(ImLerp(inner_bb.Min,inner_bb.Max,ImVec2(0.0f,histogram_zero_line_t)),ImLerp(inner_bb.Min,inner_bb.Max,ImVec2(1.0f,histogram_zero_line_t)),col_base); } + ImVec2 chevron[3]; + for (int n = 0; n < res_w; n++) { const float t1 = t0 + t_step; @@ -421,11 +423,30 @@ int PlotCustomEx(ImGuiPlotType plot_type, const char* label, float (*values_gett if (values_highlight!=NULL) { if (values_highlight[v1_idx]) rCol=ImGui::GetColorU32(highlightColor); } - window->DrawList->AddRectFilled(pos0, pos1, rCol); + if (blockMode) { + if ((int)v0>=(int)(scale_max+0.5)) { + float chScale=(pos1.x-pos0.x)*0.125; + chevron[0]=ImVec2(pos0.x+(pos1.x-pos0.x)*0.25,pos1.y+4.0f*chScale); + chevron[1]=ImVec2(pos0.x+(pos1.x-pos0.x)*0.5,pos1.y+2.0f*chScale); + chevron[2]=ImVec2(pos0.x+(pos1.x-pos0.x)*0.75,pos1.y+4.0f*chScale); + window->DrawList->AddPolyline(chevron, 3, rCol, 0, chScale); + } else if ((int)v0<(int)(scale_min)) { + float chScale=(pos1.x-pos0.x)*0.125; + chevron[0]=ImVec2(pos0.x+(pos1.x-pos0.x)*0.25,pos1.y-4.0f*chScale); + chevron[1]=ImVec2(pos0.x+(pos1.x-pos0.x)*0.5,pos1.y-2.0f*chScale); + chevron[2]=ImVec2(pos0.x+(pos1.x-pos0.x)*0.75,pos1.y-4.0f*chScale); + window->DrawList->AddPolyline(chevron, 3, rCol, 0, chScale); + } else { + window->DrawList->AddRectFilled(pos0, pos1, rCol); + } + } else { + window->DrawList->AddRectFilled(pos0, pos1, rCol); + } } t0 = t1; tp0 = tp1; + v0 = v1; } }