From 63b92f76c894489c70bdbb5e1bc538764127b7a5 Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 7 Oct 2016 17:13:36 +0200 Subject: [PATCH] Pass IReplayRenderer to INVOKE_MEMFN calls --- qrenderdoc/Code/RenderManager.h | 2 +- qrenderdoc/Windows/TextureViewer.cpp | 25 +++++++++++-------------- qrenderdoc/Windows/TextureViewer.h | 7 ++++--- 3 files changed, 16 insertions(+), 18 deletions(-) diff --git a/qrenderdoc/Code/RenderManager.h b/qrenderdoc/Code/RenderManager.h index d506c6cf8..5a5314a29 100644 --- a/qrenderdoc/Code/RenderManager.h +++ b/qrenderdoc/Code/RenderManager.h @@ -37,7 +37,7 @@ class LambdaThread; // simple helper for the common case of 'we just need to run this on the render thread #define INVOKE_MEMFN(function) \ - m_Ctx->Renderer()->AsyncInvoke([this](IReplayRenderer *) { function(); }); + m_Ctx->Renderer()->AsyncInvoke([this](IReplayRenderer *r) { function(r); }); class RenderManager { diff --git a/qrenderdoc/Windows/TextureViewer.cpp b/qrenderdoc/Windows/TextureViewer.cpp index fd0425e1c..cc403d973 100644 --- a/qrenderdoc/Windows/TextureViewer.cpp +++ b/qrenderdoc/Windows/TextureViewer.cpp @@ -513,7 +513,7 @@ void TextureViewer::RT_FetchCurrentPixel(uint32_t x, uint32_t y, PixelValue &pic m_TexDisplay.sampleIdx, &realValue); } -void TextureViewer::RT_PickPixelsAndUpdate() +void TextureViewer::RT_PickPixelsAndUpdate(IReplayRenderer *) { PixelValue pickValue, realValue; @@ -532,7 +532,7 @@ void TextureViewer::RT_PickPixelsAndUpdate() GUIInvoke::call([this]() { UI_UpdateStatusText(); }); } -void TextureViewer::RT_PickHoverAndUpdate() +void TextureViewer::RT_PickHoverAndUpdate(IReplayRenderer *) { PixelValue pickValue, realValue; @@ -546,7 +546,7 @@ void TextureViewer::RT_PickHoverAndUpdate() GUIInvoke::call([this]() { UI_UpdateStatusText(); }); } -void TextureViewer::RT_UpdateAndDisplay() +void TextureViewer::RT_UpdateAndDisplay(IReplayRenderer *) { if(m_Output != NULL) m_Output->SetTextureDisplay(m_TexDisplay); @@ -1104,13 +1104,13 @@ void TextureViewer::UI_OnTextureSelectionChanged(bool newdraw) // if (ui->autoFit->isChecked()) // AutoFitRange(); - m_Ctx->Renderer()->AsyncInvoke([this](IReplayRenderer *) { + m_Ctx->Renderer()->AsyncInvoke([this](IReplayRenderer *r) { // RT_UpdateVisualRange(r); - RT_UpdateAndDisplay(); + RT_UpdateAndDisplay(r); if(m_Output != NULL) - RT_PickPixelsAndUpdate(); + RT_PickPixelsAndUpdate(r); // TODO - GetUsage and update TimelineBar }); @@ -1915,6 +1915,9 @@ void TextureViewer::OnEventSelected(uint32_t eventID) ui->inputThumbs->RefreshLayout(); INVOKE_MEMFN(RT_UpdateAndDisplay); + + // if(autoFit.Checked) + // AutoFitRange(); } QVariant TextureViewer::persistData() @@ -2186,10 +2189,7 @@ void TextureViewer::on_mipLevel_currentIndexChanged(int index) if(m_Output != NULL && m_PickedPoint.x() >= 0 && m_PickedPoint.y() >= 0) { - m_Ctx->Renderer()->AsyncInvoke([this](IReplayRenderer *) { - if(m_Output != NULL) - RT_PickPixelsAndUpdate(); - }); + INVOKE_MEMFN(RT_PickPixelsAndUpdate); } INVOKE_MEMFN(RT_UpdateAndDisplay); @@ -2211,10 +2211,7 @@ void TextureViewer::on_sliceFace_currentIndexChanged(int index) if(m_Output != NULL && m_PickedPoint.x() >= 0 && m_PickedPoint.y() >= 0) { - m_Ctx->Renderer()->AsyncInvoke([this](IReplayRenderer *) { - if(m_Output != NULL) - RT_PickPixelsAndUpdate(); - }); + INVOKE_MEMFN(RT_PickPixelsAndUpdate); } INVOKE_MEMFN(RT_UpdateAndDisplay); diff --git a/qrenderdoc/Windows/TextureViewer.h b/qrenderdoc/Windows/TextureViewer.h index 848174af7..e876f24ff 100644 --- a/qrenderdoc/Windows/TextureViewer.h +++ b/qrenderdoc/Windows/TextureViewer.h @@ -156,6 +156,7 @@ private slots: void render_mouseMove(QMouseEvent *e); void render_mouseWheel(QWheelEvent *e); void render_resize(QResizeEvent *e); + void render_keyPress(QKeyEvent *e); void thumb_clicked(QMouseEvent *); @@ -165,9 +166,9 @@ private slots: void channelsWidget_selected(int index) { UI_UpdateChannels(); } private: void RT_FetchCurrentPixel(uint32_t x, uint32_t y, PixelValue &pickValue, PixelValue &realValue); - void RT_PickPixelsAndUpdate(); - void RT_PickHoverAndUpdate(); - void RT_UpdateAndDisplay(); + void RT_PickPixelsAndUpdate(IReplayRenderer *); + void RT_PickHoverAndUpdate(IReplayRenderer *); + void RT_UpdateAndDisplay(IReplayRenderer *); void UI_UpdateStatusText(); void UI_UpdateTextureDetails();