60 lines
1.2 KiB
C++
60 lines
1.2 KiB
C++
// 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
|