UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
CanvasItem.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4 CanvasItem.h: Unreal canvas item definitions
5=============================================================================*/
6
7#pragma once
8
9#include "CoreMinimal.h"
10#include "Fonts/ShapedTextFwd.h"
11#include "Engine/EngineTypes.h"
12#include "Templates/Casts.h"
13#include "Fonts/SlateFontInfo.h"
14#include "Engine/Font.h"
15#include "SceneTypes.h"
16
19class FCanvas;
21class FTexture;
22class UMaterial;
23
25{
26public:
39
40 virtual ~FCanvasItem()
41 {
42 }
43
44 virtual void Draw( FCanvas* InCanvas ) = 0;
45
52 virtual void Draw( FCanvas* InCanvas, const FVector2D& InPosition )
53 {
55 Draw( InCanvas );
56 }
57
65 virtual void Draw( FCanvas* InCanvas, float X, float Y )
66 {
67 Position.X = X;
68 Position.Y = Y;
69 Draw( InCanvas );
70 }
71
72 /* Set the Color of the item. */
73 virtual void SetColor( const FLinearColor& InColor )
74 {
75 Color = InColor;
76 }
77
78 /* The position to draw the item. */
80
81 /* Stereo projection depth in game units. Default value 0 draws at canvas property StereoDepth. */
83
84 /* Blend mode. */
86
88
89 /* Used for batch rendering. */
91protected:
92 /* Color of the item. */
94};
95
96
97/* 'Tile' item can override size and UV . */
99{
100public:
108
117
125
135
146
155
166
172 ENGINE_API virtual void Draw( FCanvas* InCanvas ) override;
173
174 /* Expose the functions defined in the base class. */
175 using FCanvasItem::Draw;
176
177 /* Size of the tile. */
179
180 /* used to calculate depth. */
181 float Z;
182
183 /* UV Coordinates 0 (Left/Top). */
185
186 /* UV Coordinates 0 (Right/Bottom). */
188
189 /* Texture to render. */
191
192 /* Material proxy for rendering. */
194
195 /* Rotation. */
197
198 /* Pivot point, as percentage of tile (0-1). */
200
201private:
202 /* Render when we have a material proxy. */
203 void RenderMaterialTile( FCanvas* InCanvas, const FVector2D& InPosition );
204};
205
206/* Resizable 3x3 border item. */
208{
209public:
210
244
250 ENGINE_API virtual void Draw( FCanvas* InCanvas ) override;
251
252 virtual void SetColor(const FLinearColor& InColor) override final { FCanvasItem::SetColor(InColor); }
253
254
255 /* Expose the functions defined in the base class. */
256 using FCanvasItem::Draw;
257
258 /* Size of the border. */
260
263
266
267 /* used to calculate depth. */
268 float Z;
269
270 /* Border UV Coordinates 0 (Left/Top). */
272
273 /* Border UV Coordinates 1 (Right/Bottom). */
275
276 /* Corners texture. */
278
279 /* Background tiling texture. */
281
282 /* Border left tiling texture. */
284
285 /* Border right tiling texture. */
287
288 /* Border top tiling texture. */
290
291 /* Border bottom tiling texture. */
293
294 /* Rotation. */
296
297 /* Pivot point. */
299
302};
303
304/* Base item used for drawing text */
306{
307public:
310
317 void EnableShadow( const FLinearColor& InColor, const FVector2D& InOffset = FVector2D( 1.0f, 1.0f ) )
318 {
319 ShadowOffset = InOffset;
320 ShadowColor = InColor;
322 }
323
332
338 ENGINE_API virtual void Draw( FCanvas* InCanvas ) override;
339
340 virtual void SetColor(const FLinearColor& InColor) override final { FCanvasItem::SetColor(InColor); }
341
342 /* Expose the functions defined in the base class. */
343 using FCanvasItem::Draw;
344
345 /* Horizontal spacing adjustment. */
347
348 /* Depth sort key. */
349 float Depth;
350
351 /* Custom font render information. */
353
354 /* The color of the shadow */
356
357 /* The offset of the shadow. */
359
360 /* The size of the drawn text after the draw call. */
362
363 /* Centre the text in the viewport on horizontally. */
365
366 /* Centre the text in the viewport on vertically. */
368
369 /* Draw an outline on the text. */
371
372 /* The color of the outline. */
374
375 /* Disables correction of font render issue when using stereoscopic display. */
377
378 /* The scale of the text */
380
381protected:
382 /* Background tile used to fixup 3d text issues. */
384
388 virtual bool HasValidText() const = 0;
389
393 virtual ESimpleElementBlendMode GetTextBlendMode( const bool bHasShadow ) const = 0;
394
398 virtual FVector2D GetTextSize(float DPIScale) const = 0;
399
405
411 virtual void DrawStringInternal(FCanvas* InCanvas, const FVector2D& DrawPos, const FLinearColor& DrawColor, TArrayView<FTextEffect> Offsets) = 0;
412
416 /* Used for batching. */
418};
419
420/*
421 * Base item used for drawing simple text strings with misc optional items such as shadow, centering etc.
422 * Provides functions which operate on FStringView, which derived classes can use.
423 */
425{
426public:
427
442
457
458 virtual ~FCanvasSimpleTextItem() override = default;
459
460 /* Font to draw text with. */
461 const UFont* Font;
462
465
466protected:
469
470 //~ Begin FCanvasTextItemBase interface
471 virtual bool HasValidText() const override = 0;
472 ENGINE_API virtual ESimpleElementBlendMode GetTextBlendMode(const bool bHasShadow) const override;
473 virtual FVector2D GetTextSize(float DPIScale) const override = 0;
474 virtual void DrawStringInternal(FCanvas* InCanvas, const FVector2D& DrawPos, const FLinearColor& DrawColor, TArrayView<FTextEffect> Offsets) override = 0;
475 //~ End FCanvasTextItemBase interface
476
479
487
488};
489
490/*
491 * Text item with misc optional items such as shadow, centering etc.
492 * This class operates on FText.
493 */
495{
496public:
497
506 ENGINE_API FCanvasTextItem(const FVector2D& InPosition, const FText& InText, const UFont* InFont, const FLinearColor& InColor);
507
517
519
520 /* The text to draw. */
522
523protected:
524
525 //~ Begin FCanvasTextItemBase interface
526 ENGINE_API virtual bool HasValidText() const override;
527 ENGINE_API virtual FVector2D GetTextSize(float DPIScale) const override;
529 //~ End FCanvasTextItemBase interface
530
538
539};
540
541/*
542 * Text item with misc optional items such as shadow, centering etc.
543 * This class operates on FStringView - ensure that the underlying string is valid for
544 * the lifetime of the string view stored in this class.
545 */
547{
548public:
549
563
577
578 virtual ~FCanvasTextStringViewItem() override = default;
579
580 /* The text to draw. */
582
583protected:
584
585 //~ Begin FCanvasTextItemBase interface
586 ENGINE_API virtual bool HasValidText() const override;
587 ENGINE_API virtual FVector2D GetTextSize(float DPIScale) const override;
589 //~ End FCanvasTextItemBase interface
590
591};
592
593/* Text item which can handle complex shaped text. */
595{
596public:
610
613
614protected:
615
616 //~ Begin FCanvasTextItemBase interface
617 ENGINE_API virtual bool HasValidText() const override;
618 ENGINE_API virtual ESimpleElementBlendMode GetTextBlendMode( const bool bHasShadow ) const override;
619 ENGINE_API virtual FVector2D GetTextSize(float DPIScale) const override;
621 //~ End FCanvasTextItemBase interface
622
623};
624
625/* Line item. Note blend mode will be disregarded for these - only SE_BLEND_Opaque is currently supported. */
627{
628public:
630 : FCanvasItem( FVector2D::ZeroVector )
631 , LineThickness( 0.0f )
632 {
633 Origin.X = 0.0f;
634 Origin.Y = 0.0f;
635 Origin.Z = 0.0f;
636 EndPos.X = 0.0f;
637 EndPos.Y = 0.0f;
638 EndPos.Z = 0.0f;
639 }
648 , LineThickness( 0.0f )
649 {
650 Origin.X = InPosition.X;
651 Origin.Y = InPosition.Y;
652 Origin.Z = 0.0f;
653 EndPos.X = InEndPos.X;
654 EndPos.Y = InEndPos.Y;
655 EndPos.Z = 0.0f;
656 }
657
671
677 ENGINE_API virtual void Draw( FCanvas* InCanvas ) override;
678
685 virtual void Draw( FCanvas* InCanvas, const FVector2D& InPosition ) override
686 {
687 Origin.X = InPosition.X;
688 Origin.Y = InPosition.Y;
689 Draw( InCanvas );
690 }
698 virtual void Draw( FCanvas* InCanvas, const FVector2D& InStartPos, const FVector2D& InEndPos )
699 {
700 Origin.X = InStartPos.X;
701 Origin.Y = InStartPos.Y;
702 EndPos.X = InEndPos.X;
703 EndPos.Y = InEndPos.Y;
704 Draw( InCanvas );
705 }
713 virtual void Draw( FCanvas* InCanvas, float InX, float InY ) override
714 {
715 Origin.X = InX;
716 Origin.Y = InY;
717 Draw( InCanvas );
718 }
719
726 virtual void Draw( FCanvas* InCanvas, const FVector& InPosition )
727 {
729 Draw( InCanvas );
730 }
731
740 virtual void Draw( FCanvas* InCanvas, float X, float Y, float Z )
741 {
742 Origin.X = X;
743 Origin.Y = Y;
744 Origin.Z = Z;
745 Draw( InCanvas );
746 }
747
754 {
755 EndPos.X = InEndPos.X;
756 EndPos.Y = InEndPos.Y;
757 }
758
759 /* The origin of the line. */
761
762 /* The end position of the line. */
764
765 /* The thickness of the line. */
767};
768
770{
771public:
774 , Size( InSize )
775 , LineThickness( 0.0f ) {};
776
777 ENGINE_API virtual void Draw( FCanvas* InCanvas ) override;
778
779 /* Expose the functions defined in the base class. */
780 using FCanvasItem::Draw;
781
782 /* Size of the box. */
784
785 /* The thickness of the line. */
787private:
788 ENGINE_API void SetupBox();
789 TArray< FVector > Corners;
790};
791
796{
797public:
800 , Size( InSize )
801 , DashThickness( 0.0f )
802 , DashLength( 1.0f )
803 , DashGap( 1.0f )
804 {};
805
806 ENGINE_API virtual void Draw( FCanvas* InCanvas ) override;
807
808 /* Expose the functions defined in the base class. */
809 using FCanvasItem::Draw;
810
811 /* Size of the box. */
813
814 /* The thickness of the dashes. */
816
817 /* The length of the dashes. */
819
820 /* The length of the gap between dashes. */
821 float DashGap;
822};
823
824
826{
827public:
856
888
903
911 :FCanvasItem( FVector2D::ZeroVector )
912 , Texture( InTexture )
913 , MaterialRenderProxy( nullptr )
914 , BatchedElementParameters( nullptr )
915 {
916 check( InTriangleList.Num() >= 1 );
917
919 Position = TriangleList[ 0 ].V0_Pos;
920 };
921
923
924 /* Set all 3 points of triangle */
926 {
927 check( TriangleList.Num() != 0 );
928 TriangleList[0].V0_Pos = InPointA;
929 TriangleList[0].V1_Pos = InPointB;
930 TriangleList[0].V2_Pos = InPointC;
931 }
932
933 ENGINE_API virtual void Draw( FCanvas* InCanvas ) override;
934
935 /* Expose the functions defined in the base class. */
936 using FCanvasItem::Draw;
937
938 /* Set the Color of the item. */
939 ENGINE_API virtual void SetColor( const FLinearColor& InColor ) override;
940
941 /* texture to use for triangle(s). */
943
944 /* Material proxy for rendering. */
946
948
949 /* List of triangles. */
951};
952
953
955{
956public:
968 , TriListItem( nullptr )
969 , Texture( InTexture )
970 {
971 Color = InColor;
972 check( InNumSides >= 3 );
973 TriangleList.SetNum( InNumSides );
975 }
976
986
988 {
989 delete TriListItem;
990 }
991 ENGINE_API virtual void Draw( FCanvas* InCanvas ) override;
992
1000 {
1001 if( TriListItem )
1002 {
1003 delete TriListItem;
1004 }
1005 // todo: make this calculate the UVs correctly so if you pass a texture it will work as you would expect
1006 float Angle = 0.0f;
1007 int32 NumSides = TriangleList.Num();
1008 FVector2D LastPoint = InPosition + FVector2D( InRadius.X*FMath::Cos(Angle), InRadius.Y*FMath::Sin(Angle) );
1009 for(int32 i=1; i< NumSides+1; i++)
1010 {
1011 Angle = (2 * (float)UE_PI) * (float)i/(float)NumSides;
1012 TriangleList[ i - 1 ].V0_Pos = InPosition;
1013 TriangleList[ i - 1 ].V0_Color = Color;
1014 TriangleList[ i - 1 ].V1_Pos = LastPoint;
1015 TriangleList[ i - 1 ].V1_Color = Color;
1016 LastPoint = InPosition + FVector2D( InRadius.X*FMath::Cos(Angle), InRadius.Y*FMath::Sin(Angle) );
1017 TriangleList[ i - 1 ].V2_Pos = LastPoint;
1018 TriangleList[ i - 1 ].V2_Color = Color;
1019 }
1020 TriListItem = new FCanvasTriangleItem( TriangleList, Texture );
1021 }
1022
1023 /* Set the Color of the item. */
1024 ENGINE_API virtual void SetColor( const FLinearColor& InColor ) override final;
1025
1026private:
1027
1028 TArray< FCanvasUVTri > TriangleList;
1029 FCanvasTriangleItem* TriListItem;
1030 const FTexture* Texture;
1031};
1032
1033
1034#if WITH_EDITOR
1036{
1037public:
1039 ENGINE_API void Draw( class FViewport* Viewport, FCanvas* Canvas );
1040 struct LineVars
1041 {
1042 LineVars()
1043 {
1044 LineStart = FVector2D::ZeroVector;
1045 LineEnd = FVector2D::ZeroVector;
1048 bTestSet = false;
1049 Testangle = 0.0f;
1050 }
1051 FVector2D LineStart;
1052 FVector2D LineEnd;
1055 bool bTestSet;
1056 float Testangle;
1057 };
1059 static ENGINE_API bool bTestState;
1060 static ENGINE_API bool bShowTestbed;
1061 static ENGINE_API bool bShowLines;
1062 static ENGINE_API bool bShowBoxes;
1063 static ENGINE_API bool bShowTris;
1064 static ENGINE_API bool bShowText;
1065 static ENGINE_API bool bShowTiles;
1066
1068
1069};
1070#endif // WITH_EDITOR
1071
#define check(expr)
Definition AssertionMacros.h:314
@ ForceInitToZero
Definition CoreMiscDefines.h:156
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
TCopyQualifiersFromTo_T< From, To > * Cast(From *Src)
Definition Casts.h:95
EFontCacheType
Definition Font.h:18
#define X(Name, Desc)
Definition FormatStringSan.h:47
#define UE_REAL_TO_FLOAT(argument)
Definition LargeWorldCoordinates.h:30
UE::Math::TVector2< double > FVector2D
Definition MathFwd.h:48
ESimpleElementBlendMode
Definition SceneTypes.h:191
@ SE_BLEND_TranslucentAlphaOnly
Definition SceneTypes.h:206
@ SE_BLEND_Opaque
Definition SceneTypes.h:192
@ SE_BLEND_Translucent
Definition SceneTypes.h:194
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
#define UE_PI
Definition UnrealMathUtility.h:129
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition BatchedElements.h:88
Definition BatchedElements.h:102
Definition CanvasItem.h:208
FVector2D BorderUV1
Definition CanvasItem.h:274
const FTexture * BorderLeftTexture
Definition CanvasItem.h:283
FVector2D CornerSize
Definition CanvasItem.h:301
FVector2D PivotPoint
Definition CanvasItem.h:298
float Z
Definition CanvasItem.h:268
FVector2D BorderUV0
Definition CanvasItem.h:271
virtual void SetColor(const FLinearColor &InColor) override final
Definition CanvasItem.h:252
FVector2D BackgroundScale
Definition CanvasItem.h:265
const FTexture * BorderBottomTexture
Definition CanvasItem.h:292
const FTexture * BackgroundTexture
Definition CanvasItem.h:280
FCanvasBorderItem(const FVector2D &InPosition, const FTexture *InBorderTexture, const FTexture *InBackgroundTexture, const FTexture *InBorderLeftTexture, const FTexture *InBorderRightTexture, const FTexture *InBorderTopTexture, const FTexture *InBorderBottomTexture, const FVector2D &InSize, const FLinearColor &InColor)
Definition CanvasItem.h:220
const FTexture * BorderRightTexture
Definition CanvasItem.h:286
FVector2D Size
Definition CanvasItem.h:259
FRotator Rotation
Definition CanvasItem.h:295
virtual ENGINE_API void Draw(FCanvas *InCanvas) override
Definition CanvasItem.cpp:524
const FTexture * BorderTopTexture
Definition CanvasItem.h:289
const FTexture * BorderTexture
Definition CanvasItem.h:277
FVector2D BorderScale
Definition CanvasItem.h:262
Definition CanvasItem.h:770
virtual ENGINE_API void Draw(FCanvas *InCanvas) override
Definition CanvasItem.cpp:1590
FVector2D Size
Definition CanvasItem.h:783
FCanvasBoxItem(const FVector2D &InPosition, const FVector2D &InSize)
Definition CanvasItem.h:772
float LineThickness
Definition CanvasItem.h:786
Definition CanvasItem.h:796
FVector2d Size
Definition CanvasItem.h:812
FCanvasDashedBoxItem(const FVector2D &InPosition, const FVector2D &InSize)
Definition CanvasItem.h:798
float DashGap
Definition CanvasItem.h:821
virtual ENGINE_API void Draw(FCanvas *InCanvas) override
Definition CanvasItem.cpp:1620
float DashLength
Definition CanvasItem.h:818
float DashThickness
Definition CanvasItem.h:815
Definition CanvasItem.h:25
bool bFreezeTime
Definition CanvasItem.h:87
FCanvasItem(const FVector2D &InPosition)
Definition CanvasItem.h:32
virtual ~FCanvasItem()
Definition CanvasItem.h:40
FLinearColor Color
Definition CanvasItem.h:93
ESimpleElementBlendMode BlendMode
Definition CanvasItem.h:85
FVector2D Position
Definition CanvasItem.h:79
FBatchedElementParameters * BatchedElementParameters
Definition CanvasItem.h:90
virtual void Draw(FCanvas *InCanvas, const FVector2D &InPosition)
Definition CanvasItem.h:52
virtual void SetColor(const FLinearColor &InColor)
Definition CanvasItem.h:73
virtual void Draw(FCanvas *InCanvas, float X, float Y)
Definition CanvasItem.h:65
virtual void Draw(FCanvas *InCanvas)=0
uint32 StereoDepth
Definition CanvasItem.h:82
Definition CanvasItem.h:627
float LineThickness
Definition CanvasItem.h:766
FCanvasLineItem()
Definition CanvasItem.h:629
virtual ENGINE_API void Draw(FCanvas *InCanvas) override
Definition CanvasItem.cpp:1580
virtual void Draw(FCanvas *InCanvas, const FVector2D &InPosition) override
Definition CanvasItem.h:685
virtual void Draw(FCanvas *InCanvas, float InX, float InY) override
Definition CanvasItem.h:713
FCanvasLineItem(const FVector &InPosition, const FVector &InEndPos)
Definition CanvasItem.h:664
FCanvasLineItem(const FVector2D &InPosition, const FVector2D &InEndPos)
Definition CanvasItem.h:646
virtual void Draw(FCanvas *InCanvas, const FVector &InPosition)
Definition CanvasItem.h:726
virtual void Draw(FCanvas *InCanvas, float X, float Y, float Z)
Definition CanvasItem.h:740
FVector Origin
Definition CanvasItem.h:760
virtual void Draw(FCanvas *InCanvas, const FVector2D &InStartPos, const FVector2D &InEndPos)
Definition CanvasItem.h:698
void SetEndPos(const FVector2D &InEndPos)
Definition CanvasItem.h:753
FVector EndPos
Definition CanvasItem.h:763
Definition CanvasItem.h:955
FCanvasNGonItem(const FVector2D &InPosition, const FVector2D &InRadius, int32 InNumSides, const FTexture *InTexture, const FLinearColor &InColor)
Definition CanvasItem.h:966
virtual ENGINE_API void Draw(FCanvas *InCanvas) override
Definition CanvasItem.cpp:1778
virtual ENGINE_API void SetColor(const FLinearColor &InColor) override final
Definition CanvasItem.cpp:1784
void SetupPosition(const FVector2D &InPosition, const FVector2D &InRadius)
Definition CanvasItem.h:999
virtual ~FCanvasNGonItem()
Definition CanvasItem.h:987
Definition CanvasItem.h:595
FCanvasShapedTextItem(const FVector2D &InPosition, FShapedGlyphSequenceRef InShapedGlyphSequence, const FLinearColor &InColor)
Definition CanvasItem.h:604
virtual ENGINE_API ESimpleElementBlendMode GetTextBlendMode(const bool bHasShadow) const override
Definition CanvasItem.cpp:1423
virtual ENGINE_API bool HasValidText() const override
Definition CanvasItem.cpp:1418
virtual ENGINE_API void DrawStringInternal(FCanvas *InCanvas, const FVector2D &DrawPos, const FLinearColor &DrawColor, TArrayView< FTextEffect > TextEffects) override
Definition CanvasItem.cpp:1439
virtual ENGINE_API FVector2D GetTextSize(float DPIScale) const override
Definition CanvasItem.cpp:1434
FShapedGlyphSequencePtr ShapedGlyphSequence
Definition CanvasItem.h:612
Definition CanvasItem.h:425
FCanvasSimpleTextItem(const FVector2D &InPosition, const FSlateFontInfo &InFontInfo, const FLinearColor &InColor)
Definition CanvasItem.h:450
ENGINE_API void DrawStringInternal_RuntimeCache(FCanvas *InCanvas, FStringView Text, const FVector2D &DrawPos, const FLinearColor &DrawColor, TArrayView< FTextEffect > TextEffects)
Definition CanvasItem.cpp:1173
virtual FVector2D GetTextSize(float DPIScale) const override=0
virtual ~FCanvasSimpleTextItem() override=default
FCanvasSimpleTextItem(const FVector2D &InPosition, const UFont *InFont, const FLinearColor &InColor)
Definition CanvasItem.h:435
ENGINE_API EFontCacheType GetFontCacheType() const
Definition CanvasItem.cpp:945
ENGINE_API FVector2D GetTextSizeInternal(FStringView Text, float DPIScale) const
Definition CanvasItem.cpp:981
virtual void DrawStringInternal(FCanvas *InCanvas, const FVector2D &DrawPos, const FLinearColor &DrawColor, TArrayView< FTextEffect > Offsets) override=0
virtual bool HasValidText() const override=0
Definition CanvasItem.cpp:951
TOptional< FSlateFontInfo > SlateFontInfo
Definition CanvasItem.h:464
ENGINE_API void DrawStringInternal_OfflineCache(FCanvas *InCanvas, FStringView Text, const FVector2D &DrawPos, const FLinearColor &DrawColor, TArrayView< FTextEffect > TextEffects)
Definition CanvasItem.cpp:1026
const UFont * Font
Definition CanvasItem.h:461
virtual ENGINE_API ESimpleElementBlendMode GetTextBlendMode(const bool bHasShadow) const override
Definition CanvasItem.cpp:956
Definition CanvasItem.h:306
bool bOutlined
Definition CanvasItem.h:370
virtual ESimpleElementBlendMode GetTextBlendMode(const bool bHasShadow) const =0
FVector2D Scale
Definition CanvasItem.h:379
bool bDontCorrectStereoscopic
Definition CanvasItem.h:376
FVector2D ShadowOffset
Definition CanvasItem.h:358
void DisableShadow()
Definition CanvasItem.h:327
float HorizSpacingAdjust
Definition CanvasItem.h:346
FLinearColor OutlineColor
Definition CanvasItem.h:373
FBatchedElements * BatchedElements
Definition CanvasItem.h:417
virtual void DrawStringInternal(FCanvas *InCanvas, const FVector2D &DrawPos, const FLinearColor &DrawColor, TArrayView< FTextEffect > Offsets)=0
FFontRenderInfo FontRenderInfo
Definition CanvasItem.h:352
virtual ENGINE_API ~FCanvasTextItemBase()
virtual FVector2D GetTextSize(float DPIScale) const =0
float Depth
Definition CanvasItem.h:349
FLinearColor ShadowColor
Definition CanvasItem.h:355
FVector2D DrawnSize
Definition CanvasItem.h:361
bool bCentreY
Definition CanvasItem.h:367
FCanvasTileItem TileItem
Definition CanvasItem.h:383
virtual ENGINE_API void Draw(FCanvas *InCanvas) override
Definition CanvasItem.cpp:856
virtual bool HasValidText() const =0
bool bCentreX
Definition CanvasItem.h:364
virtual void SetColor(const FLinearColor &InColor) override final
Definition CanvasItem.h:340
void EnableShadow(const FLinearColor &InColor, const FVector2D &InOffset=FVector2D(1.0f, 1.0f))
Definition CanvasItem.h:317
Definition CanvasItem.h:495
virtual ENGINE_API bool HasValidText() const override
Definition CanvasItem.cpp:1378
virtual ENGINE_API ~FCanvasTextItem()
ENGINE_API void DrawStringInternal_OfflineCache(FCanvas *InCanvas, const FVector2D &DrawPos, const FLinearColor &DrawColor, TArrayView< FTextEffect > TextEffects)
Definition CanvasItem.cpp:1393
virtual ENGINE_API FVector2D GetTextSize(float DPIScale) const override
Definition CanvasItem.cpp:1383
ENGINE_API void DrawStringInternal_RuntimeCache(FCanvas *InCanvas, const FVector2D &DrawPos, const FLinearColor &DrawColor, TArrayView< FTextEffect > TextEffects)
Definition CanvasItem.cpp:1398
FText Text
Definition CanvasItem.h:521
virtual ENGINE_API void DrawStringInternal(FCanvas *InCanvas, const FVector2D &DrawPos, const FLinearColor &DrawColor, TArrayView< FTextEffect > TextEffects) override
Definition CanvasItem.cpp:1388
Definition CanvasItem.h:547
virtual ENGINE_API void DrawStringInternal(FCanvas *InCanvas, const FVector2D &DrawPos, const FLinearColor &DrawColor, TArrayView< FTextEffect > TextEffects) override
Definition CanvasItem.cpp:1413
FStringView Text
Definition CanvasItem.h:581
FCanvasTextStringViewItem(const FVector2D &InPosition, FStringView InText, const UFont *InFont, const FLinearColor &InColor)
Definition CanvasItem.h:558
FCanvasTextStringViewItem(const FVector2D &InPosition, FStringView InText, const FSlateFontInfo &InFontInfo, const FLinearColor &InColor)
Definition CanvasItem.h:572
virtual ENGINE_API FVector2D GetTextSize(float DPIScale) const override
Definition CanvasItem.cpp:1408
virtual ~FCanvasTextStringViewItem() override=default
virtual ENGINE_API bool HasValidText() const override
Definition CanvasItem.cpp:1403
Definition CanvasItem.h:99
const FTexture * Texture
Definition CanvasItem.h:190
virtual ENGINE_API void Draw(FCanvas *InCanvas) override
Definition CanvasItem.cpp:419
FRotator Rotation
Definition CanvasItem.h:196
FVector2D UV0
Definition CanvasItem.h:184
float Z
Definition CanvasItem.h:181
FVector2D PivotPoint
Definition CanvasItem.h:199
FVector2D Size
Definition CanvasItem.h:178
FVector2D UV1
Definition CanvasItem.h:187
const FMaterialRenderProxy * MaterialRenderProxy
Definition CanvasItem.h:193
Definition CanvasItem.h:826
FCanvasTriangleItem(FCanvasUVTri InSingleTri, const FTexture *InTexture)
Definition CanvasItem.h:895
FCanvasTriangleItem(const FVector2D &InPointA, const FVector2D &InPointB, const FVector2D &InPointC, const FTexture *InTexture)
Definition CanvasItem.h:835
virtual ENGINE_API void SetColor(const FLinearColor &InColor) override
Definition CanvasItem.cpp:1767
TArray< FCanvasUVTri > TriangleList
Definition CanvasItem.h:950
const FMaterialRenderProxy * MaterialRenderProxy
Definition CanvasItem.h:945
FBatchedElementParameters * BatchedElementParameters
Definition CanvasItem.h:947
const FTexture * Texture
Definition CanvasItem.h:942
FCanvasTriangleItem(const FVector2D &InPointA, const FVector2D &InPointB, const FVector2D &InPointC, const FVector2D &InTexCoordPointA, const FVector2D &InTexCoordPointB, const FVector2D &InTexCoordPointC, const FTexture *InTexture)
Definition CanvasItem.h:868
FCanvasTriangleItem(const TArray< FCanvasUVTri > &InTriangleList, const FTexture *InTexture)
Definition CanvasItem.h:910
virtual ~FCanvasTriangleItem()
Definition CanvasItem.h:922
virtual ENGINE_API void Draw(FCanvas *InCanvas) override
Definition CanvasItem.cpp:1692
void SetPoints(const FVector2D &InPointA, const FVector2D &InPointB, const FVector2D &InPointC)
Definition CanvasItem.h:925
Definition CanvasTypes.h:211
Definition MaterialRenderProxy.h:102
Definition Text.h:385
Definition RenderResource.h:354
Definition UnrealClient.h:412
Definition ArrayView.h:139
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void SetNum(SizeType NewNum, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2308
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
Definition SharedPointer.h:153
Definition Font.h:111
Definition Material.h:432
void Draw(const FLinearBoundary &Boundary, const FRestrictionCurve &Curve, EVisuProperty Property)
Definition Display.cpp:95
@ false
Definition radaudio_common.h:23
Definition CanvasItem.h:401
FVector2f Offset
Definition CanvasItem.h:402
FLinearColor Color
Definition CanvasItem.h:403
Definition EngineTypes.h:4113
FVector2D V0_Pos
Definition EngineTypes.h:4118
Definition EngineTypes.h:4090
uint32 bEnableShadow
Definition EngineTypes.h:4099
Definition Color.h:48
static CORE_API const FLinearColor White
Definition Color.h:456
Definition SlateFontInfo.h:147
Definition Optional.h:131
T Y
Definition Vector2D.h:52
T X
Definition Vector2D.h:49
static CORE_API const TVector2< double > ZeroVector
Definition Vector2D.h:63
T SizeSquared() const
Definition Vector2D.h:1117
T Z
Definition Vector.h:68
T Y
Definition Vector.h:65
T X
Definition Vector.h:62