UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Clipping.h File Reference
#include "CoreMinimal.h"
#include "UObject/ObjectMacros.h"
#include "Layout/SlateRect.h"
#include "Rendering/RenderingCommon.h"
#include "Clipping.generated.h"

Go to the source code of this file.

Classes

class  FSlateClippingZone
 
struct  TIsPODType< FSlateClippingZone >
 
class  FSlateClippingState
 
struct  FClipStateHandle
 
class  FSlateCachedClipState
 
class  FSlateClippingManager
 

Enumerations

enum class  EWidgetClipping : uint8 {
  Inherit , ClipToBounds , UMETA =(DisplayName = "Clip To Bounds - Without Intersecting (Advanced)") , UMETA =(DisplayName = "Clip To Bounds - Always (Advanced)") ,
  UMETA =(DisplayName = "On Demand (Advanced)")
}
 
enum class  EClippingMethod : uint8 { Scissor , Stencil }
 
enum class  EClippingFlags : uint8 { None = 0 , AlwaysClip = 1 << 0 }
 

Enumeration Type Documentation

◆ EClippingFlags

enum class EClippingFlags : uint8
strong

Indicates the method of clipping that should be used on the GPU.

Enumerator
None 
AlwaysClip 

If the clipping state is always clip, we cache it at a higher level.

◆ EClippingMethod

enum class EClippingMethod : uint8
strong

Indicates the method of clipping that should be used on the GPU.

Enumerator
Scissor 
Stencil 

◆ EWidgetClipping

enum class EWidgetClipping : uint8
strong

This enum controls clipping of widgets in Slate. By default all SWidgets do not need to clip their children. Most of the time, you don't need to clip, the only times it becomes important is when something might become hidden due to panning. You should use this wisely, as Slate can not batch across clipping areas, so if widget A and widget B are set to EWidgetClipping::Yes, no drawing that happens inside their widget trees will ever be batch together, adding additional GPU overhead.

Enumerator
Inherit 

This widget does not clip children, it and all children inherit the clipping area of the last widget that clipped.

ClipToBounds 

This widget clips content the bounds of this widget. It intersects those bounds with any previous clipping area.

UMETA 

This widget clips to its bounds. It does NOT intersect with any existing clipping geometry, it pushes a new clipping state. Effectively allowing it to render outside the bounds of hierarchy that does clip.

NOTE: This will NOT allow you ignore the clipping zone that is set to [Yes - Always].

UMETA 

This widget clips to its bounds. It intersects those bounds with any previous clipping area.

NOTE: This clipping area can NOT be ignored, it will always clip children. Useful for hard barriers in the UI where you never want animations or other effects to break this region.

UMETA 

This widget clips to its bounds when it's Desired Size is larger than the allocated geometry the widget is given. If that occurs, it work like [Yes].

NOTE: This mode was primarily added for Text, which is often placed into containers that eventually are resized to not be able to support the length of the text. So rather than needing to tag every container that could contain text with [Yes], which would result in almost no batching, this mode was added to dynamically adjust the clipping if needed. The reason not every panel is set to OnDemand, is because not every panel returns a Desired Size that matches what it plans to render at.