You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
- Texture Parameter Node now has a Default Value and Reference Value (prerviously known as Default Value). - Created a new Editor Image Provider. Returns all textures available in the project. - In editor, default Textures are correctly applied when creating a default Instance. - Removed deprecated Instance/Descriptor Texture Parameter functions. [REVIEW] [at]alexei.lebedev, [at]jordi.rovira [FYI] [at]daniel.moreno, [at]genis.sole #rnx [CL 27668512 by gerard martin in ue5-main branch]
89 lines
2.3 KiB
C++
89 lines
2.3 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "MuCO/DefaultImageProvider.h"
|
|
|
|
#include "MuCO/CustomizableObject.h"
|
|
|
|
#include "MuR/Parameters.h"
|
|
|
|
#include UE_INLINE_GENERATED_CPP_BY_NAME(DefaultImageProvider)
|
|
|
|
|
|
namespace UDefaultImageProviderCVars
|
|
{
|
|
void CheckImageMode(IConsoleVariable* Var);
|
|
|
|
int32 ImageMode = 3;
|
|
FAutoConsoleVariableRef CVarImageMode(
|
|
TEXT("Mutable.DefaultImageProvider.ImageMode"),
|
|
ImageMode,
|
|
TEXT("0 = None: Texture is not provided by this provider.\n"
|
|
"2 = Unreal: Data will be provided from an unreal texture, loaded in the game thread and kept in memory.\n"
|
|
"3 = Unreal_Deferred (default): Data will be provided from an unreal texture. Will only be loaded when actually needed in the Mutable thread."),
|
|
FConsoleVariableDelegate::CreateStatic(CheckImageMode));
|
|
|
|
void CheckImageMode(IConsoleVariable* Var)
|
|
{
|
|
if ((ImageMode < 0 || ImageMode >= static_cast<int32>(UCustomizableSystemImageProvider::ValueType::Count)) &&
|
|
ImageMode == static_cast<int32>(UCustomizableSystemImageProvider::ValueType::Raw)) // Raw not supported.
|
|
{
|
|
UE_LOG(LogMutable, Error, TEXT("DefaultImageProvider: Incorrect Image Mode. Setting Texture Mode to \"None\"."));
|
|
ImageMode = static_cast<int32>(UCustomizableSystemImageProvider::ValueType::None);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
UCustomizableSystemImageProvider::ValueType UDefaultImageProvider::HasTextureParameterValue(const FName& ID)
|
|
{
|
|
const TObjectPtr<UTexture2D>* Texture = Textures.Find(ID);
|
|
|
|
return Texture ?
|
|
static_cast<ValueType>(UDefaultImageProviderCVars::ImageMode) :
|
|
ValueType::None;
|
|
}
|
|
|
|
|
|
UTexture2D* UDefaultImageProvider::GetTextureParameterValue(const FName& ID)
|
|
{
|
|
return Textures[ID];
|
|
}
|
|
|
|
|
|
void UDefaultImageProvider::GetTextureParameterValues(TArray<FCustomizableObjectExternalTexture>& OutValues)
|
|
{
|
|
for (TTuple<FName, TObjectPtr<UTexture2D>>& Pair : Textures)
|
|
{
|
|
FCustomizableObjectExternalTexture Data;
|
|
Data.Name = Pair.Value.GetName();
|
|
Data.Value = Pair.Key;
|
|
OutValues.Add(Data);
|
|
}
|
|
}
|
|
|
|
|
|
FString UDefaultImageProvider::Add(UTexture2D* Texture)
|
|
{
|
|
if (!Texture)
|
|
{
|
|
return FString();
|
|
}
|
|
|
|
const FName Id(Texture->GetPathName());
|
|
Textures.Add(Id, Texture);
|
|
|
|
return Id.ToString();
|
|
}
|
|
|
|
|
|
void UDefaultImageProvider::Remove(UTexture2D* Texture)
|
|
{
|
|
if (!Texture)
|
|
{
|
|
return;
|
|
}
|
|
|
|
Textures.Remove(FName(Texture->GetFullName()));
|
|
}
|
|
|