[d3d11] D3D11DeviceChild subclasses must not store strong references to their parent device

This commit is contained in:
Philip Rebohle 2017-12-07 00:55:21 +01:00
parent 69b938118d
commit ddb1627985
9 changed files with 11 additions and 12 deletions

View File

@ -35,7 +35,7 @@ namespace dxvk {
void D3D11Buffer::GetDevice(ID3D11Device** ppDevice) { void D3D11Buffer::GetDevice(ID3D11Device** ppDevice) {
*ppDevice = m_device.ref(); *ppDevice = ref(m_device);
} }

View File

@ -35,7 +35,7 @@ namespace dxvk {
private: private:
Com<D3D11Device> m_device; D3D11Device* const m_device;
Com<IDXGIImageResourcePrivate> m_resource; Com<IDXGIImageResourcePrivate> m_resource;
D3D11_BUFFER_DESC m_desc; D3D11_BUFFER_DESC m_desc;

View File

@ -70,7 +70,7 @@ namespace dxvk {
} }
void GetDevice(ID3D11Device **ppDevice) final { void GetDevice(ID3D11Device **ppDevice) final {
*ppDevice = m_device.ref(); *ppDevice = ref(m_device);
} }
const D3D11ShaderModule& GetShaderModule() const { const D3D11ShaderModule& GetShaderModule() const {
@ -79,8 +79,8 @@ namespace dxvk {
private: private:
Com<D3D11Device> m_device; D3D11Device* const m_device;
D3D11ShaderModule m_module; D3D11ShaderModule m_module;
}; };

View File

@ -76,7 +76,7 @@ namespace dxvk {
void D3D11RasterizerState::GetDevice(ID3D11Device** ppDevice) { void D3D11RasterizerState::GetDevice(ID3D11Device** ppDevice) {
*ppDevice = m_device.ref(); *ppDevice = ref(m_device);
} }

View File

@ -35,8 +35,7 @@ namespace dxvk {
private: private:
Com<D3D11Device> m_device; D3D11Device* const m_device;
D3D11_RASTERIZER_DESC m_desc; D3D11_RASTERIZER_DESC m_desc;
Rc<DxvkRasterizerState> m_state; Rc<DxvkRasterizerState> m_state;

View File

@ -35,7 +35,7 @@ namespace dxvk {
void D3D11Texture2D::GetDevice(ID3D11Device** ppDevice) { void D3D11Texture2D::GetDevice(ID3D11Device** ppDevice) {
*ppDevice = m_device.ref(); *ppDevice = ref(m_device);
} }

View File

@ -41,7 +41,7 @@ namespace dxvk {
private: private:
Com<D3D11Device> m_device; D3D11Device* const m_device;
Com<IDXGIImageResourcePrivate> m_resource; Com<IDXGIImageResourcePrivate> m_resource;
D3D11_TEXTURE2D_DESC m_desc; D3D11_TEXTURE2D_DESC m_desc;

View File

@ -33,7 +33,7 @@ namespace dxvk {
void D3D11RenderTargetView::GetDevice(ID3D11Device** ppDevice) { void D3D11RenderTargetView::GetDevice(ID3D11Device** ppDevice) {
*ppDevice = m_device.ref(); *ppDevice = ref(m_device);
} }

View File

@ -36,7 +36,7 @@ namespace dxvk {
private: private:
Com<D3D11Device> m_device; D3D11Device* const m_device;
Com<ID3D11Resource> m_resource; Com<ID3D11Resource> m_resource;
D3D11_RENDER_TARGET_VIEW_DESC m_desc; D3D11_RENDER_TARGET_VIEW_DESC m_desc;