vault backup: 2025-06-26 23:34:25
This commit is contained in:
parent
c9b2983224
commit
009d92252b
@ -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()
|
### SpawnablesManagement()
|
||||||
|
|
||||||
### TerrainAndSpawnablesManagement()
|
### TerrainAndSpawnablesManagement()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user