diff --git a/qrenderdoc/Windows/ResourceInspector.cpp b/qrenderdoc/Windows/ResourceInspector.cpp index f336f014b..b0a4c1cfc 100644 --- a/qrenderdoc/Windows/ResourceInspector.cpp +++ b/qrenderdoc/Windows/ResourceInspector.cpp @@ -372,6 +372,8 @@ void ResourceInspector::resource_doubleClicked(const QModelIndex &index) { ResourceId id = index.model()->data(index, ResourceIdRole).value(); Inspect(id); + + HighlightUsage(); } void ResourceInspector::on_viewContents_clicked() @@ -432,3 +434,19 @@ void ResourceInspector::on_resourceUsage_doubleClicked(const QModelIndex &index) uint32_t eid = index.model()->data(index, ResourceIdRole).value(); m_Ctx.SetEventID({}, eid, eid); } + +void ResourceInspector::enterEvent(QEvent *event) +{ + HighlightUsage(); +} + +void ResourceInspector::showEvent(QShowEvent *event) +{ + HighlightUsage(); +} + +void ResourceInspector::HighlightUsage() +{ + if(m_Resource != ResourceId() && m_Ctx.HasTimelineBar()) + m_Ctx.GetTimelineBar()->HighlightResourceUsage(m_Resource); +} diff --git a/qrenderdoc/Windows/ResourceInspector.h b/qrenderdoc/Windows/ResourceInspector.h index 49fc95168..a8cd93063 100644 --- a/qrenderdoc/Windows/ResourceInspector.h +++ b/qrenderdoc/Windows/ResourceInspector.h @@ -68,10 +68,15 @@ public slots: private slots: void on_viewContents_clicked(); - void on_resourceUsage_doubleClicked(const QModelIndex &index); +protected: + void enterEvent(QEvent *event) override; + void showEvent(QShowEvent *event) override; + private: + void HighlightUsage(); + Ui::ResourceInspector *ui; ICaptureContext &m_Ctx; diff --git a/qrenderdoc/Windows/TextureViewer.cpp b/qrenderdoc/Windows/TextureViewer.cpp index 391a575b3..57108fc2c 100644 --- a/qrenderdoc/Windows/TextureViewer.cpp +++ b/qrenderdoc/Windows/TextureViewer.cpp @@ -662,6 +662,24 @@ TextureViewer::~TextureViewer() delete ui; } +void TextureViewer::enterEvent(QEvent *event) +{ + HighlightUsage(); +} + +void TextureViewer::showEvent(QShowEvent *event) +{ + HighlightUsage(); +} + +void TextureViewer::HighlightUsage() +{ + TextureDescription *texptr = GetCurrentTexture(); + + if(texptr && m_Ctx.HasTimelineBar()) + m_Ctx.GetTimelineBar()->HighlightResourceUsage(texptr->resourceId); +} + void TextureViewer::RT_FetchCurrentPixel(uint32_t x, uint32_t y, PixelValue &pickValue, PixelValue &realValue) { @@ -1327,8 +1345,7 @@ void TextureViewer::UI_OnTextureSelectionChanged(bool newdraw) RT_PickPixelsAndUpdate(r); }); - if(m_Ctx.HasTimelineBar()) - m_Ctx.GetTimelineBar()->HighlightResourceUsage(texptr->resourceId); + HighlightUsage(); } void TextureViewer::UI_SetHistogramRange(const TextureDescription *tex, CompType typeHint) diff --git a/qrenderdoc/Windows/TextureViewer.h b/qrenderdoc/Windows/TextureViewer.h index d2ab42695..38d30181c 100644 --- a/qrenderdoc/Windows/TextureViewer.h +++ b/qrenderdoc/Windows/TextureViewer.h @@ -206,6 +206,10 @@ private slots: void channelsWidget_mouseClicked(QMouseEvent *event); void channelsWidget_toggled(bool checked) { UI_UpdateChannels(); } void channelsWidget_selected(int index) { UI_UpdateChannels(); } +protected: + void enterEvent(QEvent *event) override; + void showEvent(QShowEvent *event) override; + private: void RT_FetchCurrentPixel(uint32_t x, uint32_t y, PixelValue &pickValue, PixelValue &realValue); void RT_PickPixelsAndUpdate(IReplayController *); @@ -223,6 +227,8 @@ private: void UI_UpdateChannels(); + void HighlightUsage(); + void SetupTextureTabs(); void Reset();