X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=gui%2Ftimelinewidget.h;h=472ffa113f6ff6571f2ab1111ce869367cc02ece;hb=56ad11c7849c7e6ca0ad66558cb1a99c58d4cd3d;hp=be8f92aa0733e16584004c37de3f835bc17df41c;hpb=7f71e4d00467059193ef4bcbe0db34c45e1aca03;p=apitrace diff --git a/gui/timelinewidget.h b/gui/timelinewidget.h index be8f92a..472ffa1 100644 --- a/gui/timelinewidget.h +++ b/gui/timelinewidget.h @@ -6,12 +6,6 @@ #include #include "trace_profiler.hpp" -struct VisibleItem { - QRect rect; - const trace::Profile::Frame* frame; - const trace::Profile::Call* call; -}; - class TimelineWidget : public QWidget { Q_OBJECT @@ -58,20 +52,21 @@ private: void setRowScroll(int position, bool notify = true); void setTimeScroll(int64_t time, bool notify = true); - void paintHeatmapColumn(int x, QPainter& painter, QVector& rows); + void drawHeat(QPainter& painter, int x, int64_t heat, bool isCpu); double timeToPosition(int64_t time); int64_t positionToTime(int pos); - const VisibleItem* itemAtPosition(const QPoint& pos); - void calculateRows(); + const trace::Profile::Frame* frameAtTime(int64_t time); + const trace::Profile::CpuCall* cpuCallAtTime(int64_t time); + const trace::Profile::DrawCall* drawCallAtTime(int program, int64_t time); + private: /* Data */ trace::Profile* m_profile; - QList m_programRowMap; - QList m_visibleItems; + std::vector m_rowPrograms; /* Scrollbars */ int m_scrollX; @@ -108,7 +103,9 @@ private: int m_rowHeight; int m_axisWidth; int m_axisHeight; + QPen m_axisLine; QPen m_axisBorder; + QPen m_axisForeground; QBrush m_axisBackground; QPen m_itemBorder; QPen m_itemForeground;