Code cleanup in d3d11_x

This commit is contained in:
windows-fryer
2025-01-07 16:22:13 -08:00
parent b61d4be4f9
commit bee218423e
8 changed files with 91 additions and 156 deletions

View File

@@ -12,15 +12,14 @@ namespace d3d11x
AddRef( );
return S_OK;
}
else
{
// DEBUG
char iidstr[ sizeof("{AAAAAAAA-BBBB-CCCC-DDEE-FFGGHHIIJJKK}") ];
OLECHAR iidwstr[ sizeof(iidstr) ];
StringFromGUID2(riid, iidwstr, ARRAYSIZE(iidwstr));
WideCharToMultiByte(CP_UTF8, 0, iidwstr, -1, iidstr, sizeof(iidstr), nullptr, nullptr);
printf("[IDXGIDeviceWrapper] QueryInterface: %s\n", iidstr);
}
// DEBUG
char iidstr[ sizeof("{AAAAAAAA-BBBB-CCCC-DDEE-FFGGHHIIJJKK}") ];
OLECHAR iidwstr[ sizeof(iidstr) ];
StringFromGUID2(riid, iidwstr, ARRAYSIZE(iidwstr));
WideCharToMultiByte(CP_UTF8, 0, iidwstr, -1, iidstr, sizeof(iidstr), nullptr, nullptr);
printf("[IDXGIDeviceWrapper] QueryInterface: %s\n", iidstr);
return m_realTarget->QueryInterface(riid, ppvObject);
}
@@ -87,15 +86,13 @@ namespace d3d11x
AddRef( );
return S_OK;
}
else
{
// DEBUG
char iidstr[ sizeof("{AAAAAAAA-BBBB-CCCC-DDEE-FFGGHHIIJJKK}") ];
OLECHAR iidwstr[ sizeof(iidstr) ];
StringFromGUID2(riid, iidwstr, ARRAYSIZE(iidwstr));
WideCharToMultiByte(CP_UTF8, 0, iidwstr, -1, iidstr, sizeof(iidstr), nullptr, nullptr);
printf("[IDXGIDeviceWrapper] QueryInterface: %s\n", iidstr);
}
// DEBUG
char iidstr[ sizeof("{AAAAAAAA-BBBB-CCCC-DDEE-FFGGHHIIJJKK}") ];
OLECHAR iidwstr[ sizeof(iidstr) ];
StringFromGUID2(riid, iidwstr, ARRAYSIZE(iidwstr));
WideCharToMultiByte(CP_UTF8, 0, iidwstr, -1, iidstr, sizeof(iidstr), nullptr, nullptr);
printf("[IDXGIDeviceWrapper] QueryInterface: %s\n", iidstr);
return m_realTarget->QueryInterface(riid, ppvObject);
}
@@ -162,15 +159,13 @@ namespace d3d11x
AddRef( );
return S_OK;
}
else
{
// DEBUG
char iidstr[ sizeof("{AAAAAAAA-BBBB-CCCC-DDEE-FFGGHHIIJJKK}") ];
OLECHAR iidwstr[ sizeof(iidstr) ];
StringFromGUID2(riid, iidwstr, ARRAYSIZE(iidwstr));
WideCharToMultiByte(CP_UTF8, 0, iidwstr, -1, iidstr, sizeof(iidstr), nullptr, nullptr);
printf("[IDXGIDeviceWrapper] QueryInterface: %s\n", iidstr);
}
// DEBUG
char iidstr[ sizeof("{AAAAAAAA-BBBB-CCCC-DDEE-FFGGHHIIJJKK}") ];
OLECHAR iidwstr[ sizeof(iidstr) ];
StringFromGUID2(riid, iidwstr, ARRAYSIZE(iidwstr));
WideCharToMultiByte(CP_UTF8, 0, iidwstr, -1, iidstr, sizeof(iidstr), nullptr, nullptr);
printf("[IDXGIDeviceWrapper] QueryInterface: %s\n", iidstr);
return m_realTarget->QueryInterface(riid, ppvObject);
}
@@ -237,15 +232,13 @@ namespace d3d11x
AddRef( );
return S_OK;
}
else
{
// DEBUG
char iidstr[ sizeof("{AAAAAAAA-BBBB-CCCC-DDEE-FFGGHHIIJJKK}") ];
OLECHAR iidwstr[ sizeof(iidstr) ];
StringFromGUID2(riid, iidwstr, ARRAYSIZE(iidwstr));
WideCharToMultiByte(CP_UTF8, 0, iidwstr, -1, iidstr, sizeof(iidstr), nullptr, nullptr);
printf("[IDXGIDeviceWrapper] QueryInterface: %s\n", iidstr);
}
// DEBUG
char iidstr[ sizeof("{AAAAAAAA-BBBB-CCCC-DDEE-FFGGHHIIJJKK}") ];
OLECHAR iidwstr[ sizeof(iidstr) ];
StringFromGUID2(riid, iidwstr, ARRAYSIZE(iidwstr));
WideCharToMultiByte(CP_UTF8, 0, iidwstr, -1, iidstr, sizeof(iidstr), nullptr, nullptr);
printf("[IDXGIDeviceWrapper] QueryInterface: %s\n", iidstr);
return m_realTarget->QueryInterface(riid, ppvObject);
}

View File

@@ -15,15 +15,13 @@ namespace d3d11x
AddRef( );
return S_OK;
}
else
{
// DEBUG
char iidstr[ sizeof("{AAAAAAAA-BBBB-CCCC-DDEE-FFGGHHIIJJKK}") ];
OLECHAR iidwstr[ sizeof(iidstr) ];
StringFromGUID2(riid, iidwstr, ARRAYSIZE(iidwstr));
WideCharToMultiByte(CP_UTF8, 0, iidwstr, -1, iidstr, sizeof(iidstr), nullptr, nullptr);
printf("[IDXGIDeviceWrapper] QueryInterface: %s\n", iidstr);
}
// DEBUG
char iidstr[ sizeof("{AAAAAAAA-BBBB-CCCC-DDEE-FFGGHHIIJJKK}") ];
OLECHAR iidwstr[ sizeof(iidstr) ];
StringFromGUID2(riid, iidwstr, ARRAYSIZE(iidwstr));
WideCharToMultiByte(CP_UTF8, 0, iidwstr, -1, iidstr, sizeof(iidstr), nullptr, nullptr);
printf("[IDXGIDeviceWrapper] QueryInterface: %s\n", iidstr);
return m_realAdapter->QueryInterface(riid, ppvObject);
}

View File

@@ -12,15 +12,13 @@ namespace d3d11x
AddRef( );
return S_OK;
}
else
{
// DEBUG
char iidstr[ sizeof("{AAAAAAAA-BBBB-CCCC-DDEE-FFGGHHIIJJKK}") ];
OLECHAR iidwstr[ sizeof(iidstr) ];
StringFromGUID2(riid, iidwstr, ARRAYSIZE(iidwstr));
WideCharToMultiByte(CP_UTF8, 0, iidwstr, -1, iidstr, sizeof(iidstr), nullptr, nullptr);
printf("[IDXGIDeviceWrapper] QueryInterface: %s\n", iidstr);
}
// DEBUG
char iidstr[ sizeof("{AAAAAAAA-BBBB-CCCC-DDEE-FFGGHHIIJJKK}") ];
OLECHAR iidwstr[ sizeof(iidstr) ];
StringFromGUID2(riid, iidwstr, ARRAYSIZE(iidwstr));
WideCharToMultiByte(CP_UTF8, 0, iidwstr, -1, iidstr, sizeof(iidstr), nullptr, nullptr);
printf("[IDXGIDeviceWrapper] QueryInterface: %s\n", iidstr);
return m_realDevice->QueryInterface(riid, ppvObject);
}

View File

@@ -17,15 +17,13 @@ namespace d3d11x
AddRef( );
return S_OK;
}
else
{
// DEBUG
char iidstr[ sizeof("{AAAAAAAA-BBBB-CCCC-DDEE-FFGGHHIIJJKK}") ];
OLECHAR iidwstr[ sizeof(iidstr) ];
StringFromGUID2(riid, iidwstr, ARRAYSIZE(iidwstr));
WideCharToMultiByte(CP_UTF8, 0, iidwstr, -1, iidstr, sizeof(iidstr), nullptr, nullptr);
printf("[IDXGIFactoryWrapper] QueryInterface: %s\n", iidstr);
}
// DEBUG
char iidstr[ sizeof("{AAAAAAAA-BBBB-CCCC-DDEE-FFGGHHIIJJKK}") ];
OLECHAR iidwstr[ sizeof(iidstr) ];
StringFromGUID2(riid, iidwstr, ARRAYSIZE(iidwstr));
WideCharToMultiByte(CP_UTF8, 0, iidwstr, -1, iidstr, sizeof(iidstr), nullptr, nullptr);
printf("[IDXGIFactoryWrapper] QueryInterface: %s\n", iidstr);
return m_realFactory->QueryInterface(riid, ppvObject);

View File

@@ -13,15 +13,13 @@ namespace d3d11x
AddRef( );
return S_OK;
}
else
{
// DEBUG
char iidstr[ sizeof("{AAAAAAAA-BBBB-CCCC-DDEE-FFGGHHIIJJKK}") ];
OLECHAR iidwstr[ sizeof(iidstr) ];
StringFromGUID2(riid, iidwstr, ARRAYSIZE(iidwstr));
WideCharToMultiByte(CP_UTF8, 0, iidwstr, -1, iidstr, sizeof(iidstr), nullptr, nullptr);
printf("[IDXGIDeviceWrapper] QueryInterface: %s\n", iidstr);
}
// DEBUG
char iidstr[ sizeof("{AAAAAAAA-BBBB-CCCC-DDEE-FFGGHHIIJJKK}") ];
OLECHAR iidwstr[ sizeof(iidstr) ];
StringFromGUID2(riid, iidwstr, ARRAYSIZE(iidwstr));
WideCharToMultiByte(CP_UTF8, 0, iidwstr, -1, iidstr, sizeof(iidstr), nullptr, nullptr);
printf("[IDXGIDeviceWrapper] QueryInterface: %s\n", iidstr);
return m_realSwapchain->QueryInterface(riid, ppvObject);
}

View File

@@ -53,28 +53,24 @@ HRESULT __stdcall D3DAllocateGraphicsMemory_X(SIZE_T SizeBytes, SIZE_T Alignment
if (AlignmentBytes <= 0x10000)
AllocType = MEM_LARGE_PAGES | MEM_COMMIT | MEM_RESERVE;
if (Flags == D3D11_GRAPHICS_MEMORY_ACCESS_CPU_CACHE_COHERENT)
{
switch(Flags) {
case D3D11_GRAPHICS_MEMORY_ACCESS_CPU_CACHE_COHERENT:
// @Patoke note: this also includes the PAGE_GPU_COHERENT flag in the XBOX
Protect = PAGE_READWRITE;
}
else if (Flags == D3D11_GRAPHICS_MEMORY_ACCESS_CPU_WRITECOMBINE_NONCOHERENT)
{
break;
case D3D11_GRAPHICS_MEMORY_ACCESS_CPU_WRITECOMBINE_NONCOHERENT:
Protect = PAGE_READWRITE | PAGE_WRITECOMBINE;
}
else if (Flags == D3D11_GRAPHICS_MEMORY_ACCESS_CPU_CACHE_NONCOHERENT_GPU_READONLY)
{
break;
case D3D11_GRAPHICS_MEMORY_ACCESS_CPU_CACHE_NONCOHERENT_GPU_READONLY:
return E_INVALIDARG;
}
else
{
default:
// @Patoke note: this also includes the PAGE_GPU_READONLY flag in the XBOX
Protect = PAGE_READWRITE;
}
LPVOID AllocBase = VirtualAlloc((LPVOID)DesiredGpuVirtualAddress, SizeBytes, AllocType, Protect);
*ppAddress = AllocBase;
return AllocBase == nullptr ? E_OUTOFMEMORY : S_OK;
*ppAddress = VirtualAlloc((LPVOID) DesiredGpuVirtualAddress, SizeBytes, AllocType, Protect);
return !*ppAddress ? E_OUTOFMEMORY : S_OK;
}
HRESULT __stdcall D3DConfigureVirtualMemory_X(_Inout_ D3D11X_VIRTUAL_MEMORY_CONFIGURATION* pVMConfiguration)
@@ -172,6 +168,7 @@ HRESULT __stdcall D3D11CreateDevice_X(
if (SUCCEEDED(hr))
{
// get dx11.2 feature level, since that's what dx11.x inherits from
// MAYBE-TODO: VS doesn't like this line due to ppDevice not having a clear value. Maybe check if ppDevice is valid before deref.
(*ppDevice)->QueryInterface(IID_PPV_ARGS(&device2));
(*ppImmediateContext)->QueryInterface(IID_PPV_ARGS(&device_context2));

View File

@@ -44,14 +44,7 @@ HRESULT d3d11x::D3D11DeviceXWrapperX::CreateTexture1D(
ID3D11Texture1D* texture1d = nullptr;
HRESULT hr = m_realDevice->CreateTexture1D(pDesc, pInitialData, &texture1d);
if (SUCCEEDED(hr))
{
*ppTexture1D = new ID3D11Texture1DWrapper(texture1d);
}
else
{
*ppTexture1D = nullptr;
}
*ppTexture1D = SUCCEEDED(hr) ? new ID3D11Texture1DWrapper(texture1d) : nullptr;
return hr;
}
@@ -64,14 +57,8 @@ HRESULT d3d11x::D3D11DeviceXWrapperX::CreateTexture2D(
ID3D11Texture2D* texture2d = nullptr;
HRESULT hr = m_realDevice->CreateTexture2D(pDesc, pInitialData, &texture2d);
if (SUCCEEDED(hr))
{
*ppTexture2D = new ID3D11Texture2DWrapper(texture2d);
}
else
{
*ppTexture2D = nullptr;
}
*ppTexture2D = SUCCEEDED(hr) ? new ID3D11Texture2DWrapper(texture2d) : nullptr;
return hr;
}
@@ -84,14 +71,8 @@ HRESULT d3d11x::D3D11DeviceXWrapperX::CreateTexture3D(
ID3D11Texture3D* texture3d = nullptr;
HRESULT hr = m_realDevice->CreateTexture3D(pDesc, pInitialData, &texture3d);
if (SUCCEEDED(hr))
{
*ppTexture3D = new ID3D11Texture3DWrapper(texture3d);
}
else
{
*ppTexture3D = nullptr;
}
*ppTexture3D = SUCCEEDED(hr) ? new ID3D11Texture3DWrapper(texture3d) : nullptr;
return hr;
}
@@ -104,14 +85,8 @@ HRESULT d3d11x::D3D11DeviceXWrapperX::CreateShaderResourceView(
::ID3D11ShaderResourceView* target = nullptr;
HRESULT hr = m_realDevice->CreateShaderResourceView(reinterpret_cast<ID3D11ResourceWrapperX*>(pResource)->m_realResource, pDesc, &target);
if (SUCCEEDED(hr))
{
*ppSRView = reinterpret_cast<ID3D11ShaderResourceView_X*>(new ID3D11ShaderResourceViewWrapper(target));
}
else
{
*ppSRView = nullptr;
}
*ppSRView = SUCCEEDED(hr) ? reinterpret_cast<ID3D11ShaderResourceView_X*>(new ID3D11ShaderResourceViewWrapper(target))
: nullptr;
return hr;
}
@@ -124,14 +99,8 @@ HRESULT d3d11x::D3D11DeviceXWrapperX::CreateUnorderedAccessView(
::ID3D11UnorderedAccessView* target = nullptr;
HRESULT hr = m_realDevice->CreateUnorderedAccessView(reinterpret_cast<ID3D11ResourceWrapperX*>(pResource)->m_realResource, pDesc, &target);
if (SUCCEEDED(hr))
{
*ppUAView = reinterpret_cast<ID3D11UnorderedAccessView_X*>(new ID3D11UnorderedAccessViewWrapper(target));
}
else
{
*ppUAView = nullptr;
}
*ppUAView = SUCCEEDED(hr) ? reinterpret_cast<ID3D11UnorderedAccessView_X*>(new ID3D11UnorderedAccessViewWrapper(target))
: nullptr;
return hr;
}
@@ -144,14 +113,8 @@ HRESULT d3d11x::D3D11DeviceXWrapperX::CreateRenderTargetView(
::ID3D11RenderTargetView* target = nullptr;
HRESULT hr = m_realDevice->CreateRenderTargetView(reinterpret_cast<ID3D11ResourceWrapperX*>(pResource)->m_realResource, pDesc, &target);
if (SUCCEEDED(hr))
{
*ppRTView = reinterpret_cast<ID3D11RenderTargetView_X*>(new ID3D11RenderTargetViewWrapper(target));
}
else
{
*ppRTView = nullptr;
}
*ppRTView = SUCCEEDED(hr) ? reinterpret_cast<ID3D11RenderTargetView_X*>(new ID3D11RenderTargetViewWrapper(target))
: nullptr;
return hr;
}
@@ -164,14 +127,9 @@ HRESULT d3d11x::D3D11DeviceXWrapperX::CreateDepthStencilView(
::ID3D11DepthStencilView* target = nullptr;
HRESULT hr = m_realDevice->CreateDepthStencilView(reinterpret_cast<ID3D11ResourceWrapperX*>(pResource)->m_realResource, pDesc, &target);
if (SUCCEEDED(hr))
{
*ppDepthStencilView = reinterpret_cast<ID3D11DepthStencilView_X*>(new ID3D11DepthStencilViewWrapper(target));
}
else
{
*ppDepthStencilView = nullptr;
}
*ppDepthStencilView = SUCCEEDED(hr) ? reinterpret_cast<ID3D11DepthStencilView_X*>(new ID3D11DepthStencilViewWrapper(target))
: nullptr;
return hr;
}
@@ -181,13 +139,12 @@ void d3d11x::D3D11DeviceXWrapperX::GetImmediateContext(ID3D11DeviceContext** ppI
::ID3D11DeviceContext* ctx{};
m_realDevice->GetImmediateContext(&ctx);
if(ctx)
{
::ID3D11DeviceContext2* ctx2{};
ctx->QueryInterface(IID_PPV_ARGS(&ctx2));
if (!ctx) return;
*ppImmediateContext = reinterpret_cast<d3d11x::ID3D11DeviceContext*>(new d3d11x::ID3D11DeviceContextXWrapper(ctx2));
}
::ID3D11DeviceContext2* ctx2{};
ctx->QueryInterface(IID_PPV_ARGS(&ctx2));
*ppImmediateContext = reinterpret_cast<d3d11x::ID3D11DeviceContext*>(new d3d11x::ID3D11DeviceContextXWrapper(ctx2));
}
HRESULT d3d11x::D3D11DeviceXWrapperX::CreateDeferredContext(UINT ContextFlags, d3d11x::ID3D11DeviceContext** ppDeferredContext)
@@ -216,14 +173,7 @@ HRESULT d3d11x::D3D11DeviceXWrapperX::CreateBuffer(
ID3D11Buffer* buffer = nullptr;
HRESULT hr = m_realDevice->CreateBuffer(pDesc, pInitialData, &buffer);
if (SUCCEEDED(hr))
{
*ppBuffer = new ID3D11BufferWrapper(buffer);
}
else
{
*ppBuffer = nullptr;
}
*ppBuffer = SUCCEEDED(hr) ? new ID3D11BufferWrapper(buffer) : nullptr;
return hr;
}

View File

@@ -83,6 +83,9 @@ BOOL TitleMemoryStatus_X(LPTITLEMEMORYSTATUS Buffer)
//*(DWORD*)((uint8_t*)Buffer + 72) = ProcessInformation[8];
// equivalent to the previous code
// TODO: Changes this code to not be pre-incremented before a deref.
// i.e. Buffer++; Bufer->DwLength
// Makes code look uglier but you won't get yelled at by 80 y/o
(++Buffer)->dwLength = ProcessInformation[7];
(++Buffer)->dwReserved = ProcessInformation[8];