mirror of
https://gitlab.com/Mr_Goldberg/goldberg_emulator
synced 2025-05-23 21:57:40 +08:00
Win7 / Wine fixes DX11_Hook.cpp.
Don't create image resources if the D3D device isn't inited yet. (Causes app crash.) Set quality value on substruct.
This commit is contained in:
parent
77d2a84af8
commit
59b8354f2d
@ -207,6 +207,7 @@ DX11_Hook::DX11_Hook():
|
|||||||
_Hooked(false),
|
_Hooked(false),
|
||||||
_WindowsHooked(false),
|
_WindowsHooked(false),
|
||||||
pContext(nullptr),
|
pContext(nullptr),
|
||||||
|
pDevice(nullptr),
|
||||||
mainRenderTargetView(nullptr),
|
mainRenderTargetView(nullptr),
|
||||||
Present(nullptr),
|
Present(nullptr),
|
||||||
ResizeBuffers(nullptr),
|
ResizeBuffers(nullptr),
|
||||||
@ -263,6 +264,11 @@ void DX11_Hook::LoadFunctions(
|
|||||||
|
|
||||||
std::weak_ptr<uint64_t> DX11_Hook::CreateImageResource(const void* image_data, uint32_t width, uint32_t height)
|
std::weak_ptr<uint64_t> DX11_Hook::CreateImageResource(const void* image_data, uint32_t width, uint32_t height)
|
||||||
{
|
{
|
||||||
|
if (pDevice == nullptr) {
|
||||||
|
SPDLOG_INFO("DX11 CreateImageResource %p pDevice is NULL.\n", image_data);
|
||||||
|
return std::shared_ptr<uint64_t>();
|
||||||
|
}
|
||||||
|
|
||||||
ID3D11ShaderResourceView** resource = new ID3D11ShaderResourceView*(nullptr);
|
ID3D11ShaderResourceView** resource = new ID3D11ShaderResourceView*(nullptr);
|
||||||
|
|
||||||
// Create texture
|
// Create texture
|
||||||
@ -273,6 +279,7 @@ std::weak_ptr<uint64_t> DX11_Hook::CreateImageResource(const void* image_data, u
|
|||||||
desc.ArraySize = 1;
|
desc.ArraySize = 1;
|
||||||
desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
|
desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
|
||||||
desc.SampleDesc.Count = 1;
|
desc.SampleDesc.Count = 1;
|
||||||
|
desc.SampleDesc.Quality = 0;
|
||||||
desc.Usage = D3D11_USAGE_DEFAULT;
|
desc.Usage = D3D11_USAGE_DEFAULT;
|
||||||
desc.BindFlags = D3D11_BIND_SHADER_RESOURCE;
|
desc.BindFlags = D3D11_BIND_SHADER_RESOURCE;
|
||||||
desc.CPUAccessFlags = 0;
|
desc.CPUAccessFlags = 0;
|
||||||
@ -282,6 +289,7 @@ std::weak_ptr<uint64_t> DX11_Hook::CreateImageResource(const void* image_data, u
|
|||||||
subResource.pSysMem = image_data;
|
subResource.pSysMem = image_data;
|
||||||
subResource.SysMemPitch = desc.Width * 4;
|
subResource.SysMemPitch = desc.Width * 4;
|
||||||
subResource.SysMemSlicePitch = 0;
|
subResource.SysMemSlicePitch = 0;
|
||||||
|
|
||||||
pDevice->CreateTexture2D(&desc, &subResource, &pTexture);
|
pDevice->CreateTexture2D(&desc, &subResource, &pTexture);
|
||||||
|
|
||||||
if (pTexture != nullptr)
|
if (pTexture != nullptr)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user