Navigation
API > API/Runtime > API/Runtime/Engine
A material render proxy used by the renderer.
| Name | FMaterialRenderProxy |
| Type | class |
| Header File | /Engine/Source/Runtime/Engine/Public/Materials/MaterialRenderProxy.h |
| Include Path | #include "Materials/MaterialRenderProxy.h" |
Syntax
class FMaterialRenderProxy :
public FRenderResource ,
public FNoncopyable
Inheritance Hierarchy
- FRenderResource → FMaterialRenderProxy
- FNoncopyable → FMaterialRenderProxy
Derived Classes
FMaterialRenderProxy derived class hierarchy
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FMaterialRenderProxy
(
FString InMaterialName |
Default constructor. | Materials/MaterialRenderProxy.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~FMaterialRenderProxy() |
Destructor. | Materials/MaterialRenderProxy.h |
Constants
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| DeferredUniformExpressionCacheRequests | TSet< FMaterialRenderProxy * > | Materials/MaterialRenderProxy.h | |
| DeferredUniformExpressionCacheRequestsMutex | UE::FMutex | Materials/MaterialRenderProxy.h | |
| MaterialRenderProxyMap | TSet< FMaterialRenderProxy * > | Tracks all material render proxies in all scenes. | Materials/MaterialRenderProxy.h |
| MaterialRenderProxyMapLock | FCriticalSection | Lock that guards the access to the render proxy map | Materials/MaterialRenderProxy.h |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| ImmutableSamplerState | FImmutableSamplerState | Cached external texture immutable samplers | Materials/MaterialRenderProxy.h | |
| UniformExpressionCache | FUniformExpressionCacheContainer | Cached uniform expressions. | Materials/MaterialRenderProxy.h |
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| bHasMaterialCacheCallbacks | uint8 | Materials/MaterialRenderProxy.h | ||
| bHasVirtualTextureCallbacks | uint8 | If any VT producer destroyed callbacks have been registered | Materials/MaterialRenderProxy.h | |
| bMarkedTransient | uint8 | Set true if this is a transient, one frame object. | Materials/MaterialRenderProxy.h | |
| DeletedFlag | uint8 | Materials/MaterialRenderProxy.h | ||
| MarkedForGarbageCollection | uint8 | For tracking down a bug accessing a deleted proxy. | Materials/MaterialRenderProxy.h | |
| MaterialName | FString | Materials/MaterialRenderProxy.h | ||
| Mutex | UE::FMutex | Mutex for locking uniform expression invalidation / evaluation for this material. | Materials/MaterialRenderProxy.h | |
| NeuralProfileRT | const UNeuralProfile * | Materials/MaterialRenderProxy.h | ||
| ReleaseResourceFlag | uint8 | Materials/MaterialRenderProxy.h | ||
| SpecularProfileOverrideRT | const USpecularProfile * | Materials/MaterialRenderProxy.h | ||
| SpecularProfilesRT | TArray< const USpecularProfile * > | Materials/MaterialRenderProxy.h | ||
| SubsurfaceProfileRT | const USubsurfaceProfile * | 0 if not set, game thread pointer, do not dereference, only for comparison | Materials/MaterialRenderProxy.h | |
| SubsurfaceProfilesRT | TArray< const USubsurfaceProfile * > | Materials/MaterialRenderProxy.h | ||
| UniformExpressionCacheSerialNumber | int32 | Incremented each time UniformExpressionCache is modified | Materials/MaterialRenderProxy.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void AddSpecularProfileRT
(
const USpecularProfile* Ptr |
Specular profiles. | Materials/MaterialRenderProxy.h | |
void AddSubsurfaceProfileRT
(
const USubsurfaceProfile* Ptr |
Materials/MaterialRenderProxy.h | ||
void CacheUniformExpressions
(
FRHICommandListBase& RHICmdList, |
Caches uniform expressions for efficient runtime evaluation. | Materials/MaterialRenderProxy.h | |
void CacheUniformExpressions_GameThread
(
bool bRecreateUniformBuffer |
Enqueues a rendering command to cache uniform expressions for efficient runtime evaluation. | Materials/MaterialRenderProxy.h | |
void CancelCacheUniformExpressions() |
Cancels an in-flight cache operation. | Materials/MaterialRenderProxy.h | |
void ClearSubsurfaceProfileRT() |
Subsurface profiles. | Materials/MaterialRenderProxy.h | |
void EvaluateUniformExpressions
(
FRHICommandListBase& RHICmdList, |
Evaluates uniform expressions and stores them in OutUniformExpressionCache. | Materials/MaterialRenderProxy.h | |
virtual EBlendableLocation GetBlendableLocation
(
const FMaterial* Base |
Materials/MaterialRenderProxy.h | ||
virtual int32 GetBlendablePriority
(
const FMaterial* Base |
Materials/MaterialRenderProxy.h | ||
int32 GetExpressionCacheSerialNumber() |
Materials/MaterialRenderProxy.h | ||
const FMaterialRenderProxy * GetFallback
(
ERHIFeatureLevel::Type InFeatureLevel |
Materials/MaterialRenderProxy.h | ||
const FMaterial & GetIncompleteMaterialWithFallback
(
ERHIFeatureLevel::Type InFeatureLevel |
Finds the FMaterial to use for rendering this FMaterialRenderProxy. | Materials/MaterialRenderProxy.h | |
virtual UMaterialInterface * GetMaterialInterface() |
Materials/MaterialRenderProxy.h | ||
const FString & GetMaterialName() |
Materials/MaterialRenderProxy.h | ||
const FMaterial * GetMaterialNoFallback
(
ERHIFeatureLevel::Type InFeatureLevel |
Returns the FMaterial, without using a fallback if the FMaterial doesn't have a valid shader map. | Materials/MaterialRenderProxy.h | |
const FMaterial & GetMaterialWithFallback
(
ERHIFeatureLevel::Type InFeatureLevel, |
Finds the FMaterial to use for rendering this FMaterialRenderProxy. | Materials/MaterialRenderProxy.h | |
const UNeuralProfile * GetNeuralProfileRT() |
Materials/MaterialRenderProxy.h | ||
bool GetParameterCollectionValue
(
const FHashedMaterialParameterInfo& ParameterInfo, |
Materials/MaterialRenderProxy.h | ||
bool GetParameterShaderValue
(
EMaterialParameterType Type, |
Materials/MaterialRenderProxy.h | ||
bool GetParameterValue
(
EMaterialParameterType Type, |
Materials/MaterialRenderProxy.h | ||
bool GetScalarValue
(
const FHashedMaterialParameterInfo& ParameterInfo, |
Materials/MaterialRenderProxy.h | ||
const USpecularProfile * GetSpecularProfileOverrideRT() |
Materials/MaterialRenderProxy.h | ||
const USpecularProfile * GetSpecularProfileRT
(
uint32 Index |
Materials/MaterialRenderProxy.h | ||
const USubsurfaceProfile * GetSubsurfaceProfileRT
(
uint32 Index |
Materials/MaterialRenderProxy.h | ||
const USubsurfaceProfile * GetSubsurfaceProfileRT () |
Materials/MaterialRenderProxy.h | ||
bool GetTextureCollectionValue
(
const FHashedMaterialParameterInfo& ParameterInfo, |
Materials/MaterialRenderProxy.h | ||
bool GetTextureValue
(
const FHashedMaterialParameterInfo& ParameterInfo, |
Materials/MaterialRenderProxy.h | ||
bool GetTextureValue
(
const FHashedMaterialParameterInfo& ParameterInfo, |
Materials/MaterialRenderProxy.h | ||
bool GetTextureValue
(
const FHashedMaterialParameterInfo& ParameterInfo, |
Materials/MaterialRenderProxy.h | ||
| Materials/MaterialRenderProxy.h | |||
virtual bool GetUserSceneTextureOverride
(
FName& InOutValue |
Materials/MaterialRenderProxy.h | ||
bool GetVectorValue
(
const FHashedMaterialParameterInfo& ParameterInfo, |
Materials/MaterialRenderProxy.h | ||
void InvalidateUniformExpressionCache
(
bool bRecreateUniformBuffer |
Invalidates the uniform expression cache. | Materials/MaterialRenderProxy.h | |
bool IsDeleted() |
Materials/MaterialRenderProxy.h | ||
bool IsMarkedForGarbageCollection() |
Materials/MaterialRenderProxy.h | ||
void MarkForGarbageCollection() |
Materials/MaterialRenderProxy.h | ||
void MarkTransient() |
Materials/MaterialRenderProxy.h | ||
const uint32 NumSpecularProfileRT() |
Materials/MaterialRenderProxy.h | ||
const uint32 NumSubsurfaceProfileRT() |
Materials/MaterialRenderProxy.h | ||
void SetNeuralProfileRT
(
const UNeuralProfile* Ptr |
Neural profiles. | Materials/MaterialRenderProxy.h | |
void SetSpecularProfileOverrideRT
(
const USpecularProfile* Ptr |
Specular profiles override. | Materials/MaterialRenderProxy.h | |
void SetSubsurfaceProfileRT
(
const USubsurfaceProfile* Ptr |
Subsurface profile When Substrate is enabled, this is ONLY used as an override for Subsurface Profile on material instance (override all Subsurface Profiles at once for now) | Materials/MaterialRenderProxy.h | |
void UpdateUniformExpressionCacheIfNeeded
(
ERHIFeatureLevel::Type InFeatureLevel |
Materials/MaterialRenderProxy.h | ||
const FMaterial * UpdateUniformExpressionCacheIfNeeded
(
FRHICommandListBase& RHICmdList, |
Materials/MaterialRenderProxy.h |
Overridden from FRenderResource
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void InitRHI
(
FRHICommandListBase& RHICmdList |
Materials/MaterialRenderProxy.h | ||
virtual void ReleaseResource() |
Materials/MaterialRenderProxy.h | ||
virtual void ReleaseRHI() |
Materials/MaterialRenderProxy.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void EvaluateParameterCollections
(
FRHICommandListBase& RHICmdList, |
Materials/MaterialRenderProxy.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static const TSet< FMaterialRenderProxy * > & GetMaterialRenderProxyMap() |
Materials/MaterialRenderProxy.h | ||
static FCriticalSection & GetMaterialRenderProxyMapLock() |
Materials/MaterialRenderProxy.h | ||
static bool HasDeferredUniformExpressionCacheRequests() |
Materials/MaterialRenderProxy.h | ||
static void UpdateDeferredCachedUniformExpressions () |
Materials/MaterialRenderProxy.h | ||
static void UpdateDeferredCachedUniformExpressions
(
FRHICommandListBase& RHICmdList, |
Materials/MaterialRenderProxy.h |