From 3ec34e3ea2b83e72471e34004ac3b1b21b2d5b73 Mon Sep 17 00:00:00 2001 From: Arthur Rambo Prediger Date: Thu, 11 Sep 2025 12:22:38 -0300 Subject: [PATCH 1/2] Fixed compilation issues in UE 5.1 --- .../Private/RealtimeMeshCollisionLibrary.cpp | 5 ++++- .../RealtimeMeshComponent/Private/RealtimeMeshComponent.cpp | 2 +- .../Private/RenderProxy/RealtimeMeshProxyCommandBatch.cpp | 3 ++- .../Private/RenderProxy/RealtimeMeshSectionGroupProxy.cpp | 2 +- .../Public/Interface/Core/RealtimeMeshStreamRange.h | 1 + .../Private/FunctionalTests/RealtimeMeshStressTestActor.cpp | 2 +- 6 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Source/RealtimeMeshComponent/Private/RealtimeMeshCollisionLibrary.cpp b/Source/RealtimeMeshComponent/Private/RealtimeMeshCollisionLibrary.cpp index ab2766b6..c2b4b9ca 100644 --- a/Source/RealtimeMeshComponent/Private/RealtimeMeshCollisionLibrary.cpp +++ b/Source/RealtimeMeshComponent/Private/RealtimeMeshCollisionLibrary.cpp @@ -7,6 +7,8 @@ #include "Core/RealtimeMeshBuilder.h" #include "PhysicsEngine/BodySetup.h" #include "PhysicsEngine/PhysicsSettings.h" +#include "Templates/SharedPointer.h" +#include "CoreMinimal.h" bool URealtimeMeshCollisionTools::FindCollisionUVRealtimeMesh(const FHitResult& Hit, int32 UVChannel, FVector2D& UV) @@ -73,7 +75,8 @@ void URealtimeMeshCollisionTools::CookConvexHull(FRealtimeMeshCollisionConvex& C #if RMC_ENGINE_ABOVE_5_4 return Chaos::FConvexPtr(new FConvex(ConvexVertices, 0.0f)); #else - return MakeShared(ConvexVertices, 0.0f).ToSharedPtr(); + TSharedPtr convexPtr = MakeShared(ConvexVertices, 0.0f); + return convexPtr; #endif }; diff --git a/Source/RealtimeMeshComponent/Private/RealtimeMeshComponent.cpp b/Source/RealtimeMeshComponent/Private/RealtimeMeshComponent.cpp index e394ab96..e50cd8c8 100644 --- a/Source/RealtimeMeshComponent/Private/RealtimeMeshComponent.cpp +++ b/Source/RealtimeMeshComponent/Private/RealtimeMeshComponent.cpp @@ -3,7 +3,7 @@ #include "RealtimeMeshComponent.h" #include "GameDelegates.h" -#include "MaterialDomain.h" +//#include "MaterialDomain.h" #include "NaniteVertexFactory.h" #include "RealtimeMeshComponentModule.h" #include "RenderProxy/RealtimeMeshComponentProxy.h" diff --git a/Source/RealtimeMeshComponent/Private/RenderProxy/RealtimeMeshProxyCommandBatch.cpp b/Source/RealtimeMeshComponent/Private/RenderProxy/RealtimeMeshProxyCommandBatch.cpp index e7e7af09..f97df732 100644 --- a/Source/RealtimeMeshComponent/Private/RenderProxy/RealtimeMeshProxyCommandBatch.cpp +++ b/Source/RealtimeMeshComponent/Private/RenderProxy/RealtimeMeshProxyCommandBatch.cpp @@ -119,7 +119,8 @@ namespace RealtimeMesh Proxy->EnqueueCommandBatch(MoveTemp(Tasks), ThreadState); - DoOnGameThread([ThreadState, MeshWeak = Mesh.ToWeakPtr(), bRecreateProxies = static_cast(bRequiresProxyRecreate)]() + TWeakPtr meshWeak = Mesh; + DoOnGameThread([ThreadState, MeshWeak = meshWeak, bRecreateProxies = static_cast(bRequiresProxyRecreate)]() { if (bRecreateProxies) { diff --git a/Source/RealtimeMeshComponent/Private/RenderProxy/RealtimeMeshSectionGroupProxy.cpp b/Source/RealtimeMeshComponent/Private/RenderProxy/RealtimeMeshSectionGroupProxy.cpp index 2e0a06be..6aa6404d 100644 --- a/Source/RealtimeMeshComponent/Private/RenderProxy/RealtimeMeshSectionGroupProxy.cpp +++ b/Source/RealtimeMeshComponent/Private/RenderProxy/RealtimeMeshSectionGroupProxy.cpp @@ -321,7 +321,7 @@ namespace RealtimeMesh FRayTracingGeometryInitializer Initializer; Initializer.DebugName = *(SharedResources->GetMeshName().ToString() + TEXT("_") + Key.ToString() + " RTGeometry"); - Initializer.OwnerName = SharedResources->GetMeshName(); + //Initializer.OwnerName = SharedResources->GetMeshName(); Initializer.IndexBuffer = IndexStream->IndexBufferRHI; Initializer.IndexBufferOffset = IndexStream->IndexBufferRHI->GetStride() * MinIndex; diff --git a/Source/RealtimeMeshComponent/Public/Interface/Core/RealtimeMeshStreamRange.h b/Source/RealtimeMeshComponent/Public/Interface/Core/RealtimeMeshStreamRange.h index 23336f3f..8765df2a 100644 --- a/Source/RealtimeMeshComponent/Public/Interface/Core/RealtimeMeshStreamRange.h +++ b/Source/RealtimeMeshComponent/Public/Interface/Core/RealtimeMeshStreamRange.h @@ -5,6 +5,7 @@ #include "CoreFwd.h" #include "UObject/NameTypes.h" #include "Math/Range.h" +#include "RealtimeMeshInterfaceFwd.h" enum class ERealtimeMeshStreamType : uint8 { diff --git a/Source/RealtimeMeshTests/Private/FunctionalTests/RealtimeMeshStressTestActor.cpp b/Source/RealtimeMeshTests/Private/FunctionalTests/RealtimeMeshStressTestActor.cpp index 72c969f3..fa05bd5e 100644 --- a/Source/RealtimeMeshTests/Private/FunctionalTests/RealtimeMeshStressTestActor.cpp +++ b/Source/RealtimeMeshTests/Private/FunctionalTests/RealtimeMeshStressTestActor.cpp @@ -3,7 +3,7 @@ #include "FunctionalTests/RealtimeMeshStressTestActor.h" -#include "MaterialDomain.h" +//#include "MaterialDomain.h" #include "RealtimeMeshLibrary.h" #include "RealtimeMeshSimple.h" #include "Mesh/RealtimeMeshBasicShapeTools.h" From 0690b67947fc2a8b47732ad4b591a1e392e09169 Mon Sep 17 00:00:00 2001 From: Arthur Rambo Prediger Date: Thu, 11 Sep 2025 13:01:35 -0300 Subject: [PATCH 2/2] Fixed some includes and rt struct member not available in UE 5.1 --- .../Private/RealtimeMeshCollisionLibrary.cpp | 3 --- .../RealtimeMeshComponent/Private/RealtimeMeshComponent.cpp | 4 +++- .../Private/RenderProxy/RealtimeMeshSectionGroupProxy.cpp | 5 +++-- .../Private/FunctionalTests/RealtimeMeshStressTestActor.cpp | 4 +++- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/Source/RealtimeMeshComponent/Private/RealtimeMeshCollisionLibrary.cpp b/Source/RealtimeMeshComponent/Private/RealtimeMeshCollisionLibrary.cpp index c2b4b9ca..aed497be 100644 --- a/Source/RealtimeMeshComponent/Private/RealtimeMeshCollisionLibrary.cpp +++ b/Source/RealtimeMeshComponent/Private/RealtimeMeshCollisionLibrary.cpp @@ -7,9 +7,6 @@ #include "Core/RealtimeMeshBuilder.h" #include "PhysicsEngine/BodySetup.h" #include "PhysicsEngine/PhysicsSettings.h" -#include "Templates/SharedPointer.h" -#include "CoreMinimal.h" - bool URealtimeMeshCollisionTools::FindCollisionUVRealtimeMesh(const FHitResult& Hit, int32 UVChannel, FVector2D& UV) { diff --git a/Source/RealtimeMeshComponent/Private/RealtimeMeshComponent.cpp b/Source/RealtimeMeshComponent/Private/RealtimeMeshComponent.cpp index e50cd8c8..b80d644c 100644 --- a/Source/RealtimeMeshComponent/Private/RealtimeMeshComponent.cpp +++ b/Source/RealtimeMeshComponent/Private/RealtimeMeshComponent.cpp @@ -3,7 +3,9 @@ #include "RealtimeMeshComponent.h" #include "GameDelegates.h" -//#include "MaterialDomain.h" +#if RMC_ENGINE_ABOVE_5_2 +#include "MaterialDomain.h" +#endif #include "NaniteVertexFactory.h" #include "RealtimeMeshComponentModule.h" #include "RenderProxy/RealtimeMeshComponentProxy.h" diff --git a/Source/RealtimeMeshComponent/Private/RenderProxy/RealtimeMeshSectionGroupProxy.cpp b/Source/RealtimeMeshComponent/Private/RenderProxy/RealtimeMeshSectionGroupProxy.cpp index 6aa6404d..6a0c7389 100644 --- a/Source/RealtimeMeshComponent/Private/RenderProxy/RealtimeMeshSectionGroupProxy.cpp +++ b/Source/RealtimeMeshComponent/Private/RenderProxy/RealtimeMeshSectionGroupProxy.cpp @@ -2,7 +2,6 @@ #include "RenderProxy/RealtimeMeshSectionGroupProxy.h" -//#include "MaterialDomain.h" #include "RealtimeMeshComponentModule.h" #include "Data/RealtimeMeshShared.h" #include "RenderProxy/RealtimeMeshLODProxy.h" @@ -321,7 +320,9 @@ namespace RealtimeMesh FRayTracingGeometryInitializer Initializer; Initializer.DebugName = *(SharedResources->GetMeshName().ToString() + TEXT("_") + Key.ToString() + " RTGeometry"); - //Initializer.OwnerName = SharedResources->GetMeshName(); +#if RMC_ENGINE_ABOVE_5_4 + Initializer.OwnerName = SharedResources->GetMeshName(); +#endif Initializer.IndexBuffer = IndexStream->IndexBufferRHI; Initializer.IndexBufferOffset = IndexStream->IndexBufferRHI->GetStride() * MinIndex; diff --git a/Source/RealtimeMeshTests/Private/FunctionalTests/RealtimeMeshStressTestActor.cpp b/Source/RealtimeMeshTests/Private/FunctionalTests/RealtimeMeshStressTestActor.cpp index fa05bd5e..e61d47cc 100644 --- a/Source/RealtimeMeshTests/Private/FunctionalTests/RealtimeMeshStressTestActor.cpp +++ b/Source/RealtimeMeshTests/Private/FunctionalTests/RealtimeMeshStressTestActor.cpp @@ -3,7 +3,9 @@ #include "FunctionalTests/RealtimeMeshStressTestActor.h" -//#include "MaterialDomain.h" +#if RMC_ENGINE_ABOVE_5_2 +#include "MaterialDomain.h" +#endif #include "RealtimeMeshLibrary.h" #include "RealtimeMeshSimple.h" #include "Mesh/RealtimeMeshBasicShapeTools.h"