- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "MetasoundFrontendController.h"
|
|
|
|
|
#include "MetasoundFrontendDocument.h"
|
|
|
|
|
#include "MetasoundFrontendNodeTemplateRegistry.h"
|
|
|
|
|
#include "MetasoundFrontendNodeTemplateReroute.h"
|
|
|
|
|
#include "MetasoundFrontendTransform.h"
|
|
|
|
|
#include "Templates/SharedPointer.h"
|
|
|
|
|
#include "UObject/NoExportTypes.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Forward Declarations
|
|
|
|
|
struct FMetaSoundFrontendDocumentBuilder;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace Metasound::Frontend
|
|
|
|
|
{
|
|
|
|
|
// Specialized node that connects an input node's single output to various input destinations.
|
|
|
|
|
// While similar to reroute nodes, primarily exists to visually distinguish an input having multiple
|
|
|
|
|
// locations in a visual graph while sharing implementation at runtime, while also differentiating
|
|
|
|
|
// general input style from a typical reroute.
|
|
|
|
|
class METASOUNDFRONTEND_API FInputNodeTemplate : public FRerouteNodeTemplate
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
static const FMetasoundFrontendClassName ClassName;
|
|
|
|
|
static const FMetasoundFrontendVersionNumber VersionNumber;
|
|
|
|
|
|
|
|
|
|
static const FInputNodeTemplate& GetChecked();
|
|
|
|
|
static const FNodeRegistryKey& GetRegistryKey();
|
|
|
|
|
|
|
|
|
|
virtual ~FInputNodeTemplate() = default;
|
|
|
|
|
|
|
|
|
|
virtual const FMetasoundFrontendClassName& GetClassName() const override;
|
|
|
|
|
|
|
|
|
|
#if WITH_EDITOR
|
|
|
|
|
virtual FText GetNodeDisplayName(const IMetaSoundDocumentInterface& Interface, const FGuid& InNodeID) const override;
|
|
|
|
|
#endif // WITH_EDITOR
|
|
|
|
|
|
|
|
|
|
virtual const FMetasoundFrontendClass& GetFrontendClass() const override;
|
|
|
|
|
virtual EMetasoundFrontendVertexAccessType GetNodeInputAccessType(const FMetaSoundFrontendDocumentBuilder& InBuilder, const FGuid& InNodeID, const FGuid& InVertexID) const override;
|
|
|
|
|
virtual EMetasoundFrontendVertexAccessType GetNodeOutputAccessType(const FMetaSoundFrontendDocumentBuilder& InBuilder, const FGuid& InNodeID, const FGuid& InVertexID) const override;
|
|
|
|
|
|
|
|
|
|
#if WITH_EDITOR
|
2024-06-11 18:27:11 -04:00
|
|
|
virtual FText GetOutputVertexDisplayName(const FMetaSoundFrontendDocumentBuilder& InBuilder, const FGuid& InNodeID, FName OutputName) const override;
|
- Fix for attempting to access EngineSubsystem during MetaSound versioning (serialization), which can assert when apparently certain commands in certain contexts can attempt to preload assets prior to the init phase.
- Minor Fix for LocText duplication
#tests BuildCookRun, -game, version MetaSounds assets in editor, PIE
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33084850
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
Version Metasound Document to include all ed data and make all Metasound EdGraph data transient
- Add input template nodes
- Add comment node data to document
- Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata
- Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages
- Sunset non-deterministic guid cvar
#rb phil.popp, helen.yang
[FYI] sondra.moyls
#tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests
#jira UE-194159
[CL 33102023 by rob gay in ue5-main branch]
2024-04-19 10:09:04 -04:00
|
|
|
virtual bool HasRequiredConnections(const FMetaSoundFrontendDocumentBuilder& InBuilder, const FGuid& InNodeID, FString* OutMessage = nullptr) const override;
|
|
|
|
|
|
|
|
|
|
// Injects template nodes between builder's document inputs not connected
|
|
|
|
|
// to existing template inputs, copying locational data from the represented
|
|
|
|
|
// input metadata. If bForceNodeCreation is false, only generates a template
|
|
|
|
|
// input node if a connection between the input and other nodes exists. If true,
|
|
|
|
|
// will inject template node irrespective of whether or not the input has connections.
|
|
|
|
|
bool Inject(FMetaSoundFrontendDocumentBuilder& InOutBuilder, bool bForceNodeCreation = false) const;
|
|
|
|
|
#endif // WITH_EDITOR
|
|
|
|
|
|
|
|
|
|
virtual bool IsInputAccessTypeDynamic() const override;
|
|
|
|
|
virtual bool IsInputConnectionUserModifiable() const override;
|
|
|
|
|
virtual bool IsOutputAccessTypeDynamic() const override;
|
|
|
|
|
};
|
|
|
|
|
} // namespace Metasound::Frontend
|