UX Scaffolding for MetaSound Composition/Presets Part 2

- Leverage AssetRegistry/Manager to only load data on MetaSounds required to register (disabled until frontend registry supports this)
- Drag-And-Drop assets on MetaSound Graph
- Move ConvertToPreset to toolbar (WIP, still need to properly hide when clicked instead of closing editor blindly, has issue with refresh)

#rb phil.popp
#preflight 60c9a0a83e1b3c0001335ee7

#ROBOMERGE-SOURCE: CL 16689213 via CL 16689237
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16689251 by rob gay in ue5-release-engine-test branch]
This commit is contained in:
rob gay
2021-06-16 11:21:13 -04:00
parent c7b552e9df
commit 7fe604fb2e
25 changed files with 929 additions and 324 deletions
@@ -1,10 +1,35 @@
// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "MetasoundAssetBase.h"
#include "UObject/Object.h"
#include "MetasoundUObjectRegistry.generated.h"
/** The subsystem in charge of the MetaSound asset registry */
UCLASS()
class METASOUNDENGINE_API UMetaSoundAssetSubsystem : public UEngineSubsystem
{
GENERATED_BODY()
public:
virtual void Initialize(FSubsystemCollectionBase& InCollection) override;
virtual void Deinitialize() override;
static UMetaSoundAssetSubsystem& Get()
{
check(GEngine);
return *GEngine->GetEngineSubsystem<UMetaSoundAssetSubsystem>();
}
void AddOrUpdateAsset(const FAssetData& InAssetData);
void RemoveAsset(const FAssetData& InAssetData);
protected:
void PostEngineInit();
void PostInitAssetScan();
};
namespace Metasound
{
@@ -195,4 +220,4 @@ namespace Metasound
*/
virtual const FMetasoundAssetBase* GetObjectAsAssetBase(const UObject* InObject) const = 0;
};
}
} // namespace Metasound