mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-04 09:00:44 +00:00
Rename RenderManager to ReplayManager
This commit is contained in:
@@ -31,7 +31,7 @@
|
||||
#include <QString>
|
||||
#include <QtWidgets/QWidget>
|
||||
#include "Interface/QRDInterface.h"
|
||||
#include "RenderManager.h"
|
||||
#include "ReplayManager.h"
|
||||
|
||||
#if defined(RENDERDOC_PLATFORM_LINUX)
|
||||
#include <QX11Info>
|
||||
@@ -87,7 +87,7 @@ public:
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Accessors
|
||||
|
||||
RenderManager &Renderer() override { return m_Renderer; }
|
||||
ReplayManager &Replay() override { return m_Renderer; }
|
||||
bool LogLoaded() override { return m_LogLoaded; }
|
||||
bool IsLogLocal() override { return m_LogLocal; }
|
||||
bool LogLoading() override { return m_LoadInProgress; }
|
||||
@@ -181,7 +181,7 @@ public:
|
||||
CommonPipelineState &CurPipelineState() override { return m_CurPipelineState; }
|
||||
PersistantConfig &Config() override { return m_Config; }
|
||||
private:
|
||||
RenderManager m_Renderer;
|
||||
ReplayManager m_Renderer;
|
||||
|
||||
D3D11Pipe::State m_CurD3D11PipelineState;
|
||||
D3D12Pipe::State m_CurD3D12PipelineState;
|
||||
|
||||
@@ -256,7 +256,7 @@ protected:
|
||||
|
||||
DECLARE_REFLECTION_STRUCT(ILogViewerForm);
|
||||
|
||||
struct IRenderManager
|
||||
struct IReplayManager
|
||||
{
|
||||
typedef std::function<void(IReplayController *)> InvokeMethod;
|
||||
typedef std::function<void(const rdctype::str &, const rdctype::array<PathEntry> &)> DirectoryBrowseMethod;
|
||||
@@ -291,11 +291,11 @@ struct IRenderManager
|
||||
QWidget *window) = 0;
|
||||
|
||||
protected:
|
||||
IRenderManager() = default;
|
||||
~IRenderManager() = default;
|
||||
IReplayManager() = default;
|
||||
~IReplayManager() = default;
|
||||
};
|
||||
|
||||
DECLARE_REFLECTION_STRUCT(IRenderManager);
|
||||
DECLARE_REFLECTION_STRUCT(IReplayManager);
|
||||
|
||||
// should match ToolWindowManager::AreaReferenceType
|
||||
enum class DockReference : int
|
||||
@@ -335,7 +335,7 @@ struct ICaptureContext
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Accessors
|
||||
|
||||
virtual IRenderManager &Renderer() = 0;
|
||||
virtual IReplayManager &Replay() = 0;
|
||||
virtual bool LogLoaded() = 0;
|
||||
virtual bool IsLogLocal() = 0;
|
||||
virtual bool LogLoading() = 0;
|
||||
|
||||
@@ -22,24 +22,24 @@
|
||||
* THE SOFTWARE.
|
||||
******************************************************************************/
|
||||
|
||||
#include "RenderManager.h"
|
||||
#include "ReplayManager.h"
|
||||
#include <QApplication>
|
||||
#include <QMutexLocker>
|
||||
#include <QProgressDialog>
|
||||
#include "CaptureContext.h"
|
||||
#include "QRDUtils.h"
|
||||
|
||||
RenderManager::RenderManager()
|
||||
ReplayManager::ReplayManager()
|
||||
{
|
||||
m_Running = false;
|
||||
m_Thread = NULL;
|
||||
}
|
||||
|
||||
RenderManager::~RenderManager()
|
||||
ReplayManager::~ReplayManager()
|
||||
{
|
||||
}
|
||||
|
||||
void RenderManager::OpenCapture(const QString &logfile, float *progress)
|
||||
void ReplayManager::OpenCapture(const QString &logfile, float *progress)
|
||||
{
|
||||
if(m_Running)
|
||||
return;
|
||||
@@ -59,7 +59,7 @@ void RenderManager::OpenCapture(const QString &logfile, float *progress)
|
||||
}
|
||||
}
|
||||
|
||||
void RenderManager::DeleteCapture(const QString &logfile, bool local)
|
||||
void ReplayManager::DeleteCapture(const QString &logfile, bool local)
|
||||
{
|
||||
if(IsRunning())
|
||||
{
|
||||
@@ -83,7 +83,7 @@ void RenderManager::DeleteCapture(const QString &logfile, bool local)
|
||||
}
|
||||
}
|
||||
|
||||
QStringList RenderManager::GetRemoteSupport()
|
||||
QStringList ReplayManager::GetRemoteSupport()
|
||||
{
|
||||
QStringList ret;
|
||||
|
||||
@@ -99,7 +99,7 @@ QStringList RenderManager::GetRemoteSupport()
|
||||
return ret;
|
||||
}
|
||||
|
||||
void RenderManager::GetHomeFolder(bool synchronous, DirectoryBrowseMethod cb)
|
||||
void ReplayManager::GetHomeFolder(bool synchronous, DirectoryBrowseMethod cb)
|
||||
{
|
||||
if(!m_Remote)
|
||||
return;
|
||||
@@ -127,7 +127,7 @@ void RenderManager::GetHomeFolder(bool synchronous, DirectoryBrowseMethod cb)
|
||||
cb(home.c_str(), rdctype::array<PathEntry>());
|
||||
}
|
||||
|
||||
bool RenderManager::ListFolder(QString path, bool synchronous, DirectoryBrowseMethod cb)
|
||||
bool ReplayManager::ListFolder(QString path, bool synchronous, DirectoryBrowseMethod cb)
|
||||
{
|
||||
if(!m_Remote)
|
||||
return false;
|
||||
@@ -160,7 +160,7 @@ bool RenderManager::ListFolder(QString path, bool synchronous, DirectoryBrowseMe
|
||||
return true;
|
||||
}
|
||||
|
||||
QString RenderManager::CopyCaptureToRemote(const QString &localpath, QWidget *window)
|
||||
QString ReplayManager::CopyCaptureToRemote(const QString &localpath, QWidget *window)
|
||||
{
|
||||
if(!m_Remote)
|
||||
return "";
|
||||
@@ -188,13 +188,13 @@ QString RenderManager::CopyCaptureToRemote(const QString &localpath, QWidget *wi
|
||||
thread->start();
|
||||
}
|
||||
|
||||
ShowProgressDialog(window, QApplication::translate("RenderManager", "Transferring..."),
|
||||
ShowProgressDialog(window, QApplication::translate("ReplayManager", "Transferring..."),
|
||||
[&copied]() { return copied; }, [&progress]() { return progress; });
|
||||
|
||||
return remotepath;
|
||||
}
|
||||
|
||||
void RenderManager::CopyCaptureFromRemote(const QString &remotepath, const QString &localpath,
|
||||
void ReplayManager::CopyCaptureFromRemote(const QString &remotepath, const QString &localpath,
|
||||
QWidget *window)
|
||||
{
|
||||
if(!m_Remote)
|
||||
@@ -221,16 +221,16 @@ void RenderManager::CopyCaptureFromRemote(const QString &remotepath, const QStri
|
||||
thread->start();
|
||||
}
|
||||
|
||||
ShowProgressDialog(window, QApplication::translate("RenderManager", "Transferring..."),
|
||||
ShowProgressDialog(window, QApplication::translate("ReplayManager", "Transferring..."),
|
||||
[&copied]() { return copied; }, [&progress]() { return progress; });
|
||||
}
|
||||
|
||||
bool RenderManager::IsRunning()
|
||||
bool ReplayManager::IsRunning()
|
||||
{
|
||||
return m_Thread && m_Thread->isRunning() && m_Running;
|
||||
}
|
||||
|
||||
void RenderManager::AsyncInvoke(const QString &tag, RenderManager::InvokeMethod m)
|
||||
void ReplayManager::AsyncInvoke(const QString &tag, ReplayManager::InvokeMethod m)
|
||||
{
|
||||
{
|
||||
QMutexLocker autolock(&m_RenderLock);
|
||||
@@ -255,7 +255,7 @@ void RenderManager::AsyncInvoke(const QString &tag, RenderManager::InvokeMethod
|
||||
PushInvoke(cmd);
|
||||
}
|
||||
|
||||
void RenderManager::AsyncInvoke(RenderManager::InvokeMethod m)
|
||||
void ReplayManager::AsyncInvoke(ReplayManager::InvokeMethod m)
|
||||
{
|
||||
InvokeHandle *cmd = new InvokeHandle(m);
|
||||
cmd->selfdelete = true;
|
||||
@@ -263,7 +263,7 @@ void RenderManager::AsyncInvoke(RenderManager::InvokeMethod m)
|
||||
PushInvoke(cmd);
|
||||
}
|
||||
|
||||
void RenderManager::BlockInvoke(RenderManager::InvokeMethod m)
|
||||
void ReplayManager::BlockInvoke(ReplayManager::InvokeMethod m)
|
||||
{
|
||||
InvokeHandle *cmd = new InvokeHandle(m);
|
||||
|
||||
@@ -274,7 +274,7 @@ void RenderManager::BlockInvoke(RenderManager::InvokeMethod m)
|
||||
delete cmd;
|
||||
}
|
||||
|
||||
void RenderManager::CloseThread()
|
||||
void ReplayManager::CloseThread()
|
||||
{
|
||||
m_Running = false;
|
||||
|
||||
@@ -292,7 +292,7 @@ void RenderManager::CloseThread()
|
||||
m_Thread = NULL;
|
||||
}
|
||||
|
||||
ReplayStatus RenderManager::ConnectToRemoteServer(RemoteHost *host)
|
||||
ReplayStatus ReplayManager::ConnectToRemoteServer(RemoteHost *host)
|
||||
{
|
||||
ReplayStatus status =
|
||||
RENDERDOC_CreateRemoteServerConnection(host->Hostname.toUtf8().data(), 0, &m_Remote);
|
||||
@@ -308,7 +308,7 @@ ReplayStatus RenderManager::ConnectToRemoteServer(RemoteHost *host)
|
||||
return status;
|
||||
}
|
||||
|
||||
void RenderManager::DisconnectFromRemoteServer()
|
||||
void ReplayManager::DisconnectFromRemoteServer()
|
||||
{
|
||||
if(m_RemoteHost)
|
||||
m_RemoteHost->Connected = false;
|
||||
@@ -323,7 +323,7 @@ void RenderManager::DisconnectFromRemoteServer()
|
||||
m_Remote = NULL;
|
||||
}
|
||||
|
||||
void RenderManager::ShutdownServer()
|
||||
void ReplayManager::ShutdownServer()
|
||||
{
|
||||
if(m_Remote)
|
||||
{
|
||||
@@ -334,7 +334,7 @@ void RenderManager::ShutdownServer()
|
||||
m_Remote = NULL;
|
||||
}
|
||||
|
||||
void RenderManager::PingRemote()
|
||||
void ReplayManager::PingRemote()
|
||||
{
|
||||
if(!m_Remote)
|
||||
return;
|
||||
@@ -350,7 +350,7 @@ void RenderManager::PingRemote()
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t RenderManager::ExecuteAndInject(const QString &exe, const QString &workingDir,
|
||||
uint32_t ReplayManager::ExecuteAndInject(const QString &exe, const QString &workingDir,
|
||||
const QString &cmdLine,
|
||||
const QList<EnvironmentModification> &env,
|
||||
const QString &logfile, CaptureOptions opts)
|
||||
@@ -375,7 +375,7 @@ uint32_t RenderManager::ExecuteAndInject(const QString &exe, const QString &work
|
||||
return ret;
|
||||
}
|
||||
|
||||
void RenderManager::PushInvoke(RenderManager::InvokeHandle *cmd)
|
||||
void ReplayManager::PushInvoke(ReplayManager::InvokeHandle *cmd)
|
||||
{
|
||||
if(m_Thread == NULL || !m_Thread->isRunning() || !m_Running)
|
||||
{
|
||||
@@ -391,7 +391,7 @@ void RenderManager::PushInvoke(RenderManager::InvokeHandle *cmd)
|
||||
m_RenderCondition.wakeAll();
|
||||
}
|
||||
|
||||
void RenderManager::run()
|
||||
void ReplayManager::run()
|
||||
{
|
||||
IReplayController *renderer = NULL;
|
||||
|
||||
@@ -42,13 +42,13 @@ class RemoteHost;
|
||||
|
||||
// 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](IReplayController *r) { function(r); });
|
||||
m_Ctx.Replay().AsyncInvoke([this](IReplayController *r) { function(r); });
|
||||
|
||||
class RenderManager : public IRenderManager
|
||||
class ReplayManager : public IReplayManager
|
||||
{
|
||||
public:
|
||||
RenderManager();
|
||||
~RenderManager();
|
||||
ReplayManager();
|
||||
~ReplayManager();
|
||||
|
||||
void OpenCapture(const QString &logfile, float *progress);
|
||||
void DeleteCapture(const QString &logfile, bool local);
|
||||
@@ -26,7 +26,7 @@ CONTAINER_TYPEMAPS(QMap)
|
||||
}
|
||||
|
||||
// need to ignore the original function and add a helper that releases the python GIL while calling
|
||||
%ignore IRenderManager::BlockInvoke;
|
||||
%ignore IReplayManager::BlockInvoke;
|
||||
|
||||
// ignore these functions as we don't map QVariantMap to/from python
|
||||
%ignore EnvironmentModification::toJSON;
|
||||
@@ -59,9 +59,9 @@ CONTAINER_TYPEMAPS(QMap)
|
||||
%include "Code/Interface/RemoteHost.h"
|
||||
|
||||
// unignore the function from above
|
||||
%rename("%s") IRenderManager::BlockInvoke;
|
||||
%rename("%s") IReplayManager::BlockInvoke;
|
||||
|
||||
%extend IRenderManager {
|
||||
%extend IReplayManager {
|
||||
void BlockInvoke(InvokeMethod m) {
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
$self->BlockInvoke(m);
|
||||
|
||||
@@ -90,7 +90,7 @@ void CustomPaintWidget::paintEvent(QPaintEvent *e)
|
||||
if(m_Ctx)
|
||||
{
|
||||
if(m_Output != NULL)
|
||||
m_Ctx->Renderer().AsyncInvoke([this](IReplayController *r) { m_Output->Display(); });
|
||||
m_Ctx->Replay().AsyncInvoke([this](IReplayController *r) { m_Output->Display(); });
|
||||
}
|
||||
else if(m_Dark == m_Light)
|
||||
{
|
||||
|
||||
@@ -97,7 +97,7 @@ void APIInspector::on_apiEvents_itemSelectionChanged()
|
||||
|
||||
if(ev.callstack.count > 0)
|
||||
{
|
||||
m_Ctx.Renderer().AsyncInvoke([this, ev](IReplayController *r) {
|
||||
m_Ctx.Replay().AsyncInvoke([this, ev](IReplayController *r) {
|
||||
rdctype::array<rdctype::str> trace = r->GetResolve(ev.callstack);
|
||||
|
||||
GUIInvoke::call([this, trace]() { addCallstack(trace); });
|
||||
|
||||
@@ -1149,7 +1149,7 @@ void BufferViewer::OnLogfileLoaded()
|
||||
|
||||
WId renderID = ui->render->winId();
|
||||
|
||||
m_Ctx.Renderer().BlockInvoke([renderID, this](IReplayController *r) {
|
||||
m_Ctx.Replay().BlockInvoke([renderID, this](IReplayController *r) {
|
||||
m_Output = r->CreateOutput(m_Ctx.CurWindowingSystem(), m_Ctx.FillWindowingData(renderID),
|
||||
ReplayOutputType::Mesh);
|
||||
|
||||
@@ -1223,7 +1223,7 @@ void BufferViewer::OnEventChanged(uint32_t eventID)
|
||||
guessSecondaryColumn(m_ModelGSOut);
|
||||
}
|
||||
|
||||
m_Ctx.Renderer().AsyncInvoke([this, vsinHoriz, vsoutHoriz, gsoutHoriz](IReplayController *r) {
|
||||
m_Ctx.Replay().AsyncInvoke([this, vsinHoriz, vsoutHoriz, gsoutHoriz](IReplayController *r) {
|
||||
|
||||
if(m_MeshView)
|
||||
{
|
||||
@@ -2189,7 +2189,7 @@ void BufferViewer::render_clicked(QMouseEvent *e)
|
||||
|
||||
if((e->buttons() & Qt::RightButton) && m_Output)
|
||||
{
|
||||
m_Ctx.Renderer().AsyncInvoke("PickVertex", [this, curpos](IReplayController *r) {
|
||||
m_Ctx.Replay().AsyncInvoke("PickVertex", [this, curpos](IReplayController *r) {
|
||||
uint32_t instanceSelected = 0;
|
||||
uint32_t vertSelected = 0;
|
||||
|
||||
@@ -2734,7 +2734,7 @@ void BufferViewer::debugVertex()
|
||||
uint32_t index =
|
||||
m_CurView->model()->data(m_CurView->model()->index(idx.row(), 1), Qt::DisplayRole).toUInt();
|
||||
|
||||
m_Ctx.Renderer().AsyncInvoke([this, vertid, index](IReplayController *r) {
|
||||
m_Ctx.Replay().AsyncInvoke([this, vertid, index](IReplayController *r) {
|
||||
ShaderDebugTrace *trace =
|
||||
r->DebugVertex(vertid, m_Config.curInstance, index, m_Ctx.CurDrawcall()->instanceOffset,
|
||||
m_Ctx.CurDrawcall()->vertexOffset);
|
||||
|
||||
@@ -110,7 +110,7 @@ void ConstantBufferPreviewer::OnEventChanged(uint32_t eventID)
|
||||
|
||||
if(!m_formatOverride.empty())
|
||||
{
|
||||
m_Ctx.Renderer().AsyncInvoke([this, offs, size](IReplayController *r) {
|
||||
m_Ctx.Replay().AsyncInvoke([this, offs, size](IReplayController *r) {
|
||||
rdctype::array<byte> data = r->GetBufferData(m_cbuffer, offs, size);
|
||||
rdctype::array<ShaderVariable> vars = applyFormatOverride(data);
|
||||
GUIInvoke::call([this, vars] { setVariables(vars); });
|
||||
@@ -118,7 +118,7 @@ void ConstantBufferPreviewer::OnEventChanged(uint32_t eventID)
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Ctx.Renderer().AsyncInvoke([this, entryPoint, offs](IReplayController *r) {
|
||||
m_Ctx.Replay().AsyncInvoke([this, entryPoint, offs](IReplayController *r) {
|
||||
rdctype::array<ShaderVariable> vars = r->GetCBufferVariableContents(
|
||||
m_shader, entryPoint.toUtf8().data(), m_slot, m_cbuffer, offs);
|
||||
GUIInvoke::call([this, vars] { setVariables(vars); });
|
||||
|
||||
@@ -207,7 +207,7 @@ void CaptureDialog::on_exePath_textChanged(const QString &text)
|
||||
{
|
||||
QString path = dir.absolutePath();
|
||||
|
||||
if(!m_Ctx.Renderer().CurrentRemote())
|
||||
if(!m_Ctx.Replay().CurrentRemote())
|
||||
path = QDir::toNativeSeparators(path);
|
||||
|
||||
// match the path separators from the path
|
||||
@@ -395,7 +395,7 @@ void CaptureDialog::on_exePathBrowse_clicked()
|
||||
|
||||
QString filename;
|
||||
|
||||
if(m_Ctx.Renderer().CurrentRemote())
|
||||
if(m_Ctx.Replay().CurrentRemote())
|
||||
{
|
||||
VirtualFileDialog vfd(m_Ctx, this);
|
||||
RDDialog::show(&vfd);
|
||||
@@ -429,7 +429,7 @@ void CaptureDialog::on_workDirBrowse_clicked()
|
||||
|
||||
QString dir;
|
||||
|
||||
if(m_Ctx.Renderer().CurrentRemote())
|
||||
if(m_Ctx.Replay().CurrentRemote())
|
||||
{
|
||||
VirtualFileDialog vfd(m_Ctx, this);
|
||||
vfd.setDirBrowse();
|
||||
@@ -602,12 +602,12 @@ void CaptureDialog::SetExecutableFilename(const QString &filename)
|
||||
{
|
||||
QString fn = filename;
|
||||
|
||||
if(!m_Ctx.Renderer().CurrentRemote())
|
||||
if(!m_Ctx.Replay().CurrentRemote())
|
||||
fn = QDir::toNativeSeparators(QFileInfo(fn).absoluteFilePath());
|
||||
|
||||
ui->exePath->setText(fn);
|
||||
|
||||
if(!m_Ctx.Renderer().CurrentRemote())
|
||||
if(!m_Ctx.Replay().CurrentRemote())
|
||||
{
|
||||
m_Ctx.Config().LastCapturePath = QFileInfo(fn).absolutePath();
|
||||
m_Ctx.Config().LastCaptureExe = QFileInfo(fn).completeBaseName();
|
||||
@@ -716,7 +716,7 @@ void CaptureDialog::TriggerCapture()
|
||||
QString exe = ui->exePath->text();
|
||||
|
||||
// for non-remote captures, check the executable locally
|
||||
if(!m_Ctx.Renderer().CurrentRemote())
|
||||
if(!m_Ctx.Replay().CurrentRemote())
|
||||
{
|
||||
if(!QFileInfo::exists(exe))
|
||||
{
|
||||
@@ -729,7 +729,7 @@ void CaptureDialog::TriggerCapture()
|
||||
QString workingDir = "";
|
||||
|
||||
// for non-remote captures, check the directory locally
|
||||
if(m_Ctx.Renderer().CurrentRemote())
|
||||
if(m_Ctx.Replay().CurrentRemote())
|
||||
{
|
||||
workingDir = ui->workDirPath->text();
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <QDialog>
|
||||
#include "Code/RenderManager.h"
|
||||
#include "Code/ReplayManager.h"
|
||||
|
||||
namespace Ui
|
||||
{
|
||||
|
||||
@@ -305,7 +305,7 @@ void LiveCapture::deleteCapture_triggered()
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Ctx.Renderer().DeleteCapture(log->path, log->local);
|
||||
m_Ctx.Replay().DeleteCapture(log->path, log->local);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -564,9 +564,9 @@ bool LiveCapture::checkAllowClose()
|
||||
// we either have to save or delete the log. Make sure that if it's remote that we are able
|
||||
// to by having an active connection or replay context on that host.
|
||||
if(suppressRemoteWarning == false && (!m_Connection || !m_Connection->Connected()) &&
|
||||
!log->local && (!m_Ctx.Renderer().CurrentRemote() ||
|
||||
m_Ctx.Renderer().CurrentRemote()->Hostname != m_Hostname ||
|
||||
!m_Ctx.Renderer().CurrentRemote()->Connected))
|
||||
!log->local &&
|
||||
(!m_Ctx.Replay().CurrentRemote() || m_Ctx.Replay().CurrentRemote()->Hostname != m_Hostname ||
|
||||
!m_Ctx.Replay().CurrentRemote()->Connected))
|
||||
{
|
||||
QMessageBox::StandardButton res2 = RDDialog::question(
|
||||
this, tr("No active replay context"),
|
||||
@@ -611,9 +611,9 @@ void LiveCapture::openCapture(CaptureLog *log)
|
||||
{
|
||||
log->opened = true;
|
||||
|
||||
if(!log->local && (!m_Ctx.Renderer().CurrentRemote() ||
|
||||
m_Ctx.Renderer().CurrentRemote()->Hostname != m_Hostname ||
|
||||
!m_Ctx.Renderer().CurrentRemote()->Connected))
|
||||
if(!log->local &&
|
||||
(!m_Ctx.Replay().CurrentRemote() || m_Ctx.Replay().CurrentRemote()->Hostname != m_Hostname ||
|
||||
!m_Ctx.Replay().CurrentRemote()->Connected))
|
||||
{
|
||||
RDDialog::critical(
|
||||
this, tr("No active replay context"),
|
||||
@@ -666,9 +666,8 @@ bool LiveCapture::saveCapture(CaptureLog *log)
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!m_Ctx.Renderer().CurrentRemote() ||
|
||||
m_Ctx.Renderer().CurrentRemote()->Hostname != m_Hostname ||
|
||||
!m_Ctx.Renderer().CurrentRemote()->Connected)
|
||||
if(!m_Ctx.Replay().CurrentRemote() || m_Ctx.Replay().CurrentRemote()->Hostname != m_Hostname ||
|
||||
!m_Ctx.Replay().CurrentRemote()->Connected)
|
||||
{
|
||||
RDDialog::critical(this, tr("No active replay context"),
|
||||
tr("This capture is on remote host %1 and there is no active replay "
|
||||
@@ -679,7 +678,7 @@ bool LiveCapture::saveCapture(CaptureLog *log)
|
||||
return false;
|
||||
}
|
||||
|
||||
m_Ctx.Renderer().CopyCaptureFromRemote(log->path, path, this);
|
||||
m_Ctx.Replay().CopyCaptureFromRemote(log->path, path, this);
|
||||
|
||||
if(!QFile::exists(path))
|
||||
{
|
||||
@@ -688,7 +687,7 @@ bool LiveCapture::saveCapture(CaptureLog *log)
|
||||
return false;
|
||||
}
|
||||
|
||||
m_Ctx.Renderer().DeleteCapture(log->path, false);
|
||||
m_Ctx.Replay().DeleteCapture(log->path, false);
|
||||
}
|
||||
|
||||
log->saved = true;
|
||||
@@ -723,7 +722,7 @@ void LiveCapture::cleanItems()
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Ctx.Renderer().DeleteCapture(log->path, log->local);
|
||||
m_Ctx.Replay().DeleteCapture(log->path, log->local);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -877,9 +876,8 @@ void LiveCapture::connectionClosed()
|
||||
// to this machine as a remote context
|
||||
if(!log->local)
|
||||
{
|
||||
if(!m_Ctx.Renderer().CurrentRemote() ||
|
||||
m_Ctx.Renderer().CurrentRemote()->Hostname != m_Hostname ||
|
||||
!m_Ctx.Renderer().CurrentRemote()->Connected)
|
||||
if(!m_Ctx.Replay().CurrentRemote() || m_Ctx.Replay().CurrentRemote()->Hostname != m_Hostname ||
|
||||
!m_Ctx.Replay().CurrentRemote()->Connected)
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -598,7 +598,7 @@ void RemoteManager::on_connect_clicked()
|
||||
// shut down
|
||||
if(host->Connected)
|
||||
{
|
||||
m_Ctx.Renderer().ShutdownServer();
|
||||
m_Ctx.Replay().ShutdownServer();
|
||||
setRemoteServerLive(node, false, false);
|
||||
}
|
||||
else
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
#include <QRegExp>
|
||||
#include <QSortFilterProxyModel>
|
||||
#include "Code/CaptureContext.h"
|
||||
#include "Code/RenderManager.h"
|
||||
#include "Code/ReplayManager.h"
|
||||
#include "Code/Resources.h"
|
||||
#include "ui_VirtualFileDialog.h"
|
||||
|
||||
@@ -48,7 +48,7 @@ public:
|
||||
FileNameRole,
|
||||
};
|
||||
|
||||
RemoteFileModel(IRenderManager &r, QObject *parent = NULL)
|
||||
RemoteFileModel(IReplayManager &r, QObject *parent = NULL)
|
||||
: Renderer(r), QAbstractItemModel(parent)
|
||||
{
|
||||
makeIconStates(fileIcon, Pixmaps::page_white_database());
|
||||
@@ -361,7 +361,7 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
IRenderManager &Renderer;
|
||||
IReplayManager &Renderer;
|
||||
|
||||
QIcon dirIcon[2];
|
||||
QIcon exeIcon[2];
|
||||
@@ -556,7 +556,7 @@ VirtualFileDialog::VirtualFileDialog(ICaptureContext &ctx, QWidget *parent)
|
||||
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
|
||||
m_Model = new RemoteFileModel(ctx.Renderer(), this);
|
||||
m_Model = new RemoteFileModel(ctx.Replay(), this);
|
||||
|
||||
m_DirProxy = new RemoteFileProxy(this);
|
||||
m_DirProxy->setSourceModel(m_Model);
|
||||
|
||||
@@ -261,7 +261,7 @@ void EventBrowser::on_bookmark_clicked()
|
||||
|
||||
void EventBrowser::on_timeDraws_clicked()
|
||||
{
|
||||
m_Ctx.Renderer().AsyncInvoke([this](IReplayController *r) {
|
||||
m_Ctx.Replay().AsyncInvoke([this](IReplayController *r) {
|
||||
|
||||
rdctype::array<CounterResult> results = r->FetchCounters({GPUCounter::EventGPUDuration});
|
||||
|
||||
|
||||
@@ -334,7 +334,7 @@ void MainWindow::OnCaptureTrigger(const QString &exe, const QString &workingDir,
|
||||
LambdaThread *th = new LambdaThread([this, exe, workingDir, cmdLine, env, opts, callback]() {
|
||||
QString logfile = m_Ctx.TempLogFilename(QFileInfo(exe).baseName());
|
||||
|
||||
uint32_t ret = m_Ctx.Renderer().ExecuteAndInject(exe, workingDir, cmdLine, env, logfile, opts);
|
||||
uint32_t ret = m_Ctx.Replay().ExecuteAndInject(exe, workingDir, cmdLine, env, logfile, opts);
|
||||
|
||||
GUIInvoke::call([this, exe, ret, callback]() {
|
||||
if(ret == 0)
|
||||
@@ -347,7 +347,7 @@ void MainWindow::OnCaptureTrigger(const QString &exe, const QString &workingDir,
|
||||
}
|
||||
|
||||
LiveCapture *live = new LiveCapture(
|
||||
m_Ctx, m_Ctx.Renderer().CurrentRemote() ? m_Ctx.Renderer().CurrentRemote()->Hostname : "",
|
||||
m_Ctx, m_Ctx.Replay().CurrentRemote() ? m_Ctx.Replay().CurrentRemote()->Hostname : "",
|
||||
ret, this, this);
|
||||
ShowLiveCapture(live);
|
||||
callback(live);
|
||||
@@ -416,7 +416,7 @@ void MainWindow::LoadLogfile(const QString &filename, bool temporary, bool local
|
||||
ReplaySupport support = ReplaySupport::Unsupported;
|
||||
|
||||
bool remoteReplay =
|
||||
!local || (m_Ctx.Renderer().CurrentRemote() && m_Ctx.Renderer().CurrentRemote()->Connected);
|
||||
!local || (m_Ctx.Replay().CurrentRemote() && m_Ctx.Replay().CurrentRemote()->Connected);
|
||||
|
||||
if(local)
|
||||
{
|
||||
@@ -470,7 +470,7 @@ void MainWindow::LoadLogfile(const QString &filename, bool temporary, bool local
|
||||
}
|
||||
|
||||
remoteReplay =
|
||||
(m_Ctx.Renderer().CurrentRemote() && m_Ctx.Renderer().CurrentRemote()->Connected);
|
||||
(m_Ctx.Replay().CurrentRemote() && m_Ctx.Replay().CurrentRemote()->Connected);
|
||||
|
||||
if(!remoteReplay)
|
||||
{
|
||||
@@ -500,7 +500,7 @@ void MainWindow::LoadLogfile(const QString &filename, bool temporary, bool local
|
||||
{
|
||||
support = ReplaySupport::Unsupported;
|
||||
|
||||
QStringList remoteDrivers = m_Ctx.Renderer().GetRemoteSupport();
|
||||
QStringList remoteDrivers = m_Ctx.Replay().GetRemoteSupport();
|
||||
|
||||
for(const QString &d : remoteDrivers)
|
||||
{
|
||||
@@ -521,7 +521,7 @@ void MainWindow::LoadLogfile(const QString &filename, bool temporary, bool local
|
||||
QString remoteMessage =
|
||||
tr("This log was captured with %1 and cannot be replayed on %2.\n\n")
|
||||
.arg(driver)
|
||||
.arg(m_Ctx.Renderer().CurrentRemote()->Hostname);
|
||||
.arg(m_Ctx.Replay().CurrentRemote()->Hostname);
|
||||
|
||||
remoteMessage += "Try selecting a different remote context in the status bar.";
|
||||
|
||||
@@ -545,7 +545,7 @@ void MainWindow::LoadLogfile(const QString &filename, bool temporary, bool local
|
||||
|
||||
if(remoteReplay && local)
|
||||
{
|
||||
fileToLoad = m_Ctx.Renderer().CopyCaptureToRemote(filename, this);
|
||||
fileToLoad = m_Ctx.Replay().CopyCaptureToRemote(filename, this);
|
||||
|
||||
// deliberately leave local as true so that we keep referring to the locally saved log
|
||||
|
||||
@@ -641,7 +641,7 @@ bool MainWindow::PromptSaveLog()
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Ctx.Renderer().CopyCaptureFromRemote(m_Ctx.LogFilename(), saveFilename, this);
|
||||
m_Ctx.Replay().CopyCaptureFromRemote(m_Ctx.LogFilename(), saveFilename, this);
|
||||
success = QFile::exists(saveFilename);
|
||||
|
||||
error = tr("File couldn't be transferred from remote host");
|
||||
@@ -711,7 +711,7 @@ bool MainWindow::PromptCloseLog()
|
||||
CloseLogfile();
|
||||
|
||||
if(!deletepath.isEmpty())
|
||||
m_Ctx.Renderer().DeleteCapture(deletepath, loglocal);
|
||||
m_Ctx.Replay().DeleteCapture(deletepath, loglocal);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -735,8 +735,8 @@ void MainWindow::SetTitle(const QString &filename)
|
||||
prefix += " - ";
|
||||
}
|
||||
|
||||
if(m_Ctx.Renderer().CurrentRemote())
|
||||
prefix += tr("Remote: %1 - ").arg(m_Ctx.Renderer().CurrentRemote()->Hostname);
|
||||
if(m_Ctx.Replay().CurrentRemote())
|
||||
prefix += tr("Remote: %1 - ").arg(m_Ctx.Replay().CurrentRemote()->Hostname);
|
||||
|
||||
QString text = prefix + "RenderDoc ";
|
||||
|
||||
@@ -966,18 +966,18 @@ void MainWindow::messageCheck()
|
||||
{
|
||||
if(m_Ctx.LogLoaded())
|
||||
{
|
||||
m_Ctx.Renderer().AsyncInvoke([this](IReplayController *r) {
|
||||
m_Ctx.Replay().AsyncInvoke([this](IReplayController *r) {
|
||||
rdctype::array<DebugMessage> msgs = r->GetDebugMessages();
|
||||
|
||||
bool disconnected = false;
|
||||
|
||||
if(m_Ctx.Renderer().CurrentRemote())
|
||||
if(m_Ctx.Replay().CurrentRemote())
|
||||
{
|
||||
bool prev = m_Ctx.Renderer().CurrentRemote()->ServerRunning;
|
||||
bool prev = m_Ctx.Replay().CurrentRemote()->ServerRunning;
|
||||
|
||||
m_Ctx.Renderer().PingRemote();
|
||||
m_Ctx.Replay().PingRemote();
|
||||
|
||||
if(prev != m_Ctx.Renderer().CurrentRemote()->ServerRunning)
|
||||
if(prev != m_Ctx.Replay().CurrentRemote()->ServerRunning)
|
||||
disconnected = true;
|
||||
}
|
||||
|
||||
@@ -992,7 +992,7 @@ void MainWindow::messageCheck()
|
||||
"RenderDoc to reconnect and load the capture again"));
|
||||
}
|
||||
|
||||
if(m_Ctx.Renderer().CurrentRemote() && !m_Ctx.Renderer().CurrentRemote()->ServerRunning)
|
||||
if(m_Ctx.Replay().CurrentRemote() && !m_Ctx.Replay().CurrentRemote()->ServerRunning)
|
||||
contextChooser->setIcon(Icons::cross());
|
||||
|
||||
if(!msgs.empty())
|
||||
@@ -1011,18 +1011,18 @@ void MainWindow::messageCheck()
|
||||
}
|
||||
else if(!m_Ctx.LogLoaded() && !m_Ctx.LogLoading())
|
||||
{
|
||||
if(m_Ctx.Renderer().CurrentRemote())
|
||||
m_Ctx.Renderer().PingRemote();
|
||||
if(m_Ctx.Replay().CurrentRemote())
|
||||
m_Ctx.Replay().PingRemote();
|
||||
|
||||
GUIInvoke::call([this]() {
|
||||
if(m_Ctx.Renderer().CurrentRemote() && !m_Ctx.Renderer().CurrentRemote()->ServerRunning)
|
||||
if(m_Ctx.Replay().CurrentRemote() && !m_Ctx.Replay().CurrentRemote()->ServerRunning)
|
||||
{
|
||||
contextChooser->setIcon(Icons::cross());
|
||||
contextChooser->setText(tr("Replay Context: %1").arg("Local"));
|
||||
statusText->setText(
|
||||
tr("Remote server disconnected. To attempt to reconnect please select it again."));
|
||||
|
||||
m_Ctx.Renderer().DisconnectFromRemoteServer();
|
||||
m_Ctx.Replay().DisconnectFromRemoteServer();
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -1124,7 +1124,7 @@ void MainWindow::switchContext()
|
||||
live->close();
|
||||
}
|
||||
|
||||
m_Ctx.Renderer().DisconnectFromRemoteServer();
|
||||
m_Ctx.Replay().DisconnectFromRemoteServer();
|
||||
|
||||
if(!host)
|
||||
{
|
||||
@@ -1169,7 +1169,7 @@ void MainWindow::switchContext()
|
||||
|
||||
if(host->ServerRunning && !host->Busy)
|
||||
{
|
||||
status = m_Ctx.Renderer().ConnectToRemoteServer(host);
|
||||
status = m_Ctx.Replay().ConnectToRemoteServer(host);
|
||||
}
|
||||
|
||||
GUIInvoke::call([this, host, status]() {
|
||||
@@ -1229,7 +1229,7 @@ void MainWindow::OnLogfileLoaded()
|
||||
|
||||
setLogHasErrors(!m_Ctx.DebugMessages().empty());
|
||||
|
||||
m_Ctx.Renderer().AsyncInvoke([this](IReplayController *r) {
|
||||
m_Ctx.Replay().AsyncInvoke([this](IReplayController *r) {
|
||||
bool hasResolver = r->HasCallstacks();
|
||||
|
||||
GUIInvoke::call([this, hasResolver]() {
|
||||
@@ -1262,12 +1262,12 @@ void MainWindow::OnLogfileClosed()
|
||||
SetTitle();
|
||||
|
||||
// if the remote sever disconnected during log replay, resort back to a 'disconnected' state
|
||||
if(m_Ctx.Renderer().CurrentRemote() && !m_Ctx.Renderer().CurrentRemote()->ServerRunning)
|
||||
if(m_Ctx.Replay().CurrentRemote() && !m_Ctx.Replay().CurrentRemote()->ServerRunning)
|
||||
{
|
||||
statusText->setText(
|
||||
tr("Remote server disconnected. To attempt to reconnect please select it again."));
|
||||
contextChooser->setText(tr("Replay Context: %1").arg("Local"));
|
||||
m_Ctx.Renderer().DisconnectFromRemoteServer();
|
||||
m_Ctx.Replay().DisconnectFromRemoteServer();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1401,11 +1401,11 @@ void MainWindow::on_action_Statistics_Viewer_triggered()
|
||||
|
||||
void MainWindow::on_action_Resolve_Symbols_triggered()
|
||||
{
|
||||
m_Ctx.Renderer().AsyncInvoke([this](IReplayController *r) { r->InitResolver(); });
|
||||
m_Ctx.Replay().AsyncInvoke([this](IReplayController *r) { r->InitResolver(); });
|
||||
|
||||
ShowProgressDialog(this, tr("Please Wait - Resolving Symbols"), [this]() {
|
||||
bool running = true;
|
||||
m_Ctx.Renderer().BlockInvoke(
|
||||
m_Ctx.Replay().BlockInvoke(
|
||||
[&running](IReplayController *r) { running = r->HasCallstacks() && !r->InitResolver(); });
|
||||
return !running;
|
||||
});
|
||||
|
||||
@@ -324,8 +324,8 @@ void PipelineStateViewer::EditShader(ShaderStage shaderType, ResourceId id,
|
||||
|
||||
// invoke off to the ReplayController to replace the log's shader
|
||||
// with our edited one
|
||||
ctx->Renderer().AsyncInvoke([ctx, entryFunc, compileSource, shaderType, id, shaderDetails,
|
||||
viewer](IReplayController *r) {
|
||||
ctx->Replay().AsyncInvoke([ctx, entryFunc, compileSource, shaderType, id, shaderDetails,
|
||||
viewer](IReplayController *r) {
|
||||
rdctype::str errs;
|
||||
|
||||
uint flags = shaderDetails->DebugInfo.compileFlags;
|
||||
@@ -354,7 +354,7 @@ void PipelineStateViewer::EditShader(ShaderStage shaderType, ResourceId id,
|
||||
[id](ICaptureContext *ctx) {
|
||||
// remove the replacement on close (we could make this more sophisticated if there
|
||||
// was a place to control replaced resources/shaders).
|
||||
ctx->Renderer().AsyncInvoke([ctx, id](IReplayController *r) {
|
||||
ctx->Replay().AsyncInvoke([ctx, id](IReplayController *r) {
|
||||
r->RemoveReplacement(id);
|
||||
GUIInvoke::call([ctx] { ctx->RefreshStatus(); });
|
||||
});
|
||||
|
||||
@@ -639,7 +639,7 @@ void PixelHistoryView::startDebug(EventTag tag)
|
||||
|
||||
bool success = false;
|
||||
|
||||
m_Ctx.Renderer().BlockInvoke([this, &success, &trace](IReplayController *r) {
|
||||
m_Ctx.Replay().BlockInvoke([this, &success, &trace](IReplayController *r) {
|
||||
trace = r->DebugPixel((uint32_t)m_Pixel.x(), (uint32_t)m_Pixel.y(), m_Display.sampleIdx, ~0U);
|
||||
});
|
||||
|
||||
|
||||
@@ -895,7 +895,7 @@ void TextureViewer::UI_UpdateStatusText()
|
||||
|
||||
if(m_Output != NULL)
|
||||
{
|
||||
m_Ctx.Renderer().AsyncInvoke([this](IReplayController *) { m_Output->DisablePixelContext(); });
|
||||
m_Ctx.Replay().AsyncInvoke([this](IReplayController *) { m_Output->DisablePixelContext(); });
|
||||
}
|
||||
|
||||
// PixelPicked = false;
|
||||
@@ -1285,7 +1285,7 @@ void TextureViewer::UI_OnTextureSelectionChanged(bool newdraw)
|
||||
if(ui->autoFit->isChecked())
|
||||
AutoFitRange();
|
||||
|
||||
m_Ctx.Renderer().AsyncInvoke([this](IReplayController *r) {
|
||||
m_Ctx.Replay().AsyncInvoke([this](IReplayController *r) {
|
||||
RT_UpdateVisualRange(r);
|
||||
|
||||
RT_UpdateAndDisplay(r);
|
||||
@@ -1901,7 +1901,7 @@ void TextureViewer::InitResourcePreview(ResourcePreview *prev, ResourceId id, Co
|
||||
|
||||
prev->setResourceName(fullname);
|
||||
WId handle = prev->thumbWinId();
|
||||
m_Ctx.Renderer().AsyncInvoke([this, handle, id, typeHint](IReplayController *) {
|
||||
m_Ctx.Replay().AsyncInvoke([this, handle, id, typeHint](IReplayController *) {
|
||||
m_Output->AddThumbnail(m_Ctx.CurWindowingSystem(), m_Ctx.FillWindowingData(handle), id,
|
||||
typeHint);
|
||||
});
|
||||
@@ -1920,7 +1920,7 @@ void TextureViewer::InitResourcePreview(ResourcePreview *prev, ResourceId id, Co
|
||||
|
||||
prev->setResourceName(fullname);
|
||||
WId handle = prev->thumbWinId();
|
||||
m_Ctx.Renderer().AsyncInvoke([this, handle](IReplayController *) {
|
||||
m_Ctx.Replay().AsyncInvoke([this, handle](IReplayController *) {
|
||||
m_Output->AddThumbnail(m_Ctx.CurWindowingSystem(), m_Ctx.FillWindowingData(handle),
|
||||
ResourceId(), CompType::Typeless);
|
||||
});
|
||||
@@ -1929,7 +1929,7 @@ void TextureViewer::InitResourcePreview(ResourcePreview *prev, ResourceId id, Co
|
||||
{
|
||||
prev->setResourceName("");
|
||||
WId handle = prev->thumbWinId();
|
||||
m_Ctx.Renderer().AsyncInvoke([this, handle](IReplayController *) {
|
||||
m_Ctx.Replay().AsyncInvoke([this, handle](IReplayController *) {
|
||||
m_Output->AddThumbnail(m_Ctx.CurWindowingSystem(), m_Ctx.FillWindowingData(handle),
|
||||
ResourceId(), CompType::Typeless);
|
||||
});
|
||||
@@ -1947,7 +1947,7 @@ void TextureViewer::InitResourcePreview(ResourcePreview *prev, ResourceId id, Co
|
||||
prev->setSelected(true);
|
||||
|
||||
WId handle = prev->thumbWinId();
|
||||
m_Ctx.Renderer().AsyncInvoke([this, handle](IReplayController *) {
|
||||
m_Ctx.Replay().AsyncInvoke([this, handle](IReplayController *) {
|
||||
m_Output->AddThumbnail(m_Ctx.CurWindowingSystem(), m_Ctx.FillWindowingData(handle),
|
||||
ResourceId(), CompType::Typeless);
|
||||
});
|
||||
@@ -2123,7 +2123,7 @@ void TextureViewer::thumb_clicked(QMouseEvent *e)
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Ctx.Renderer().AsyncInvoke([this, id](IReplayController *r) {
|
||||
m_Ctx.Replay().AsyncInvoke([this, id](IReplayController *r) {
|
||||
rdctype::array<EventUsage> usage = r->GetUsage(id);
|
||||
|
||||
GUIInvoke::call([this, id, usage]() { OpenResourceContextMenu(id, usage); });
|
||||
@@ -2169,13 +2169,13 @@ void TextureViewer::render_mouseMove(QMouseEvent *e)
|
||||
m_PickedPoint.setX(qBound(0, m_PickedPoint.x(), (int)texptr->width - 1));
|
||||
m_PickedPoint.setY(qBound(0, m_PickedPoint.y(), (int)texptr->height - 1));
|
||||
|
||||
m_Ctx.Renderer().AsyncInvoke("PickPixelClick",
|
||||
[this](IReplayController *r) { RT_PickPixelsAndUpdate(r); });
|
||||
m_Ctx.Replay().AsyncInvoke("PickPixelClick",
|
||||
[this](IReplayController *r) { RT_PickPixelsAndUpdate(r); });
|
||||
}
|
||||
else if(e->buttons() == Qt::NoButton)
|
||||
{
|
||||
m_Ctx.Renderer().AsyncInvoke("PickPixelHover",
|
||||
[this](IReplayController *r) { RT_PickHoverAndUpdate(r); });
|
||||
m_Ctx.Replay().AsyncInvoke("PickPixelHover",
|
||||
[this](IReplayController *r) { RT_PickHoverAndUpdate(r); });
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2278,7 +2278,7 @@ void TextureViewer::render_keyPress(QKeyEvent *e)
|
||||
qBound(0, m_PickedPoint.y(), (int)texptr->height - 1));
|
||||
e->accept();
|
||||
|
||||
m_Ctx.Renderer().AsyncInvoke([this](IReplayController *r) {
|
||||
m_Ctx.Replay().AsyncInvoke([this](IReplayController *r) {
|
||||
RT_PickPixelsAndUpdate(r);
|
||||
RT_UpdateAndDisplay(r);
|
||||
});
|
||||
@@ -2470,7 +2470,7 @@ void TextureViewer::OnLogfileLoaded()
|
||||
m_TexDisplay.lightBackgroundColor =
|
||||
FloatVector(lightBack.redF(), lightBack.greenF(), lightBack.blueF(), 1.0f);
|
||||
|
||||
m_Ctx.Renderer().BlockInvoke([renderID, contextID, this](IReplayController *r) {
|
||||
m_Ctx.Replay().BlockInvoke([renderID, contextID, this](IReplayController *r) {
|
||||
m_Output = r->CreateOutput(m_Ctx.CurWindowingSystem(), m_Ctx.FillWindowingData(renderID),
|
||||
ReplayOutputType::Texture);
|
||||
|
||||
@@ -2970,7 +2970,7 @@ void TextureViewer::AutoFitRange()
|
||||
if(!m_Ctx.LogLoaded() || GetCurrentTexture() == NULL || m_Output == NULL)
|
||||
return;
|
||||
|
||||
m_Ctx.Renderer().AsyncInvoke([this](IReplayController *r) {
|
||||
m_Ctx.Replay().AsyncInvoke([this](IReplayController *r) {
|
||||
PixelValue min, max;
|
||||
std::tie(min, max) = m_Output->GetMinMax();
|
||||
|
||||
@@ -3241,7 +3241,7 @@ void TextureViewer::on_saveTex_clicked()
|
||||
if(m_TexDisplay.CustomShader != ResourceId())
|
||||
{
|
||||
ResourceId id;
|
||||
m_Ctx.Renderer().BlockInvoke(
|
||||
m_Ctx.Replay().BlockInvoke(
|
||||
[this, &id](IReplayController *r) { id = m_Output->GetCustomShaderTexID(); });
|
||||
|
||||
if(id != ResourceId())
|
||||
@@ -3258,7 +3258,7 @@ void TextureViewer::on_saveTex_clicked()
|
||||
bool ret = false;
|
||||
QString fn = saveDialog.filename();
|
||||
|
||||
m_Ctx.Renderer().BlockInvoke([this, &ret, config, fn](IReplayController *r) {
|
||||
m_Ctx.Replay().BlockInvoke([this, &ret, config, fn](IReplayController *r) {
|
||||
ret = r->SaveTexture(config, fn.toUtf8().data());
|
||||
});
|
||||
|
||||
@@ -3279,7 +3279,7 @@ void TextureViewer::on_debugPixelContext_clicked()
|
||||
int x = m_PickedPoint.x() >> (int)m_TexDisplay.mip;
|
||||
int y = m_PickedPoint.y() >> (int)m_TexDisplay.mip;
|
||||
|
||||
m_Ctx.Renderer().AsyncInvoke([this, x, y](IReplayController *r) {
|
||||
m_Ctx.Replay().AsyncInvoke([this, x, y](IReplayController *r) {
|
||||
ShaderDebugTrace *trace = r->DebugPixel((uint32_t)x, (uint32_t)y, m_TexDisplay.sampleIdx, ~0U);
|
||||
|
||||
if(trace->states.count == 0)
|
||||
@@ -3326,7 +3326,7 @@ void TextureViewer::on_pixelHistory_clicked()
|
||||
// render thread before we insert the long blocking pixel history task
|
||||
LambdaThread *thread = new LambdaThread([this, texptr, x, y, hist]() {
|
||||
QThread::msleep(150);
|
||||
m_Ctx.Renderer().AsyncInvoke([this, texptr, x, y, hist](IReplayController *r) {
|
||||
m_Ctx.Replay().AsyncInvoke([this, texptr, x, y, hist](IReplayController *r) {
|
||||
rdctype::array<PixelModification> history =
|
||||
r->PixelHistory(texptr->ID, (uint32_t)x, (int32_t)y, m_TexDisplay.sliceFace,
|
||||
m_TexDisplay.mip, m_TexDisplay.sampleIdx, m_TexDisplay.typeHint);
|
||||
@@ -3402,7 +3402,7 @@ void TextureViewer::reloadCustomShaders(const QString &filter)
|
||||
|
||||
QList<ResourceId> shaders = m_CustomShaders.values();
|
||||
|
||||
m_Ctx.Renderer().AsyncInvoke([shaders](IReplayController *r) {
|
||||
m_Ctx.Replay().AsyncInvoke([shaders](IReplayController *r) {
|
||||
for(ResourceId s : shaders)
|
||||
r->FreeCustomShader(s);
|
||||
});
|
||||
@@ -3423,7 +3423,7 @@ void TextureViewer::reloadCustomShaders(const QString &filter)
|
||||
return;
|
||||
|
||||
ResourceId freed = m_CustomShaders[key];
|
||||
m_Ctx.Renderer().AsyncInvoke([freed](IReplayController *r) { r->FreeCustomShader(freed); });
|
||||
m_Ctx.Replay().AsyncInvoke([freed](IReplayController *r) { r->FreeCustomShader(freed); });
|
||||
|
||||
m_CustomShaders.remove(key);
|
||||
|
||||
@@ -3469,7 +3469,7 @@ void TextureViewer::reloadCustomShaders(const QString &filter)
|
||||
|
||||
m_CustomShaders[key] = ResourceId();
|
||||
m_CustomShadersBusy.push_back(key);
|
||||
m_Ctx.Renderer().AsyncInvoke([this, fn, key, source](IReplayController *r) {
|
||||
m_Ctx.Replay().AsyncInvoke([this, fn, key, source](IReplayController *r) {
|
||||
rdctype::str errors;
|
||||
|
||||
ResourceId id;
|
||||
|
||||
@@ -149,7 +149,7 @@ win32 {
|
||||
|
||||
SOURCES += Code/qrenderdoc.cpp \
|
||||
Code/qprocessinfo.cpp \
|
||||
Code/RenderManager.cpp \
|
||||
Code/ReplayManager.cpp \
|
||||
Code/CaptureContext.cpp \
|
||||
Code/ScintillaSyntax.cpp \
|
||||
Code/QRDUtils.cpp \
|
||||
@@ -205,7 +205,7 @@ SOURCES += Code/qrenderdoc.cpp \
|
||||
Windows/Dialogs/TipsDialog.cpp
|
||||
HEADERS += Code/CaptureContext.h \
|
||||
Code/qprocessinfo.h \
|
||||
Code/RenderManager.h \
|
||||
Code/ReplayManager.h \
|
||||
Code/ScintillaSyntax.h \
|
||||
Code/QRDUtils.h \
|
||||
Code/Resources.h \
|
||||
|
||||
@@ -731,7 +731,7 @@
|
||||
</ClCompile>
|
||||
<ClCompile Include="Widgets\Extended\RDLineEdit.cpp" />
|
||||
<ClCompile Include="Windows\MainWindow.cpp" />
|
||||
<ClCompile Include="Code\RenderManager.cpp" />
|
||||
<ClCompile Include="Code\ReplayManager.cpp" />
|
||||
<ClCompile Include="Windows\PipelineState\D3D11PipelineStateViewer.cpp" />
|
||||
<ClCompile Include="Windows\PipelineState\D3D12PipelineStateViewer.cpp" />
|
||||
<ClCompile Include="Windows\PipelineState\GLPipelineStateViewer.cpp" />
|
||||
@@ -906,7 +906,7 @@
|
||||
<Message>MOC %(Filename).h</Message>
|
||||
<Outputs>$(IntDir)generated\moc_%(Filename).cpp</Outputs>
|
||||
</CustomBuild>
|
||||
<ClInclude Include="Code\RenderManager.h" />
|
||||
<ClInclude Include="Code\ReplayManager.h" />
|
||||
<ClInclude Include="Code\ScintillaSyntax.h" />
|
||||
<CustomBuild Include="Widgets\BufferFormatSpecifier.h">
|
||||
<AdditionalInputs>%(Fullpath);$(ProjectDir)3rdparty\qt\$(Platform)\bin\moc.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
|
||||
@@ -99,9 +99,6 @@
|
||||
<ClCompile Include="Windows\EventBrowser.cpp">
|
||||
<Filter>Windows</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Code\RenderManager.cpp">
|
||||
<Filter>Code</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Widgets\ResourcePreview.cpp">
|
||||
<Filter>Widgets</Filter>
|
||||
</ClCompile>
|
||||
@@ -576,14 +573,14 @@
|
||||
<ClCompile Include="Code\Interface\QRDInterface.cpp">
|
||||
<Filter>Code\Interface</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Code\ReplayManager.cpp">
|
||||
<Filter>Code</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="3rdparty\flowlayout\FlowLayout.h">
|
||||
<Filter>3rdparty\FlowLayout</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Code\RenderManager.h">
|
||||
<Filter>Code</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Code\CaptureContext.h">
|
||||
<Filter>Code</Filter>
|
||||
</ClInclude>
|
||||
@@ -881,6 +878,9 @@
|
||||
<ClInclude Include="Code\pyrenderdoc\document_check.h">
|
||||
<Filter>Code\pyrenderdoc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Code\ReplayManager.h">
|
||||
<Filter>Code</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\128.png">
|
||||
|
||||
Reference in New Issue
Block a user