UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SlateShaders.cpp File Reference

Macros

#define IMPLEMENT_SLATE_PIXELSHADER_TYPE(ShaderType, bDrawDisabledEffect, bUseTextureAlpha, bUseTextureGrayscale, bIsVirtualTexture)
 

Functions

 IMPLEMENT_TYPE_LAYOUT (FSlateElementPS)
 
 IMPLEMENT_SHADER_TYPE (, FSlateElementVS, TEXT("/Engine/Private/SlateVertexShader.usf"), TEXT("Main"), SF_Vertex)
 
 IMPLEMENT_SHADER_TYPE (, FSlateDebugOverdrawPS, TEXT("/Engine/Private/SlateElementPixelShader.usf"), TEXT("DebugOverdrawMain"), SF_Pixel)
 
 IMPLEMENT_GLOBAL_SHADER (FSlateMaskingVS, "/Engine/Private/SlateMaskingShader.usf", "MainVS", SF_Vertex)
 
 IMPLEMENT_GLOBAL_SHADER (FSlateMaskingPS, "/Engine/Private/SlateMaskingShader.usf", "MainPS", SF_Pixel)
 
 IMPLEMENT_SHADER_TYPE (, FSlateDebugBatchingPS, TEXT("/Engine/Private/SlateElementPixelShader.usf"), TEXT("DebugBatchingMain"), SF_Pixel)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (Default, false, true, true, false)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (Default, false, true, true, true)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (Border, false, true, false, false)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (Default, true, true, true, false)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (Default, true, true, true, true)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (Border, true, true, false, false)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (Default, false, false, true, false)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (Default, false, false, true, true)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (Border, false, false, false, false)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (Default, true, false, true, false)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (Default, true, false, true, true)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (Border, true, false, false, false)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (Default, true, true, false, false)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (Default, true, true, false, true)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (Default, true, false, false, false)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (Default, true, false, false, true)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (Default, false, true, false, false)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (Default, false, true, false, true)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (Default, false, false, false, false)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (Default, false, false, false, true)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (GrayscaleFont, false, true, false, false)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (GrayscaleFont, true, true, false, false)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (ColorFont, false, true, false, false)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (ColorFont, true, true, false, false)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (LineSegment, false, true, false, false)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (LineSegment, true, true, false, false)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (RoundedBox, false, true, false, false)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (RoundedBox, true, true, false, false)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (SdfFont, false, true, false, false)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (SdfFont, true, true, false, false)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (MsdfFont, false, true, false, false)
 
 IMPLEMENT_SLATE_PIXELSHADER_TYPE (MsdfFont, true, true, false, false)
 
 IMPLEMENT_GLOBAL_SHADER_PARAMETER_STRUCT (FSlateElementVirtualTextureParams, "SlateElementVirtualTextureParams")
 

Variables

EColorVisionDeficiency GSlateColorDeficiencyType = EColorVisionDeficiency::NormalVision
 
int32 GSlateColorDeficiencySeverity = 0
 
bool GSlateColorDeficiencyCorrection = false
 
bool GSlateShowColorDeficiencyCorrectionWithDeficiency = false
 
TGlobalResource< FSlateVertexDeclarationGSlateVertexDeclaration
 
TGlobalResource< FSlateInstancedVertexDeclarationGSlateInstancedVertexDeclaration
 
TGlobalResource< FSlateMaskingVertexDeclarationGSlateMaskingVertexDeclaration
 

Macro Definition Documentation

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE

#define IMPLEMENT_SLATE_PIXELSHADER_TYPE (   ShaderType,
  bDrawDisabledEffect,
  bUseTextureAlpha,
  bUseTextureGrayscale,
  bIsVirtualTexture 
)
Value:
IMPLEMENT_SHADER_TYPE(template<>,TSlateElementPS##ShaderType##bDrawDisabledEffect##bUseTextureAlpha##bUseTextureGrayscale##bIsVirtualTexture##A,TEXT("/Engine/Private/SlateElementPixelShader.usf"),TEXT("Main"),SF_Pixel);
#define TEXT(x)
Definition Platform.h:1272
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
@ SF_Pixel
Definition RHIDefinitions.h:206
Definition SlateShaders.h:151

Function Documentation

◆ IMPLEMENT_GLOBAL_SHADER() [1/2]

IMPLEMENT_GLOBAL_SHADER ( FSlateMaskingPS  ,
"/Engine/Private/SlateMaskingShader.usf"  ,
"MainPS"  ,
SF_Pixel   
)

◆ IMPLEMENT_GLOBAL_SHADER() [2/2]

IMPLEMENT_GLOBAL_SHADER ( FSlateMaskingVS  ,
"/Engine/Private/SlateMaskingShader.usf"  ,
"MainVS"  ,
SF_Vertex   
)

◆ IMPLEMENT_GLOBAL_SHADER_PARAMETER_STRUCT()

IMPLEMENT_GLOBAL_SHADER_PARAMETER_STRUCT ( FSlateElementVirtualTextureParams  ,
"SlateElementVirtualTextureParams"   
)

Uniform buffer layout for sampling virtual texture.

◆ IMPLEMENT_SHADER_TYPE() [1/3]

IMPLEMENT_SHADER_TYPE ( FSlateDebugBatchingPS  ,
TEXT("/Engine/Private/SlateElementPixelShader.usf" ,
TEXT("DebugBatchingMain")  ,
SF_Pixel   
)

◆ IMPLEMENT_SHADER_TYPE() [2/3]

IMPLEMENT_SHADER_TYPE ( FSlateDebugOverdrawPS  ,
TEXT("/Engine/Private/SlateElementPixelShader.usf" ,
TEXT("DebugOverdrawMain")  ,
SF_Pixel   
)

◆ IMPLEMENT_SHADER_TYPE() [3/3]

IMPLEMENT_SHADER_TYPE ( FSlateElementVS  ,
TEXT("/Engine/Private/SlateVertexShader.usf" ,
TEXT("Main")  ,
SF_Vertex   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [1/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( Border  ,
false  ,
false  ,
false  ,
false   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [2/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( Border  ,
false  ,
true  ,
false  ,
false   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [3/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( Border  ,
true  ,
false  ,
false  ,
false   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [4/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( Border  ,
true  ,
true  ,
false  ,
false   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [5/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( ColorFont  ,
false  ,
true  ,
false  ,
false   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [6/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( ColorFont  ,
true  ,
true  ,
false  ,
false   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [7/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( Default  ,
false  ,
false  ,
false  ,
false   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [8/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( Default  ,
false  ,
false  ,
false  ,
true   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [9/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( Default  ,
false  ,
false  ,
true  ,
false   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [10/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( Default  ,
false  ,
false  ,
true  ,
true   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [11/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( Default  ,
false  ,
true  ,
false  ,
false   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [12/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( Default  ,
false  ,
true  ,
false  ,
true   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [13/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( Default  ,
false  ,
true  ,
true  ,
false   
)

All the different permutations of shaders used by slate. Uses defines to avoid dynamic branches

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [14/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( Default  ,
false  ,
true  ,
true  ,
true   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [15/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( Default  ,
true  ,
false  ,
false  ,
false   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [16/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( Default  ,
true  ,
false  ,
false  ,
true   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [17/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( Default  ,
true  ,
false  ,
true  ,
false   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [18/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( Default  ,
true  ,
false  ,
true  ,
true   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [19/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( Default  ,
true  ,
true  ,
false  ,
false   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [20/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( Default  ,
true  ,
true  ,
false  ,
true   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [21/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( Default  ,
true  ,
true  ,
true  ,
false   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [22/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( Default  ,
true  ,
true  ,
true  ,
true   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [23/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( GrayscaleFont  ,
false  ,
true  ,
false  ,
false   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [24/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( GrayscaleFont  ,
true  ,
true  ,
false  ,
false   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [25/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( LineSegment  ,
false  ,
true  ,
false  ,
false   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [26/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( LineSegment  ,
true  ,
true  ,
false  ,
false   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [27/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( MsdfFont  ,
false  ,
true  ,
false  ,
false   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [28/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( MsdfFont  ,
true  ,
true  ,
false  ,
false   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [29/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( RoundedBox  ,
false  ,
true  ,
false  ,
false   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [30/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( RoundedBox  ,
true  ,
true  ,
false  ,
false   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [31/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( SdfFont  ,
false  ,
true  ,
false  ,
false   
)

◆ IMPLEMENT_SLATE_PIXELSHADER_TYPE() [32/32]

IMPLEMENT_SLATE_PIXELSHADER_TYPE ( SdfFont  ,
true  ,
true  ,
false  ,
false   
)

◆ IMPLEMENT_TYPE_LAYOUT()

IMPLEMENT_TYPE_LAYOUT ( FSlateElementPS  )

Variable Documentation

◆ GSlateColorDeficiencyCorrection

bool GSlateColorDeficiencyCorrection = false

◆ GSlateColorDeficiencySeverity

int32 GSlateColorDeficiencySeverity = 0

◆ GSlateColorDeficiencyType

Flag to determine if we are running with a color vision deficiency shader on

◆ GSlateInstancedVertexDeclaration

TGlobalResource<FSlateInstancedVertexDeclaration> GSlateInstancedVertexDeclaration

The instanced simple element vertex declaration.

◆ GSlateMaskingVertexDeclaration

TGlobalResource<FSlateMaskingVertexDeclaration> GSlateMaskingVertexDeclaration

The vertex declaration for rendering stencil masks.

◆ GSlateShowColorDeficiencyCorrectionWithDeficiency

bool GSlateShowColorDeficiencyCorrectionWithDeficiency = false

◆ GSlateVertexDeclaration

TGlobalResource<FSlateVertexDeclaration> GSlateVertexDeclaration

The Slate vertex declaration.