You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
#JIRA: UE-141373 #preflight 620446b0a65a8a28462fb1b7 #review-18926066 @ruslan.idrisov #rb ruslan.idrisov #rnx [CL 18953523 by Tony Wong in ue5-main branch]
44 lines
1.4 KiB
C++
44 lines
1.4 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "MediaTextureTracker.h"
|
|
#include "MediaTexture.h"
|
|
|
|
FMediaTextureTracker& FMediaTextureTracker::Get()
|
|
{
|
|
static FMediaTextureTracker Engine;
|
|
return Engine;
|
|
}
|
|
|
|
void FMediaTextureTracker::RegisterTexture(TSharedPtr<FMediaTextureTrackerObject, ESPMode::ThreadSafe>& InInfo,
|
|
TObjectPtr<UMediaTexture> InTexture)
|
|
{
|
|
// Do we have this media texture yet?
|
|
TWeakObjectPtr<UMediaTexture> TexturePtr(InTexture);
|
|
if (MediaTextures.Contains(TexturePtr) == false)
|
|
{
|
|
MediaTextures.Emplace(TexturePtr);
|
|
MapTextureToObject.Emplace(TexturePtr);
|
|
}
|
|
|
|
// Add component to our list.
|
|
TArray<TWeakPtr<FMediaTextureTrackerObject, ESPMode::ThreadSafe>>* FoundObjects = MapTextureToObject.Find(TexturePtr);
|
|
FoundObjects->Add(InInfo);
|
|
}
|
|
|
|
void FMediaTextureTracker::UnregisterTexture(TSharedPtr<FMediaTextureTrackerObject, ESPMode::ThreadSafe>& InInfo,
|
|
TObjectPtr<UMediaTexture> InTexture)
|
|
{
|
|
TWeakObjectPtr<UMediaTexture> TexturePtr(InTexture);
|
|
TArray<TWeakPtr<FMediaTextureTrackerObject, ESPMode::ThreadSafe>>* FoundObjects = MapTextureToObject.Find(TexturePtr);
|
|
if (FoundObjects != nullptr)
|
|
{
|
|
FoundObjects->RemoveSwap(InInfo);
|
|
}
|
|
}
|
|
|
|
const TArray<TWeakPtr<FMediaTextureTrackerObject, ESPMode::ThreadSafe>>* FMediaTextureTracker::GetObjects(TObjectPtr<UMediaTexture> InTexture) const
|
|
{
|
|
const TArray<TWeakPtr<FMediaTextureTrackerObject, ESPMode::ThreadSafe>>* ObjectsPtr = MapTextureToObject.Find(InTexture);
|
|
return ObjectsPtr;
|
|
}
|