mirror of
https://gitlab.com/Mr_Goldberg/goldberg_emulator.git
synced 2025-04-16 16:18:25 +02: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
1 changed files with 8 additions and 0 deletions
|
@ -207,6 +207,7 @@ DX11_Hook::DX11_Hook():
|
|||
_Hooked(false),
|
||||
_WindowsHooked(false),
|
||||
pContext(nullptr),
|
||||
pDevice(nullptr),
|
||||
mainRenderTargetView(nullptr),
|
||||
Present(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)
|
||||
{
|
||||
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);
|
||||
|
||||
// Create texture
|
||||
|
@ -273,6 +279,7 @@ std::weak_ptr<uint64_t> DX11_Hook::CreateImageResource(const void* image_data, u
|
|||
desc.ArraySize = 1;
|
||||
desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
|
||||
desc.SampleDesc.Count = 1;
|
||||
desc.SampleDesc.Quality = 0;
|
||||
desc.Usage = D3D11_USAGE_DEFAULT;
|
||||
desc.BindFlags = D3D11_BIND_SHADER_RESOURCE;
|
||||
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.SysMemPitch = desc.Width * 4;
|
||||
subResource.SysMemSlicePitch = 0;
|
||||
|
||||
pDevice->CreateTexture2D(&desc, &subResource, &pTexture);
|
||||
|
||||
if (pTexture != nullptr)
|
||||
|
|
Loading…
Reference in a new issue