@ -9287,11 +9287,12 @@ void ImGui::PlotEx(ImGuiPlotType plot_type, const char* label, float (*values_ge
}
}
const float t_step = 1.0f / ( float ) res_w ;
const float t_step = 1.0f / ( float ) res_w ;
const float inv_scale = ( scale_min = = scale_max ) ? 0.0f : ( 1.0f / ( scale_max - scale_min ) ) ;
float v0 = values_getter ( data , ( 0 + values_offset ) % values_count ) ;
float v0 = values_getter ( data , ( 0 + values_offset ) % values_count ) ;
float t0 = 0.0f ;
float t0 = 0.0f ;
ImVec2 tp0 = ImVec2 ( t0 , 1.0f - ImSaturate ( ( v0 - scale_min ) / ( scale_max - scale_min ) ) ) ; // Point in the normalized space of our target rectangle
ImVec2 tp0 = ImVec2 ( t0 , 1.0f - ImSaturate ( ( v0 - scale_min ) * inv_scale ) ) ; // Point in the normalized space of our target rectangle
float histogram_zero_line_t = ( scale_min * scale_max < 0.0f ) ? ( - scale_min / ( scale_max - scale_min ) ) : ( scale_min < 0.0f ? 0.0f : 1.0f ) ; // Where does the zero line stands
float histogram_zero_line_t = ( scale_min * scale_max < 0.0f ) ? ( - scale_min * inv_scale ) : ( scale_min < 0.0f ? 0.0f : 1.0f ) ; // Where does the zero line stands
const ImU32 col_base = GetColorU32 ( ( plot_type = = ImGuiPlotType_Lines ) ? ImGuiCol_PlotLines : ImGuiCol_PlotHistogram ) ;
const ImU32 col_base = GetColorU32 ( ( plot_type = = ImGuiPlotType_Lines ) ? ImGuiCol_PlotLines : ImGuiCol_PlotHistogram ) ;
const ImU32 col_hovered = GetColorU32 ( ( plot_type = = ImGuiPlotType_Lines ) ? ImGuiCol_PlotLinesHovered : ImGuiCol_PlotHistogramHovered ) ;
const ImU32 col_hovered = GetColorU32 ( ( plot_type = = ImGuiPlotType_Lines ) ? ImGuiCol_PlotLinesHovered : ImGuiCol_PlotHistogramHovered ) ;
@ -9302,7 +9303,7 @@ void ImGui::PlotEx(ImGuiPlotType plot_type, const char* label, float (*values_ge
const int v1_idx = ( int ) ( t0 * item_count + 0.5f ) ;
const int v1_idx = ( int ) ( t0 * item_count + 0.5f ) ;
IM_ASSERT ( v1_idx > = 0 & & v1_idx < values_count ) ;
IM_ASSERT ( v1_idx > = 0 & & v1_idx < values_count ) ;
const float v1 = values_getter ( data , ( v1_idx + values_offset + 1 ) % values_count ) ;
const float v1 = values_getter ( data , ( v1_idx + values_offset + 1 ) % values_count ) ;
const ImVec2 tp1 = ImVec2 ( t1 , 1.0f - ImSaturate ( ( v1 - scale_min ) / ( scale_max - scale_min ) ) ) ;
const ImVec2 tp1 = ImVec2 ( t1 , 1.0f - ImSaturate ( ( v1 - scale_min ) * inv_scale ) ) ;
// NB: Draw calls are merged together by the DrawList system. Still, we should render our batch are lower level to save a bit of CPU.
// NB: Draw calls are merged together by the DrawList system. Still, we should render our batch are lower level to save a bit of CPU.
ImVec2 pos0 = ImLerp ( inner_bb . Min , inner_bb . Max , tp0 ) ;
ImVec2 pos0 = ImLerp ( inner_bb . Min , inner_bb . Max , tp0 ) ;