@@ -1829,6 +1829,30 @@ void RenderMarkers(const _Getter& getter, ImPlotMarker marker, float size, bool
18291829 }
18301830}
18311831
1832+ template <typename _Getter>
1833+ void RenderColoredMarkers (const _Getter& getter, const ImPlotNextItemData& s) {
1834+ const ImU32 col_line = ImGui::GetColorU32 (s.Spec .MarkerLineColor );
1835+ const ImU32 col_fill = ImGui::GetColorU32 (s.Spec .MarkerFillColor );
1836+
1837+ if (s.Spec .MarkerFillColors != nullptr && s.Spec .MarkerLineColors != nullptr ) {
1838+ GetterIdxColor fill_getter (s.Spec .MarkerFillColors , getter.Count , s.Spec .FillAlpha );
1839+ GetterIdxColor line_getter (s.Spec .MarkerLineColors , getter.Count );
1840+ RenderMarkers<_Getter>(getter, s.Spec .Marker , s.Spec .MarkerSize , s.RenderMarkerFill , fill_getter, s.RenderMarkerLine , line_getter, s.Spec .LineWeight );
1841+ } else if (s.Spec .MarkerFillColors != nullptr ) {
1842+ GetterIdxColor fill_getter (s.Spec .MarkerFillColors , getter.Count , s.Spec .FillAlpha );
1843+ GetterConstColor line_getter (col_line);
1844+ RenderMarkers<_Getter>(getter, s.Spec .Marker , s.Spec .MarkerSize , s.RenderMarkerFill , fill_getter, s.RenderMarkerLine , line_getter, s.Spec .LineWeight );
1845+ } else if (s.Spec .MarkerLineColors != nullptr ) {
1846+ GetterConstColor fill_getter (col_fill);
1847+ GetterIdxColor line_getter (s.Spec .MarkerLineColors , getter.Count );
1848+ RenderMarkers<_Getter>(getter, s.Spec .Marker , s.Spec .MarkerSize , s.RenderMarkerFill , fill_getter, s.RenderMarkerLine , line_getter, s.Spec .LineWeight );
1849+ } else {
1850+ GetterConstColor fill_getter (col_fill);
1851+ GetterConstColor line_getter (col_line);
1852+ RenderMarkers<_Getter>(getter, s.Spec .Marker , s.Spec .MarkerSize , s.RenderMarkerFill , fill_getter, s.RenderMarkerLine , line_getter, s.Spec .LineWeight );
1853+ }
1854+ }
1855+
18321856// -----------------------------------------------------------------------------
18331857// [SECTION] PlotLine
18341858// -----------------------------------------------------------------------------
@@ -1902,25 +1926,7 @@ void PlotLineEx(const char* label_id, const _Getter& getter, const ImPlotSpec& s
19021926 PopPlotClipRect ();
19031927 PushPlotClipRect (s.Spec .MarkerSize );
19041928 }
1905- const ImU32 col_line = ImGui::GetColorU32 (s.Spec .MarkerLineColor );
1906- const ImU32 col_fill = ImGui::GetColorU32 (s.Spec .MarkerFillColor );
1907- if (s.Spec .MarkerFillColors != nullptr && s.Spec .MarkerLineColors != nullptr ) {
1908- GetterIdxColor fill_getter (s.Spec .MarkerFillColors , getter.Count , s.Spec .FillAlpha );
1909- GetterIdxColor line_getter (s.Spec .MarkerLineColors , getter.Count );
1910- RenderMarkers<_Getter>(getter, s.Spec .Marker , s.Spec .MarkerSize , s.RenderMarkerFill , fill_getter, s.RenderMarkerLine , line_getter, s.Spec .LineWeight );
1911- } else if (s.Spec .MarkerFillColors != nullptr ) {
1912- GetterIdxColor fill_getter (s.Spec .MarkerFillColors , getter.Count , s.Spec .FillAlpha );
1913- GetterConstColor line_getter (col_line);
1914- RenderMarkers<_Getter>(getter, s.Spec .Marker , s.Spec .MarkerSize , s.RenderMarkerFill , fill_getter, s.RenderMarkerLine , line_getter, s.Spec .LineWeight );
1915- } else if (s.Spec .MarkerLineColors != nullptr ) {
1916- GetterConstColor fill_getter (col_fill);
1917- GetterIdxColor line_getter (s.Spec .MarkerLineColors , getter.Count );
1918- RenderMarkers<_Getter>(getter, s.Spec .Marker , s.Spec .MarkerSize , s.RenderMarkerFill , fill_getter, s.RenderMarkerLine , line_getter, s.Spec .LineWeight );
1919- } else {
1920- GetterConstColor fill_getter (col_fill);
1921- GetterConstColor line_getter (col_line);
1922- RenderMarkers<_Getter>(getter, s.Spec .Marker , s.Spec .MarkerSize , s.RenderMarkerFill , fill_getter, s.RenderMarkerLine , line_getter, s.Spec .LineWeight );
1923- }
1929+ RenderColoredMarkers (getter, s);
19241930 }
19251931 EndItem ();
19261932 }
@@ -1969,25 +1975,7 @@ void PlotScatterEx(const char* label_id, const Getter& getter, const ImPlotSpec&
19691975 PopPlotClipRect ();
19701976 PushPlotClipRect (s.Spec .MarkerSize );
19711977 }
1972- const ImU32 col_line = ImGui::GetColorU32 (s.Spec .MarkerLineColor );
1973- const ImU32 col_fill = ImGui::GetColorU32 (s.Spec .MarkerFillColor );
1974- if (s.Spec .MarkerFillColors != nullptr && s.Spec .MarkerLineColors != nullptr ) {
1975- GetterIdxColor fill_getter (s.Spec .MarkerFillColors , getter.Count , s.Spec .FillAlpha );
1976- GetterIdxColor line_getter (s.Spec .MarkerLineColors , getter.Count );
1977- RenderMarkers<Getter>(getter, s.Spec .Marker , s.Spec .MarkerSize , s.RenderMarkerFill , fill_getter, s.RenderMarkerLine , line_getter, s.Spec .LineWeight );
1978- } else if (s.Spec .MarkerFillColors != nullptr ) {
1979- GetterIdxColor fill_getter (s.Spec .MarkerFillColors , getter.Count , s.Spec .FillAlpha );
1980- GetterConstColor line_getter (col_line);
1981- RenderMarkers<Getter>(getter, s.Spec .Marker , s.Spec .MarkerSize , s.RenderMarkerFill , fill_getter, s.RenderMarkerLine , line_getter, s.Spec .LineWeight );
1982- } else if (s.Spec .MarkerLineColors != nullptr ) {
1983- GetterConstColor fill_getter (col_fill);
1984- GetterIdxColor line_getter (s.Spec .MarkerLineColors , getter.Count );
1985- RenderMarkers<Getter>(getter, s.Spec .Marker , s.Spec .MarkerSize , s.RenderMarkerFill , fill_getter, s.RenderMarkerLine , line_getter, s.Spec .LineWeight );
1986- } else {
1987- GetterConstColor fill_getter (col_fill);
1988- GetterConstColor line_getter (col_line);
1989- RenderMarkers<Getter>(getter, s.Spec .Marker , s.Spec .MarkerSize , s.RenderMarkerFill , fill_getter, s.RenderMarkerLine , line_getter, s.Spec .LineWeight );
1990- }
1978+ RenderColoredMarkers (getter, s);
19911979 }
19921980 EndItem ();
19931981 }
@@ -2131,25 +2119,7 @@ void PlotStairsEx(const char* label_id, const Getter& getter, const ImPlotSpec&
21312119 if (s.RenderMarkers ) {
21322120 PopPlotClipRect ();
21332121 PushPlotClipRect (s.Spec .MarkerSize );
2134- const ImU32 col_line = ImGui::GetColorU32 (s.Spec .MarkerLineColor );
2135- const ImU32 col_fill = ImGui::GetColorU32 (s.Spec .MarkerFillColor );
2136- if (s.Spec .MarkerFillColors != nullptr && s.Spec .MarkerLineColors != nullptr ) {
2137- GetterIdxColor fill_getter (s.Spec .MarkerFillColors , getter.Count , s.Spec .FillAlpha );
2138- GetterIdxColor line_getter (s.Spec .MarkerLineColors , getter.Count );
2139- RenderMarkers<Getter>(getter, s.Spec .Marker , s.Spec .MarkerSize , s.RenderMarkerFill , fill_getter, s.RenderMarkerLine , line_getter, s.Spec .LineWeight );
2140- } else if (s.Spec .MarkerFillColors != nullptr ) {
2141- GetterIdxColor fill_getter (s.Spec .MarkerFillColors , getter.Count , s.Spec .FillAlpha );
2142- GetterConstColor line_getter (col_line);
2143- RenderMarkers<Getter>(getter, s.Spec .Marker , s.Spec .MarkerSize , s.RenderMarkerFill , fill_getter, s.RenderMarkerLine , line_getter, s.Spec .LineWeight );
2144- } else if (s.Spec .MarkerLineColors != nullptr ) {
2145- GetterConstColor fill_getter (col_fill);
2146- GetterIdxColor line_getter (s.Spec .MarkerLineColors , getter.Count );
2147- RenderMarkers<Getter>(getter, s.Spec .Marker , s.Spec .MarkerSize , s.RenderMarkerFill , fill_getter, s.RenderMarkerLine , line_getter, s.Spec .LineWeight );
2148- } else {
2149- GetterConstColor fill_getter (col_fill);
2150- GetterConstColor line_getter (col_line);
2151- RenderMarkers<Getter>(getter, s.Spec .Marker , s.Spec .MarkerSize , s.RenderMarkerFill , fill_getter, s.RenderMarkerLine , line_getter, s.Spec .LineWeight );
2152- }
2122+ RenderColoredMarkers (getter, s);
21532123 }
21542124 EndItem ();
21552125 }
@@ -2576,25 +2546,7 @@ void PlotStemsEx(const char* label_id, const _GetterM& getter_mark, const _Gette
25762546 if (s.RenderMarkers ) {
25772547 PopPlotClipRect ();
25782548 PushPlotClipRect (s.Spec .MarkerSize );
2579- const ImU32 col_line = ImGui::GetColorU32 (s.Spec .MarkerLineColor );
2580- const ImU32 col_fill = ImGui::GetColorU32 (s.Spec .MarkerFillColor );
2581- if (s.Spec .MarkerFillColors != nullptr && s.Spec .MarkerLineColors != nullptr ) {
2582- GetterIdxColor fill_getter (s.Spec .MarkerFillColors , getter_mark.Count );
2583- GetterIdxColor line_getter (s.Spec .MarkerLineColors , getter_mark.Count );
2584- RenderMarkers<_GetterM>(getter_mark, s.Spec .Marker , s.Spec .MarkerSize , s.RenderMarkerFill , fill_getter, s.RenderMarkerLine , line_getter, s.Spec .LineWeight );
2585- } else if (s.Spec .MarkerFillColors != nullptr ) {
2586- GetterIdxColor fill_getter (s.Spec .MarkerFillColors , getter_mark.Count );
2587- GetterConstColor line_getter (col_line);
2588- RenderMarkers<_GetterM>(getter_mark, s.Spec .Marker , s.Spec .MarkerSize , s.RenderMarkerFill , fill_getter, s.RenderMarkerLine , line_getter, s.Spec .LineWeight );
2589- } else if (s.Spec .MarkerLineColors != nullptr ) {
2590- GetterConstColor fill_getter (col_fill);
2591- GetterIdxColor line_getter (s.Spec .MarkerLineColors , getter_mark.Count );
2592- RenderMarkers<_GetterM>(getter_mark, s.Spec .Marker , s.Spec .MarkerSize , s.RenderMarkerFill , fill_getter, s.RenderMarkerLine , line_getter, s.Spec .LineWeight );
2593- } else {
2594- GetterConstColor fill_getter (col_fill);
2595- GetterConstColor line_getter (col_line);
2596- RenderMarkers<_GetterM>(getter_mark, s.Spec .Marker , s.Spec .MarkerSize , s.RenderMarkerFill , fill_getter, s.RenderMarkerLine , line_getter, s.Spec .LineWeight );
2597- }
2549+ RenderColoredMarkers (getter_mark, s);
25982550 }
25992551 EndItem ();
26002552 }
0 commit comments