vault backup: 2025-06-26 23:34:25

This commit is contained in:
BlueRose 2025-06-26 23:34:25 +08:00
parent c9b2983224
commit 009d92252b

View File

@ -310,6 +310,47 @@ bool AShaderWorldActor::SetupCollisions()
}
```
#### CollisionFinalizeWork()
```c++
bool AShaderWorldActor::CollisionFinalizeWork()
{
SCOPED_NAMED_EVENT_TEXT("AShaderWorldActor::CollisionFinalizeWork()", FColor::Magenta);
SW_FCT_CYCLE()
if (!CollisionReadToProcess.IsEmpty())
return true;
const double GameThreadBudget_ms = SWGameThreadBudgetCollision_ms.GetValueOnGameThread();
double TimeStart = FPlatformTime::Seconds();
if(CollisionWorkQueue.Num()<=0)
return true;
{
FScopeLock CollisionMeshArrayAccess(&CollisionMeshAccessLock);
for (int i = CollisionWorkQueue.Num() - 1; i >= 0; i--)
{
if ((FPlatformTime::Seconds() - TimeStart) * 1000.0 > GameThreadBudget_ms)
return false;
FCollisionProcessingWork& Work = CollisionWorkQueue[i];
ensure(CollisionMesh.Find(Work.MeshID));
FCollisionMeshElement& Mesh = CollisionMesh[Work.MeshID];
Mesh.Mesh->UpdateSectionTriMesh(Work.DestB);
CollisionWorkQueue.RemoveAt(i);
}
}
CollisionWorkQueue.Empty();
return true;
}
```
### SpawnablesManagement()
### TerrainAndSpawnablesManagement()