mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-08-15 19:16:32 +00:00
Add string messages to returned result codes to display to user
* Most of the main entry points that can fail with relevant reasons now has a way of specifying a message to return with it. This message can be displayed to the user to give more information or context about an error.
This commit is contained in:
@@ -259,14 +259,14 @@ public:
|
||||
bytebuf buf;
|
||||
|
||||
ICaptureFile *file = RENDERDOC_OpenCaptureFile();
|
||||
ReplayStatus st = file->OpenFile(conv(infile), "rdc", NULL);
|
||||
if(st == ReplayStatus::Succeeded)
|
||||
ResultDetails st = file->OpenFile(conv(infile), "rdc", NULL);
|
||||
if(st.OK())
|
||||
{
|
||||
buf = file->GetThumbnail(type, maxsize).data;
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cerr << "Couldn't open '" << infile << "': " << ToStr(st) << std::endl;
|
||||
std::cerr << "Couldn't open '" << infile << "': " << st.Message() << std::endl;
|
||||
}
|
||||
file->Shutdown();
|
||||
|
||||
@@ -359,10 +359,10 @@ public:
|
||||
ExecuteResult res = RENDERDOC_ExecuteAndInject(
|
||||
conv(executable), conv(workingDir), conv(cmdLine), env, conv(logFile), opts, wait_for_exit);
|
||||
|
||||
if(res.status != ReplayStatus::Succeeded)
|
||||
if(res.result.code != ResultCode::Succeeded)
|
||||
{
|
||||
std::cerr << "Failed to create & inject: " << ToStr(res.status) << std::endl;
|
||||
return (int)res.status;
|
||||
std::cerr << "Failed to create & inject: " << res.result.Message() << std::endl;
|
||||
return (int)res.result.code;
|
||||
}
|
||||
|
||||
if(wait_for_exit)
|
||||
@@ -430,10 +430,10 @@ public:
|
||||
|
||||
ExecuteResult res = RENDERDOC_InjectIntoProcess(PID, env, conv(captureFile), opts, wait_for_exit);
|
||||
|
||||
if(res.status != ReplayStatus::Succeeded)
|
||||
if(res.result.code != ResultCode::Succeeded)
|
||||
{
|
||||
std::cerr << "Failed to inject: " << ToStr(res.status) << std::endl;
|
||||
return (int)res.status;
|
||||
std::cerr << "Failed to inject: " << res.result.Message() << std::endl;
|
||||
return (int)res.result.code;
|
||||
}
|
||||
|
||||
if(wait_for_exit)
|
||||
@@ -580,12 +580,12 @@ public:
|
||||
std::cout << "Replaying '" << filename << "' on " << remote_host << "." << std::endl;
|
||||
|
||||
IRemoteServer *remote = NULL;
|
||||
ReplayStatus status = RENDERDOC_CreateRemoteServerConnection(conv(remote_host), &remote);
|
||||
ResultDetails result = RENDERDOC_CreateRemoteServerConnection(conv(remote_host), &remote);
|
||||
|
||||
if(remote == NULL || status != ReplayStatus::Succeeded)
|
||||
if(remote == NULL || result.code != ResultCode::Succeeded)
|
||||
{
|
||||
std::cerr << "Error: " << ToStr(status) << " - Couldn't connect to " << remote_host << "."
|
||||
<< std::endl;
|
||||
std::cerr << "Error: " << result.Message() << " - Couldn't connect to " << remote_host
|
||||
<< "." << std::endl;
|
||||
std::cerr << " Have you run renderdoccmd remoteserver on '" << remote_host << "'?"
|
||||
<< std::endl;
|
||||
return 1;
|
||||
@@ -596,9 +596,9 @@ public:
|
||||
rdcstr remotePath = remote->CopyCaptureToRemote(conv(filename), NULL);
|
||||
|
||||
IReplayController *renderer = NULL;
|
||||
rdctie(status, renderer) = remote->OpenCapture(~0U, remotePath, ReplayOptions(), NULL);
|
||||
rdctie(result, renderer) = remote->OpenCapture(~0U, remotePath, ReplayOptions(), NULL);
|
||||
|
||||
if(status == ReplayStatus::Succeeded)
|
||||
if(result.OK())
|
||||
{
|
||||
DisplayRendererPreview(renderer, width, height, loops);
|
||||
|
||||
@@ -606,7 +606,8 @@ public:
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cerr << "Couldn't load and replay '" << filename << "': " << ToStr(status) << std::endl;
|
||||
std::cerr << "Couldn't load and replay '" << filename << "': " << result.Message()
|
||||
<< std::endl;
|
||||
}
|
||||
|
||||
remote->ShutdownConnection();
|
||||
@@ -617,19 +618,21 @@ public:
|
||||
|
||||
ICaptureFile *file = RENDERDOC_OpenCaptureFile();
|
||||
|
||||
if(file->OpenFile(conv(filename), "rdc", NULL) != ReplayStatus::Succeeded)
|
||||
ResultDetails res = file->OpenFile(conv(filename), "rdc", NULL);
|
||||
|
||||
if(res.code != ResultCode::Succeeded)
|
||||
{
|
||||
std::cerr << "Couldn't load '" << filename << "'." << std::endl;
|
||||
std::cerr << "Couldn't load '" << filename << "': " << res.Message() << std::endl;
|
||||
return 1;
|
||||
}
|
||||
|
||||
IReplayController *renderer = NULL;
|
||||
ReplayStatus status = ReplayStatus::InternalError;
|
||||
rdctie(status, renderer) = file->OpenCapture(ReplayOptions(), NULL);
|
||||
ResultDetails result = {};
|
||||
rdctie(result, renderer) = file->OpenCapture(ReplayOptions(), NULL);
|
||||
|
||||
file->Shutdown();
|
||||
|
||||
if(status == ReplayStatus::Succeeded)
|
||||
if(result.OK())
|
||||
{
|
||||
DisplayRendererPreview(renderer, width, height, loops);
|
||||
|
||||
@@ -637,7 +640,8 @@ public:
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cerr << "Couldn't load and replay '" << filename << "': " << ToStr(status) << std::endl;
|
||||
std::cerr << "Couldn't load and replay '" << filename << "': " << result.Message()
|
||||
<< std::endl;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@@ -804,21 +808,21 @@ public:
|
||||
|
||||
ICaptureFile *file = RENDERDOC_OpenCaptureFile();
|
||||
|
||||
ReplayStatus st = file->OpenFile(conv(infile), conv(infmt), NULL);
|
||||
ResultDetails st = file->OpenFile(conv(infile), conv(infmt), NULL);
|
||||
|
||||
if(st != ReplayStatus::Succeeded)
|
||||
if(st.code != ResultCode::Succeeded)
|
||||
{
|
||||
std::cerr << "Couldn't load '" << infile << "' as '" << infmt << "': " << ToStr(st)
|
||||
std::cerr << "Couldn't load '" << infile << "' as '" << infmt << "': " << st.Message()
|
||||
<< std::endl;
|
||||
return 1;
|
||||
}
|
||||
|
||||
st = file->Convert(conv(outfile), conv(outfmt), NULL, NULL);
|
||||
|
||||
if(st != ReplayStatus::Succeeded)
|
||||
if(st.code != ResultCode::Succeeded)
|
||||
{
|
||||
std::cerr << "Couldn't convert '" << infile << "' to '" << outfile << "' as '" << outfmt
|
||||
<< "': " << ToStr(st) << std::endl;
|
||||
<< "': " << st.Message() << std::endl;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1014,10 +1018,10 @@ public:
|
||||
|
||||
ExecuteResult result = RENDERDOC_InjectIntoProcess(pid, env, conv(capfile), cmdopts, false);
|
||||
|
||||
if(result.status == ReplayStatus::Succeeded)
|
||||
if(result.result.OK())
|
||||
return result.ident;
|
||||
|
||||
return (int)result.status;
|
||||
return (int)result.result.code;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1109,12 +1113,12 @@ public:
|
||||
|
||||
ICaptureFile *capfile = RENDERDOC_OpenCaptureFile();
|
||||
|
||||
ReplayStatus status = capfile->OpenFile(conv(rdc), "", NULL);
|
||||
ResultDetails result = capfile->OpenFile(conv(rdc), "", NULL);
|
||||
|
||||
if(status != ReplayStatus::Succeeded)
|
||||
if(result.code != ResultCode::Succeeded)
|
||||
{
|
||||
capfile->Shutdown();
|
||||
std::cerr << "Couldn't load '" << rdc << "': " << ToStr(status) << std::endl;
|
||||
std::cerr << "Couldn't load '" << rdc << "': " << result.Message() << std::endl;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user