UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SMeshWidget.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 "UObject/GCObject.h"
10#include "Widgets/SLeafWidget.h"
11
12class FPaintArgs;
16struct FSlateBrush;
17
23class SMeshWidget : public SLeafWidget, public FGCObject
24{
25public:
32
33 UMG_API void Construct(const FArguments& Args);
34
41
44
53
55 UMG_API void ClearRuns(int32 NumRuns);
56
69
71 UMG_API void EnableInstancing(uint32 MeshId, int32 InitialSize);
72
75
76protected:
77 // BEGIN SLeafWidget interface
78 UMG_API virtual int32 OnPaint(const FPaintArgs& Args, const FGeometry& AllottedGeometry, const FSlateRect& MyCullingRect, FSlateWindowElementList& OutDrawElements, int32 LayerId, const FWidgetStyle& InWidgetStyle, bool bParentEnabled) const override;
79 UMG_API virtual FVector2D ComputeDesiredSize(float) const override;
80 // END SLeafWidget interface
81
82 // ~ FGCObject
83 UMG_API virtual void AddReferencedObjects(FReferenceCollector& Collector) override;
84 UMG_API virtual FString GetReferencerName() const override;
85 // ~ FGCObject
86
87protected:
88 static UMG_API void PushUpdate(uint32 VectorArtId, SMeshWidget& Widget, const FVector2D& Position, float Scale, uint32 BaseAddress);
90
105
106private:
108 class FRenderRun
109 {
110 public:
112 : MeshIndex(InMeshIndex)
113 , InstanceOffset(InInstanceOffset)
114 , NumInstances(InNumInstances)
115 {
116 }
117
118 uint32 GetMeshIndex() const { return MeshIndex; }
119 uint32 GetInstanceOffset() const { return InstanceOffset; }
120 uint32 GetNumInstances() const { return NumInstances; }
121
122 private:
123 uint32 MeshIndex;
124 uint32 InstanceOffset;
125 uint32 NumInstances;
126 };
127 TArray<FRenderRun> RenderRuns;
128};
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
#define SLATE_END_ARGS()
Definition DeclarativeSyntaxSupport.h:116
#define SLATE_ARGUMENT(ArgType, ArgName)
Definition DeclarativeSyntaxSupport.h:208
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition GCObject.h:128
Definition PaintArgs.h:23
Definition UObjectGlobals.h:2492
Definition SlateRect.h:26
Definition SlateResourceHandle.h:16
Definition DrawElements.h:220
Definition WidgetStyle.h:15
Definition SLeafWidget.h:29
Definition SMeshWidget.h:24
virtual UMG_API FString GetReferencerName() const override
Definition SMeshWidget.cpp:243
UMG_API void ClearRuns(int32 NumRuns)
Definition SMeshWidget.cpp:129
UMG_API void UpdatePerInstanceBuffer(uint32 MeshId, FSlateInstanceBufferData &Data)
Definition SMeshWidget.cpp:143
virtual UMG_API int32 OnPaint(const FPaintArgs &Args, const FGeometry &AllottedGeometry, const FSlateRect &MyCullingRect, FSlateWindowElementList &OutDrawElements, int32 LayerId, const FWidgetStyle &InWidgetStyle, bool bParentEnabled) const override
Definition SMeshWidget.cpp:150
SLATE_BEGIN_ARGS(SMeshWidget)
Definition SMeshWidget.h:26
UMG_API void Construct(const FArguments &Args)
Definition SMeshWidget.cpp:76
UMG_API uint32 AddMesh(USlateVectorArtData &InMeshData)
Definition SMeshWidget.cpp:85
virtual UMG_API FVector2D ComputeDesiredSize(float) const override
Definition SMeshWidget.cpp:225
UMG_API UMaterialInstanceDynamic * ConvertToMID(uint32 MeshId)
Definition SMeshWidget.cpp:108
static UMG_API void PushUpdate(uint32 VectorArtId, SMeshWidget &Widget, const FVector2D &Position, float Scale, uint32 BaseAddress)
Definition SMeshWidget.cpp:248
virtual UMG_API void AddReferencedObjects(FReferenceCollector &Collector) override
Definition SMeshWidget.cpp:231
UMG_API uint32 AddMeshWithInstancing(USlateVectorArtData &InMeshData, int32 InitialBufferSize=1)
Definition SMeshWidget.cpp:100
UMG_API void EnableInstancing(uint32 MeshId, int32 InitialSize)
Definition SMeshWidget.cpp:135
void AddRenderRun(uint32 InMeshIndex, uint32 InInstanceOffset, uint32 InNumInstances)
Definition SMeshWidget.h:65
TArray< FRenderData, TInlineAllocator< 3 > > RenderData
Definition SMeshWidget.h:104
Definition Array.h:670
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
Definition SharedPointer.h:692
Definition MaterialInstanceDynamic.h:15
Definition SlateVectorArtData.h:85
Definition Geometry.h:40
Definition SlateBrush.h:239
Definition SMeshWidget.h:92
FSlateResourceHandle RenderingResourceHandle
Definition SMeshWidget.h:100
TArray< SlateIndex > IndexData
Definition SMeshWidget.h:96
TArray< FSlateVertex > VertexData
Definition SMeshWidget.h:94
TSharedPtr< FSlateBrush > Brush
Definition SMeshWidget.h:98
TSharedPtr< ISlateUpdatableInstanceBuffer > PerInstanceBuffer
Definition SMeshWidget.h:102