diff --git a/qrenderdoc/Windows/PixelHistoryView.cpp b/qrenderdoc/Windows/PixelHistoryView.cpp index 6a8f1e7a3..f0ddca9e3 100644 --- a/qrenderdoc/Windows/PixelHistoryView.cpp +++ b/qrenderdoc/Windows/PixelHistoryView.cpp @@ -387,6 +387,8 @@ public: return QVariant(); } + const QVector &modifications() { return m_ModList; } + ResourceId texID() { return m_Tex->ID; } private: ICaptureContext &m_Ctx; @@ -617,11 +619,35 @@ PixelHistoryView::PixelHistoryView(ICaptureContext &ctx, ResourceId id, QPoint p PixelHistoryView::~PixelHistoryView() { + disableTimelineHighlight(); + ui->events->setModel(NULL); m_Ctx.RemoveLogViewer(this); delete ui; } +void PixelHistoryView::enableTimelineHighlight() +{ + if(m_Ctx.HasTimelineBar()) + m_Ctx.GetTimelineBar()->HighlightHistory(m_Model->texID(), m_Model->modifications().toList()); +} + +void PixelHistoryView::disableTimelineHighlight() +{ + if(m_Ctx.HasTimelineBar()) + m_Ctx.GetTimelineBar()->HighlightHistory(ResourceId(), {}); +} + +void PixelHistoryView::enterEvent(QEvent *event) +{ + enableTimelineHighlight(); +} + +void PixelHistoryView::leaveEvent(QEvent *event) +{ + disableTimelineHighlight(); +} + void PixelHistoryView::OnLogfileLoaded() { } @@ -634,6 +660,8 @@ void PixelHistoryView::OnLogfileClosed() void PixelHistoryView::SetHistory(const rdctype::array &history) { m_Model->setHistory(history); + + enableTimelineHighlight(); } void PixelHistoryView::startDebug(EventTag tag) diff --git a/qrenderdoc/Windows/PixelHistoryView.h b/qrenderdoc/Windows/PixelHistoryView.h index d5f057294..0c1f1842e 100644 --- a/qrenderdoc/Windows/PixelHistoryView.h +++ b/qrenderdoc/Windows/PixelHistoryView.h @@ -58,7 +58,14 @@ private slots: void on_events_customContextMenuRequested(const QPoint &pos); void on_events_doubleClicked(const QModelIndex &index); +protected: + void enterEvent(QEvent *event) override; + void leaveEvent(QEvent *event) override; + private: + void enableTimelineHighlight(); + void disableTimelineHighlight(); + Ui::PixelHistoryView *ui; ICaptureContext &m_Ctx; diff --git a/qrenderdoc/Windows/TextureViewer.cpp b/qrenderdoc/Windows/TextureViewer.cpp index e718cb487..2bf8e931a 100644 --- a/qrenderdoc/Windows/TextureViewer.cpp +++ b/qrenderdoc/Windows/TextureViewer.cpp @@ -1315,9 +1315,10 @@ void TextureViewer::UI_OnTextureSelectionChanged(bool newdraw) if(m_Output != NULL) RT_PickPixelsAndUpdate(r); - - // TODO TimelineBar }); + + if(m_Ctx.HasTimelineBar()) + m_Ctx.GetTimelineBar()->HighlightResourceUsage(texptr->ID); } void TextureViewer::UI_SetHistogramRange(const TextureDescription *tex, CompType typeHint)