UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
GlobalRenderResources.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "RenderResource.h"
6
7// A global white texture.
9
10// A global white texture with an SRV.
12
13// A global black texture.
15
16// A global black texture with an SRV.
18
19// A global black transparent texture.
21
22// A global black transparent texture with an SRV
24
25// A global dummy texture used for manual transition (Ex: when the VS is sampling produce in a previous pass, and needs a barrier)
26UE_DEPRECATED(5.7, "This is no longer being used.")
28
29// An empty vertex buffer with a UAV
31
32// An empty uint4 vertex buffer with a UAV
34
35// An empty structured buffer with a UAV
37
38// An empty float4 structured buffer
40
41// An empty float4 vertex buffer
43
44// An white vertex buffer with a SRV
46
47// An black vertex buffer with a SRV
49
50// A white vertex buffer used with RenderGraph.
52
53// A global black array texture
55
56// A global black volume texture.
58
59// A global black volume texture, with alpha=1.
61
62// A global black texture<uint>
64
65// A global black volume texture<uint>
67
68// A global white cube texture.
70
71// A global black cube texture.
73
74// A global black cube depth texture.
76
77// A global black cube array texture.
79
80// A global texture that has a different solid color in each mip-level.
82
85
86// 4: 8x8 cubemap resolution, shader needs to use the same value as preprocessing
88
104
107
122
125
127{
128public:
132 RENDERCORE_API virtual void InitRHI(FRHICommandListBase& RHICmdList) override;
133};
134
136
148
150
152{
153public:
157 virtual void InitRHI(FRHICommandListBase& RHICmdList) override;
158};
160
162{
163public:
167 virtual void InitRHI(FRHICommandListBase& RHICmdList) override;
168};
170
172{
173public:
176
177 RENDERCORE_API virtual void InitRHI(FRHICommandListBase& RHICmdList) override;
178 RENDERCORE_API virtual void ReleaseRHI() override;
179
181};
182
184
186// FGlobalDynamicVertexBuffer
187
188template <typename BufferType>
189class TDynamicBuffer;
190
193
195{
197 uint8* Buffer = nullptr;
198
201
204
206 inline bool IsValid() const
207 {
208 return Buffer != nullptr;
209 }
210};
211
216{
217public:
219
221
225
230
232 {
233 check(VertexBuffers.IsEmpty());
234 RHICmdList = &InRHICmdList;
235 }
236
243
249 RENDERCORE_API void Commit();
250
251 UE_DEPRECATED(5.4, "Use GlobalDynamicBuffer::GarbageCollect instead.")
253
256
257private:
258 FRHICommandListBase* RHICmdList = nullptr;
259 TArray<FDynamicVertexBuffer*> VertexBuffers;
260};
261
263{
265 uint8* Buffer = nullptr;
266
269
272
274 inline bool IsValid() const
275 {
276 return Buffer != nullptr;
277 }
278};
279
295
300{
301public:
304
306
310
312 {
313 Commit();
314 }
315
317 {
318 check(IndexBuffers16.IsEmpty() && IndexBuffers32.IsEmpty());
319 RHICmdList = &InRHICmdList;
320 }
321
328 RENDERCORE_API FAllocation Allocate(uint32 NumIndices, uint32 IndexStride);
329
335 template <typename IndexType>
336 inline FAllocationEx Allocate(uint32 NumIndices)
337 {
338 return FAllocationEx(Allocate(NumIndices, sizeof(IndexType)), NumIndices, sizeof(IndexType));
339 }
340
346 RENDERCORE_API void Commit();
347
348private:
349 FRHICommandListBase* RHICmdList = nullptr;
350 TArray<FDynamicIndexBuffer*> IndexBuffers16;
351 TArray<FDynamicIndexBuffer*> IndexBuffers32;
352};
353
354namespace GlobalDynamicBuffer
355{
356 RENDERCORE_API void GarbageCollect();
357}
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
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
RENDERCORE_API FTexture * GBlackCubeArrayTexture
Definition GlobalRenderResources.cpp:600
RENDERCORE_API FTextureWithSRV * GBlackTextureWithSRV
Definition GlobalRenderResources.cpp:248
RENDERCORE_API FTexture * GDummyTransitionTexture
Definition GlobalRenderResources.cpp:250
RENDERCORE_API TGlobalResource< FCubeIndexBuffer, FRenderResource::EInitPhase::Pre > GCubeIndexBuffer
Definition GlobalRenderResources.cpp:755
RENDERCORE_API FTexture * GBlackArrayTexture
Definition GlobalRenderResources.cpp:398
RENDERCORE_API TGlobalResource< FNullColorVertexBuffer, FRenderResource::EInitPhase::Pre > GNullColorVertexBuffer
Definition GlobalRenderResources.cpp:671
RENDERCORE_API FTexture * GWhiteTexture
Definition GlobalRenderResources.cpp:252
RENDERCORE_API FBufferWithRDG * GWhiteVertexBufferWithRDG
Definition GlobalRenderResources.cpp:330
RENDERCORE_API TGlobalResource< FScreenSpaceVertexBuffer, FRenderResource::EInitPhase::Pre > GScreenSpaceVertexBuffer
Definition GlobalRenderResources.cpp:723
RENDERCORE_API FTexture * GBlackTextureCube
Definition GlobalRenderResources.cpp:561
RENDERCORE_API const uint32 GDiffuseConvolveMipLevel
Definition GlobalRenderResources.cpp:497
RENDERCORE_API FTexture * GBlackUintTexture
Definition GlobalRenderResources.cpp:636
RENDERCORE_API FTexture * GBlackVolumeTexture
Definition GlobalRenderResources.cpp:364
RENDERCORE_API FTexture * GBlackTexture
Definition GlobalRenderResources.cpp:253
RENDERCORE_API TGlobalResource< FTwoTrianglesIndexBuffer, FRenderResource::EInitPhase::Pre > GTwoTrianglesIndexBuffer
Definition GlobalRenderResources.cpp:768
RENDERCORE_API FVertexBufferWithSRV * GEmptyStructuredBufferWithUAV
Definition GlobalRenderResources.cpp:258
RENDERCORE_API FTexture * GTransparentBlackTexture
Definition GlobalRenderResources.cpp:254
RENDERCORE_API FVertexBufferWithSRV * GBlackVertexBufferWithSRV
Definition GlobalRenderResources.cpp:312
RENDERCORE_API FVertexBufferWithSRV * GEmptyVertexBufferWithUAV
Definition GlobalRenderResources.cpp:256
RENDERCORE_API FTextureWithSRV * GWhiteTextureWithSRV
Definition GlobalRenderResources.cpp:247
RENDERCORE_API FTextureWithSRV * GTransparentBlackTextureWithSRV
Definition GlobalRenderResources.cpp:249
RENDERCORE_API FTexture * GBlackTextureDepthCube
Definition GlobalRenderResources.cpp:564
RENDERCORE_API FVertexBufferWithSRV * GBlackFloat4VertexBufferWithSRV
Definition GlobalRenderResources.cpp:260
RENDERCORE_API TGlobalResource< FNullVertexBuffer, FRenderResource::EInitPhase::Pre > GNullVertexBuffer
Definition GlobalRenderResources.cpp:704
RENDERCORE_API TGlobalResource< FTileVertexDeclaration, FRenderResource::EInitPhase::Pre > GTileVertexDeclaration
Definition GlobalRenderResources.cpp:744
RENDERCORE_API FTexture * GMipColorTexture
Definition GlobalRenderResources.cpp:493
RENDERCORE_API int32 GMipColorTextureMipLevels
Definition GlobalRenderResources.cpp:494
RENDERCORE_API FTexture * GWhiteTextureCube
Definition GlobalRenderResources.cpp:558
RENDERCORE_API FTexture * GBlackUintVolumeTexture
Definition GlobalRenderResources.cpp:368
RENDERCORE_API FTexture * GBlackAlpha1VolumeTexture
Definition GlobalRenderResources.cpp:365
RENDERCORE_API FVertexBufferWithSRV * GBlackFloat4StructuredBufferWithSRV
Definition GlobalRenderResources.cpp:259
RENDERCORE_API TGlobalResource< FEmptyResourceCollection, FRenderResource::EInitPhase::Pre > GEmptyResourceCollection
Definition GlobalRenderResources.cpp:780
RENDERCORE_API FVertexBufferWithSRV * GWhiteVertexBufferWithSRV
Definition GlobalRenderResources.cpp:286
RENDERCORE_API FVertexBufferWithSRV * GEmptyVertexBufferUInt4WithUAV
Definition GlobalRenderResources.cpp:257
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition RenderResource.h:528
Definition GlobalRenderResources.h:152
virtual void InitRHI(FRHICommandListBase &RHICmdList) override
Definition GlobalRenderResources.cpp:749
Definition GlobalRenderResources.h:172
virtual RENDERCORE_API void ReleaseRHI() override
Definition GlobalRenderResources.cpp:775
virtual RENDERCORE_API void InitRHI(FRHICommandListBase &RHICmdList) override
Definition GlobalRenderResources.cpp:770
FRHIResourceCollectionRef ResourceCollection
Definition GlobalRenderResources.h:180
FEmptyResourceCollection()=default
~FEmptyResourceCollection()=default
Definition GlobalRenderResources.h:300
FGlobalDynamicIndexBuffer(FRHICommandListBase &InRHICmdList)
Definition GlobalRenderResources.h:307
FAllocationEx Allocate(uint32 NumIndices)
Definition GlobalRenderResources.h:336
~FGlobalDynamicIndexBuffer()
Definition GlobalRenderResources.h:311
void Init(FRHICommandListBase &InRHICmdList)
Definition GlobalRenderResources.h:316
RENDERCORE_API FAllocation Allocate(uint32 NumIndices, uint32 IndexStride)
Definition GlobalRenderResources.cpp:1022
RENDERCORE_API void Commit()
Definition GlobalRenderResources.cpp:1054
FGlobalDynamicIndexBuffer()=default
FGlobalDynamicIndexBufferAllocationEx FAllocationEx
Definition GlobalRenderResources.h:303
FGlobalDynamicIndexBufferAllocation FAllocation
Definition GlobalRenderResources.h:302
Definition GlobalRenderResources.h:216
RENDERCORE_API void Commit()
Definition GlobalRenderResources.cpp:1011
void Init(FRHICommandListBase &InRHICmdList)
Definition GlobalRenderResources.h:231
FGlobalDynamicVertexBuffer(FRHICommandListBase &InRHICmdList)
Definition GlobalRenderResources.h:222
FGlobalDynamicVertexBuffer()=default
RENDERCORE_API bool IsRenderAlarmLoggingEnabled() const
Definition GlobalRenderResources.cpp:1006
FGlobalDynamicVertexBufferAllocation FAllocation
Definition GlobalRenderResources.h:218
void GarbageCollect()
Definition GlobalRenderResources.h:252
RENDERCORE_API FAllocation Allocate(uint32 SizeInBytes)
Definition GlobalRenderResources.cpp:985
~FGlobalDynamicVertexBuffer()
Definition GlobalRenderResources.h:226
Definition RenderResource.h:509
Definition GlobalRenderResources.h:94
RENDERCORE_API ~FNullColorVertexBuffer()
FShaderResourceViewRHIRef VertexBufferSRV
Definition GlobalRenderResources.h:102
RENDERCORE_API FNullColorVertexBuffer()
Definition GlobalRenderResources.h:112
virtual RENDERCORE_API void ReleaseRHI() override
Definition GlobalRenderResources.cpp:697
virtual RENDERCORE_API void InitRHI(FRHICommandListBase &RHICmdList) override
Definition GlobalRenderResources.cpp:679
RENDERCORE_API ~FNullVertexBuffer()
RENDERCORE_API FNullVertexBuffer()
FShaderResourceViewRHIRef VertexBufferSRV
Definition GlobalRenderResources.h:120
Definition RHICommandList.h:455
Definition RenderResource.h:37
Definition GlobalRenderResources.h:127
virtual RENDERCORE_API void InitRHI(FRHICommandListBase &RHICmdList) override
Definition GlobalRenderResources.cpp:717
Definition RenderResource.h:422
Definition RenderResource.h:354
Definition GlobalRenderResources.h:138
virtual RENDERCORE_API ~FTileVertexDeclaration()
FVertexDeclarationRHIRef VertexDeclarationRHI
Definition GlobalRenderResources.h:146
RENDERCORE_API FTileVertexDeclaration()
virtual RENDERCORE_API void ReleaseRHI() override
Definition GlobalRenderResources.cpp:739
virtual RENDERCORE_API void InitRHI(FRHICommandListBase &RHICmdList) override
Definition GlobalRenderResources.cpp:731
Definition GlobalRenderResources.h:162
virtual void InitRHI(FRHICommandListBase &RHICmdList) override
Definition GlobalRenderResources.cpp:762
Definition RenderResource.h:493
Definition RenderResource.h:474
Definition Array.h:670
Definition GlobalRenderResources.cpp:791
Definition RenderResource.h:543
Definition GlobalRenderResources.cpp:1066
Definition GlobalRenderResources.h:281
uint32 NumIndices
Definition GlobalRenderResources.h:289
uint32 MaxUsedIndex
Definition GlobalRenderResources.h:293
uint32 IndexStride
Definition GlobalRenderResources.h:291
FGlobalDynamicIndexBufferAllocationEx(const FGlobalDynamicIndexBufferAllocation &InRef, uint32 InNumIndices, uint32 InIndexStride)
Definition GlobalRenderResources.h:282
Definition GlobalRenderResources.h:263
FIndexBuffer * IndexBuffer
Definition GlobalRenderResources.h:268
bool IsValid() const
Definition GlobalRenderResources.h:274
uint32 FirstIndex
Definition GlobalRenderResources.h:271
uint8 * Buffer
Definition GlobalRenderResources.h:265
Definition GlobalRenderResources.h:195
uint8 * Buffer
Definition GlobalRenderResources.h:197
bool IsValid() const
Definition GlobalRenderResources.h:206
FVertexBuffer * VertexBuffer
Definition GlobalRenderResources.h:200
uint32 VertexOffset
Definition GlobalRenderResources.h:203