From 3825d16a31348518f69b6bde2f302fddc8043956 Mon Sep 17 00:00:00 2001 From: Joshua Ashton Date: Wed, 27 May 2020 09:06:15 +0100 Subject: [PATCH] [d3d9] Move mip filter into common texture --- src/d3d9/d3d9_common_texture.h | 5 +++++ src/d3d9/d3d9_texture.h | 11 ++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/d3d9/d3d9_common_texture.h b/src/d3d9/d3d9_common_texture.h index 91cab70e..4e589691 100644 --- a/src/d3d9/d3d9_common_texture.h +++ b/src/d3d9/d3d9_common_texture.h @@ -359,6 +359,9 @@ namespace dxvk { DWORD ExposedMipLevels() { return m_exposedMipLevels; } + void SetMipFilter(D3DTEXTUREFILTERTYPE filter) { m_mipFilter = filter; } + D3DTEXTUREFILTERTYPE GetMipFilter() const { return m_mipFilter; } + private: D3D9DeviceEx* m_device; @@ -400,6 +403,8 @@ namespace dxvk { bool m_needsMipGen = false; + D3DTEXTUREFILTERTYPE m_mipFilter = D3DTEXF_LINEAR; + /** * \brief Mip level * \returns Size of packed mip level in bytes diff --git a/src/d3d9/d3d9_texture.h b/src/d3d9/d3d9_texture.h index 448442eb..43f4d2c8 100644 --- a/src/d3d9/d3d9_texture.h +++ b/src/d3d9/d3d9_texture.h @@ -26,8 +26,7 @@ namespace dxvk { D3DRESOURCETYPE ResourceType) : D3D9Resource ( pDevice ) , m_texture ( pDevice, pDesc, ResourceType ) - , m_lod ( 0 ) - , m_autogenFilter ( D3DTEXF_LINEAR ) { + , m_lod ( 0 ) { const uint32_t arraySlices = m_texture.Desc()->ArraySize; const uint32_t mipLevels = m_texture.Desc()->MipLevels; @@ -75,12 +74,15 @@ namespace dxvk { } HRESULT STDMETHODCALLTYPE SetAutoGenFilterType(D3DTEXTUREFILTERTYPE FilterType) final { - m_autogenFilter = FilterType; + if (unlikely(FilterType == D3DTEXF_NONE)) + return D3DERR_INVALIDCALL; + + m_texture.SetMipFilter(FilterType); return D3D_OK; } D3DTEXTUREFILTERTYPE STDMETHODCALLTYPE GetAutoGenFilterType() final { - return m_autogenFilter; + return m_texture.GetMipFilter(); } void STDMETHODCALLTYPE GenerateMipSubLevels() final { @@ -104,7 +106,6 @@ namespace dxvk { D3D9CommonTexture m_texture; DWORD m_lod; - D3DTEXTUREFILTERTYPE m_autogenFilter; std::vector m_subresources;