UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
BlendableInterface.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "UObject/Interface.h"
7#include "BlendableInterface.generated.h"
8
11
13UENUM()
15{
23 BL_SceneColorBeforeDOF = 2 UMETA(DisplayName="Scene Color Before DOF"),
24
32 BL_SceneColorAfterDOF = 1 UMETA(DisplayName = "Scene Color After DOF"),
33
41 BL_TranslucencyAfterDOF = 5 UMETA(DisplayName = "Translucency After DOF"),
42
49 BL_SSRInput = 4 UMETA(DisplayName = "SSR Input"),
50
57 BL_SceneColorBeforeBloom = 6 UMETA(DisplayName = "Scene Color Before Bloom"),
58
66 BL_ReplacingTonemapper = 3 UMETA(DisplayName="Replacing the Tonemapper"),
67
75 BL_SceneColorAfterTonemapping = 0 UMETA(DisplayName = "Scene Color After Tonemapping"),
76
78
79 // Olds names that needs to be kept forever to ensure asset serialization to work correctly when UENUM() switched from serializing int to names.
80 BL_BeforeTranslucency UE_DEPRECATED(5.4, "Renamed to BL_SceneColorBeforeDOF") = BL_SceneColorBeforeDOF UMETA(Hidden),
81 BL_BeforeTonemapping UE_DEPRECATED(5.4, "Renamed to BL_SceneColorAfterDOF") = BL_SceneColorAfterDOF UMETA(Hidden),
82 BL_AfterTonemapping UE_DEPRECATED(5.4, "Renamed to BL_SceneColorAfterTonemapping") = BL_SceneColorAfterTonemapping UMETA(Hidden),
83};
84
86UINTERFACE(MinimalAPI)
91
96{
98
99
100 virtual void OverrideBlendableSettings(class FSceneView& View, float Weight) const = 0;
101};
102
104{
105 // Default constructor
107 : MaterialInterface(0), bIsMID(false), Location(BL_MAX), Priority(0)
108 {
109 check(!IsValid());
110 }
111
112 // Constructor
118
119 // Constructor
125
126 UMaterialInterface* GetMaterialInterface() const { return MaterialInterface; }
128 UMaterialInstanceDynamic* GetMID() const { check(bIsMID); return (UMaterialInstanceDynamic*)MaterialInterface; }
129
131 static const FName& GetFName()
132 {
133 static const FName Name = FName(TEXT("FPostProcessMaterialNode"));
134
135 return Name;
136 }
137
138 struct FCompare
139 {
140 inline bool operator()(const FPostProcessMaterialNode& P1, const FPostProcessMaterialNode& P2) const
141 {
142 if(P1.Location < P2.Location) return true;
143 if(P1.Location > P2.Location) return false;
144
145 if(P1.Priority < P2.Priority) return true;
146 if(P1.Priority > P2.Priority) return false;
147
148 return false;
149 }
150 };
151
152 EBlendableLocation GetLocation() const { return Location; }
153 int32 GetPriority() const { return Priority; }
154 bool GetIsBlendable() const { return bIsBlendable; }
155
156 bool IsValid() const { return MaterialInterface != 0; }
157
158private:
159 UMaterialInterface* MaterialInterface;
160
162 bool bIsMID;
163
164 EBlendableLocation Location;
165
167 int32 Priority;
168
170 bool bIsBlendable;
171};
#define check(expr)
Definition AssertionMacros.h:314
EBlendableLocation
Definition BlendableInterface.h:15
@ BL_SSRInput
Definition BlendableInterface.h:49
@ BL_SceneColorBeforeDOF
Definition BlendableInterface.h:23
@ BL_SceneColorBeforeBloom
Definition BlendableInterface.h:57
@ BL_SceneColorAfterDOF
Definition BlendableInterface.h:32
@ BL_MAX
Definition BlendableInterface.h:77
@ BL_TranslucencyAfterDOF
Definition BlendableInterface.h:41
@ BL_ReplacingTonemapper
Definition BlendableInterface.h:66
@ BL_SceneColorAfterTonemapping
Definition BlendableInterface.h:75
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
#define UMETA(...)
Definition ObjectMacros.h:747
#define UINTERFACE(...)
Definition ObjectMacros.h:780
#define GENERATED_IINTERFACE_BODY(...)
Definition ObjectMacros.h:770
#define GENERATED_UINTERFACE_BODY(...)
Definition ObjectMacros.h:769
#define UENUM(...)
Definition ObjectMacros.h:749
Definition NameTypes.h:617
Definition SceneView.h:1425
Definition BlendableInterface.h:96
Definition BlendableInterface.h:88
Definition Interface.h:19
Definition MaterialInstanceDynamic.h:15
Definition MaterialInterface.h:296
@ false
Definition radaudio_common.h:23
Definition BlendableInterface.h:139
bool operator()(const FPostProcessMaterialNode &P1, const FPostProcessMaterialNode &P2) const
Definition BlendableInterface.h:140
Definition BlendableInterface.h:104
bool IsValid() const
Definition BlendableInterface.h:156
FPostProcessMaterialNode(UMaterialInterface *InMaterialInterface, EBlendableLocation InLocation, int32 InPriority, bool InbIsBlendable)
Definition BlendableInterface.h:113
UMaterialInterface * GetMaterialInterface() const
Definition BlendableInterface.h:126
int32 GetPriority() const
Definition BlendableInterface.h:153
EBlendableLocation GetLocation() const
Definition BlendableInterface.h:152
bool GetIsBlendable() const
Definition BlendableInterface.h:154
FPostProcessMaterialNode(UMaterialInstanceDynamic *InMID, EBlendableLocation InLocation, int32 InPriority, bool InbIsBlendable)
Definition BlendableInterface.h:120
UMaterialInstanceDynamic * GetMID() const
Definition BlendableInterface.h:128
FPostProcessMaterialNode()
Definition BlendableInterface.h:106
static const FName & GetFName()
Definition BlendableInterface.h:131