#include <QPen>
#include "trace_profiler.hpp"
-struct VisibleItem {
- QRect rect;
- const trace::Profile::Frame* frame;
- const trace::Profile::Call* call;
-};
-
class TimelineWidget : public QWidget
{
Q_OBJECT
void setRowScroll(int position, bool notify = true);
void setTimeScroll(int64_t time, bool notify = true);
- void paintHeatmapColumn(int x, QPainter& painter, QVector<uint64_t>& 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<int> m_programRowMap;
- QList<VisibleItem> m_visibleItems;
+ std::vector<int> m_rowPrograms;
/* Scrollbars */
int m_scrollX;
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;