Navigation
API > API/Plugins > API/Plugins/Niagara
Base class for all Niagara data interfaces.
| Name | UNiagaraDataInterface |
| Type | class |
| Header File | /Engine/Plugins/FX/Niagara/Source/Niagara/Classes/NiagaraDataInterface.h |
| Include Path | #include "NiagaraDataInterface.h" |
Syntax
UCLASS (Abstract, EditInlineNew, MinimalAPI)
class UNiagaraDataInterface : public UNiagaraDataInterfaceBase
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → UNiagaraNotifyOnChanged → UNiagaraDataInterfaceBase → UNiagaraDataInterface
Derived Classes
UNiagaraDataInterface derived class hierarchy
- UNiagaraDataInterface2DArrayTexture
- UNiagaraDataInterfaceAsyncGpuTrace
- UNiagaraDataInterfaceAudioOscilloscope
- UNiagaraDataInterfaceAudioPlayer
- UNiagaraDataInterfaceAudioSubmix
- UNiagaraDataInterfaceCamera
- UNiagaraDataInterfaceChaosDestruction
- UNiagaraDataInterfaceCollisionQuery
- UNiagaraDataInterfaceCubeTexture
- UNiagaraDataInterfaceCurlNoise
- UNiagaraDataInterfaceCurveBase
- UNiagaraDataInterfaceExport
- UNiagaraDataInterfaceGeometryCollection
- UNiagaraDataInterfaceHairStrands
- UNiagaraDataInterfaceLandscape
- UNiagaraDataInterfaceMeshRendererInfo
- UNiagaraDataInterfaceOcclusion
- UNiagaraDataInterfacePhysicsAsset
- UNiagaraDataInterfacePhysicsField
- UNiagaraDataInterfacePlatformSet
- UNiagaraDataInterfaceRigidMeshCollisionQuery
- UNiagaraDataInterfaceRWBase
- UNiagaraDataInterfaceSkeletalMesh
- UNiagaraDataInterfaceSparseVolumeTexture
- UNiagaraDataInterfaceSpline
- UNiagaraDataInterfaceSpriteRendererInfo
- UNiagaraDataInterfaceTexture
- UNiagaraDataInterfaceVectorField
- UNiagaraDataInterfaceVirtualTextureSample
- UNiagaraDataInterfaceVolumeCache
- UNiagaraDataInterfaceVolumeTexture
- UNiagaraDataInterfaceWater
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
UNiagaraDataInterface
(
const FObjectInitializer& ObjectInitializer |
NiagaraDataInterface.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~UNiagaraDataInterface() |
NiagaraDataInterface.h |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| CachedFunctionSignatureLock | FRWLock | NiagaraDataInterface.h | ||
| CachedFunctionSignatures | TArray< FNiagaraFunctionSignature > | NiagaraDataInterface.h | ||
| OnErrorsRefreshedDelegate | FSimpleMulticastDelegate | NiagaraDataInterface.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual bool AppendCompileHash
(
FNiagaraCompileHashVisitor* InVisitor |
Allows the generic class defaults version of this class to specify any dependencies/version/etc that might invalidate the compile. | NiagaraDataInterface.h | |
void AppendTemplateHLSL
(
FString& OutHLSL, |
Formats and appends a template file onto the output HLSL | NiagaraDataInterface.h | |
virtual void CacheStaticBuffers
(
FNiagaraSystemStaticBuffers& StaticBuffers, |
Allows data interfaces to cache any static data that may be shared between instances | NiagaraDataInterface.h | |
virtual ETickingGroup CalculateFinalTickGroup
(
const void* PerInstanceData |
NiagaraDataInterface.h | ||
virtual ETickingGroup CalculateTickGroup
(
const void* PerInstanceData |
NiagaraDataInterface.h | ||
virtual bool CanExecuteOnTarget
(
ENiagaraSimTarget Target |
NiagaraDataInterface.h | ||
virtual bool CanExposeVariables() |
NiagaraDataInterface.h | ||
virtual bool CanRenderVariablesToCanvas() |
NiagaraDataInterface.h | ||
bool CopyTo
(
UNiagaraDataInterface* Destination |
Copies the contents of this DataInterface to another. | NiagaraDataInterface.h | |
virtual void DestroyPerInstanceData
(
void* PerInstanceData, |
Destroys the per instance data for this interface. | NiagaraDataInterface.h | |
virtual bool Equals
(
const UNiagaraDataInterface* Other |
Determines if this DataInterface is the same as another. | NiagaraDataInterface.h | |
virtual bool GenerateCompilerTagPrefix
(
const FNiagaraFunctionSignature& InSignature, |
Used by the translator when dealing with signatures that turn into compiler tags to figure out the precise compiler tag. | NiagaraDataInterface.h | |
virtual bool GenerateIterationSourceNamespaceReadAttributesHLSL
(
FNiagaraDataInterfaceGPUParamInfo& DIInstanceInfo, |
Generate the necessary plumbing HLSL at the beginning of the stage where this is used as a sim stage iteration source. | NiagaraDataInterface.h | |
virtual bool GenerateIterationSourceNamespaceWriteAttributesHLSL
(
FNiagaraDataInterfaceGPUParamInfo& DIInstanceInfo, |
Generate the necessary plumbing HLSL at the end of the stage where this is used as a sim stage iteration source. | NiagaraDataInterface.h | |
virtual bool GenerateSetupHLSL
(
FNiagaraDataInterfaceGPUParamInfo& DIInstanceInfo, |
Generate the necessary HLSL to set up data when being added as a sim stage sim source. | NiagaraDataInterface.h | |
virtual bool GenerateTeardownHLSL
(
FNiagaraDataInterfaceGPUParamInfo& DIInstanceInfo, |
Generate the necessary HLSL to tear down data when being added as a sim stage sim source. | NiagaraDataInterface.h | |
virtual void GetAssetTagsForContext
(
const UObject* InAsset, |
Method to add asset tags that are specific to this data interface. | NiagaraDataInterface.h | |
virtual void GetCanvasVariables
(
TArray< FNiagaraVariableBase >& OutVariables |
NiagaraDataInterface.h | ||
virtual void GetCommonHLSL
(
FString& OutHLSL |
Allows data interfaces to provide common functionality that will be shared across interfaces on that type. | NiagaraDataInterface.h | |
virtual void GetEmitterDependencies
(
UNiagaraSystem* Asset, |
Allows a DI to specify data dependencies between emitters, so the system can ensure that the emitter instances are executed in the correct order. | NiagaraDataInterface.h | |
| NiagaraDataInterface.h | |||
virtual TArray< FNiagaraDataInterfaceError > GetErrors() |
Refreshes and returns the errors detected with the corresponding data, if any. | NiagaraDataInterface.h | |
virtual void GetExposedVariables
(
TArray< FNiagaraVariableBase >& OutVariables |
NiagaraDataInterface.h | ||
virtual bool GetExposedVariableValue
(
const FNiagaraVariableBase& InVariable, |
NiagaraDataInterface.h | ||
virtual void GetFeedback
(
UNiagaraSystem* InAsset, |
Query the data interface to give feedback to the end user. | NiagaraDataInterface.h | |
virtual bool GetFunctionHLSL
(
const FNiagaraDataInterfaceHlslGenerationContext& HlslGenContext, |
NiagaraDataInterface.h | ||
virtual bool GetFunctionHLSL
(
const FNiagaraDataInterfaceGPUParamInfo& ParamInfo, |
NiagaraDataInterface.h | ||
void GetFunctionSignatures
(
TArray< FNiagaraFunctionSignature >& OutFunctions |
Gets all the available functions for this data interface. | NiagaraDataInterface.h | |
virtual uint32 GetGpuCountBufferEstimate() |
Returns an estimate allocation count for the GPU instance count manager. This is experimental and will likely be modified in the future. | NiagaraDataInterface.h | |
virtual FIntVector GetGpuDispatchNumThreads() |
NiagaraDataInterface.h | ||
virtual ENiagaraGpuDispatchType GetGpuDispatchType() |
NiagaraDataInterface.h | ||
virtual bool GetGpuUseIndirectDispatch() |
NiagaraDataInterface.h | ||
virtual void GetParameterDefinitionHLSL
(
const FNiagaraDataInterfaceHlslGenerationContext& HlslGenContext, |
NiagaraDataInterface.h | ||
virtual void GetParameterDefinitionHLSL
(
const FNiagaraDataInterfaceGPUParamInfo& ParamInfo, |
NiagaraDataInterface.h | ||
FNiagaraDataInterfaceProxy * GetProxy() |
NiagaraDataInterface.h | ||
virtual void GetVMExternalFunction
(
const FVMExternalFunctionBindingInfo& BindingInfo, |
Returns the delegate for the passed function signature. | NiagaraDataInterface.h | |
virtual bool GPUContextInit
(
const FNiagaraScriptDataInterfaceCompileInfo& InInfo, |
NiagaraDataInterface.h | ||
virtual bool HasPostSimulateTick() |
NiagaraDataInterface.h | ||
virtual bool HasPostStageTick
(
ENiagaraScriptUsage Usage |
NiagaraDataInterface.h | ||
virtual bool HasPreSimulateTick() |
NiagaraDataInterface.h | ||
virtual bool HasPreStageTick
(
ENiagaraScriptUsage Usage |
NiagaraDataInterface.h | ||
virtual bool HasTickGroupPostreqs() |
NiagaraDataInterface.h | ||
virtual bool HasTickGroupPrereqs() |
NiagaraDataInterface.h | ||
virtual bool InitPerInstanceData
(
void* PerInstanceData, |
Initializes the per instance data for this interface. | NiagaraDataInterface.h | |
bool IsUsedByCPUEmitter() |
NiagaraDataInterface.h | ||
bool IsUsedByGPUEmitter() |
NiagaraDataInterface.h | ||
bool IsUsedWithCPUEmitter() |
NiagaraDataInterface.h | ||
bool IsUsedWithCPUScript() |
Used to determine if we need to create CPU resources for the emitter. | NiagaraDataInterface.h | |
bool IsUsedWithGPUEmitter() |
NiagaraDataInterface.h | ||
bool IsUsedWithGPUScript() |
Used to determine if we need to create GPU resources for the emitter. | NiagaraDataInterface.h | |
void MarkRenderDataDirty() |
NiagaraDataInterface.h | ||
virtual void ModifyCompilationEnvironment
(
EShaderPlatform ShaderPlatform, |
Allows data interfaces to influence the compilation of GPU shaders and is only called on the CDO object not the instance. | NiagaraDataInterface.h | |
virtual bool NeedsGPUContextInit() |
NiagaraDataInterface.h | ||
FSimpleMulticastDelegate & OnErrorsRefreshed() |
NiagaraDataInterface.h | ||
virtual int32 PerInstanceDataPassedToRenderThreadSize () |
The size of the data this class will provide to ProvidePerInstanceDataForRenderThread. | NiagaraDataInterface.h | |
virtual int32 PerInstanceDataSize () |
Returns the size of the per instance data for this interface. | NiagaraDataInterface.h | |
virtual bool PerInstanceTick
(
void* PerInstanceData, |
Ticks the per instance data for this interface, if it has any. | NiagaraDataInterface.h | |
virtual bool PerInstanceTickPostSimulate
(
void* PerInstanceData, |
NiagaraDataInterface.h | ||
virtual void PostCompile () |
NiagaraDataInterface.h | ||
virtual void PostCompile
(
const UNiagaraSystem& OwningSystem |
Called after system compilation completes. Useful for caching any constant, compile dependent data. | NiagaraDataInterface.h | |
virtual bool PostSimulateCanOverlapFrames () |
When set to true the simulation may not complete in the same frame it started, allowing maximum overlap with the GameThread. | NiagaraDataInterface.h | |
virtual bool PostStageCanOverlapTickGroups () |
When set to true simulation may not complete in the same tick group it started. | NiagaraDataInterface.h | |
virtual void PostStageTick
(
FNDICpuPostStageContext& Context |
Called per instance for each DI after each execution state in which it is used. | NiagaraDataInterface.h | |
virtual void PreStageTick
(
FNDICpuPreStageContext& Context |
Called per instance for each DI before each execution state in which it is used. | NiagaraDataInterface.h | |
virtual void ProvidePerInstanceDataForRenderThread
(
void* DataForRenderThread, |
Subclasses that wish to work with GPU systems/emitters must implement this. | NiagaraDataInterface.h | |
void PushToRenderThread() |
NiagaraDataInterface.h | ||
virtual bool ReadsEmitterParticleData
(
const FString& EmitterName |
NiagaraDataInterface.h | ||
void RefreshErrors() |
NiagaraDataInterface.h | ||
| NiagaraDataInterface.h | |||
virtual bool RequiresCurrentFrameNDC() |
NiagaraDataInterface.h | ||
virtual bool RequiresDepthBuffer() |
NiagaraDataInterface.h | ||
virtual bool RequiresDistanceFieldData() |
NiagaraDataInterface.h | ||
virtual bool RequiresEarlyViewData() |
NiagaraDataInterface.h | ||
virtual bool RequiresGlobalDistanceField() |
NiagaraDataInterface.h | ||
virtual bool RequiresRayTracingScene() |
NiagaraDataInterface.h | ||
virtual void SetShaderParameters
(
const FNiagaraDataInterfaceSetShaderParametersContext& Context |
Set the shader parameters will only be called if the data interface provided shader parameters. | NiagaraDataInterface.h | |
void SetUsedWithCPUScript
(
bool bUsed |
NiagaraDataInterface.h | ||
void SetUsedWithGPUScript
(
bool bUsed |
NiagaraDataInterface.h | ||
virtual bool ShouldCompile
(
EShaderPlatform ShaderPlatform |
Allows data interfaces to prevent compilation of GPU shaders and is only called on the CDO object not the instance. | NiagaraDataInterface.h | |
virtual bool SupportsIterationSourceNamespaceAttributesHLSL() |
Can this data interface be used as a StackContext parameter map replacement when being used as a sim stage iteration source? | NiagaraDataInterface.h | |
virtual bool SupportsSetupAndTeardownHLSL() |
Does this data interface need setup and teardown for each stage when working a sim stage sim source? | NiagaraDataInterface.h | |
virtual bool UpgradeFunctionCall
(
FNiagaraFunctionSignature& FunctionSignature |
Allows data interfaces the opportunity to rename / change the function signature and perform an upgrade. | NiagaraDataInterface.h | |
virtual void ValidateFunction
(
const FNiagaraFunctionSignature& Function, |
Validates a function being compiled and allows interface classes to post custom compile errors when their API changes. | NiagaraDataInterface.h |
Overridden from UObject
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void PostEditChangeProperty
(
FPropertyChangedEvent& PropertyChangedEvent |
NiagaraDataInterface.h | ||
virtual void PostLoad() |
NiagaraDataInterface.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual bool CopyToInternal
(
UNiagaraDataInterface* Destination |
NiagaraDataInterface.h | ||
virtual void GetFunctions
(
TArray< FNiagaraFunctionSignature >& OutFunctions |
Deprecated function for backwards compatibility. | NiagaraDataInterface.h | |
virtual void GetFunctionsInternal
(
TArray< FNiagaraFunctionSignature >& OutFunctions |
NiagaraDataInterface.h | ||
const T * GetProxyAs () |
NiagaraDataInterface.h | ||
T * GetProxyAs () |
NiagaraDataInterface.h | ||
virtual void PushToRenderThreadImpl() |
NiagaraDataInterface.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static EObjectFlags BuildObjectFlagsForOwner
(
UObject* OwnerObject, |
NiagaraDataInterface.h | ||
static void GetFeedback
(
UNiagaraDataInterface* DataInterface, |
NiagaraDataInterface.h | ||
static bool IsDataInterfaceType
(
const FNiagaraTypeDefinition& TypeDef |
Determines if this type definition matches to a known data interface type. | NiagaraDataInterface.h |