Navigation
API > API/Runtime > API/Runtime/Engine > API/Runtime/Engine/FEmitter
Description
Emits an extern instruction based on a user-specified definition struct. An extern instruction is how you can extend MIR capabilities from the outside. An extern instruction implements a well-defined interface (specified by the MIR::CExternDefinition concept) and provides a way to build functionality not natively offered by the MIR instruction set. For example, material-specific rendering features are implemented through externs rather than by extending MIR To emit an extern instruction, you need to provide a "definition", meaning a concrete POD struct that implements the extern concept. Parameters:
- `DefinitionPrototype_ is an instance of the TDefinition struct you provide. This is moved into the emitted extern instruction's own buffer.
- With
Arguments_, you can specify zero or more [FValueRef](API\Runtime\Engine\FValueRef) arguments to provide to the extern instruction. For more usage and general information, seeMIR::CExternDefinition_.
| Name | Extern |
| Type | function |
| Header File | /Engine/Source/Runtime/Engine/Public/Materials/MaterialIREmitter.h |
| Include Path | #include "Materials/MaterialIREmitter.h" |
template<CExternDefinition TDefinition, typename... TArguments>
FValueRef Extern
(
TDefinition DefinitionPrototype,
TArguments... Arguments
)