// Copyright Epic Games, Inc. All Rights Reserved. #include "MediaTextureTracker.h" #include "MediaTexture.h" #include UE_INLINE_GENERATED_CPP_BY_NAME(MediaTextureTracker) FMediaTextureTracker& FMediaTextureTracker::Get() { static FMediaTextureTracker Engine; return Engine; } void FMediaTextureTracker::RegisterTexture(TSharedPtr& InInfo, TObjectPtr InTexture) { // Do we have this media texture yet? TWeakObjectPtr TexturePtr(InTexture); if (MediaTextures.Contains(TexturePtr) == false) { MediaTextures.Emplace(TexturePtr); MapTextureToObject.Emplace(TexturePtr); } // Add component to our list. TArray>* FoundObjects = MapTextureToObject.Find(TexturePtr); FoundObjects->Add(InInfo); } void FMediaTextureTracker::UnregisterTexture(TSharedPtr& InInfo, TObjectPtr InTexture) { TWeakObjectPtr TexturePtr(InTexture); TArray>* FoundObjects = MapTextureToObject.Find(TexturePtr); if (FoundObjects != nullptr) { FoundObjects->RemoveSwap(InInfo); } } const TArray>* FMediaTextureTracker::GetObjects(TObjectPtr InTexture) const { const TArray>* ObjectsPtr = MapTextureToObject.Find(InTexture); return ObjectsPtr; }