diff options
| author | assiduous <assiduous@diligentgraphics.com> | 2021-03-04 20:46:21 +0000 |
|---|---|---|
| committer | assiduous <assiduous@diligentgraphics.com> | 2021-03-19 00:38:15 +0000 |
| commit | 4f5a4499cf0eee3761788eb6a422cd25e02ace40 (patch) | |
| tree | a4caf790bcb35483de2eaa56b7735230a0f1b7a5 /Graphics/GraphicsEngineVulkan | |
| parent | Minor updates to ValidatePipelineResourceSignatureDesc (diff) | |
| download | DiligentCore-4f5a4499cf0eee3761788eb6a422cd25e02ace40.tar.gz DiligentCore-4f5a4499cf0eee3761788eb6a422cd25e02ace40.zip | |
Refactored passing template arguments to base classes
Diffstat (limited to 'Graphics/GraphicsEngineVulkan')
20 files changed, 162 insertions, 104 deletions
diff --git a/Graphics/GraphicsEngineVulkan/CMakeLists.txt b/Graphics/GraphicsEngineVulkan/CMakeLists.txt index ff540add..61fe931e 100644 --- a/Graphics/GraphicsEngineVulkan/CMakeLists.txt +++ b/Graphics/GraphicsEngineVulkan/CMakeLists.txt @@ -10,6 +10,7 @@ set(INCLUDE include/CommandQueueVkImpl.hpp include/DescriptorPoolManager.hpp include/DeviceContextVkImpl.hpp + include/EngineVkImplTraits.hpp include/FenceVkImpl.hpp include/FramebufferVkImpl.hpp include/VulkanDynamicHeap.hpp diff --git a/Graphics/GraphicsEngineVulkan/include/BottomLevelASVkImpl.hpp b/Graphics/GraphicsEngineVulkan/include/BottomLevelASVkImpl.hpp index ea990054..469aef6d 100644 --- a/Graphics/GraphicsEngineVulkan/include/BottomLevelASVkImpl.hpp +++ b/Graphics/GraphicsEngineVulkan/include/BottomLevelASVkImpl.hpp @@ -39,10 +39,10 @@ namespace Diligent { -class BottomLevelASVkImpl final : public BottomLevelASBase<IBottomLevelASVk, RenderDeviceVkImpl> +class BottomLevelASVkImpl final : public BottomLevelASBase<EngineVkImplTraits> { public: - using TBottomLevelASBase = BottomLevelASBase<IBottomLevelASVk, RenderDeviceVkImpl>; + using TBottomLevelASBase = BottomLevelASBase<EngineVkImplTraits>; BottomLevelASVkImpl(IReferenceCounters* pRefCounters, RenderDeviceVkImpl* pRenderDeviceVk, diff --git a/Graphics/GraphicsEngineVulkan/include/BufferViewVkImpl.hpp b/Graphics/GraphicsEngineVulkan/include/BufferViewVkImpl.hpp index bbba917f..15091572 100644 --- a/Graphics/GraphicsEngineVulkan/include/BufferViewVkImpl.hpp +++ b/Graphics/GraphicsEngineVulkan/include/BufferViewVkImpl.hpp @@ -39,14 +39,11 @@ namespace Diligent { -class FixedBlockMemoryAllocator; -class BufferVkImpl; - /// Buffer view implementation in Vulkan backend. -class BufferViewVkImpl final : public BufferViewBase<IBufferViewVk, RenderDeviceVkImpl> +class BufferViewVkImpl final : public BufferViewBase<EngineVkImplTraits> { public: - using TBufferViewBase = BufferViewBase<IBufferViewVk, RenderDeviceVkImpl>; + using TBufferViewBase = BufferViewBase<EngineVkImplTraits>; BufferViewVkImpl(IReferenceCounters* pRefCounters, RenderDeviceVkImpl* pDevice, diff --git a/Graphics/GraphicsEngineVulkan/include/BufferVkImpl.hpp b/Graphics/GraphicsEngineVulkan/include/BufferVkImpl.hpp index ca50a35b..caffa62f 100644 --- a/Graphics/GraphicsEngineVulkan/include/BufferVkImpl.hpp +++ b/Graphics/GraphicsEngineVulkan/include/BufferVkImpl.hpp @@ -43,14 +43,11 @@ namespace Diligent { -class FixedBlockMemoryAllocator; -class DeviceContextVkImpl; - /// Buffer object implementation in Vulkan backend. -class BufferVkImpl final : public BufferBase<IBufferVk, RenderDeviceVkImpl, BufferViewVkImpl, FixedBlockMemoryAllocator> +class BufferVkImpl final : public BufferBase<EngineVkImplTraits> { public: - using TBufferBase = BufferBase<IBufferVk, RenderDeviceVkImpl, BufferViewVkImpl, FixedBlockMemoryAllocator>; + using TBufferBase = BufferBase<EngineVkImplTraits>; BufferVkImpl(IReferenceCounters* pRefCounters, FixedBlockMemoryAllocator& BuffViewObjMemAllocator, diff --git a/Graphics/GraphicsEngineVulkan/include/DeviceContextVkImpl.hpp b/Graphics/GraphicsEngineVulkan/include/DeviceContextVkImpl.hpp index e32405a9..ff0e27de 100644 --- a/Graphics/GraphicsEngineVulkan/include/DeviceContextVkImpl.hpp +++ b/Graphics/GraphicsEngineVulkan/include/DeviceContextVkImpl.hpp @@ -61,25 +61,11 @@ namespace Diligent { -struct DeviceContextVkImplTraits -{ - using BufferType = BufferVkImpl; - using TextureType = TextureVkImpl; - using PipelineStateType = PipelineStateVkImpl; - using DeviceType = RenderDeviceVkImpl; - using ICommandQueueType = ICommandQueueVk; - using QueryType = QueryVkImpl; - using FramebufferType = FramebufferVkImpl; - using RenderPassType = RenderPassVkImpl; - using BottomLevelASType = BottomLevelASVkImpl; - using TopLevelASType = TopLevelASVkImpl; -}; - /// Device context implementation in Vulkan backend. -class DeviceContextVkImpl final : public DeviceContextNextGenBase<IDeviceContextVk, DeviceContextVkImplTraits> +class DeviceContextVkImpl final : public DeviceContextNextGenBase<EngineVkImplTraits> { public: - using TDeviceContextBase = DeviceContextNextGenBase<IDeviceContextVk, DeviceContextVkImplTraits>; + using TDeviceContextBase = DeviceContextNextGenBase<EngineVkImplTraits>; DeviceContextVkImpl(IReferenceCounters* pRefCounters, RenderDeviceVkImpl* pDevice, diff --git a/Graphics/GraphicsEngineVulkan/include/EngineVkImplTraits.hpp b/Graphics/GraphicsEngineVulkan/include/EngineVkImplTraits.hpp new file mode 100644 index 00000000..aace213f --- /dev/null +++ b/Graphics/GraphicsEngineVulkan/include/EngineVkImplTraits.hpp @@ -0,0 +1,122 @@ +/* + * Copyright 2019-2021 Diligent Graphics LLC + * Copyright 2015-2019 Egor Yusov + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * In no event and under no legal theory, whether in tort (including negligence), + * contract, or otherwise, unless required by applicable law (such as deliberate + * and grossly negligent acts) or agreed to in writing, shall any Contributor be + * liable for any damages, including any direct, indirect, special, incidental, + * or consequential damages of any character arising as a result of this License or + * out of the use or inability to use the software (including but not limited to damages + * for loss of goodwill, work stoppage, computer failure or malfunction, or any and + * all other commercial damages or losses), even if such Contributor has been advised + * of the possibility of such damages. + */ + +#pragma once + +/// \file +/// Declaration of Diligent::EngineVkImplTraits struct + +#include "RenderDeviceVk.h" +#include "PipelineStateVk.h" +#include "ShaderResourceBindingVk.h" +#include "BufferVk.h" +#include "BufferViewVk.h" +#include "TextureVk.h" +#include "TextureViewVk.h" +#include "ShaderVk.h" +#include "SamplerVk.h" +#include "FenceVk.h" +#include "QueryVk.h" +#include "RenderPassVk.h" +#include "FramebufferVk.h" +#include "BottomLevelASVk.h" +#include "TopLevelASVk.h" +#include "ShaderBindingTableVk.h" +#include "PipelineResourceSignature.h" +#include "CommandQueueVk.h" +#include "DeviceContextVk.h" + +namespace Diligent +{ + +class RenderDeviceVkImpl; +class DeviceContextVkImpl; +class PipelineStateVkImpl; +class ShaderResourceBindingVkImpl; +class BufferVkImpl; +class BufferViewVkImpl; +class TextureVkImpl; +class TextureViewVkImpl; +class ShaderVkImpl; +class SamplerVkImpl; +class FenceVkImpl; +class QueryVkImpl; +class RenderPassVkImpl; +class FramebufferVkImpl; +class BottomLevelASVkImpl; +class TopLevelASVkImpl; +class ShaderBindingTableVkImpl; +class PipelineResourceSignatureVkImpl; + +class FixedBlockMemoryAllocator; + +struct EngineVkImplTraits +{ + using RenderDeviceInterface = IRenderDeviceVk; + using DeviceContextInterface = IDeviceContextVk; + using PipelineStateInterface = IPipelineStateVk; + using ShaderResourceBindingInterface = IShaderResourceBindingVk; + using BufferInterface = IBufferVk; + using BufferViewInterface = IBufferViewVk; + using TextureInterface = ITextureVk; + using TextureViewInterface = ITextureViewVk; + using ShaderInterface = IShaderVk; + using SamplerInterface = ISamplerVk; + using FenceInterface = IFenceVk; + using QueryInterface = IQueryVk; + using RenderPassInterface = IRenderPassVk; + using FramebufferInterface = IFramebufferVk; + using BottomLevelASInterface = IBottomLevelASVk; + using TopLevelASInterface = ITopLevelASVk; + using ShaderBindingTableInterface = IShaderBindingTableVk; + using PipelineResourceSignatureInterface = IPipelineResourceSignature; + using CommandQueueInterface = ICommandQueueVk; + + using RenderDeviceImplType = RenderDeviceVkImpl; + using DeviceContextImplType = DeviceContextVkImpl; + using PipelineStateImplType = PipelineStateVkImpl; + using ShaderResourceBindingImplType = ShaderResourceBindingVkImpl; + using BufferImplType = BufferVkImpl; + using BufferViewImplType = BufferViewVkImpl; + using TextureImplType = TextureVkImpl; + using TextureViewImplType = TextureViewVkImpl; + using ShaderImplType = ShaderVkImpl; + using SamplerImplType = SamplerVkImpl; + using FenceImplType = FenceVkImpl; + using QueryImplType = QueryVkImpl; + using RenderPassImplType = RenderPassVkImpl; + using FramebufferImplType = FramebufferVkImpl; + using BottomLevelASImplType = BottomLevelASVkImpl; + using TopLevelASImplType = TopLevelASVkImpl; + using ShaderBindingTableImplType = ShaderBindingTableVkImpl; + using PipelineResourceSignatureImplType = PipelineResourceSignatureVkImpl; + + using BuffViewObjAllocatorType = FixedBlockMemoryAllocator; + using TexViewObjAllocatorType = FixedBlockMemoryAllocator; +}; + +} // namespace Diligent diff --git a/Graphics/GraphicsEngineVulkan/include/FenceVkImpl.hpp b/Graphics/GraphicsEngineVulkan/include/FenceVkImpl.hpp index 303fe6cf..a3a81edc 100644 --- a/Graphics/GraphicsEngineVulkan/include/FenceVkImpl.hpp +++ b/Graphics/GraphicsEngineVulkan/include/FenceVkImpl.hpp @@ -41,13 +41,11 @@ namespace Diligent { -class FixedBlockMemoryAllocator; - /// Fence implementation in Vulkan backend. -class FenceVkImpl final : public FenceBase<IFenceVk, RenderDeviceVkImpl> +class FenceVkImpl final : public FenceBase<EngineVkImplTraits> { public: - using TFenceBase = FenceBase<IFenceVk, RenderDeviceVkImpl>; + using TFenceBase = FenceBase<EngineVkImplTraits>; FenceVkImpl(IReferenceCounters* pRefCounters, RenderDeviceVkImpl* pRendeDeviceVkImpl, diff --git a/Graphics/GraphicsEngineVulkan/include/FramebufferVkImpl.hpp b/Graphics/GraphicsEngineVulkan/include/FramebufferVkImpl.hpp index de3ec01c..6877fd3d 100644 --- a/Graphics/GraphicsEngineVulkan/include/FramebufferVkImpl.hpp +++ b/Graphics/GraphicsEngineVulkan/include/FramebufferVkImpl.hpp @@ -38,13 +38,11 @@ namespace Diligent { -class FixedBlockMemoryAllocator; - /// Framebuffer implementation in Vulkan backend. -class FramebufferVkImpl final : public FramebufferBase<IFramebufferVk, RenderDeviceVkImpl> +class FramebufferVkImpl final : public FramebufferBase<EngineVkImplTraits> { public: - using TFramebufferBase = FramebufferBase<IFramebufferVk, RenderDeviceVkImpl>; + using TFramebufferBase = FramebufferBase<EngineVkImplTraits>; FramebufferVkImpl(IReferenceCounters* pRefCounters, RenderDeviceVkImpl* pDevice, diff --git a/Graphics/GraphicsEngineVulkan/include/PipelineResourceSignatureVkImpl.hpp b/Graphics/GraphicsEngineVulkan/include/PipelineResourceSignatureVkImpl.hpp index 1fb11c53..f9d5d5ec 100644 --- a/Graphics/GraphicsEngineVulkan/include/PipelineResourceSignatureVkImpl.hpp +++ b/Graphics/GraphicsEngineVulkan/include/PipelineResourceSignatureVkImpl.hpp @@ -32,6 +32,7 @@ #include <array> +#include "EngineVkImplTraits.hpp" #include "PipelineResourceSignatureBase.hpp" #include "VulkanUtilities/VulkanObjectWrappers.hpp" #include "SRBMemoryAllocator.hpp" @@ -66,10 +67,10 @@ enum class DescriptorType : Uint8 }; /// Implementation of the Diligent::PipelineResourceSignatureVkImpl class -class PipelineResourceSignatureVkImpl final : public PipelineResourceSignatureBase<IPipelineResourceSignature, RenderDeviceVkImpl> +class PipelineResourceSignatureVkImpl final : public PipelineResourceSignatureBase<EngineVkImplTraits> { public: - using TPipelineResourceSignatureBase = PipelineResourceSignatureBase<IPipelineResourceSignature, RenderDeviceVkImpl>; + using TPipelineResourceSignatureBase = PipelineResourceSignatureBase<EngineVkImplTraits>; // Descriptor set identifier (this is not the descriptor set index in the set layout!) enum DESCRIPTOR_SET_ID : size_t diff --git a/Graphics/GraphicsEngineVulkan/include/PipelineStateVkImpl.hpp b/Graphics/GraphicsEngineVulkan/include/PipelineStateVkImpl.hpp index 80d1a46b..d2f289af 100644 --- a/Graphics/GraphicsEngineVulkan/include/PipelineStateVkImpl.hpp +++ b/Graphics/GraphicsEngineVulkan/include/PipelineStateVkImpl.hpp @@ -54,10 +54,10 @@ class ShaderVkImpl; class ShaderResourceBindingVkImpl; /// Pipeline state object implementation in Vulkan backend. -class PipelineStateVkImpl final : public PipelineStateBase<IPipelineStateVk, RenderDeviceVkImpl> +class PipelineStateVkImpl final : public PipelineStateBase<EngineVkImplTraits> { public: - using TPipelineStateBase = PipelineStateBase<IPipelineStateVk, RenderDeviceVkImpl>; + using TPipelineStateBase = PipelineStateBase<EngineVkImplTraits>; PipelineStateVkImpl(IReferenceCounters* pRefCounters, RenderDeviceVkImpl* pDeviceVk, const GraphicsPipelineStateCreateInfo& CreateInfo); PipelineStateVkImpl(IReferenceCounters* pRefCounters, RenderDeviceVkImpl* pDeviceVk, const ComputePipelineStateCreateInfo& CreateInfo); diff --git a/Graphics/GraphicsEngineVulkan/include/QueryVkImpl.hpp b/Graphics/GraphicsEngineVulkan/include/QueryVkImpl.hpp index 718628e6..cc3919c9 100644 --- a/Graphics/GraphicsEngineVulkan/include/QueryVkImpl.hpp +++ b/Graphics/GraphicsEngineVulkan/include/QueryVkImpl.hpp @@ -43,10 +43,10 @@ namespace Diligent class FixedBlockMemoryAllocator; /// Query implementation in Vulkan backend. -class QueryVkImpl final : public QueryBase<IQueryVk, RenderDeviceVkImpl> +class QueryVkImpl final : public QueryBase<EngineVkImplTraits> { public: - using TQueryBase = QueryBase<IQueryVk, RenderDeviceVkImpl>; + using TQueryBase = QueryBase<EngineVkImplTraits>; QueryVkImpl(IReferenceCounters* pRefCounters, RenderDeviceVkImpl* pRendeDeviceVkImpl, diff --git a/Graphics/GraphicsEngineVulkan/include/RenderDeviceVkImpl.hpp b/Graphics/GraphicsEngineVulkan/include/RenderDeviceVkImpl.hpp index 7e003fca..71294e24 100644 --- a/Graphics/GraphicsEngineVulkan/include/RenderDeviceVkImpl.hpp +++ b/Graphics/GraphicsEngineVulkan/include/RenderDeviceVkImpl.hpp @@ -31,7 +31,8 @@ /// Declaration of Diligent::RenderDeviceVkImpl class #include <memory> -#include "RenderDeviceVk.h" +#include "EngineVkImplTraits.hpp" + #include "RenderDeviceBase.hpp" #include "RenderDeviceNextGenBase.hpp" #include "DescriptorPoolManager.hpp" @@ -54,52 +55,11 @@ namespace Diligent { -class RenderDeviceVkImpl; -class PipelineStateVkImpl; -class ShaderResourceBindingVkImpl; -class BufferVkImpl; -class BufferViewVkImpl; -class TextureVkImpl; -class TextureViewVkImpl; -class ShaderVkImpl; -class SamplerVkImpl; -class FenceVkImpl; -class QueryVkImpl; -class RenderPassVkImpl; -class FramebufferVkImpl; -class BottomLevelASVkImpl; -class TopLevelASVkImpl; -class ShaderBindingTableVkImpl; -class PipelineResourceSignatureVkImpl; - -struct RenderDeviceVkImplTraits -{ - using BaseInterface = IRenderDeviceVk; - - using RenderDeviceImplType = RenderDeviceVkImpl; - using PipelineStateImplType = PipelineStateVkImpl; - using ShaderResourceBindingImplType = ShaderResourceBindingVkImpl; - using BufferImplType = BufferVkImpl; - using BufferViewImplType = BufferViewVkImpl; - using TextureImplType = TextureVkImpl; - using TextureViewImplType = TextureViewVkImpl; - using ShaderImplType = ShaderVkImpl; - using SamplerImplType = SamplerVkImpl; - using FenceImplType = FenceVkImpl; - using QueryImplType = QueryVkImpl; - using RenderPassImplType = RenderPassVkImpl; - using FramebufferImplType = FramebufferVkImpl; - using BottomLevelASImplType = BottomLevelASVkImpl; - using TopLevelASImplType = TopLevelASVkImpl; - using ShaderBindingTableImplType = ShaderBindingTableVkImpl; - using PipelineResourceSignatureImplType = PipelineResourceSignatureVkImpl; -}; - /// Render device implementation in Vulkan backend. -class RenderDeviceVkImpl final : public RenderDeviceNextGenBase<RenderDeviceBase<RenderDeviceVkImplTraits>, ICommandQueueVk> +class RenderDeviceVkImpl final : public RenderDeviceNextGenBase<RenderDeviceBase<EngineVkImplTraits>, ICommandQueueVk> { public: - using TRenderDeviceBase = RenderDeviceNextGenBase<RenderDeviceBase<RenderDeviceVkImplTraits>, ICommandQueueVk>; + using TRenderDeviceBase = RenderDeviceNextGenBase<RenderDeviceBase<EngineVkImplTraits>, ICommandQueueVk>; RenderDeviceVkImpl(IReferenceCounters* pRefCounters, IMemoryAllocator& RawMemAllocator, diff --git a/Graphics/GraphicsEngineVulkan/include/RenderPassVkImpl.hpp b/Graphics/GraphicsEngineVulkan/include/RenderPassVkImpl.hpp index ecad1df0..d155a0cd 100644 --- a/Graphics/GraphicsEngineVulkan/include/RenderPassVkImpl.hpp +++ b/Graphics/GraphicsEngineVulkan/include/RenderPassVkImpl.hpp @@ -42,10 +42,10 @@ namespace Diligent class FixedBlockMemoryAllocator; /// Render pass implementation in Vulkan backend. -class RenderPassVkImpl final : public RenderPassBase<IRenderPassVk, RenderDeviceVkImpl> +class RenderPassVkImpl final : public RenderPassBase<EngineVkImplTraits> { public: - using TRenderPassBase = RenderPassBase<IRenderPassVk, RenderDeviceVkImpl>; + using TRenderPassBase = RenderPassBase<EngineVkImplTraits>; RenderPassVkImpl(IReferenceCounters* pRefCounters, RenderDeviceVkImpl* pDevice, diff --git a/Graphics/GraphicsEngineVulkan/include/SamplerVkImpl.hpp b/Graphics/GraphicsEngineVulkan/include/SamplerVkImpl.hpp index 24f1af24..5821e02e 100644 --- a/Graphics/GraphicsEngineVulkan/include/SamplerVkImpl.hpp +++ b/Graphics/GraphicsEngineVulkan/include/SamplerVkImpl.hpp @@ -42,10 +42,10 @@ namespace Diligent class FixedBlockMemoryAllocator; /// Sampler object object implementation in Vulkan backend. -class SamplerVkImpl final : public SamplerBase<ISamplerVk, RenderDeviceVkImpl> +class SamplerVkImpl final : public SamplerBase<EngineVkImplTraits> { public: - using TSamplerBase = SamplerBase<ISamplerVk, RenderDeviceVkImpl>; + using TSamplerBase = SamplerBase<EngineVkImplTraits>; SamplerVkImpl(IReferenceCounters* pRefCounters, RenderDeviceVkImpl* pRenderDeviceVk, const SamplerDesc& SamplerDesc); ~SamplerVkImpl(); diff --git a/Graphics/GraphicsEngineVulkan/include/ShaderBindingTableVkImpl.hpp b/Graphics/GraphicsEngineVulkan/include/ShaderBindingTableVkImpl.hpp index 375163fa..5291f857 100644 --- a/Graphics/GraphicsEngineVulkan/include/ShaderBindingTableVkImpl.hpp +++ b/Graphics/GraphicsEngineVulkan/include/ShaderBindingTableVkImpl.hpp @@ -41,10 +41,10 @@ namespace Diligent { -class ShaderBindingTableVkImpl final : public ShaderBindingTableBase<IShaderBindingTableVk, PipelineStateVkImpl, TopLevelASVkImpl, RenderDeviceVkImpl> +class ShaderBindingTableVkImpl final : public ShaderBindingTableBase<EngineVkImplTraits> { public: - using TShaderBindingTableBase = ShaderBindingTableBase<IShaderBindingTableVk, PipelineStateVkImpl, TopLevelASVkImpl, RenderDeviceVkImpl>; + using TShaderBindingTableBase = ShaderBindingTableBase<EngineVkImplTraits>; ShaderBindingTableVkImpl(IReferenceCounters* pRefCounters, RenderDeviceVkImpl* pRenderDeviceVk, diff --git a/Graphics/GraphicsEngineVulkan/include/ShaderResourceBindingVkImpl.hpp b/Graphics/GraphicsEngineVulkan/include/ShaderResourceBindingVkImpl.hpp index c0e012a2..e77da610 100644 --- a/Graphics/GraphicsEngineVulkan/include/ShaderResourceBindingVkImpl.hpp +++ b/Graphics/GraphicsEngineVulkan/include/ShaderResourceBindingVkImpl.hpp @@ -45,10 +45,10 @@ class PipelineResourceSignatureVkImpl; /// Implementation of the Diligent::IShaderResourceBindingVk interface // sizeof(ShaderResourceBindingVkImpl) == 64 (x64, msvc, Release) -class ShaderResourceBindingVkImpl final : public ShaderResourceBindingBase<IShaderResourceBindingVk, PipelineResourceSignatureVkImpl> +class ShaderResourceBindingVkImpl final : public ShaderResourceBindingBase<EngineVkImplTraits> { public: - using TBase = ShaderResourceBindingBase<IShaderResourceBindingVk, PipelineResourceSignatureVkImpl>; + using TBase = ShaderResourceBindingBase<EngineVkImplTraits>; ShaderResourceBindingVkImpl(IReferenceCounters* pRefCounters, PipelineResourceSignatureVkImpl* pPRS); diff --git a/Graphics/GraphicsEngineVulkan/include/ShaderVkImpl.hpp b/Graphics/GraphicsEngineVulkan/include/ShaderVkImpl.hpp index 804a1c84..f8b63b95 100644 --- a/Graphics/GraphicsEngineVulkan/include/ShaderVkImpl.hpp +++ b/Graphics/GraphicsEngineVulkan/include/ShaderVkImpl.hpp @@ -43,10 +43,10 @@ class ResourceMapping; class FixedBlockMemoryAllocator; /// Shader object object implementation in Vulkan backend. -class ShaderVkImpl final : public ShaderBase<IShaderVk, RenderDeviceVkImpl> +class ShaderVkImpl final : public ShaderBase<EngineVkImplTraits> { public: - using TShaderBase = ShaderBase<IShaderVk, RenderDeviceVkImpl>; + using TShaderBase = ShaderBase<EngineVkImplTraits>; ShaderVkImpl(IReferenceCounters* pRefCounters, RenderDeviceVkImpl* pRenderDeviceVk, const ShaderCreateInfo& CreationAttribs); ~ShaderVkImpl(); diff --git a/Graphics/GraphicsEngineVulkan/include/TextureViewVkImpl.hpp b/Graphics/GraphicsEngineVulkan/include/TextureViewVkImpl.hpp index c1feb1b9..67806c8b 100644 --- a/Graphics/GraphicsEngineVulkan/include/TextureViewVkImpl.hpp +++ b/Graphics/GraphicsEngineVulkan/include/TextureViewVkImpl.hpp @@ -42,10 +42,10 @@ namespace Diligent class FixedBlockMemoryAllocator; /// Texture view implementation in Vulkan backend. -class TextureViewVkImpl final : public TextureViewBase<ITextureViewVk, RenderDeviceVkImpl> +class TextureViewVkImpl final : public TextureViewBase<EngineVkImplTraits> { public: - using TTextureViewBase = TextureViewBase<ITextureViewVk, RenderDeviceVkImpl>; + using TTextureViewBase = TextureViewBase<EngineVkImplTraits>; TextureViewVkImpl(IReferenceCounters* pRefCounters, RenderDeviceVkImpl* pDevice, diff --git a/Graphics/GraphicsEngineVulkan/include/TextureVkImpl.hpp b/Graphics/GraphicsEngineVulkan/include/TextureVkImpl.hpp index f9958832..9f5cfb84 100644 --- a/Graphics/GraphicsEngineVulkan/include/TextureVkImpl.hpp +++ b/Graphics/GraphicsEngineVulkan/include/TextureVkImpl.hpp @@ -40,13 +40,11 @@ namespace Diligent { -class FixedBlockMemoryAllocator; - /// Texture object implementation in Vulkan backend. -class TextureVkImpl final : public TextureBase<ITextureVk, RenderDeviceVkImpl, TextureViewVkImpl, FixedBlockMemoryAllocator> +class TextureVkImpl final : public TextureBase<EngineVkImplTraits> { public: - using TTextureBase = TextureBase<ITextureVk, RenderDeviceVkImpl, TextureViewVkImpl, FixedBlockMemoryAllocator>; + using TTextureBase = TextureBase<EngineVkImplTraits>; using ViewImplType = TextureViewVkImpl; // Creates a new Vk resource diff --git a/Graphics/GraphicsEngineVulkan/include/TopLevelASVkImpl.hpp b/Graphics/GraphicsEngineVulkan/include/TopLevelASVkImpl.hpp index deba84cc..7f34104d 100644 --- a/Graphics/GraphicsEngineVulkan/include/TopLevelASVkImpl.hpp +++ b/Graphics/GraphicsEngineVulkan/include/TopLevelASVkImpl.hpp @@ -40,10 +40,10 @@ namespace Diligent { -class TopLevelASVkImpl final : public TopLevelASBase<ITopLevelASVk, BottomLevelASVkImpl, RenderDeviceVkImpl> +class TopLevelASVkImpl final : public TopLevelASBase<EngineVkImplTraits> { public: - using TTopLevelASBase = TopLevelASBase<ITopLevelASVk, BottomLevelASVkImpl, RenderDeviceVkImpl>; + using TTopLevelASBase = TopLevelASBase<EngineVkImplTraits>; TopLevelASVkImpl(IReferenceCounters* pRefCounters, RenderDeviceVkImpl* pRenderDeviceVk, |
