UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SWidgetUtils.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Widgets/SWidget.h"
7
8#if STATS
9
12{
17 {
18 if (Widget)
19 {
20#if CPUPROFILERTRACE_ENABLED
22#else
23 const bool bCpuChannelEnabled = false;
24#endif
25 bool bStarted = false;
27 if (FThreadStats::IsCollectingData(WidgetStatId))
28 {
30 bStarted = true;
31 }
32
33#if CPUPROFILERTRACE_ENABLED
34 if (!bStarted && bCpuChannelEnabled && WidgetStatId.IsValidStat())
35 {
36 StartTrace(WidgetStatId.GetName(), WidgetStatId.GetStatDescriptionWIDE());
37 }
38#endif
39 }
40 }
41
46 {
47 Stop();
48 }
49};
50
51#define SCOPE_CYCLE_SWIDGET(Object) \
52 FScopeCycleCounterSWidget ANONYMOUS_VARIABLE(SlateWidgetCycleCount_) (Object);
53
54#elif UE_USE_LIGHTWEIGHT_STATS
55
57{
59#if CPUPROFILERTRACE_ENABLED
60 bool bPop = false;
61#endif
62
64 : ScopeCycleCounter(Widget ? Widget->GetStatID().StatString : nullptr)
65 {
66#if CPUPROFILERTRACE_ENABLED
68 {
69 const TStatId StatId = Widget->GetStatID();
70 if (StatId.IsValidStat())
71 {
72 bPop = true;
73 FCpuProfilerTrace::OutputBeginDynamicEvent(StatId.StatString);
74 }
75 }
76#endif
77 }
78
80 {
81#if CPUPROFILERTRACE_ENABLED
82 if (bPop)
83 {
84 FCpuProfilerTrace::OutputEndEvent();
85 }
86#endif
87 }
88};
89
90#define SCOPE_CYCLE_SWIDGET(Object) \
91 FScopeCycleCounterSWidget ANONYMOUS_VARIABLE(SlateWidgetCycleCount_) (Object);
92
93#else
94
95#define SCOPE_CYCLE_SWIDGET(Object)
96
97#endif
int32 GCycleStatsShouldEmitNamedEvents
Definition CoreGlobals.cpp:462
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
@ Stop
Definition PrecomputedVolumetricLightmapStreaming.cpp:26
#define UE_TRACE_CHANNELEXPR_IS_ENABLED(ChannelsExpr)
Definition Trace.h:452
Definition LightweightStats.h:424
Definition SWidget.h:165
@ Start
Definition GeoEnum.h:100
Definition LightweightStats.h:416