Navigation
API > API/Plugins > API/Plugins/Niagara
Inheritance Hierarchy
- UObjectBase
- UObjectBaseUtility
- UObject
- UNiagaraMergeable
- UNiagaraDataInterfaceBase
- UNiagaraDataInterface
- UNiagaraDataInterface2DArrayTexture
- UNiagaraDataInterfaceAsyncGpuTrace
- UNiagaraDataInterfaceAudioOscilloscope
- UNiagaraDataInterfaceAudioPlayer
- UNiagaraDataInterfaceAudioSubmix
- UNiagaraDataInterfaceAudioSpectrum
- UNiagaraDataInterfaceCamera
- UNiagaraDataInterfaceChaosDestruction
- UNiagaraDataInterfaceCollisionQuery
- UNiagaraDataInterfaceCubeTexture
- UNiagaraDataInterfaceCurlNoise
- UNiagaraDataInterfaceCurveBase
- UNiagaraDataInterfaceColorCurve
- UNiagaraDataInterfaceCurve
- UNiagaraDataInterfaceVector2DCurve
- UNiagaraDataInterfaceVector4Curve
- UNiagaraDataInterfaceVectorCurve
- UNiagaraDataInterfaceExport
- UNiagaraDataInterfaceGeometryCollection
- UNiagaraDataInterfaceHairStrands
- UNiagaraDataInterfaceLandscape
- UNiagaraDataInterfaceMeshRendererInfo
- UNiagaraDataInterfaceOcclusion
- UNiagaraDataInterfacePhysicsAsset
- UNiagaraDataInterfacePhysicsField
- UNiagaraDataInterfacePlatformSet
- UNiagaraDataInterfaceRigidMeshCollisionQuery
- UNiagaraDataInterfaceRWBase
- UNiagaraDataInterfaceArray
- UNiagaraDataInterfaceArrayBool
- UNiagaraDataInterfaceArrayColor
- UNiagaraDataInterfaceArrayFloat
- UNiagaraDataInterfaceArrayFloat2
- UNiagaraDataInterfaceArrayFloat3
- UNiagaraDataInterfaceArrayFloat4
- UNiagaraDataInterfaceArrayInt32
- UNiagaraDataInterfaceArrayMatrix
- UNiagaraDataInterfaceArrayNiagaraID
- UNiagaraDataInterfaceArrayPosition
- UNiagaraDataInterfaceArrayQuat
- UNiagaraDataInterfaceArrayUInt8
- UNiagaraDataInterfaceGrid2D
- UNiagaraDataInterfaceGrid2DCollection
- UNiagaraDataInterfaceGrid2DCollectionReader
- UNiagaraDataInterfaceGrid3D
- UNiagaraDataInterfaceGrid3DCollection
- UNiagaraDataInterfaceGrid3DCollectionReader
- UNiagaraDataInterfaceNeighborGrid3D
- UNiagaraDataInterfaceRasterizationGrid3D
- UNiagaraDataInterfaceIntRenderTarget2D
- UNiagaraDataInterfaceParticleRead
- UNiagaraDataInterfaceRenderTarget2D
- UNiagaraDataInterfaceRenderTarget2DArray
- UNiagaraDataInterfaceRenderTargetCube
- UNiagaraDataInterfaceRenderTargetVolume
- UNiagaraDataInterfaceVelocityGrid
- UNiagaraDataInterfacePressureGrid
- UNiagaraDataInterfaceSkeletalMesh
- UNiagaraDataInterfaceSparseVolumeTexture
- UNiagaraDataInterfaceSpline
- UNiagaraDataInterfaceSpriteRendererInfo
- UNiagaraDataInterfaceTexture
- UNiagaraDataInterfaceVectorField
- UNiagaraDataInterfaceVolumeCache
- UNiagaraDataInterfaceVolumeTexture
- UNiagaraDataInterfaceWater
References
| Module | Niagara |
| Header | /Engine/Plugins/FX/Niagara/Source/Niagara/Classes/NiagaraDataInterface.h |
| Include | #include "NiagaraDataInterface.h" |
Syntax
UCLASS&40;Abstract, EditInlineNew, MinimalAPI&41;
class UNiagaraDataInterface : public UNiagaraDataInterfaceBase
Remarks
Base class for all Niagara data interfaces.
Variables
| Type | Name | Description | |
|---|---|---|---|
| uint32: 1 | bRenderDataDirty | ||
| uint32: 1 | bUsedWithCPUScript | ||
| uint32: 1 | bUsedWithGPUScript | ||
| TUniquePtr< FNiagaraDataInterfaceProxy > | Proxy |
Constructors
| Type | Name | Description | |
|---|---|---|---|
UNiagaraDataInterface
(
const FObjectInitializer& ObjectInitializer |
Destructors
| Type | Name | Description | |
|---|---|---|---|
Functions
| Type | Name | Description | |
|---|---|---|---|
| bool | AppendCompileHash
(
FNiagaraCompileHashVisitor* InVisitor |
Allows the generic class defaults version of this class to specify any dependencies/version/etc that might invalidate the compile. | |
| void | AppendTemplateHLSL
(
FString& OutHLSL, |
Formats and appends a template file onto the output HLSL | |
| void | CacheStaticBuffers
(
FNiagaraSystemStaticBuffers& StaticBuffers, |
Allows data interfaces to cache any static data that may be shared between instances | |
| ETickingGroup | CalculateTickGroup
(
const void* PerInstanceData |
||
| bool | CanExecuteOnTarget
(
ENiagaraSimTarget Target |
||
| bool | |||
| bool | |||
| bool | CopyTo
(
UNiagaraDataInterface* Destination |
Copies the contents of this DataInterface to another. | |
| bool | CopyToInternal
(
UNiagaraDataInterface* Destination |
||
| void | DestroyPerInstanceData
(
void* PerInstanceData, |
Destroys the per instance data for this interface. | |
| void | DrawDebugHud
(
FNDIDrawDebugHudContext& DebugHudContext |
Override this function to provide additional context to the debug HUD. | |
| bool | Equals
(
const UNiagaraDataInterface* Other |
Determines if this DataInterface is the same as another. | |
| 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. | |
| 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. | |
| 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. | |
| bool | GenerateSetupHLSL
(
FNiagaraDataInterfaceGPUParamInfo& DIInstanceInfo, |
Generate the necessary HLSL to set up data when being added as a sim stage sim source. | |
| bool | GenerateTeardownHLSL
(
FNiagaraDataInterfaceGPUParamInfo& DIInstanceInfo, |
Generate the necessary HLSL to tear down data when being added as a sim stage sim source. | |
| void | GetAssetTagsForContext
(
const UObject* InAsset, |
Method to add asset tags that are specific to this data interface. | |
| void | GetCanvasVariables
(
TArray< FNiagaraVariableBase >& OutVariables |
||
| void | GetCommonHLSL
(
FString& OutHLSL |
Allows data interfaces to provide common functionality that will be shared across interfaces on that type. | |
| 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. | |
| void | GetEmitterReferencesByName
(
TArray< FString >& EmitterReferences |
||
| TArray< FNiagaraDataInterfaceError > | GetErrors () |
Refreshes and returns the errors detected with the corresponding data, if any. | |
| void | GetExposedVariables
(
TArray< FNiagaraVariableBase >& OutVariables |
||
| bool | GetExposedVariableValue
(
const FNiagaraVariableBase& InVariable, |
||
| void | GetFeedback
(
UNiagaraDataInterface* DataInterface, |
||
| void | GetFeedback
(
UNiagaraSystem* InAsset, |
Query the data interface to give feedback to the end user. | |
| bool | GetFunctionHLSL
(
const FNiagaraDataInterfaceGPUParamInfo& ParamInfo, |
||
| bool | GetFunctionHLSL
(
FNiagaraDataInterfaceHlslGenerationContext& HlslGenContext, |
||
| void | GetFunctions
(
TArray< FNiagaraFunctionSignature >& OutFunctions |
Gets all the available functions for this data interface. | |
| FIntVector | |||
| ENiagaraGpuDispatchType | |||
| bool | |||
| void | GetParameterDefinitionHLSL
(
const FNiagaraDataInterfaceGPUParamInfo& ParamInfo, |
||
| void | GetParameterDefinitionHLSL
(
FNiagaraDataInterfaceHlslGenerationContext& HlslGenContext, |
||
| FNiagaraDataInterfaceProxy * | GetProxy () |
||
| T * | GetProxyAs () |
||
| const T * | GetProxyAs () |
||
| void | GetVMExternalFunction
(
const FVMExternalFunctionBindingInfo& BindingInfo, |
Returns the delegate for the passed function signature. | |
| bool | GPUContextInit
(
const FNiagaraScriptDataInterfaceCompileInfo& InInfo, |
||
| bool | |||
| bool | HasPostStageTick
(
ENiagaraScriptUsage Usage |
||
| bool | |||
| bool | HasPreStageTick
(
ENiagaraScriptUsage Usage |
||
| bool | |||
| bool | InitPerInstanceData
(
void* PerInstanceData, |
Initializes the per instance data for this interface. | |
| bool | IsDataInterfaceType
(
const FNiagaraTypeDefinition& TypeDef |
Determines if this type definition matches to a known data interface type. | |
| bool | Used to determine if we need to create CPU resources for the emitter. | ||
| bool | Used to determine if we need to create GPU resources for the emitter. | ||
| void | |||
| 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. | |
| bool | |||
| FSimpleMulticastDelegate & | |||
| int32 | The size of the data this class will provide to ProvidePerInstanceDataForRenderThread. | ||
| int32 | Returns the size of the per instance data for this interface. | ||
| bool | PerInstanceTick
(
void* PerInstanceData, |
Ticks the per instance data for this interface, if it has any. | |
| bool | PerInstanceTickPostSimulate
(
void* PerInstanceData, |
||
| void | PostCompile () |
Called after system compilation completes. Useful for caching any constant, compile dependent data. | |
| bool | When set to true the simulation may not complete in the same frame it started, allowing maximum overlap with the GameThread. | ||
| bool | When set to true simulation may not complete in the same tick group it started. | ||
| void | PostStageTick
(
FNDICpuPostStageContext& Context |
Called per instance for each DI after each execution state in which it is used. | |
| void | PreStageTick
(
FNDICpuPreStageContext& Context |
Called per instance for each DI before each execution state in which it is used. | |
| void | ProvidePerInstanceDataForRenderThread
(
void* DataForRenderThread, |
Subclasses that wish to work with GPU systems/emitters must implement this. | |
| void | |||
| void | |||
| void | |||
| bool | RenderVariableToCanvas
(
FNiagaraSystemInstanceID SystemInstanceID, |
||
| bool | |||
| bool | |||
| bool | |||
| bool | |||
| void | SetShaderParameters
(
const FNiagaraDataInterfaceSetShaderParametersContext& Context |
Set the shader parameters will only be called if the data interface provided shader parameters. | |
| void | SetUsedWithCPUScript
(
bool bUsed |
||
| void | SetUsedWithGPUScript
(
bool bUsed |
||
| bool | ShouldCompile
(
EShaderPlatform ShaderPlatform |
Allows data interfaces to prevent compilation of GPU shaders and is only called on the CDO object not the instance. | |
| bool | Can this data interface be used as a StackContext parameter map replacement when being used as a sim stage iteration source? | ||
| bool | Does this data interface need setup and teardown for each stage when working a sim stage sim source? | ||
| bool | UpgradeFunctionCall
(
FNiagaraFunctionSignature& FunctionSignature |
Allows data interfaces the opportunity to rename / change the function signature and perform an upgrade. | |
| void | ValidateFunction
(
const FNiagaraFunctionSignature& Function, |
Validates a function being compiled and allows interface classes to post custom compile errors when their API changes. |
Overridden from UObject
| Type | Name | Description | |
|---|---|---|---|
| void | PostEditChangeProperty
(
FPropertyChangedEvent& PropertyChangedEvent |
Called when a property on this object has been modified externally | |
| void | PostLoad () |
Do any object-specific cleanup required immediately after loading an object. |
Deprecated Functions
| Type | Name | Description | |
|---|---|---|---|
| void | DrawDebugHud
(
UCanvas* Canvas, |
Please update to the context based DrawDebugHud as this will be removed in a future version. | |
| bool | Please update your code to use IsUsedWithCPUScript | ||
| bool | Please update your code to use IsUsedWithGPUScript | ||
| bool | Please update your code to use IsUsedWithCPUScript | ||
| bool | Please update your code to use IsUsedWithGPUScript | ||
| bool | ReadsEmitterParticleData
(
const FString& EmitterName |
Implement GetEmitterReferencesByName() instead as this will be removed in a future version. |