From dc72949d029aff9f4bd1264288c8ed6c3b29200b Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 6 Dec 2019 13:01:01 +0000 Subject: [PATCH] Remove std::vector/std::string use from D3D8/9 drivers and DXGI --- renderdoc/driver/d3d8/d3d8_debug.cpp | 2 +- renderdoc/driver/d3d8/d3d8_device.cpp | 3 +-- renderdoc/driver/d3d9/d3d9_debug.cpp | 2 +- renderdoc/driver/d3d9/d3d9_device.cpp | 3 +-- renderdoc/driver/dxgi/dxgi_common.cpp | 14 +++++++------- renderdoc/driver/dxgi/dxgi_common.h | 2 +- renderdoc/driver/dxgi/dxgi_wrapped.cpp | 14 +++++++------- renderdoc/driver/dxgi/dxgi_wrapped.h | 4 ++-- 8 files changed, 21 insertions(+), 23 deletions(-) diff --git a/renderdoc/driver/d3d8/d3d8_debug.cpp b/renderdoc/driver/d3d8/d3d8_debug.cpp index a4d020ae4..a935dce24 100644 --- a/renderdoc/driver/d3d8/d3d8_debug.cpp +++ b/renderdoc/driver/d3d8/d3d8_debug.cpp @@ -44,7 +44,7 @@ bool D3D8DebugManager::InitFontRendering() int width = FONT_TEX_WIDTH; int height = FONT_TEX_HEIGHT; - std::string font = GetEmbeddedResource(sourcecodepro_ttf); + rdcstr font = GetEmbeddedResource(sourcecodepro_ttf); byte *ttfdata = (byte *)font.c_str(); const int firstChar = int(' ') + 1; diff --git a/renderdoc/driver/d3d8/d3d8_device.cpp b/renderdoc/driver/d3d8/d3d8_device.cpp index 616be0b32..e90afcbf1 100644 --- a/renderdoc/driver/d3d8/d3d8_device.cpp +++ b/renderdoc/driver/d3d8/d3d8_device.cpp @@ -279,8 +279,7 @@ HRESULT __stdcall WrappedD3DDevice8::Present(CONST RECT *pSourceRect, CONST RECT int flags = activeWindow ? RenderDoc::eOverlay_ActiveWindow : 0; flags |= RenderDoc::eOverlay_CaptureDisabled; - std::string overlayText = - RenderDoc::Inst().GetOverlayText(RDCDriver::D3D8, m_FrameCounter, flags); + rdcstr overlayText = RenderDoc::Inst().GetOverlayText(RDCDriver::D3D8, m_FrameCounter, flags); overlayText += "Captures not supported with D3D8\n"; diff --git a/renderdoc/driver/d3d9/d3d9_debug.cpp b/renderdoc/driver/d3d9/d3d9_debug.cpp index 6e088ad11..7d654cf13 100644 --- a/renderdoc/driver/d3d9/d3d9_debug.cpp +++ b/renderdoc/driver/d3d9/d3d9_debug.cpp @@ -44,7 +44,7 @@ bool D3D9DebugManager::InitFontRendering() int width = FONT_TEX_WIDTH; int height = FONT_TEX_HEIGHT; - std::string font = GetEmbeddedResource(sourcecodepro_ttf); + rdcstr font = GetEmbeddedResource(sourcecodepro_ttf); byte *ttfdata = (byte *)font.c_str(); const int firstChar = int(' ') + 1; diff --git a/renderdoc/driver/d3d9/d3d9_device.cpp b/renderdoc/driver/d3d9/d3d9_device.cpp index b278e8b78..34ea8effe 100644 --- a/renderdoc/driver/d3d9/d3d9_device.cpp +++ b/renderdoc/driver/d3d9/d3d9_device.cpp @@ -247,8 +247,7 @@ HRESULT __stdcall WrappedD3DDevice9::Present(CONST RECT *pSourceRect, CONST RECT int flags = activeWindow ? RenderDoc::eOverlay_ActiveWindow : 0; flags |= RenderDoc::eOverlay_CaptureDisabled; - std::string overlayText = - RenderDoc::Inst().GetOverlayText(RDCDriver::D3D9, m_FrameCounter, flags); + rdcstr overlayText = RenderDoc::Inst().GetOverlayText(RDCDriver::D3D9, m_FrameCounter, flags); overlayText += "Captures not supported with D3D9\n"; diff --git a/renderdoc/driver/dxgi/dxgi_common.cpp b/renderdoc/driver/dxgi/dxgi_common.cpp index ddf1e2bc3..df719eca7 100644 --- a/renderdoc/driver/dxgi/dxgi_common.cpp +++ b/renderdoc/driver/dxgi/dxgi_common.cpp @@ -1610,7 +1610,7 @@ void WarnUnknownGUID(const char *name, REFIID riid) static Threading::CriticalSection lock; // we use a vector here, because the number of *distinct* unknown GUIDs encountered is likely to // be low (e.g. less than 10). - static std::vector > warned; + static rdcarray > warned; { SCOPED_LOCK(lock); @@ -1633,7 +1633,7 @@ void WarnUnknownGUID(const char *name, REFIID riid) } } -static std::string GetDeviceProperty(HDEVINFO devs, PSP_DEVINFO_DATA data, const DEVPROPKEY *key) +static rdcstr GetDeviceProperty(HDEVINFO devs, PSP_DEVINFO_DATA data, const DEVPROPKEY *key) { DEVPROPTYPE type = {}; DWORD bufSize = 0; @@ -1668,9 +1668,9 @@ static uint32_t HexToInt(char hex) return 0; } -std::string GetDriverVersion(DXGI_ADAPTER_DESC &desc) +rdcstr GetDriverVersion(DXGI_ADAPTER_DESC &desc) { - std::string device = StringFormat::Wide2UTF8(rdcwstr(desc.Description)); + rdcstr device = StringFormat::Wide2UTF8(rdcwstr(desc.Description)); // fixed GUID for graphics drivers, from // https://msdn.microsoft.com/en-us/library/windows/hardware/ff553426%28v=vs.85%29.aspx @@ -1684,14 +1684,14 @@ std::string GetDriverVersion(DXGI_ADAPTER_DESC &desc) return device; } - std::string driverVersion = ""; + rdcstr driverVersion = ""; DWORD idx = 0; SP_DEVINFO_DATA data = {}; data.cbSize = sizeof(data); while(SetupDiEnumDeviceInfo(devs, idx, &data)) { - std::string version = GetDeviceProperty(devs, &data, &DEVPKEY_Device_DriverVersion); + rdcstr version = GetDeviceProperty(devs, &data, &DEVPKEY_Device_DriverVersion); if(version.empty()) { @@ -1703,7 +1703,7 @@ std::string GetDriverVersion(DXGI_ADAPTER_DESC &desc) if(driverVersion.empty()) driverVersion = version; - std::string pciid = GetDeviceProperty(devs, &data, &DEVPKEY_Device_MatchingDeviceId); + rdcstr pciid = GetDeviceProperty(devs, &data, &DEVPKEY_Device_MatchingDeviceId); if(pciid.empty()) { diff --git a/renderdoc/driver/dxgi/dxgi_common.h b/renderdoc/driver/dxgi/dxgi_common.h index 7378ad387..c741582c1 100644 --- a/renderdoc/driver/dxgi/dxgi_common.h +++ b/renderdoc/driver/dxgi/dxgi_common.h @@ -72,7 +72,7 @@ void WarnUnknownGUID(const char *name, REFIID riid); struct ReplayOptions; -std::string GetDriverVersion(DXGI_ADAPTER_DESC &desc); +rdcstr GetDriverVersion(DXGI_ADAPTER_DESC &desc); void ChooseBestMatchingAdapter(GraphicsAPI api, IDXGIFactory *factory, const DXGI_ADAPTER_DESC &AdapterDesc, const ReplayOptions &opts, bool *useWarp, IDXGIAdapter **adapter); diff --git a/renderdoc/driver/dxgi/dxgi_wrapped.cpp b/renderdoc/driver/dxgi/dxgi_wrapped.cpp index 566de7c65..50436b481 100644 --- a/renderdoc/driver/dxgi/dxgi_wrapped.cpp +++ b/renderdoc/driver/dxgi/dxgi_wrapped.cpp @@ -33,7 +33,7 @@ IDXGIResource *UnwrapDXGIResource(void *dxgiObject); WRAPPED_POOL_INST(WrappedIDXGIDevice4); -std::vector WrappedIDXGISwapChain4::m_D3DCallbacks; +rdcarray WrappedIDXGISwapChain4::m_D3DCallbacks; ID3DDevice *GetD3DDevice(IUnknown *pDevice) { @@ -1019,9 +1019,9 @@ HRESULT STDMETHODCALLTYPE WrappedIDXGIDevice4::QueryInterface(REFIID riid, void return RefCountDXGIObject::QueryInterface(riid, ppvObject); } -std::vector UnwrapResourceSet(UINT NumResources, IDXGIResource *const *ppResources) +rdcarray UnwrapResourceSet(UINT NumResources, IDXGIResource *const *ppResources) { - std::vector resources; + rdcarray resources; resources.resize(NumResources); for(UINT i = 0; i < NumResources; i++) { @@ -1041,7 +1041,7 @@ HRESULT STDMETHODCALLTYPE WrappedIDXGIDevice4::OfferResources(UINT NumResources, IDXGIResource *const *ppResources, DXGI_OFFER_RESOURCE_PRIORITY Priority) { - std::vector resources = UnwrapResourceSet(NumResources, ppResources); + rdcarray resources = UnwrapResourceSet(NumResources, ppResources); return m_pReal2->OfferResources(NumResources, resources.data(), Priority); } @@ -1049,7 +1049,7 @@ HRESULT STDMETHODCALLTYPE WrappedIDXGIDevice4::ReclaimResources(UINT NumResource IDXGIResource *const *ppResources, BOOL *pDiscarded) { - std::vector resources = UnwrapResourceSet(NumResources, ppResources); + rdcarray resources = UnwrapResourceSet(NumResources, ppResources); return m_pReal2->ReclaimResources(NumResources, resources.data(), pDiscarded); } @@ -1058,7 +1058,7 @@ HRESULT STDMETHODCALLTYPE WrappedIDXGIDevice4::OfferResources1(UINT NumResources DXGI_OFFER_RESOURCE_PRIORITY Priority, UINT Flags) { - std::vector resources = UnwrapResourceSet(NumResources, ppResources); + rdcarray resources = UnwrapResourceSet(NumResources, ppResources); return m_pReal4->OfferResources1(NumResources, resources.data(), Priority, Flags); } @@ -1067,7 +1067,7 @@ HRESULT STDMETHODCALLTYPE WrappedIDXGIDevice4::ReclaimResources1(UINT NumResourc DXGI_RECLAIM_RESOURCE_RESULTS *pResults) { - std::vector resources = UnwrapResourceSet(NumResources, ppResources); + rdcarray resources = UnwrapResourceSet(NumResources, ppResources); return m_pReal4->ReclaimResources1(NumResources, resources.data(), pResults); } diff --git a/renderdoc/driver/dxgi/dxgi_wrapped.h b/renderdoc/driver/dxgi/dxgi_wrapped.h index 937a90265..46b397015 100644 --- a/renderdoc/driver/dxgi/dxgi_wrapped.h +++ b/renderdoc/driver/dxgi/dxgi_wrapped.h @@ -569,7 +569,7 @@ class WrappedIDXGISwapChain4 : public IDXGISwapChain4, public RefCountDXGIObject IDXGISwapChain4 *m_pReal4; ID3DDevice *m_pDevice; - static std::vector m_D3DCallbacks; + static rdcarray m_D3DCallbacks; HWND m_Wnd; @@ -607,7 +607,7 @@ public: static void RegisterD3DDeviceCallback(D3DDeviceCallback callback) { - if(std::find(m_D3DCallbacks.begin(), m_D3DCallbacks.end(), callback) == m_D3DCallbacks.end()) + if(!m_D3DCallbacks.contains(callback)) m_D3DCallbacks.push_back(callback); }