// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "RenderGraphBuilder.h" #include "RenderGraphResources.h" #include "RHIGPUReadback.h" #include "CoreMinimal.h" class FGlobalShaderMap; namespace Nanite { struct FStreamOutRequest { uint32 PrimitiveId; uint32 NumMaterials; uint32 NumSegments; uint32 SegmentMappingOffset; uint32 AuxiliaryDataOffset; uint32 MeshDataOffset; }; struct FStreamOutMeshDataHeader { uint32 NumClusters; uint32 VertexBufferOffset; uint32 IndexBufferOffset; uint32 NumVertices; uint32 NumIndices; }; struct FStreamOutMeshDataSegment { uint32 NumIndices; uint32 FirstIndex; }; /* * Stream out nanite mesh data into buffers in a uncompressed format */ void StreamOutData( FRDGBuilder& GraphBuilder, FGlobalShaderMap* ShaderMap, FSceneUniformBuffer &SceneUniformBuffer, float CutError, uint32 NumRequests, FRDGBufferRef RequestBuffer, FRDGBufferRef SegmentMappingBuffer, FRDGBufferRef MeshDataBuffer, FRDGBufferRef AuxiliaryDataBuffer, FRDGBufferRef VertexBuffer, uint32 MaxNumVertices, FRDGBufferRef IndexBuffer, uint32 MaxNumIndices ); } // namespace Nanite