Navigation
API > API/Runtime > API/Runtime/RenderCore
Implements FRHIShaderLibrary and reads shader code through IoStore interface (either a ZenServer or CDN). This class stores its shader code via IoBuffers, one per group whereas each shadermap references one or more groups and these groups can be shared between shadermaps.
| Name | FIoStoreShaderCodeArchive |
| Type | class |
| Header File | /Engine/Source/Runtime/RenderCore/Public/ShaderCodeArchive.h |
| Include Path | #include "ShaderCodeArchive.h" |
Syntax
class FIoStoreShaderCodeArchive : public FRHIShaderLibrary
Inheritance Hierarchy
- FRHIResource → FRHIShaderLibrary → FIoStoreShaderCodeArchive
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FIoStoreShaderCodeArchive
(
EShaderPlatform InPlatform, |
ShaderCodeArchive.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~FIoStoreShaderCodeArchive() |
ShaderCodeArchive.h |
Structs
| Name | Remarks |
|---|---|
| FShaderGroupData | |
| FShaderGroupPreloadEntry |
Typedefs
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| FCreateIoStoreShaderCodeArchiveDelegate | TFunction< FIoStoreShaderCodeArchive *(EShaderPlatform, const FString &, FIoDispatcher &)> | ShaderCodeArchive.h |
Constants
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| CurrentVersion | uint32 | ShaderCodeArchive.h | |
| IoStoreShaderCodeArchiveFactory | FCreateIoStoreShaderCodeArchiveDelegate | ShaderCodeArchive.h |
Functions
Public Virtual
Overridden from FRHIShaderLibrary
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void AddRefPreloadedShaderGroup
(
int32 ShaderGroupIndex |
ShaderCodeArchive.h | ||
virtual TRefCountPtr< FRHIShader > CreateShader
(
int32 Index, |
ShaderCodeArchive.h | ||
virtual int32 FindShaderIndex
(
const FShaderHash& Hash |
ShaderCodeArchive.h | ||
virtual int32 FindShaderMapIndex
(
const FShaderHash& Hash |
ShaderCodeArchive.h | ||
virtual void GetAllShaderIndices
(
int32 ShaderMapIndex, |
ShaderCodeArchive.h | ||
virtual int32 GetGroupIndexForShader
(
int32 ShaderIndex |
Returns the index of shader group that a given shader belongs to. | ShaderCodeArchive.h | |
virtual int32 GetNumShaderMaps() |
ShaderCodeArchive.h | ||
virtual int32 GetNumShaders() |
ShaderCodeArchive.h | ||
virtual int32 GetNumShadersForShaderMap
(
int32 ShaderMapIndex |
ShaderCodeArchive.h | ||
virtual FShaderHash GetShaderHash
(
int32 ShaderMapIndex, |
ShaderCodeArchive.h | ||
virtual int32 GetShaderIndex
(
int32 ShaderMapIndex, |
ShaderCodeArchive.h | ||
virtual FShaderHash GetShaderMapHash
(
int32 ShaderMapIndex |
ShaderCodeArchive.h | ||
virtual uint32 GetShaderSizeBytes
(
int32 ShaderIndex |
ShaderCodeArchive.h | ||
virtual uint32 GetSizeBytes() |
ShaderCodeArchive.h | ||
virtual bool IsNativeLibrary() |
ShaderCodeArchive.h | ||
virtual bool IsPreloading
(
int32 ShaderIndex, |
ShaderCodeArchive.h | ||
virtual bool IsShaderMapResolved
(
int32 ShaderMapIndex |
Returns true if all IoChunks associated with the specified shadermap have been resolved and are available for use without any further delay. | ShaderCodeArchive.h | |
virtual void OnCloseShaderCode() |
ShaderCodeArchive.h | ||
virtual bool PreloadShader
(
int32 ShaderIndex, |
ShaderCodeArchive.h | ||
virtual bool PreloadShaderMap
(
int32 ShaderMapIndex, |
ShaderCodeArchive.h | ||
virtual bool PreloadShaderMap
(
int32 ShaderMapIndex, |
ShaderCodeArchive.h | ||
virtual void ReleasePreloadedShader
(
int32 ShaderIndex |
ShaderCodeArchive.h | ||
virtual void ReleasePreloadedShaderGroup
(
int32 ShaderGroupIndex |
ShaderCodeArchive.h | ||
virtual bool ResolveShaderMap
(
int32 ShaderMapIndex, |
ShaderCodeArchive.h | ||
virtual void Teardown() |
ShaderCodeArchive.h |
Protected
Protected Virtual
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void OnShaderGroupDataOwnerCreated() |
Called when a shader group data owner with a custom deleter is about to be created. | ShaderCodeArchive.h | |
virtual void OnShaderGroupDataOwnerReleased() |
Called when a shader group data owner's deleter has been invoked (the data is no longer in use). | ShaderCodeArchive.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static FIoStoreShaderCodeArchive * Create
(
EShaderPlatform InPlatform, |
ShaderCodeArchive.h | ||
static void CreateIoStoreShaderCodeArchiveHeader
(
const FName& Format, |
This function creates the archive header, including splitting shaders into groups. | ShaderCodeArchive.h | |
static FIoChunkId GetShaderCodeArchiveChunkId
(
const FString& LibraryName, |
ShaderCodeArchive.h | ||
static FIoChunkId GetShaderCodeChunkId
(
const FSHAHash& ShaderHash |
ShaderCodeArchive.h | ||
static void RegisterIoStoreShaderCodeArchiveFactory
(
FCreateIoStoreShaderCodeArchiveDelegate InFactory |
ShaderCodeArchive.h | ||
static void SaveIoStoreShaderCodeArchive
(
const FIoStoreShaderCodeArchiveHeader& Header, |
ShaderCodeArchive.h |