UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SkeletalMeshHalfEdgeBuffer.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "RenderResource.h"
7
11
16
17/*
18 * Render resource containing the half edge buffers.
19 */
21{
22public:
24
30
32
35
36 void ENGINE_API InitRHI(FRHICommandListBase& RHICmdList) override;
37
38 void ENGINE_API ReleaseRHI() override;
39
40 bool ENGINE_API IsCPUDataValid() const;
41
43
44 void ENGINE_API CleanUp();
45
46 int32 GetResourceSize() const;
47
48 void Serialize(FArchive& Ar);
49
51 friend FArchive& operator<<(FArchive& Ar, FSkeletalMeshHalfEdgeBuffer& MorphTargetVertexInfoBuffers);
52
54 {
55 return VertexToEdgeBufferSRV;
56 }
57
59 {
60 return EdgeToTwinEdgeBufferSRV;
61 }
62
65
66private:
67 uint32 GetMinBufferSize() const;
68
69 TResourceArray<int32> VertexToEdgeData;
70 TResourceArray<int32> EdgeToTwinEdgeData;
71
72 FBufferRHIRef VertexToEdgeBufferRHI;
73 FShaderResourceViewRHIRef VertexToEdgeBufferSRV;
74 FBufferRHIRef EdgeToTwinEdgeBufferRHI;
75 FShaderResourceViewRHIRef EdgeToTwinEdgeBufferSRV;
76};
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
void Init()
Definition LockFreeList.h:4
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition RHICommandList.h:455
Definition RHIResourceReplace.h:55
Definition RHIResources.h:3304
Definition RenderResource.h:37
Definition SkeletalMeshHalfEdgeBuffer.h:21
int32 GetResourceSize() const
Definition SkeletalMeshHalfEdgeBuffer.cpp:345
FRHIInfo CreateRHIBuffer(FRHICommandListBase &RHICmdList)
Definition SkeletalMeshHalfEdgeBuffer.cpp:227
ENGINE_API FSkeletalMeshHalfEdgeBuffer()
void ENGINE_API CleanUp()
Definition SkeletalMeshHalfEdgeBuffer.cpp:339
bool ENGINE_API IsReadyForRendering() const
Definition SkeletalMeshHalfEdgeBuffer.cpp:331
FRHIShaderResourceView * GetEdgeToTwinEdgeBufferSRV() const
Definition SkeletalMeshHalfEdgeBuffer.h:58
friend FArchive & operator<<(FArchive &Ar, FSkeletalMeshHalfEdgeBuffer &MorphTargetVertexInfoBuffers)
Definition SkeletalMeshHalfEdgeBuffer.cpp:361
bool ENGINE_API IsCPUDataValid() const
Definition SkeletalMeshHalfEdgeBuffer.cpp:326
void ReleaseRHIForStreaming(FRHIResourceReplaceBatcher &Batcher)
Definition SkeletalMeshHalfEdgeBuffer.cpp:285
FRHIShaderResourceView * GetVertexToEdgeBufferSRV() const
Definition SkeletalMeshHalfEdgeBuffer.h:53
ENGINE_API ~FSkeletalMeshHalfEdgeBuffer()
void ENGINE_API ReleaseRHI() override
Definition SkeletalMeshHalfEdgeBuffer.cpp:318
void ENGINE_API InitRHI(FRHICommandListBase &RHICmdList) override
Definition SkeletalMeshHalfEdgeBuffer.cpp:297
void InitRHIForStreaming(FRHIInfo RHIInfo, FRHIResourceReplaceBatcher &Batcher)
Definition SkeletalMeshHalfEdgeBuffer.cpp:273
Definition SkeletalMeshLODRenderData.h:128
Definition DynamicRHIResourceArray.h:31
Definition SkeletalMeshHalfEdgeBuffer.h:13
void ENGINE_API BuildHalfEdgeBuffers(const FSkeletalMeshLODRenderData &InLodRenderData, TResourceArray< int32 > &OutVertexToEdge, TResourceArray< int32 > &OutEdgeToTwinEdge)
Definition SkeletalMeshHalfEdgeBuffer.cpp:174
Definition SkeletalMeshHalfEdgeBuffer.h:26
FBufferRHIRef EdgeToTwinEdgeBufferRHI
Definition SkeletalMeshHalfEdgeBuffer.h:28
FBufferRHIRef VertexToEdgeBufferRHI
Definition SkeletalMeshHalfEdgeBuffer.h:27