void USceneCaptureComponentCube::UpdateDeferredCaptures( FSceneInterface* Scene ) { UWorld* World = Scene->GetWorld(); if( World && CubedSceneCapturesToUpdateMap.Num() > 0 ) { World->SendAllEndOfFrameUpdates(); // Only update the scene captures associated with the current scene. // Updating others not associated with the scene would cause invalid data to be rendered into the target TArray< TWeakObjectPtr<USceneCaptureComponentCube> > SceneCapturesToUpdate; CubedSceneCapturesToUpdateMap.MultiFind( World, SceneCapturesToUpdate ); for( TWeakObjectPtr<USceneCaptureComponentCube> Component : SceneCapturesToUpdate ) { if( Component.IsValid() ) { Scene->UpdateSceneCaptureContents( Component.Get() ); } } // All scene captures for this world have been updated CubedSceneCapturesToUpdateMap.Remove( World ); } }
//------------------------------------------------------------------------------ int32 FDeferredScriptTracker::ResolveDeferredScripts(ULinkerLoad* Linker) { FArchive& Ar = *Linker; if (FStructScriptLoader::ShouldDeferScriptSerialization(Ar)) { return 0; } #if USE_DEFERRED_DEPENDENCY_CHECK_VERIFICATION_TESTS TGuardValue<ULinkerLoad*> ScopedResolvingLinker(ResolvingLinker, Linker); #endif // USE_DEFERRED_DEPENDENCY_CHECK_VERIFICATION_TESTS TArray<FDeferredScriptLoader> DefferedLinkerScripts; DeferredScriptLoads.MultiFind(Linker, DefferedLinkerScripts); // remove before we resolve, because a failed call to // FDeferredScriptLoader::Resolve() could insert back into this list DeferredScriptLoads.Remove(Linker); int32 const SerializationPosToRestore = Ar.Tell(); int32 ResolveCount = 0; for (FDeferredScriptLoader& DeferredScript : DefferedLinkerScripts) { if (DeferredScript.Resolve(Ar)) { ++ResolveCount; } } Ar.Seek(SerializationPosToRestore); return ResolveCount; }
virtual void DisassociateSuppress(FLogCategoryBase* Destination) { FName* Name = Associations.Find(Destination); if (Name) { verify(ReverseAssociations.Remove(*Name, Destination)==1); verify(Associations.Remove(Destination) == 1); } }
void USceneCaptureComponent2D::UpdateDeferredCaptures( FSceneInterface* Scene ) { UWorld* World = Scene->GetWorld(); if( World && SceneCapturesToUpdateMap.Num() > 0 ) { // Only update the scene captures assoicated with the current scene. // Updating others not associated with the scene would cause invalid data to be rendered into the target TArray<USceneCaptureComponent2D*> SceneCapturesToUpdate; SceneCapturesToUpdateMap.MultiFind( World, SceneCapturesToUpdate ); for( USceneCaptureComponent2D* Component : SceneCapturesToUpdate ) { Scene->UpdateSceneCaptureContents( Component ); } // All scene captures for this world have been updated SceneCapturesToUpdateMap.Remove( World) ; } }