summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineD3D12/include/EngineD3D12ImplTraits.hpp
blob: 839afff98a49eec9add423843cfaecfcd6c89386 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/*
 *  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::EngineD3D12ImplTraits struct

#include "RenderDeviceD3D12.h"
#include "PipelineStateD3D12.h"
#include "ShaderResourceBindingD3D12.h"
#include "BufferD3D12.h"
#include "BufferViewD3D12.h"
#include "TextureD3D12.h"
#include "TextureViewD3D12.h"
#include "ShaderD3D12.h"
#include "SamplerD3D12.h"
#include "FenceD3D12.h"
#include "QueryD3D12.h"
#include "RenderPass.h"
#include "Framebuffer.h"
#include "CommandList.h"
#include "BottomLevelASD3D12.h"
#include "TopLevelASD3D12.h"
#include "ShaderBindingTableD3D12.h"
#include "PipelineResourceSignature.h"
#include "CommandQueueD3D12.h"
#include "DeviceContextD3D12.h"

namespace Diligent
{

class RenderDeviceD3D12Impl;
class DeviceContextD3D12Impl;
class PipelineStateD3D12Impl;
class ShaderResourceBindingD3D12Impl;
class BufferD3D12Impl;
class BufferViewD3D12Impl;
class TextureD3D12Impl;
class TextureViewD3D12Impl;
class ShaderD3D12Impl;
class SamplerD3D12Impl;
class FenceD3D12Impl;
class QueryD3D12Impl;
class RenderPassD3D12Impl;
class FramebufferD3D12Impl;
class CommandListD3D12Impl;
class BottomLevelASD3D12Impl;
class TopLevelASD3D12Impl;
class ShaderBindingTableD3D12Impl;
class PipelineResourceSignatureD3D12Impl;

class FixedBlockMemoryAllocator;

class ShaderResourceCacheD3D12;
class ShaderVariableManagerD3D12;

struct EngineD3D12ImplTraits
{
    using RenderDeviceInterface              = IRenderDeviceD3D12;
    using DeviceContextInterface             = IDeviceContextD3D12;
    using PipelineStateInterface             = IPipelineStateD3D12;
    using ShaderResourceBindingInterface     = IShaderResourceBindingD3D12;
    using BufferInterface                    = IBufferD3D12;
    using BufferViewInterface                = IBufferViewD3D12;
    using TextureInterface                   = ITextureD3D12;
    using TextureViewInterface               = ITextureViewD3D12;
    using ShaderInterface                    = IShaderD3D12;
    using SamplerInterface                   = ISamplerD3D12;
    using FenceInterface                     = IFenceD3D12;
    using QueryInterface                     = IQueryD3D12;
    using RenderPassInterface                = IRenderPass;
    using FramebufferInterface               = IFramebuffer;
    using CommandListInterface               = ICommandList;
    using BottomLevelASInterface             = IBottomLevelASD3D12;
    using TopLevelASInterface                = ITopLevelASD3D12;
    using ShaderBindingTableInterface        = IShaderBindingTableD3D12;
    using PipelineResourceSignatureInterface = IPipelineResourceSignature;
    using CommandQueueInterface              = ICommandQueueD3D12;

    using RenderDeviceImplType              = RenderDeviceD3D12Impl;
    using DeviceContextImplType             = DeviceContextD3D12Impl;
    using PipelineStateImplType             = PipelineStateD3D12Impl;
    using ShaderResourceBindingImplType     = ShaderResourceBindingD3D12Impl;
    using BufferImplType                    = BufferD3D12Impl;
    using BufferViewImplType                = BufferViewD3D12Impl;
    using TextureImplType                   = TextureD3D12Impl;
    using TextureViewImplType               = TextureViewD3D12Impl;
    using ShaderImplType                    = ShaderD3D12Impl;
    using SamplerImplType                   = SamplerD3D12Impl;
    using FenceImplType                     = FenceD3D12Impl;
    using QueryImplType                     = QueryD3D12Impl;
    using RenderPassImplType                = RenderPassD3D12Impl;
    using FramebufferImplType               = FramebufferD3D12Impl;
    using CommandListImplType               = CommandListD3D12Impl;
    using BottomLevelASImplType             = BottomLevelASD3D12Impl;
    using TopLevelASImplType                = TopLevelASD3D12Impl;
    using ShaderBindingTableImplType        = ShaderBindingTableD3D12Impl;
    using PipelineResourceSignatureImplType = PipelineResourceSignatureD3D12Impl;

    using BuffViewObjAllocatorType = FixedBlockMemoryAllocator;
    using TexViewObjAllocatorType  = FixedBlockMemoryAllocator;

    using ShaderResourceCacheImplType   = ShaderResourceCacheD3D12;
    using ShaderVariableManagerImplType = ShaderVariableManagerD3D12;
};

} // namespace Diligent