diff --git a/engine/CMakeLists.txt b/engine/CMakeLists.txt index 18b44bc7..525431b6 100644 --- a/engine/CMakeLists.txt +++ b/engine/CMakeLists.txt @@ -456,6 +456,8 @@ add_library(XCEngine STATIC ${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Pipelines/BuiltinForwardPipeline.h ${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/CameraRenderer.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Passes/BuiltinDepthStylePassBase.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Passes/BuiltinDepthOnlyPass.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Passes/BuiltinShadowCasterPass.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Passes/BuiltinObjectIdPass.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Passes/BuiltinInfiniteGridPass.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Passes/BuiltinObjectIdOutlinePass.cpp diff --git a/engine/src/Rendering/Passes/BuiltinDepthOnlyPass.cpp b/engine/src/Rendering/Passes/BuiltinDepthOnlyPass.cpp new file mode 100644 index 00000000..557a23c8 --- /dev/null +++ b/engine/src/Rendering/Passes/BuiltinDepthOnlyPass.cpp @@ -0,0 +1,25 @@ +#include "Rendering/Passes/BuiltinDepthOnlyPass.h" + +#include "Resources/BuiltinResources.h" + +namespace XCEngine { +namespace Rendering { +namespace Passes { + +BuiltinDepthOnlyPass::BuiltinDepthOnlyPass() + : BuiltinDepthStylePassBase( + BuiltinMaterialPass::DepthOnly, + Resources::GetBuiltinDepthOnlyShaderPath()) { +} + +RHI::InputLayoutDesc BuiltinDepthOnlyPass::BuildInputLayout() { + return BuildCommonInputLayout(); +} + +const char* BuiltinDepthOnlyPass::GetName() const { + return "BuiltinDepthOnlyPass"; +} + +} // namespace Passes +} // namespace Rendering +} // namespace XCEngine diff --git a/engine/src/Rendering/Passes/BuiltinDepthStylePassBase.cpp b/engine/src/Rendering/Passes/BuiltinDepthStylePassBase.cpp index 38cd3879..670060b8 100644 --- a/engine/src/Rendering/Passes/BuiltinDepthStylePassBase.cpp +++ b/engine/src/Rendering/Passes/BuiltinDepthStylePassBase.cpp @@ -1,16 +1,11 @@ #include "Rendering/Passes/BuiltinDepthStylePassBase.h" -#include "Rendering/Passes/BuiltinDepthOnlyPass.h" -#include "Rendering/Passes/BuiltinShadowCasterPass.h" - #include "Components/GameObject.h" -#include "Components/MeshRendererComponent.h" #include "Core/Asset/ResourceManager.h" #include "Debug/Logger.h" #include "RHI/RHICommandList.h" #include "Rendering/Detail/ShaderVariantUtils.h" #include "Rendering/RenderSceneExtractor.h" #include "Rendering/RenderSurface.h" -#include "Resources/BuiltinResources.h" #include "Resources/Material/Material.h" #include "Resources/Mesh/Mesh.h" @@ -716,38 +711,6 @@ bool BuiltinDepthStylePassBase::DrawVisibleItem( return true; } -BuiltinDepthOnlyPass::BuiltinDepthOnlyPass() - : BuiltinDepthStylePassBase( - BuiltinMaterialPass::DepthOnly, - Resources::GetBuiltinDepthOnlyShaderPath()) { -} - -RHI::InputLayoutDesc BuiltinDepthOnlyPass::BuildInputLayout() { - return BuildCommonInputLayout(); -} - -const char* BuiltinDepthOnlyPass::GetName() const { - return "BuiltinDepthOnlyPass"; -} - -BuiltinShadowCasterPass::BuiltinShadowCasterPass() - : BuiltinDepthStylePassBase( - BuiltinMaterialPass::ShadowCaster, - Resources::GetBuiltinShadowCasterShaderPath()) { -} - -RHI::InputLayoutDesc BuiltinShadowCasterPass::BuildInputLayout() { - return BuildCommonInputLayout(); -} - -const char* BuiltinShadowCasterPass::GetName() const { - return "BuiltinShadowCasterPass"; -} - -bool BuiltinShadowCasterPass::ShouldRenderVisibleItem(const VisibleRenderItem& visibleItem) const { - return visibleItem.meshRenderer == nullptr || visibleItem.meshRenderer->GetCastShadows(); -} - } // namespace Passes } // namespace Rendering } // namespace XCEngine diff --git a/engine/src/Rendering/Passes/BuiltinShadowCasterPass.cpp b/engine/src/Rendering/Passes/BuiltinShadowCasterPass.cpp new file mode 100644 index 00000000..26178752 --- /dev/null +++ b/engine/src/Rendering/Passes/BuiltinShadowCasterPass.cpp @@ -0,0 +1,30 @@ +#include "Rendering/Passes/BuiltinShadowCasterPass.h" + +#include "Components/MeshRendererComponent.h" +#include "Resources/BuiltinResources.h" + +namespace XCEngine { +namespace Rendering { +namespace Passes { + +BuiltinShadowCasterPass::BuiltinShadowCasterPass() + : BuiltinDepthStylePassBase( + BuiltinMaterialPass::ShadowCaster, + Resources::GetBuiltinShadowCasterShaderPath()) { +} + +RHI::InputLayoutDesc BuiltinShadowCasterPass::BuildInputLayout() { + return BuildCommonInputLayout(); +} + +const char* BuiltinShadowCasterPass::GetName() const { + return "BuiltinShadowCasterPass"; +} + +bool BuiltinShadowCasterPass::ShouldRenderVisibleItem(const VisibleRenderItem& visibleItem) const { + return visibleItem.meshRenderer == nullptr || visibleItem.meshRenderer->GetCastShadows(); +} + +} // namespace Passes +} // namespace Rendering +} // namespace XCEngine