Navigation
API > API/Plugins > API/Plugins/NiagaraShader
FNiagaraShaderScript represents a Niagara script to the shader compilation process
| Name | FNiagaraShaderScript |
| Type | class |
| Header File | /Engine/Plugins/FX/Niagara/Source/NiagaraShader/Public/NiagaraShared.h |
| Include Path | #include "NiagaraShared.h" |
Syntax
class FNiagaraShaderScript
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FNiagaraShaderScript() |
Minimal initialization constructor. | NiagaraShared.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~FNiagaraShaderScript() |
Destructor | NiagaraShared.h |
Structs
| Name | Remarks |
|---|---|
| FNiagaraShaderMapCachedData |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| AdditionalDefines | TArray< FString > | Configuration options | NiagaraShared.h | |
| AdditionalVariables | TArray< FString > | Additional variables needed | NiagaraShared.h | |
| BaseCompileHash | FNiagaraCompileHash | Compile hash for the base script. | NiagaraShared.h | |
| BaseVMScript | UNiagaraScriptBase * | NiagaraShared.h | ||
| bLoadedCookedShaderMapId | uint32 | NiagaraShared.h | ||
| bLoadedFromCookedMaterial | uint32 | NiagaraShared.h | ||
| bQueuedForRelease | uint32 | NiagaraShared.h | ||
| bUsesRapidIterationParams | bool | Whether or not we need to bake Rapid Iteration params. True to keep params, false to bake. | NiagaraShared.h | |
| CachedData_RenderThread | FNiagaraShaderMapCachedData | NiagaraShared.h | ||
| CompileErrors | TArray< FString > | NiagaraShared.h | ||
| CompilerVersionId | FGuid | The compiler version the script was generated with. | NiagaraShared.h | |
| CookedShaderMapId | FNiagaraShaderMapId | NiagaraShared.h | ||
| FeatureLevel | ERHIFeatureLevel::Type | Feature level and shader platform that this script is representing. | NiagaraShared.h | |
| FriendlyName | FString | NiagaraShared.h | ||
| GameThreadShaderMap | FNiagaraShaderMapRef | Game thread tracked shader map, which is ref counted and manages shader map lifetime. | NiagaraShared.h | |
| HlslOutput | FString | NiagaraShared.h | ||
| NumPermutations | int32 | NiagaraShared.h | ||
| OnCompilationCompleteDelegate | FOnNiagaraScriptCompilationComplete | NiagaraShared.h | ||
| OutstandingCompileShaderMapIds | TArray< int32, TInlineAllocator< 1 > > | Contains the compiling id of this shader map when it is being compiled asynchronously. | NiagaraShared.h | |
| ReferencedCompileHashes | TArray< FNiagaraCompileHash > | The compile hashes for the top level scripts referenced by the script. | NiagaraShared.h | |
| RenderingThreadShaderMap | FNiagaraShaderMap * | Shader map for this FNiagaraShaderScript which is accessible by the rendering thread. | NiagaraShared.h | |
| ScriptParametersMetadata | TSharedPtr< FNiagaraShaderScriptParametersMetadata > | NiagaraShared.h | ||
| ScriptParametersMetadata_RT | TSharedPtr< FNiagaraShaderScriptParametersMetadata > | NiagaraShared.h | ||
| ShaderPlatform | EShaderPlatform | NiagaraShared.h | ||
| SourceName | FString | NiagaraShared.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void AddCompileId
(
uint32 Id |
NiagaraShared.h | ||
virtual void AddReferencedObjects
(
FReferenceCollector& Collector |
NiagaraShared.h | ||
void BuildScriptParametersMetadata
(
const FNiagaraShaderScriptParametersMetadata& ScriptParametersMetadata |
NiagaraShared.h | ||
bool CacheShaders
(
const FNiagaraShaderMapId& ShaderMapId, |
Caches the shaders for this script | NiagaraShared.h | |
bool CacheShaders
(
bool bApplyCompletedShaderMapForRendering, |
Caches the shaders for this script with no static parameters on the given platform. | NiagaraShared.h | |
void CancelCompilation() |
Cancels all outstanding compilation jobs | NiagaraShared.h | |
void FinishCompilation() |
Blocks until compilation has completed. Returns immediately if a compilation is not outstanding. | NiagaraShared.h | |
FNiagaraCompileHash GetBaseCompileHash() |
NiagaraShared.h | ||
| NiagaraShared.h | |||
const UNiagaraScriptBase * GetBaseVMScript () |
NiagaraShared.h | ||
const TArray< FString > & GetCompileErrors() |
Accessors. | NiagaraShared.h | |
void GetDependentShaderTypes
(
EShaderPlatform Platform, |
NiagaraShared.h | ||
ERHIFeatureLevel::Type GetFeatureLevel() |
NiagaraShared.h | ||
const FString & GetFriendlyName() |
NiagaraShared.h | ||
FNiagaraShaderMap * GetGameThreadShaderMap() |
NiagaraShared.h | ||
int32 GetNumPermutations() |
NiagaraShared.h | ||
int32 GetNumPermutations_RenderThread() |
NiagaraShared.h | ||
FName GetOwnerFName() |
Returns owner name for tracking | NiagaraShared.h | |
bool GetScriptHLSLSource
(
FString& OutSource |
Get user source code for the shader | NiagaraShared.h | |
TSharedRef< FNiagaraShaderScriptParametersMetadata > GetScriptParametersMetadata() |
NiagaraShared.h | ||
const FNiagaraShaderScriptParametersMetadata & GetScriptParametersMetadata_RT() |
NiagaraShared.h | ||
FNiagaraShaderRef GetShader
(
int32 PermutationId |
NiagaraShared.h | ||
FNiagaraShaderRef GetShaderGameThread
(
int32 PermutationId |
NiagaraShared.h | ||
virtual void GetShaderMapId
(
EShaderPlatform Platform, |
NiagaraShared.h | ||
EShaderPlatform GetShaderPlatform() |
NiagaraShared.h | ||
bool GetUsesCompressedAttributes() |
NiagaraShared.h | ||
void Invalidate() |
NiagaraShared.h | ||
bool IsCompilationFinished() |
Checks if the compilation for this shader is finished | NiagaraShared.h | |
bool IsExternalConstantBufferUsed_RenderThread
(
int32 Index |
NiagaraShared.h | ||
virtual bool IsPersistent() |
Should shaders compiled for this script be saved to disk? | NiagaraShared.h | |
bool IsSame
(
const FNiagaraShaderMapId& InId |
NiagaraShared.h | ||
bool IsShaderMapComplete() |
NiagaraShared.h | ||
bool IsShaderMapComplete_RenderThread() |
NiagaraShared.h | ||
bool IsViewUniformBufferUsed_RenderThread() |
NiagaraShared.h | ||
bool MatchesScript
(
ERHIFeatureLevel::Type InFeatureLevel, |
NiagaraShared.h | ||
virtual void ModifyCompilationEnvironment
(
EShaderPlatform Platform, |
Allow Niagara script the opportunity to modify the compilation environment for GPU simulations. | NiagaraShared.h | |
virtual void NotifyCompilationFinished() |
Called when compilation finishes, after the GameThreadShaderMap is set and the render command to set the RenderThreadShaderMap is queued | NiagaraShared.h | |
FOnNiagaraScriptCompilationComplete & OnCompilationComplete() |
NiagaraShared.h | ||
bool QueueForRelease
(
FThreadSafeBool& Fence |
NiagaraShared.h | ||
void ReleaseShaderMap () |
Releases this script's shader map. | NiagaraShared.h | |
void RemoveOutstandingCompileId
(
const int32 OldOutstandingCompileShaderMapId |
NiagaraShared.h | ||
void SaveShaderStableKeys
(
EShaderPlatform TargetShaderPlatform, |
Save "stable" shader for identifying the shader in the recorded PSO cache. | NiagaraShared.h | |
void SerializeShaderMap
(
FArchive& Ar |
Serializes the script. | NiagaraShared.h | |
void SetCompileErrors
(
const TArray< FString >& InCompileErrors |
NiagaraShared.h | ||
void SetGameThreadShaderMap
(
FNiagaraShaderMap* InShaderMap |
Note: SetRenderingThreadShaderMap must also be called with the same value, but from the rendering thread. | NiagaraShared.h | |
void SetHlslOutput
(
const FString& InHlslOutput |
NiagaraShared.h | ||
void SetRenderingThreadShaderMap
(
FNiagaraShaderMap* InShaderMap |
Note: SetGameThreadShaderMap must also be called with the same value, but from the game thread. | NiagaraShared.h | |
void SetRenderThreadCachedData
(
const FNiagaraShaderMapCachedData& CachedData |
NiagaraShared.h | ||
void SetScript
(
UNiagaraScriptBase* InScript, |
NiagaraShared.h | ||
void SetShaderMap
(
FNiagaraShaderMap* InShaderMap |
NiagaraShared.h | ||
void SetSourceName
(
FString InSourceName |
NiagaraShared.h | ||
virtual bool ShouldCache
(
EShaderPlatform Platform, |
Should the shader for this script with the given platform, shader type and vertex factory type combination be compiled | NiagaraShared.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void GetShaderMapIDsWithUnfinishedCompilation
(
TArray< int32 >& ShaderMapIds |
Fills the passed array with IDs of shader maps unfinished compilation jobs. | NiagaraShared.h | |
void SetFeatureLevel
(
ERHIFeatureLevel::Type InFeatureLevel |
NiagaraShared.h | ||
void UpdateCachedData_All() |
NiagaraShared.h | ||
void UpdateCachedData_PostCompile
(
bool bCalledFromSerialize |
NiagaraShared.h | ||
void UpdateCachedData_PreCompile() |
NiagaraShared.h |