#include #include #include #include #include namespace hex::plugin::visualizers { void drawLinePlotVisualizer(pl::ptrn::Pattern &, pl::ptrn::IIterable &, bool shouldReset, std::span arguments) { static std::vector values; auto dataPattern = arguments[0].toPattern(); if (ImPlot::BeginPlot("##plot", ImVec2(400, 250), ImPlotFlags_CanvasOnly)) { ImPlot::SetupAxes("X", "Y", ImPlotAxisFlags_AutoFit, ImPlotAxisFlags_AutoFit); if (shouldReset) { values.clear(); values = sampleData(patternToArray(dataPattern.get()), ImPlot::GetPlotSize().x * 4); } ImPlot::PlotLine("##line", values.data(), values.size()); ImPlot::EndPlot(); } } }