UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ResourceArray.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
7
10{
12
14 [[nodiscard]] virtual const void* GetResourceData() const = 0;
15
17 [[nodiscard]] virtual uint32 GetResourceDataSize() const = 0;
18
19 template<typename TElement>
24
26 virtual void Discard() = 0;
27};
28
31{
32 const void* const Data;
34
36
42
43 template<typename ElementType>
45 : Data(View.GetData())
46 , SizeInBytes(View.Num() * View.GetTypeSize())
47 {
48 }
49
50 template<typename ElementType, typename AllocatorType>
55
56 // FResourceArrayUploadInterface
57 [[nodiscard]] virtual const void* GetResourceData() const final
58 {
59 return Data;
60 }
61
62 [[nodiscard]] virtual uint32 GetResourceDataSize() const final
63 {
64 return SizeInBytes;
65 }
66
67 virtual void Discard() final
68 {
69 // do nothing
70 }
71};
72
77{
79public:
80
84 [[nodiscard]] virtual bool IsStatic() const = 0;
85
89 [[nodiscard]] virtual bool GetAllowCPUAccess() const = 0;
90
94 virtual void SetAllowCPUAccess( bool bInNeedsCPUAccess ) = 0;
95};
96
97
102{
103public:
104
106
110 [[nodiscard]] virtual const void* GetResourceBulkData() const = 0;
111
115 [[nodiscard]] virtual uint32 GetResourceBulkDataSize() const = 0;
116
117 template<typename TElement>
122
126 virtual void Discard() = 0;
127};
128
131{
132 const void* const Data;
134
136
142
143 template<typename ElementType>
145 : Data(View.GetData())
146 , SizeInBytes(View.Num()* View.GetTypeSize())
147 {
148 }
149
150 template<typename ElementType, typename AllocatorType>
155
156 // FResourceArrayUploadInterface
157 [[nodiscard]] virtual const void* GetResourceBulkData() const final
158 {
159 return Data;
160 }
161
162 [[nodiscard]] virtual uint32 GetResourceBulkDataSize() const final
163 {
164 return SizeInBytes;
165 }
166
167 virtual void Discard() final
168 {
169 // do nothing
170 }
171};
172
173
178{
179public:
180
185 [[nodiscard]] virtual void* GetMipData(int32 MipIdx) = 0;
186
190 [[nodiscard]] virtual int32 GetNumMips() = 0;
191
195 [[nodiscard]] virtual int32 GetSizeX() = 0;
196
200 [[nodiscard]] virtual int32 GetSizeY() = 0;
201
205 [[nodiscard]] virtual bool IsValid() = 0;
206
210 [[nodiscard]] virtual bool HasAsyncAllocationCompleted() const = 0;
211
213 virtual void FinishAsyncAllocation() = 0;
214
216 virtual void CancelAsyncAllocation() = 0;
217
219};
220
constexpr auto MakeArrayView(OtherRangeType &&Other)
Definition ArrayView.h:873
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_EXPORTED_TYPE_LAYOUT(T, RequiredAPI, Interface)
Definition MemoryLayout.h:559
@ Num
Definition MetalRHIPrivate.h:234
auto GetData(const TStringConversion< Converter, DefaultConversionSize > &Conversion) -> decltype(Conversion.Get())
Definition StringConv.h:802
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition ResourceArray.h:77
virtual bool IsStatic() const =0
virtual void SetAllowCPUAccess(bool bInNeedsCPUAccess)=0
virtual bool GetAllowCPUAccess() const =0
Definition ResourceArray.h:102
TConstArrayView< TElement > GetBulkDataView() const
Definition ResourceArray.h:118
virtual ~FResourceBulkDataInterface()
Definition ResourceArray.h:105
virtual void Discard()=0
virtual uint32 GetResourceBulkDataSize() const =0
virtual const void * GetResourceBulkData() const =0
Definition ResourceArray.h:178
virtual void CancelAsyncAllocation()=0
virtual bool IsValid()=0
virtual int32 GetSizeX()=0
virtual bool HasAsyncAllocationCompleted() const =0
virtual int32 GetSizeY()=0
virtual void * GetMipData(int32 MipIdx)=0
virtual void FinishAsyncAllocation()=0
virtual int32 GetNumMips()=0
virtual ~FTexture2DResourceMem()
Definition ResourceArray.h:218
Definition Array.h:670
Definition ResourceArray.h:31
const uint32 SizeInBytes
Definition ResourceArray.h:33
FResourceArrayUploadArrayView(const TArray< ElementType, AllocatorType > &InArray)
Definition ResourceArray.h:51
const void *const Data
Definition ResourceArray.h:32
FResourceArrayUploadArrayView(const void *InData, uint32 InSizeInBytes)
Definition ResourceArray.h:37
virtual uint32 GetResourceDataSize() const final
Definition ResourceArray.h:62
FResourceArrayUploadArrayView(TConstArrayView< ElementType > View)
Definition ResourceArray.h:44
virtual const void * GetResourceData() const final
Definition ResourceArray.h:57
virtual void Discard() final
Definition ResourceArray.h:67
Definition ResourceArray.h:10
virtual uint32 GetResourceDataSize() const =0
TConstArrayView< TElement > GetResourceDataView() const
Definition ResourceArray.h:20
virtual ~FResourceArrayUploadInterface()
Definition ResourceArray.h:11
virtual const void * GetResourceData() const =0
Definition ResourceArray.h:131
FResourceBulkDataArrayView(const void *InData, uint32 InSizeInBytes)
Definition ResourceArray.h:137
virtual uint32 GetResourceBulkDataSize() const final
Definition ResourceArray.h:162
const void *const Data
Definition ResourceArray.h:132
const uint32 SizeInBytes
Definition ResourceArray.h:133
FResourceBulkDataArrayView(TConstArrayView< ElementType > View)
Definition ResourceArray.h:144
virtual const void * GetResourceBulkData() const final
Definition ResourceArray.h:157
FResourceBulkDataArrayView(const TArray< ElementType, AllocatorType > &InArray)
Definition ResourceArray.h:151
virtual void Discard() final
Definition ResourceArray.h:167