You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
- Added frontend search engine to cache frontend queries - Allowing frontend queries to be updated in place. - Tracking node registration transactions to allow incremental runtime checks of newly registered nodes. - Create public RegistryContainer interface and hide implementation to allow for further optimizations without changing public headers #jira UEAU-749 #rb Max.Hayes, Jimmy.Smith #preflight 606399a6e05c4e0001a0d173 #ROBOMERGE-SOURCE: CL 15868737 in //UE5/Release-5.0-EarlyAccess/... #ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v786-15839533) [CL 15868744 by phil popp in ue5-main branch]
90 lines
2.3 KiB
C++
90 lines
2.3 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "MetasoundDataReference.h"
|
|
#include "MetasoundFrontend.h"
|
|
#include "MetasoundFrontendQuery.h"
|
|
|
|
namespace Metasound
|
|
{
|
|
/** Generates all registered node classes */
|
|
class METASOUNDFRONTEND_API FGenerateAllAvailableNodeClasses : public IFrontendQueryGenerateStep
|
|
{
|
|
public:
|
|
|
|
void Generate(TArray<FFrontendQueryEntry>& OutEntries) const override;
|
|
};
|
|
|
|
/** Generates node classes that have been newly registered since last call
|
|
* to this FGenerateNewlyAvailableClasses::Generate()
|
|
*/
|
|
class METASOUNDFRONTEND_API FGenerateNewlyAvailableNodeClasses : public IFrontendQueryGenerateStep
|
|
{
|
|
public:
|
|
FGenerateNewlyAvailableNodeClasses();
|
|
void Generate(TArray<FFrontendQueryEntry>& OutEntries) const override;
|
|
|
|
private:
|
|
mutable Frontend::FRegistryTransactionID CurrentTransactionID;
|
|
};
|
|
|
|
class METASOUNDFRONTEND_API FFilterClassesByInputVertexDataType : public IFrontendQueryFilterStep
|
|
{
|
|
public:
|
|
template<typename DataType>
|
|
FFilterClassesByInputVertexDataType()
|
|
: FFilterClassesByInputVertexDataType(GetMetasoundDataTypeName<DataType>())
|
|
{
|
|
}
|
|
|
|
FFilterClassesByInputVertexDataType(const FName& InTypeName);
|
|
|
|
bool Filter(const FFrontendQueryEntry& InEntry) const override;
|
|
|
|
private:
|
|
FName InputVertexTypeName;
|
|
};
|
|
|
|
class METASOUNDFRONTEND_API FFilterClassesByOutputVertexDataType : public IFrontendQueryFilterStep
|
|
{
|
|
public:
|
|
template<typename DataType>
|
|
FFilterClassesByOutputVertexDataType()
|
|
: FFilterClassesByOutputVertexDataType(GetMetasoundDataTypeName<DataType>())
|
|
{
|
|
}
|
|
|
|
FFilterClassesByOutputVertexDataType(const FName& InTypeName);
|
|
|
|
bool Filter(const FFrontendQueryEntry& InEntry) const override;
|
|
|
|
private:
|
|
FName OutputVertexTypeName;
|
|
};
|
|
|
|
class METASOUNDFRONTEND_API FFilterClassesByClassName : public IFrontendQueryFilterStep
|
|
{
|
|
public:
|
|
FFilterClassesByClassName(const FMetasoundFrontendClassName& InClassName);
|
|
|
|
bool Filter(const FFrontendQueryEntry& InEntry) const override;
|
|
|
|
private:
|
|
FMetasoundFrontendClassName ClassName;
|
|
};
|
|
|
|
class METASOUNDFRONTEND_API FFilterClassesByClassID : public IFrontendQueryFilterStep
|
|
{
|
|
public:
|
|
FFilterClassesByClassID(const FGuid InClassID);
|
|
|
|
bool Filter(const FFrontendQueryEntry& InEntry) const override;
|
|
|
|
private:
|
|
FGuid ClassID;
|
|
};
|
|
}
|
|
|