Refactor rendering frame execution contracts

This commit is contained in:
2026-04-13 22:16:04 +08:00
parent 48daaa1bd0
commit 712f99e723
30 changed files with 1398 additions and 247 deletions

View File

@@ -2,6 +2,7 @@
#include "RHI/RHICommandList.h"
#include "Rendering/Extraction/RenderSceneExtractor.h"
#include "Rendering/FrameData/RendererListUtils.h"
#include "Rendering/Internal/RenderSurfacePipelineUtils.h"
#include "Rendering/RenderSurface.h"
#include "Resources/Mesh/Mesh.h"
@@ -139,13 +140,16 @@ bool BuiltinDepthStylePassBase::Execute(const RenderPassContext& context) {
commandList->SetPrimitiveTopology(RHI::PrimitiveTopology::TriangleList);
for (const VisibleRenderItem& visibleItem : context.sceneData.visibleItems) {
if (!ShouldRenderVisibleItem(visibleItem)) {
continue;
}
VisitRendererListVisibleItems(
context.sceneData,
GetRendererListType(),
[&](const VisibleRenderItem& visibleItem) {
if (!ShouldRenderVisibleItem(visibleItem)) {
return;
}
DrawVisibleItem(context.renderContext, context.surface, context.sceneData, visibleItem);
}
DrawVisibleItem(context.renderContext, context.surface, context.sceneData, visibleItem);
});
commandList->EndRenderPass();
@@ -165,6 +169,10 @@ bool BuiltinDepthStylePassBase::Execute(const RenderPassContext& context) {
return true;
}
RendererListType BuiltinDepthStylePassBase::GetRendererListType() const {
return RendererListType::AllVisible;
}
bool BuiltinDepthStylePassBase::ShouldRenderVisibleItem(const VisibleRenderItem& visibleItem) const {
(void)visibleItem;
return true;