Don't register image viewer replay driver as normal

* This means the image viewer doesn't show up as a possible local replay
  etc. It's more of a 'magic' driver that supports things automatically.
This commit is contained in:
baldurk
2016-08-03 12:04:40 +02:00
parent 7beb3b494a
commit 58ba230a56
3 changed files with 13 additions and 3 deletions
+1
View File
@@ -71,6 +71,7 @@ set(sources
common/timing.h
common/wrapped_pool.h
core/core.cpp
core/image_viewer.cpp
core/core.h
core/crash_handler.h
core/target_control.cpp
+11
View File
@@ -35,6 +35,9 @@
#include "stb/stb_image.h"
#include "crash_handler.h"
// from image_viewer.cpp
ReplayCreateStatus IMG_CreateReplayDevice(const char *logfile, IReplayDriver **driver);
// not provided by tinyexr, just do by hand
bool is_exr_file(FILE *f)
{
@@ -719,6 +722,10 @@ ReplayCreateStatus RenderDoc::FillInitParams(const char *logFile, RDCDriver &dri
bool RenderDoc::HasReplayDriver(RDCDriver driver) const
{
// Image driver is handled specially and isn't registered in the map
if(driver == RDC_Image)
return true;
return m_ReplayDriverProviders.find(driver) != m_ReplayDriverProviders.end();
}
@@ -767,6 +774,10 @@ ReplayCreateStatus RenderDoc::CreateReplayDriver(RDCDriver driverType, const cha
if(driverType == RDC_Unknown && logfile == NULL && !m_ReplayDriverProviders.empty())
return m_ReplayDriverProviders.begin()->second(logfile, driver);
// image support is special, handle it here
if(driverType == RDC_Image && logfile != NULL)
return IMG_CreateReplayDevice(logfile, driver);
if(m_ReplayDriverProviders.find(driverType) != m_ReplayDriverProviders.end())
return m_ReplayDriverProviders[driverType](logfile, driver);
+1 -3
View File
@@ -356,7 +356,7 @@ ReplayCreateStatus IMG_CreateReplayDevice(const char *logfile, IReplayDriver **d
// just in case (we shouldn't have come in here if this weren't true), make sure
// the format is supported
if(ret == 0 || width == 0 || width == ~0U || height == 0 || height == ~0U)
if(ret == 0 || width <= 0 || width >= 65536 || height <= 0 || height >= 65536)
{
FileIO::fclose(f);
return eReplayCreate_ImageUnsupported;
@@ -644,5 +644,3 @@ void ImageViewer::RefreshFile()
FileIO::fclose(f);
}
static DriverRegistration IMGDriverRegistration(RDC_Image, "Image", &IMG_CreateReplayDevice);