refactor: 只在程序启动时创建一次 D3D Device

This commit is contained in:
Xu Liu 2021-11-19 21:23:27 +08:00
commit 8cd2f5afd8
15 changed files with 313 additions and 258 deletions

View file

@ -26,7 +26,7 @@ bool MagCallbackFrameSource::Initialize() {
desc.SampleDesc.Count = 1;
desc.SampleDesc.Quality = 0;
desc.BindFlags = D3D11_BIND_SHADER_RESOURCE;
HRESULT hr = App::GetInstance().GetRenderer().GetD3DDevice()->CreateTexture2D(&desc, nullptr, &_output);
HRESULT hr = Renderer::GetInstance().GetD3DDevice()->CreateTexture2D(&desc, nullptr, &_output);
if (FAILED(hr)) {
SPDLOG_LOGGER_ERROR(logger, MakeComErrorMsg("创建 Texture2D 失败", hr));
return false;
@ -93,7 +93,7 @@ BOOL MagCallbackFrameSource::_ImageScalingCallback(
return FALSE;
}
ComPtr<ID3D11DeviceContext> d3dDC = App::GetInstance().GetRenderer().GetD3DDC();
ComPtr<ID3D11DeviceContext> d3dDC = Renderer::GetInstance().GetD3DDC();
ComPtr<ID3D11Texture2D> output = App::GetInstance().GetFrameSource().GetOutput();
D3D11_MAPPED_SUBRESOURCE ms{};