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),
|
||||
_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…
x
Reference in New Issue
Block a user