1
0
Fork 0
mirror of https://github.com/gwm17/implot.git synced 2024-10-09 23:57:26 -04:00

Merge branch 'sergeyn-pr_branch2'

This commit is contained in:
Evan Pezent 2020-05-14 07:11:52 -05:00
commit 83885f4d8b

View File

@ -2091,38 +2091,33 @@ inline void RenderLineStrip(Transformer transformer, ImDrawList& DrawList, Gette
int i_end = offset + count; int i_end = offset + count;
if (i_end >= count) i_end -= count; if (i_end >= count) i_end -= count;
const int segments = count - 1; const int segments = count - 1;
ImVec2 p1 = transformer(getter(offset)); ImVec2 p1 = transformer(getter(offset));
bool test1 = !cull || gp.BB_Grid.Contains(p1); if (HasFlag(gp.CurrentPlot->Flags, ImPlotFlags_AntiAliased)) {
if (HasFlag(gp.CurrentPlot->Flags, ImPlotFlags_AntiAliased)) { for (int i1 = i_start; i1 != i_end; i1 = i1 + 1 < count ? i1 + 1 : i1 + 1 - count) {
for (int i1 = i_start; i1 != i_end; i1 = i1 + 1 < count ? i1 + 1 : i1 + 1 - count) ImVec2 p2 = transformer(getter(i1));
{
ImVec2 p2 = transformer(getter(i1)); if (!cull || gp.BB_Grid.Overlaps(ImRect(ImMin(p1,p2), ImMax(p1,p2))))
bool test2 = !cull || gp.BB_Grid.Contains(p2); RenderLineAA(DrawList, p1, p2, line_weight, col_line);
if (test1 | test2) p1 = p2;
RenderLineAA(DrawList, p1, p2, line_weight, col_line); }
p1 = p2; }
test1 = test2; else {
} const ImVec2 uv = DrawList._Data->TexUvWhitePixel;
} DrawList.PrimReserve(segments * 6, segments * 4);
else { int segments_culled = 0;
const ImVec2 uv = DrawList._Data->TexUvWhitePixel; for (int i1 = i_start; i1 != i_end; i1 = i1 + 1 < count ? i1 + 1 : i1 + 1 - count) {
DrawList.PrimReserve(segments * 6, segments * 4); ImVec2 p2 = transformer(getter(i1));
int segments_culled = 0;
for (int i1 = i_start; i1 != i_end; i1 = i1 + 1 < count ? i1 + 1 : i1 + 1 - count) if (!cull || gp.BB_Grid.Overlaps(ImRect(ImMin(p1, p2), ImMax(p1, p2))))
{ RenderLine(DrawList, p1, p2, line_weight, col_line, uv);
ImVec2 p2 = transformer(getter(i1)); else
bool test2 = !cull || gp.BB_Grid.Contains(p2); segments_culled++;
if (test1 | test2) p1 = p2;
RenderLine(DrawList, p1, p2, line_weight, col_line, uv); }
else if (segments_culled > 0)
segments_culled++; DrawList.PrimUnreserve(segments_culled * 6, segments_culled * 4);
p1 = p2; }
test1 = test2;
}
if (segments_culled > 0)
DrawList.PrimUnreserve(segments_culled * 6, segments_culled * 4);
}
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@ -2573,11 +2568,11 @@ inline void PlotDigitalEx(const char* label_id, Getter getter, int count, int of
if (gp.Style.Colors[ImPlotCol_Line].w != -1) if (gp.Style.Colors[ImPlotCol_Line].w != -1)
item->Color = gp.Style.Colors[ImPlotCol_Line]; item->Color = gp.Style.Colors[ImPlotCol_Line];
// find data extents // find data extents
if (gp.FitThisFrame) { if (gp.FitThisFrame) {
for (int i = 0; i < count; ++i) { for (int i = 0; i < count; ++i) {
ImVec2 p = getter(i); ImVec2 p = getter(i);
FitPoint(p); FitPoint(ImVec2(p.x, 0));
} }
} }