// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "MemoryCounters.h" #include "MuR/Registry.h" #include "MuR/Operations.h" namespace UE::Mutable::Private { // Mesh struct FGeneratedMeshKey { OP::ADDRESS Address = 0; TMemoryTrackedArray ParameterValuesBlob; bool operator==(const FGeneratedMeshKey&) const = default; }; struct FGeneratedMeshData { }; MUTABLERUNTIME_API uint32 GetTypeHash(const FGeneratedMeshKey& Key); typedef TRegistry::FHandle FMeshId; typedef TRegistry FMeshIdRegistry; MUTABLERUNTIME_API uint32 GetTypeHashPersistent(const FMeshId& Key); // Image struct FGeneratedImageKey { OP::ADDRESS Address = 0; TMemoryTrackedArray ParameterValuesBlob; bool operator==(const FGeneratedImageKey&) const = default; }; struct FGeneratedImageData { }; MUTABLERUNTIME_API uint32 GetTypeHash(const FGeneratedImageKey& Key); typedef TRegistry::FHandle FImageId; typedef TRegistry FImageIdRegistry; MUTABLERUNTIME_API uint32 GetTypeHashPersistent(const FImageId& Key); // Material struct FGeneratedMaterialKey { OP::ADDRESS Address = 0; TMemoryTrackedArray ParameterValuesBlob; bool operator==(const FGeneratedMaterialKey&) const = default; }; struct FGeneratedMaterialData { }; MUTABLERUNTIME_API uint32 GetTypeHash(const FGeneratedMaterialKey& Key); typedef TRegistry::FHandle FMaterialId; typedef TRegistry FMaterialIdRegistry; MUTABLERUNTIME_API uint32 GetTypeHashPersistent(const FMaterialId& Key); }