mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-07-09 01:00:51 +00:00
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:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user