Files
UnrealEngine/Engine/Source/Runtime/Renderer/Private/Nanite/NaniteDrawList.h
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

31 lines
1.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "NaniteShared.h"
#include "NaniteMaterials.h"
#include "PrimitiveSceneInfo.h"
class FNaniteMaterialListContext
{
public:
struct FDeferredPipelines
{
FPrimitiveSceneInfo* PrimitiveSceneInfo;
TArray<FNaniteRasterPipeline, TInlineAllocator<4>> RasterPipelines;
TArray<FNaniteShadingPipeline, TInlineAllocator<4>> TriangleShadingPipelines;
TArray<FNaniteShadingPipeline, TInlineAllocator<4>> VoxelShadingPipelines;
};
public:
void Apply(FScene& Scene);
private:
FNaniteMaterialSlot& GetMaterialSlotForWrite(FPrimitiveSceneInfo& PrimitiveSceneInfo, ENaniteMeshPass::Type MeshPass, uint8 SectionIndex);
void AddRasterBin(FPrimitiveSceneInfo& PrimitiveSceneInfo, const FNaniteRasterBin& PrimaryRasterBin, const FNaniteRasterBin& FallbackRasterBin, ENaniteMeshPass::Type MeshPass, uint8 SectionIndex);
void AddShadingBin(FPrimitiveSceneInfo& PrimitiveSceneInfo, const FNaniteShadingBin& TriangleShadingBin, const FNaniteShadingBin& VoxelShadingBin, ENaniteMeshPass::Type MeshPass, uint8 SectionIndex);
public:
TArray<FDeferredPipelines> DeferredPipelines[ENaniteMeshPass::Num];
};