UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
RuntimeAssetCacheBuilders.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
10#include "UObject/Object.h"
11#include "UObject/Stack.h"
14#include "RuntimeAssetCacheBuilders.generated.h"
15
16class FArchive;
17class UTexture2D;
18
20
21class UTexture2D;
22
23UCLASS(BlueprintType)
25{
27public:
28 virtual void PostInitProperties() override
29 {
30 Super::PostInitProperties();
31 CacheHandle = 0;
32 bProcessedCacheMiss = false;
33 }
34
35 virtual const TCHAR* GetBucketConfigName() const override
36 {
37 return TEXT("DefaultBucket");
38 }
39
40 virtual const TCHAR* GetBuilderName() const override
41 {
42 return TEXT("UObject");
43 }
44
45 virtual FString GetAssetUniqueName() const override
46 {
47 return AssetName;
48 }
49
50 virtual bool IsBuildThreadSafe() const
51 {
52 return true;
53 }
54
55 virtual bool ShouldBuildAsynchronously() const override
56 {
57 return true;
58 }
59
60 virtual int32 GetAssetVersion() override
61 {
62 return AssetVersion;
63 }
64
68 virtual void SerializeAsset(FArchive& Ar)
69 {
70 }
71
77 {
78 return 1024;
79 }
80
81 FVoidPtrParam Build() override;
82
88 UFUNCTION(BlueprintCallable, Category = RuntimeAssetCache)
89 void GetFromCacheAsync(const FOnAssetCacheComplete& OnComplete);
90
91 UFUNCTION()
92 void GetFromCacheAsyncComplete(int32 Handle, FVoidPtrParam DataPtr);
93
97 virtual void OnAssetPreLoad() {}
98
102 virtual void OnAssetPostLoad() {}
103
109 UFUNCTION(BlueprintNativeEvent, Category = RuntimeAssetCache)
110 void OnAssetCacheMiss();
111 virtual void OnAssetCacheMiss_Implementation()
112 {
113 //
114 // Override and create the new asset here (this is where we would render to a render target, then get the result)
115 //
116
117 // Make sure the new asset gets properly cached for next time.
118 SaveNewAssetToCache(Asset);
119 }
120
125 UFUNCTION(BlueprintCallable, Category = RuntimeAssetCache)
126 void SaveNewAssetToCache(UObject* NewAsset);
127
131 void SetAsset(UObject* NewAsset);
132
139 virtual void OnSetAsset(UObject* NewAsset)
140 {
141 // Example:
142 // Texture = Cast<UTexture2D>(NewAsset);
143 }
144
145 virtual void Cleanup()
146 {
147 CacheHandle = 0;
148 bProcessedCacheMiss = false;
149 Asset = nullptr;
150 }
151
152public:
154 UPROPERTY(BlueprintReadWrite, Category = RuntimeAssetCache, meta = (ExposeOnSpawn = "true"))
155 int32 AssetVersion;
156
158 UPROPERTY(BlueprintReadWrite, Category = RuntimeAssetCache, meta = (ExposeOnSpawn = "true"))
159 FString AssetName;
160
161 int32 CacheHandle;
162
163private:
164 UObject* Asset;
165 int32 bProcessedCacheMiss : 1;
166 FOnRuntimeAssetCacheAsyncComplete GetFromCacheAsyncCompleteDelegate;
167 FOnAssetCacheComplete OnAssetCacheComplete;
168};
169
170UCLASS(BlueprintType)
172{
174public:
175
176 virtual void OnSetAsset(UObject* NewAsset);
177
178 virtual void OnAssetCacheMiss_Implementation() override;
179
180 virtual void SerializeAsset(FArchive& Ar) override;
181
182 virtual void OnAssetPreLoad() override;
183
184 virtual void OnAssetPostLoad() override;
185
186 virtual int64 GetSerializedDataSizeEstimate() override;
187
188 UPROPERTY(BlueprintReadOnly, Category = "Cache")
190};
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_DYNAMIC_DELEGATE_TwoParams(DelegateName, Param1Type, Param1Name, Param2Type, Param2Name)
Definition DelegateCombinations.h:61
OnComplete(MoveTemp(Response))
return true
Definition ExternalRpcRegistry.cpp:601
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define UCLASS(...)
Definition ObjectMacros.h:776
Definition Archive.h:1208
Definition RuntimeAssetCachePluginInterface.h:25
Definition RuntimeAssetCache.Build.cs:7
Definition RuntimeAssetCacheBuilders.h:172
Definition Object.h:95
Definition RuntimeAssetCacheBuilders.h:25
virtual bool ShouldBuildAsynchronously() const override
Definition RuntimeAssetCacheBuilders.h:55
virtual void PostInitProperties() override
Definition RuntimeAssetCacheBuilders.h:28
virtual bool IsBuildThreadSafe() const
Definition RuntimeAssetCacheBuilders.h:50
virtual void Cleanup()
Definition RuntimeAssetCacheBuilders.h:145
virtual void OnSetAsset(UObject *NewAsset)
Definition RuntimeAssetCacheBuilders.h:139
virtual int32 GetAssetVersion() override
Definition RuntimeAssetCacheBuilders.h:60
virtual FString GetAssetUniqueName() const override
Definition RuntimeAssetCacheBuilders.h:45
virtual int64 GetSerializedDataSizeEstimate()
Definition RuntimeAssetCacheBuilders.h:76
virtual void OnAssetPostLoad()
Definition RuntimeAssetCacheBuilders.h:102
virtual const TCHAR * GetBucketConfigName() const override
Definition RuntimeAssetCacheBuilders.h:35
virtual void SerializeAsset(FArchive &Ar)
Definition RuntimeAssetCacheBuilders.h:68
virtual const TCHAR * GetBuilderName() const override
Definition RuntimeAssetCacheBuilders.h:40
Definition Texture2D.h:26
Definition RuntimeAssetCacheInterface.h:23
Definition ObjectPtr.h:488