@@ -341,10 +341,23 @@ void displaySparks(
341341 ImGui::EndTable ();
342342}
343343
344+ int formatTimeSinceStart (double value, char * buff, int size, void * user_data)
345+ {
346+ auto * startTime = (int64_t *)user_data;
347+ if (value - *startTime < 0 ) {
348+ buff[0 ] = ' \0 ' ;
349+ return 0 ;
350+ }
351+ int64_t seconds = (value - *startTime) / 1000 ;
352+ int64_t minutes = seconds / 60 ;
353+ return snprintf (buff, size, " %02lld:%02lld" , minutes, seconds % 60 );
354+ }
355+
344356void displayDeviceMetrics (const char * label,
345357 size_t rangeBegin, size_t rangeEnd, size_t bins, MetricsDisplayStyle displayType,
346358 std::vector<MetricDisplayState>& state,
347- AllMetricsStore const & metricStore)
359+ AllMetricsStore const & metricStore,
360+ DriverInfo const & driverInfo)
348361{
349362 std::vector<void *> metricsToDisplay;
350363 std::vector<const char *> deviceNames;
@@ -493,6 +506,7 @@ void displayDeviceMetrics(const char* label,
493506 case MetricsDisplayStyle::Histos:
494507 if (ImPlot::BeginPlot (" ##Some plot" )) {
495508 ImPlot::SetupAxes (" time" , " value" );
509+ ImPlot::SetupAxisFormat (ImAxis_X1, formatTimeSinceStart, (void *)&driverInfo.startTimeMsFromEpoch );
496510 for (size_t pi = 0 ; pi < metricsToDisplay.size (); ++pi) {
497511 ImGui::PushID (pi);
498512 auto data = (const MultiplotData*)metricsToDisplay[pi];
@@ -510,6 +524,7 @@ void displayDeviceMetrics(const char* label,
510524 // ImPlot::FitNextPlotAxes(true, true, true, true);
511525 if (ImPlot::BeginPlot (" ##Some plot" , {-1 , -1 }, axisFlags)) {
512526 ImPlot::SetupAxes (" time" , " value" , xAxisFlags, yAxisFlags);
527+ ImPlot::SetupAxisFormat (ImAxis_X1, formatTimeSinceStart, (void *)&driverInfo.startTimeMsFromEpoch );
513528 for (size_t pi = 0 ; pi < metricsToDisplay.size (); ++pi) {
514529 ImGui::PushID (pi);
515530 auto data = (const MultiplotData*)metricsToDisplay[pi];
@@ -891,7 +906,7 @@ void displayMetrics(gui::WorkspaceGUIState& state,
891906 case MetricsDisplayStyle::Lines: {
892907 displayDeviceMetrics (" Metrics" ,
893908 minTime, maxTime, 1024 ,
894- currentStyle, metricDisplayState, metricsStore);
909+ currentStyle, metricDisplayState, metricsStore, driverInfo );
895910 } break ;
896911 case MetricsDisplayStyle::Sparks: {
897912 displaySparks (state.startTime , visibleMetricsIndex, metricDisplayState, metricsStore);
0 commit comments