Navigation
Unreal Engine C++ API Reference > Runtime > Engine > HLSLTree
Inheritance Hierarchy
- FNode
- FOwnedNode
- FExpression
- FExpressionAppend
- FExpressionCollectionParameter
- FExpressionComponentMask
- FExpressionConstant
- FExpressionCustomHLSL
- FExpressionDerivative
- FExpressionDynamicParameter
- FExpressionError
- FExpressionExternalInput
- FExpressionForward
- FExpressionDefaultValue
- FExpressionFunctionCall
- FExpressionMaterialLayers
- FExpressionGetStructField
- FExpressionInlineCustomHLSL
- FExpressionNoise
- FExpressionParameter
- FExpressionSceneTexture
- FExpressionSelect
- FExpressionSetStructField
- FExpressionShadingModel
- FExpressionSkyAtmosphereLightDirection
- FExpressionSkyLightEnvMapSample
- FExpressionSwitchBase
- FExpressionFeatureLevelSwitch
- FExpressionQualitySwitch
- FExpressionShaderStageSwitch
- FExpressionShadingPathSwitch
- FExpressionSwizzle
- FExpressionTextureSample
- FExpressionTextureSize
- FExpressionVertexInterpolator
References
Module | Engine |
Header | /Engine/Source/Runtime/Engine/Public/HLSLTree/HLSLTree.h |
Include | #include "HLSLTree/HLSLTree.h" |
Syntax
class FExpression : public UE::HLSLTree::FOwnedNode
Remarks
Represents an HLSL expression. This is a piece of code that evaluates to a value, but has no side effects. Unlike statements, expressions are not expected to execute in any particular order. Examples include constant literals, variable accessors, and various types of math operations This is an abstract base class, with derived classes representing various types of expression Derived expression classes should provide a constructor to fully initialize all fields. All types given to this constructor must be hashable via HLSLTree::AppendHash(). A unique hash value will be generated for each expression, by hashing the constructor arguments, which will be used to deduplicate expressions
Functions
Type | Name | Description | |
---|---|---|---|
![]() ![]() |
bool | CheckObjectSupportsCustomHLSL
(
FEmitContext& Context, |
Some expressions may support passing object types to custom HLSL expressions CheckObjectSupportsCustomHLSL() will return true if this is supported If supported, GetObjectCustomHLSLParameter() will generate code to declare the parameters in the custom HLSL function, and forward the parameters EmitValueShader() will be called to generate the actual HLSL code for the expression |
![]() ![]() ![]() |
void | ComputeAnalyticDerivatives
(
FTree& Tree, |
Create new expressions representing DDX/DDY of this expression |
![]() ![]() ![]() |
const FExpression * | ComputePreviousFrame
(
FTree& Tree, |
Creates a new expression representing this expression on the previous frame. |
![]() ![]() ![]() |
bool | EmitCustomHLSLParameter
(
FEmitContext& Context, |
Allows custom objects to be passed to custom HLSL functions. |
![]() ![]() ![]() |
bool | EmitValueObject
(
FEmitContext& Context, |
Emit an object. The given 'ObjectTypeName' determines the C++ type pointed to by OutObjectBase |
![]() ![]() ![]() |
void | EmitValuePreshader
(
FEmitContext& Context, |
Emit Preshader code representing this expression |
![]() ![]() ![]() |
void | EmitValueShader
(
FEmitContext& Context, |
Emit HLSL shader code representing this expression |
![]() ![]() |
void | GetObjectCustomHLSLParameter
(
FEmitContext& Context, |
|
![]() ![]() |
Shader::FValue | GetValueConstant
(
FEmitContext& Context, |
|
![]() ![]() |
Shader::FValue | GetValueConstant
(
FEmitContext& Context, |
|
![]() ![]() |
Shader::FValue | GetValueConstant
(
FEmitContext& Context, |
|
![]() ![]() |
Shader::FValue | GetValueConstant
(
FEmitContext& Context, |
|
![]() ![]() |
Shader::FValue | GetValueConstant
(
FEmitContext& Context, |
|
![]() ![]() |
Shader::FValue | GetValueConstant
(
FEmitContext& Context, |
|
![]() ![]() |
bool | GetValueObject
(
FEmitContext& Context, |
|
![]() ![]() |
bool | GetValueObject
(
FEmitContext& Context, |
Gets the value as an 'Object' with a certain type Individual expressions will potentially support different types of objects |
![]() ![]() |
Shader::FType | GetValuePreshader
(
FEmitContext& Context, |
|
![]() ![]() |
Shader::FType | GetValuePreshader
(
FEmitContext& Context, |
|
![]() ![]() |
Shader::FType | GetValuePreshader
(
FEmitContext& Context, |
|
![]() ![]() |
Shader::FType | GetValuePreshader
(
FEmitContext& Context, |
|
![]() ![]() |
Shader::FType | GetValuePreshader
(
FEmitContext& Context, |
|
![]() ![]() |
FEmitShaderExpression * | GetValueShader
(
FEmitContext& Context, |
|
![]() ![]() |
FEmitShaderExpression * | GetValueShader
(
FEmitContext& Context, |
Get Shader/Preshader/Constant value for the expression |
![]() ![]() |
FEmitShaderExpression * | GetValueShader
(
FEmitContext& Context, |
Get Shader/Preshader/Constant value for the expression |
![]() ![]() |
FEmitShaderExpression * | GetValueShader
(
FEmitContext& Context, |
Get Shader/Preshader/Constant value for the expression |
![]() ![]() |
FEmitShaderExpression * | GetValueShader
(
FEmitContext& Context, |
Get Shader/Preshader/Constant value for the expression |
![]() ![]() |
FEmitShaderExpression * | GetValueShader
(
FEmitContext& Context, |
Get Shader/Preshader/Constant value for the expression |
![]() ![]() |
bool | PrepareValue
(
FEmitContext& Context, |
Computes a FPreparedType for this expression, given a FRequestedType. |