From 07a7f4bd9e05a8c170d308af83063024bcdfaad4 Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Thu, 7 Mar 2019 19:00:46 -0800 Subject: Added IShaderD3D interface and HLSLShaderResourceDesc structure --- Graphics/GraphicsEngineD3DBase/CMakeLists.txt | 12 ++- .../include/ShaderResources.h | 5 +- .../GraphicsEngineD3DBase/interface/ShaderD3D.h | 53 ++++++++++++ .../GraphicsEngineD3DBase/src/ShaderResources.cpp | 97 ++++++++++++---------- 4 files changed, 120 insertions(+), 47 deletions(-) create mode 100644 Graphics/GraphicsEngineD3DBase/interface/ShaderD3D.h (limited to 'Graphics/GraphicsEngineD3DBase') diff --git a/Graphics/GraphicsEngineD3DBase/CMakeLists.txt b/Graphics/GraphicsEngineD3DBase/CMakeLists.txt index 1e80ae42..b4352094 100644 --- a/Graphics/GraphicsEngineD3DBase/CMakeLists.txt +++ b/Graphics/GraphicsEngineD3DBase/CMakeLists.txt @@ -17,6 +17,10 @@ set(INCLUDE include/SwapChainD3DBase.h ) +set(INTERFACE + interface/ShaderD3D.h +) + set(SOURCE src/DXGITypeConversions.cpp src/ShaderD3DBase.cpp @@ -24,7 +28,7 @@ set(SOURCE ) add_library(GraphicsEngineD3DBase STATIC - ${SOURCE} ${INCLUDE} include/HLSLDefinitions_inc.fxh + ${SOURCE} ${INCLUDE} ${INTERFACE} include/HLSLDefinitions_inc.fxh ) set_source_files_properties( @@ -50,6 +54,10 @@ add_custom_command(TARGET ProcessHLSLDefinitions add_dependencies(GraphicsEngineD3DBase ProcessHLSLDefinitions) +add_library(GraphicsEngineD3DBaseInterface INTERFACE) +target_link_libraries(GraphicsEngineD3DBaseInterface INTERFACE GraphicsEngineInterface) +target_include_directories(GraphicsEngineD3DBaseInterface INTERFACE interface) + target_include_directories(GraphicsEngineD3DBase PUBLIC include @@ -59,6 +67,7 @@ target_link_libraries(GraphicsEngineD3DBase PUBLIC BuildSettings GraphicsEngine + GraphicsEngineD3DBaseInterface ) if(D3D12_SUPPORTED) target_link_libraries(GraphicsEngineD3DBase PRIVATE D3D12.lib) @@ -67,6 +76,7 @@ set_common_target_properties(GraphicsEngineD3DBase) source_group("src" FILES ${SOURCE}) source_group("include" FILES ${INCLUDE}) +source_group("interface" FILES ${INTERFACE}) source_group("generated" FILES include/HLSLDefinitions_inc.fxh) set_target_properties(GraphicsEngineD3DBase PROPERTIES diff --git a/Graphics/GraphicsEngineD3DBase/include/ShaderResources.h b/Graphics/GraphicsEngineD3DBase/include/ShaderResources.h index 272ad08e..602c6fb3 100644 --- a/Graphics/GraphicsEngineD3DBase/include/ShaderResources.h +++ b/Graphics/GraphicsEngineD3DBase/include/ShaderResources.h @@ -57,7 +57,7 @@ #define NOMINMAX #include -#include "Shader.h" +#include "ShaderD3D.h" #include "STDAllocator.h" #include "HashUtils.h" #include "StringPool.h" @@ -212,6 +212,7 @@ public: return ComputeHash(BindPoint, BindCount, InputType, SRVDimension, SamplerOrTexSRVId); } + HLSLShaderResourceDesc GetHLSLResourceDesc()const; private: friend class ShaderResources; @@ -283,7 +284,7 @@ public: SHADER_TYPE GetShaderType()const noexcept{return m_ShaderType;} - ShaderResourceDesc GetShaderResourceDesc(Uint32 Index)const; + HLSLShaderResourceDesc GetHLSLShaderResourceDesc(Uint32 Index)const; template