FNDIArrayProxyImpl

Choose your operating system:

Windows

macOS

Linux

Inheritance Hierarchy

References

Module

Niagara

Header

/Engine/Plugins/FX/Niagara/Source/Niagara/Classes/NiagaraDataInterfaceArrayImpl.h

Include

#include "NiagaraDataInterfaceArrayImpl.h"

Syntax

template<typename TArrayType, class TOwnerType>
struct FNDIArrayProxyImpl : public INDIArrayProxyBase

Constructors

Name Description

Public function

FNDIArrayProxyImpl

(
    TOwnerType* InOwner
)

Functions

Name Description

Public function

void

 

CachePropertiesFromOwner()

Public function

TArray< TArr...

 

GetArrayData

(
    FNiagaraSystemInstanceID InstanceID
)

Public function

TArray< TArr...

 

GetArrayData()

Public function

TArrayType

 

GetArrayValue

(
    int Index
)

Public function

TArrayType

 

GetArrayValue

(
    FNiagaraSystemInstanceID InstanceID,
    int Index
)

Public function Const

TEnableIf< T...

 

GetParameterDefinitionHLSL_Internal

(
    const FNiagaraDataInterfaceGPUParam...,
    FString& OutHLSL
)

Public function Const

TEnableIf<&#...

 

GetParameterDefinitionHLSL_Internal

(
    const FNiagaraDataInterfaceGPUParam...,
    FString& OutHLSL
)

Public function

TEnableIf<&#...

 

GetVMExternalFunction_Internal

(
    const FVMExternalFunctionBindingInf...,
    void* InstanceData,
    FVMExternalFunction& OutFunc
)

Public function

TEnableIf< T...

 

GetVMExternalFunction_Internal

(
    const FVMExternalFunctionBindingInf...,
    void* InstanceData,
    FVMExternalFunction& OutFunc
)

Public function

void

 

SetArrayData

(
    const TArray< TArrayType >& InArra...
)

BP user parameter accessors, should remove if we every start to share the object between instances.

Public function

void

 

SetArrayData

(
    FNiagaraSystemInstanceID InstanceID,
    const TArray< TArrayType >& InArra...
)

VM accessors to ensure we maintain per correctness for shared data interfaces.

Public function

void

 

SetArrayValue

(
    FNiagaraSystemInstanceID InstanceID,
    int Index,
    const TArrayType& Value,
    bool bSizeToFit
)

Public function

void

 

SetArrayValue

(
    int Index,
    const TArrayType& Value,
    bool bSizeToFit
)

Public function

void

 

VMClear

Public function

void

 

VMGetLastIndex

Public function

void

 

VMGetLength

Public function

void

 

VMGetValue

Public function

void

 

VMIsValidIndex

Public function

void

 

VMPopValue

Public function

void

 

VMPushValue

Public function

void

 

VMResize

Public function

void

 

VMSetValue

Overridden from INDIArrayProxyBase

Name Description

Public function Virtual Const

bool

 

AppendCompileHash

(
    FNiagaraCompileHashVisitor* In...
)

Public function Virtual

void

 

BindParameters

(
    FNiagaraDataInterfaceParametersCS&...,
    const FNiagaraDataInterfaceGPUParam...,
    const FShaderParameterMap& Paramet...
)

Public function Virtual Const

bool

 

CopyToInternal

(
    INDIArrayProxyBase* InDestinat...
)

Public function Virtual Const

FNiagaraData...

 

CreateComputeParameters()

Public function Virtual

void

 

DestroyPerInstanceData

(
    void* InPerInstanceData,
    FNiagaraSystemInstance* System...
)

Public function Virtual Const

bool

 

Equals

(
    const INDIArrayProxyBase* InOt...
)

Public function Virtual Const

const FTypeL...

 

GetComputeParametersTypeDesc()

Public function Virtual Const

bool

 

GetFunctionHLSL

(
    const FNiagaraDataInterfaceGPUParam...,
    const FNiagaraDataInterfaceGenerate...,
    int FunctionInstanceIndex,
    FString& OutHLSL
)

Public function Virtual Const

void

 

GetFunctions

INDIArrayProxyBase.

Public function Virtual Const

void

 

GetParameterDefinitionHLSL

(
    const FNiagaraDataInterfaceGPUParam...,
    FString& OutHLSL
)

Public function Virtual

void

 

GetVMExternalFunction

(
    const FVMExternalFunctionBindingInf...,
    void* InstanceData,
    FVMExternalFunction& OutFunc
)

Public function Virtual

bool

 

InitPerInstanceData

(
    void* InPerInstanceData,
    FNiagaraSystemInstance* System...
)

Public function Virtual Const

int32

 

PerInstanceDataSize()

Public function Virtual

void

 

ProvidePerInstanceDataForRenderThread

(
    void* InDataForRenderThread,
    void* PerInstanceData,
    const FNiagaraSystemInstanceID& In...
)

Public function Virtual Const

void

 

SetParameters

(
    const FNiagaraDataInterfaceParamete...,
    FRHICommandList& RHICmdList,
    const FNiagaraDataInterfaceSetArgs ...
)

Public function Virtual Const

void

 

UnsetParameters

(
    const FNiagaraDataInterfaceParamete...,
    FRHICommandList& RHICmdList,
    const FNiagaraDataInterfaceSetArgs ...
)

Public function Virtual Const

bool

 

UpgradeFunctionCall

(
    FNiagaraFunctionSignature& Functio...
)

Overridden from FNiagaraDataInterfaceProxyRW

Name Description

Public function Virtual Const

FIntVector

 

GetElementCount

(
    FNiagaraSystemInstanceID SystemInst...
)

Get the element count for this instance.

Public function Virtual Const

uint32

 

GetGPUInstanceCountOffset

(
    FNiagaraSystemInstanceID SystemInst...
)

For data interfaces that support iteration on the GPU we need to be able to get the 'real' element count as known only by the GPU The dispatch will use the CPU count, which is potentially an over-estimation, and the value inside the buffer will be used to clip instances that are not valid

Overridden from FNiagaraDataInterfaceProxy

Classes

Typedefs

Name

Description

TVMArrayType

Constants

Name

Description

kSafeMaxElements