From 1f1467b06ba0213af3bc3735d259b26d0054f107 Mon Sep 17 00:00:00 2001 From: baldurk Date: Sun, 10 Jul 2016 14:48:50 +0300 Subject: [PATCH] Fix DXGI hooking for D3D11 --- renderdoc/driver/d3d11/d3d11_hooks.cpp | 2 +- renderdoc/driver/d3d11/d3d11_replay.cpp | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/d3d11/d3d11_hooks.cpp b/renderdoc/driver/d3d11/d3d11_hooks.cpp index 01540a24f..4237cb580 100644 --- a/renderdoc/driver/d3d11/d3d11_hooks.cpp +++ b/renderdoc/driver/d3d11/d3d11_hooks.cpp @@ -32,7 +32,7 @@ ID3DDevice *GetD3D11DeviceIfAlloc(IUnknown *dev) { if(WrappedID3D11Device::IsAlloc(dev)) - return (ID3DDevice *)dev; + return (WrappedID3D11Device *)dev; return NULL; } diff --git a/renderdoc/driver/d3d11/d3d11_replay.cpp b/renderdoc/driver/d3d11/d3d11_replay.cpp index 713e7c2d2..02c946c6f 100644 --- a/renderdoc/driver/d3d11/d3d11_replay.cpp +++ b/renderdoc/driver/d3d11/d3d11_replay.cpp @@ -1916,10 +1916,14 @@ void D3D11Replay::SetProxyBufferData(ResourceId bufid, byte *data, size_t dataSi } } +ID3DDevice *GetD3D11DeviceIfAlloc(IUnknown *dev); + ReplayCreateStatus D3D11_CreateReplayDevice(const char *logfile, IReplayDriver **driver) { RDCDEBUG("Creating a D3D11 replay device"); + WrappedIDXGISwapChain3::RegisterD3DDeviceCallback(GetD3D11DeviceIfAlloc); + HMODULE lib = NULL; lib = LoadLibraryA("d3d11.dll"); if(lib == NULL)