UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FShaderMapResource Class Referenceabstract

#include <Shader.h>

+ Inheritance diagram for FShaderMapResource:

Public Member Functions

EShaderPlatform GetPlatform () const
 
RENDERCORE_API void AddRef ()
 
RENDERCORE_API void Release ()
 
int32 GetNumRefs () const
 
virtual RENDERCORE_API void ReleaseRHI () override
 
int32 GetNumShaders () const
 
bool IsValidShaderIndex (int32 ShaderIndex) const
 
bool HasShader (int32 ShaderIndex) const
 
virtual uint32 GetShaderSizeBytes (int32 ShaderIndex) const
 
virtual void PreloadShader (int32 ShaderIndex, FGraphEventArray &OutCompletionEvents)
 
virtual void PreloadShaderMap (FGraphEventArray &OutCompletionEvents)
 
virtual int32 GetGroupIndexForShader (int32 ShaderIndex) const
 
virtual int32 GetLibraryId () const
 
virtual int32 GetLibraryShaderIndex (int32 ShaderIndex) const
 
bool ContainsAtLeastOneRHIShaderCreated () const
 
FRHIShaderGetShader (int32 ShaderIndex, bool bRequired=true)
 
virtual FSHAHash GetShaderHash (int32 ShaderIndex)=0
 
virtual FSHAHash GetShaderMapHash () const
 
RENDERCORE_API void BeginCreateAllShaders ()
 
virtual uint32 GetSizeBytes () const =0
 
- Public Member Functions inherited from FRenderResource
RENDERCORE_API FRenderResource ()
 
RENDERCORE_API FRenderResource (ERHIFeatureLevel::Type InFeatureLevel)
 
RENDERCORE_API FRenderResource (const FRenderResource &)
 
RENDERCORE_API FRenderResource (FRenderResource &&)
 
RENDERCORE_API FRenderResourceoperator= (const FRenderResource &Other)
 
RENDERCORE_API FRenderResourceoperator= (FRenderResource &&Other)
 
virtual RENDERCORE_API ~FRenderResource ()
 
virtual void InitRHI (FRHICommandListBase &RHICmdList)
 
virtual RENDERCORE_API void InitResource (FRHICommandListBase &RHICmdList)
 
virtual RENDERCORE_API void ReleaseResource ()
 
RENDERCORE_API void UpdateRHI (FRHICommandListBase &RHICmdList)
 
virtual FString GetFriendlyName () const
 
bool IsInitialized () const
 
int32 GetListIndex () const
 
EInitPhase GetInitPhase () const
 
void SetOwnerName (FName InOwnerName)
 
FName GetOwnerName () const
 
void SetResourceName (FName InResourceName)
 
FName GetResourceName () const
 
- Public Member Functions inherited from FDeferredCleanupInterface
virtual ~FDeferredCleanupInterface ()
 

Static Public Member Functions

static RENDERCORE_API bool ArePlatformsCompatible (EShaderPlatform CurrentPlatform, EShaderPlatform TargetPlatform)
 
- Static Public Member Functions inherited from FRenderResource
static RENDERCORE_API void ReleaseRHIForAllResources ()
 
static RENDERCORE_API void InitPreRHIResources ()
 
static RENDERCORE_API void ChangeFeatureLevel (ERHIFeatureLevel::Type NewFeatureLevel)
 
static RENDERCORE_API FName SetScopeName (FName Name)
 

Protected Member Functions

RENDERCORE_API FShaderMapResource (EShaderPlatform InPlatform, int32 NumShaders)
 
virtual RENDERCORE_API ~FShaderMapResource ()
 
SIZE_T GetAllocatedSize () const
 
virtual FRHIShaderCreateRHIShaderOrCrash (int32 ShaderIndex, bool bRequired)=0
 
virtual void ReleasePreloadedShaderCode (int32 ShaderIndex)
 
virtual bool TryRelease ()
 
RENDERCORE_API void ReleaseShaders ()
 
- Protected Member Functions inherited from FRenderResource
void SetFeatureLevel (const FStaticFeatureLevel InFeatureLevel)
 
const FStaticFeatureLevel GetFeatureLevel () const
 
bool HasValidFeatureLevel () const
 
template<typename T >
FBufferRHIRef CreateRHIBuffer (FRHICommandListBase &RHICmdList, T &InOutResourceObject, uint32 ResourceCount, EBufferUsageFlags InBufferUsageFlags, const TCHAR *InDebugName)
 
void SetInitPhase (EInitPhase InInitPhase)
 

Additional Inherited Members

- Public Types inherited from FRenderResource
enum class  EInitPhase : uint8 { Pre , Default , MAX }
 
- Public Attributes inherited from FRenderResource
ERenderResourceState ResourceState = ERenderResourceState::Default
 
- Static Protected Member Functions inherited from FRenderResource
static RENDERCORE_API FRHICommandListBaseGetImmediateCommandList ()
 

Constructor & Destructor Documentation

◆ FShaderMapResource()

FShaderMapResource::FShaderMapResource ( EShaderPlatform  InPlatform,
int32  NumShaders 
)
explicitprotected

◆ ~FShaderMapResource()

FShaderMapResource::~FShaderMapResource ( )
protectedvirtual

Member Function Documentation

◆ AddRef()

void FShaderMapResource::AddRef ( )

◆ ArePlatformsCompatible()

bool FShaderMapResource::ArePlatformsCompatible ( EShaderPlatform  CurrentPlatform,
EShaderPlatform  TargetPlatform 
)
static

◆ BeginCreateAllShaders()

void FShaderMapResource::BeginCreateAllShaders ( )

◆ ContainsAtLeastOneRHIShaderCreated()

bool FShaderMapResource::ContainsAtLeastOneRHIShaderCreated ( ) const
inline

◆ CreateRHIShaderOrCrash()

virtual FRHIShader * FShaderMapResource::CreateRHIShaderOrCrash ( int32  ShaderIndex,
bool  bRequired 
)
protectedpure virtual

Creates RHI shader, with a reference (so the caller can release). Never returns nullptr (inability to create is Fatal)

Implemented in FShaderMapResource_SharedCode, and FShaderMapResource_InlineCode.

◆ GetAllocatedSize()

SIZE_T FShaderMapResource::GetAllocatedSize ( ) const
inlineprotected

◆ GetGroupIndexForShader()

virtual int32 FShaderMapResource::GetGroupIndexForShader ( int32  ShaderIndex) const
inlinevirtual

Reimplemented in FShaderMapResource_SharedCode.

◆ GetLibraryId()

virtual int32 FShaderMapResource::GetLibraryId ( ) const
inlinevirtual

Reimplemented in FShaderMapResource_SharedCode.

◆ GetLibraryShaderIndex()

virtual int32 FShaderMapResource::GetLibraryShaderIndex ( int32  ShaderIndex) const
inlinevirtual

Reimplemented in FShaderMapResource_SharedCode.

◆ GetNumRefs()

int32 FShaderMapResource::GetNumRefs ( ) const
inline

◆ GetNumShaders()

int32 FShaderMapResource::GetNumShaders ( ) const
inline

◆ GetPlatform()

EShaderPlatform FShaderMapResource::GetPlatform ( ) const
inline

◆ GetShader()

FRHIShader * FShaderMapResource::GetShader ( int32  ShaderIndex,
bool  bRequired = true 
)
inline

◆ GetShaderHash()

virtual FSHAHash FShaderMapResource::GetShaderHash ( int32  ShaderIndex)
pure virtual

Return shader hash for a particular shader without creating it.

Implemented in FShaderMapResource_SharedCode, and FShaderMapResource_InlineCode.

◆ GetShaderMapHash()

virtual FSHAHash FShaderMapResource::GetShaderMapHash ( ) const
inlinevirtual

Reimplemented in FShaderMapResource_SharedCode.

◆ GetShaderSizeBytes()

uint32 FShaderMapResource::GetShaderSizeBytes ( int32  ShaderIndex) const
virtual

◆ GetSizeBytes()

virtual uint32 FShaderMapResource::GetSizeBytes ( ) const
pure virtual

◆ HasShader()

bool FShaderMapResource::HasShader ( int32  ShaderIndex) const
inline

◆ IsValidShaderIndex()

bool FShaderMapResource::IsValidShaderIndex ( int32  ShaderIndex) const
inline

◆ PreloadShader()

virtual void FShaderMapResource::PreloadShader ( int32  ShaderIndex,
FGraphEventArray OutCompletionEvents 
)
inlinevirtual

Reimplemented in FShaderMapResource_SharedCode.

◆ PreloadShaderMap()

virtual void FShaderMapResource::PreloadShaderMap ( FGraphEventArray OutCompletionEvents)
inlinevirtual

Reimplemented in FShaderMapResource_SharedCode.

◆ Release()

void FShaderMapResource::Release ( )

◆ ReleasePreloadedShaderCode()

virtual void FShaderMapResource::ReleasePreloadedShaderCode ( int32  ShaderIndex)
inlineprotectedvirtual

Signal the shader library that it can release compressed shader code for a shader that it keeps preloaded in memory.

Reimplemented in FShaderMapResource_SharedCode.

◆ ReleaseRHI()

void FShaderMapResource::ReleaseRHI ( )
overridevirtual

Releases the RHI resources used by this resource. Called when leaving the state where both the resource and the RHI have been initialized. This is only called by the rendering thread.

Reimplemented from FRenderResource.

Reimplemented in FShaderMapResource_SharedCode.

◆ ReleaseShaders()

void FShaderMapResource::ReleaseShaders ( )
protected

◆ TryRelease()

virtual bool FShaderMapResource::TryRelease ( )
inlineprotectedvirtual

Reimplemented in FShaderMapResource_SharedCode.


The documentation for this class was generated from the following files: