UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
DebugCanvas.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 "RenderResource.h"
7#include "RendererInterface.h"
9#include "CanvasTypes.h"
10#include "Widgets/SLeafWidget.h"
12
14class FSceneViewport;
15class FViewportClient;
16
18
21{
23 {
25 }
26
27 SLATE_ATTRIBUTE(FSceneViewport*, SceneViewport)
28
30
31public:
33
34 ENGINE_API void Construct(const FArguments& InArgs);
35
37 ENGINE_API int32 OnPaint(const FPaintArgs& Args, const FGeometry& AllottedGeometry, const FSlateRect& MyCullingRect, FSlateWindowElementList& OutDrawElements, int32 LayerId, const FWidgetStyle& InWidgetStyle, bool bParentEnabled) const override;
38 ENGINE_API virtual FVector2D ComputeDesiredSize(float LayoutScaleMultiplier) const override;
39
42private:
44 TAttribute<FSceneViewport*> SceneViewport;
45};
46
51{
52public:
55
58
63
67 void InitDebugCanvas(FViewportClient* ViewportClient, UWorld* InWorld);
68
72 UE_DEPRECATED(5.6, "There are no longer any render thread resources to release. Call ReleaseInternalTexture() on the game thread instead.")
74
79
80 // FGCObject interface
81 virtual void AddReferencedObjects(FReferenceCollector& Collector) override;
82 virtual FString GetReferencerName() const override { return TEXT("FDebugCanvasDrawer"); }
83
84private:
88 virtual void Draw_RenderThread(FRDGBuilder& GraphBuilder, const FDrawPassInputs& Inputs) override;
89
93 void DeleteRenderThreadCanvas();
94
98 FCanvasPtr GetRenderThreadCanvas();
99
103 void SetRenderThreadCanvas(const FIntRect& InCanvasRect, FCanvasPtr& Canvas, class FTextureRenderTargetResource* LayerResource);
104
108 void HandleReleaseFontResources(const class FSlateFontCache& InFontCache);
109
110private:
112 FCanvasPtr GameThreadCanvas;
114 FCanvasPtr RenderThreadCanvas;
120 class FTextureRenderTargetResource* LayerResource = nullptr;
122 uint32 LayerID;
124 bool bCanvasRenderedLastFrame;
125};
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#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
TSharedPtr< FCanvas, ESPMode::ThreadSafe > FCanvasPtr
Definition DebugCanvas.h:17
#define SLATE_ATTRIBUTE(AttrType, AttrName)
Definition DeclarativeSyntaxSupport.h:192
#define SLATE_BEGIN_ARGS(InWidgetType)
Definition DeclarativeSyntaxSupport.h:63
#define SLATE_END_ARGS()
Definition DeclarativeSyntaxSupport.h:116
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition CanvasTypes.h:211
Definition DebugCanvas.h:51
virtual FString GetReferencerName() const override
Definition DebugCanvas.h:82
void ReleaseResources()
Definition DebugCanvas.h:73
void BeginRenderingCanvas(const FIntRect &InCanvasRect)
Definition DebugCanvas.cpp:176
virtual void AddReferencedObjects(FReferenceCollector &Collector) override
Definition DebugCanvas.cpp:134
FDebugCanvasDrawer()
Definition DebugCanvas.cpp:77
~FDebugCanvasDrawer()
Definition DebugCanvas.cpp:139
FCanvas * GetGameThreadDebugCanvas()
Definition DebugCanvas.cpp:170
void InitDebugCanvas(FViewportClient *ViewportClient, UWorld *InWorld)
Definition DebugCanvas.cpp:215
void ReleaseInternalTexture()
Definition DebugCanvas.cpp:90
Definition GCObject.h:128
Definition PaintArgs.h:23
Definition RenderGraphBuilder.h:49
Definition RHICommandList.h:4626
Definition UObjectGlobals.h:2492
Definition SceneViewport.h:35
Definition DebugCanvas.cpp:28
Definition FontCache.h:756
Definition SlateRect.h:26
Definition DrawElements.h:220
Definition TextureResource.h:363
Definition ViewportClient.h:28
Definition WidgetStyle.h:15
Definition RenderingCommon.h:903
struct UE_DEPRECATED(5.5, "Use ICustomSlateElement::Draw instead") FSlateCustomDrawParams
Definition RenderingCommon.h:928
Definition DebugCanvas.h:21
ENGINE_API void Construct(const FArguments &InArgs)
Definition DebugCanvas.cpp:343
virtual ENGINE_API FVector2D ComputeDesiredSize(float LayoutScaleMultiplier) const override
Definition DebugCanvas.cpp:360
ENGINE_API void SetSceneViewport(FSceneViewport *InSceneViewport)
Definition DebugCanvas.cpp:373
ENGINE_API int32 OnPaint(const FPaintArgs &Args, const FGeometry &AllottedGeometry, const FSlateRect &MyCullingRect, FSlateWindowElementList &OutDrawElements, int32 LayerId, const FWidgetStyle &InWidgetStyle, bool bParentEnabled) const override
Definition DebugCanvas.cpp:348
ENGINE_API SDebugCanvas()
Definition DebugCanvas.cpp:337
Definition SLeafWidget.h:29
Definition Attribute.h:17
Definition SharedPointer.h:692
Definition World.h:918
static SLATECORE_API const EVisibility HitTestInvisible
Definition Visibility.h:23
Definition Geometry.h:40
Definition ObjectPtr.h:488