|
8 | 8 |
|
9 | 9 | PRAGMA_DISABLE_SHADOW_VARIABLE_WARNINGS
|
10 | 10 |
|
| 11 | + |
| 12 | +class FCanvasOwner : public FGCObject |
| 13 | +{ |
| 14 | + |
| 15 | +public: |
| 16 | + FCanvasOwner(): FGCObject() |
| 17 | + { |
| 18 | + Canvas = nullptr; |
| 19 | + } |
| 20 | + |
| 21 | + virtual void AddReferencedObjects(FReferenceCollector& Collector) override |
| 22 | + { |
| 23 | + Collector.AddReferencedObject(Canvas); |
| 24 | + } |
| 25 | + |
| 26 | +public: |
| 27 | + UCanvas* Canvas; |
| 28 | +}; |
| 29 | + |
11 | 30 | #if WITH_EDITOR
|
12 | 31 | class FJavascriptEditorViewportClient : public FEditorViewportClient
|
13 | 32 | {
|
@@ -131,17 +150,17 @@ class FJavascriptEditorViewportClient : public FEditorViewportClient
|
131 | 150 |
|
132 | 151 | if (Widget.IsValid() && Widget->OnDrawCanvas.IsBound())
|
133 | 152 | {
|
134 |
| - if(Widget->Canvas == nullptr){ |
135 |
| - Widget->Canvas = NewObject<UCanvas>(Widget.Get()); |
| 153 | + if(CanvasOwner.Canvas == nullptr){ |
| 154 | + CanvasOwner.Canvas = NewObject<UCanvas>(Widget.Get()); |
136 | 155 | }
|
137 | 156 |
|
138 |
| - Widget->Canvas->Canvas = &Canvas; |
139 |
| - Widget->Canvas->Init(View.UnscaledViewRect.Width(), View.UnscaledViewRect.Height(), const_cast<FSceneView*>(&View)); |
140 |
| - Widget->Canvas->ApplySafeZoneTransform(); |
| 157 | + CanvasOwner.Canvas->Canvas = &Canvas; |
| 158 | + CanvasOwner.Canvas->Init(View.UnscaledViewRect.Width(), View.UnscaledViewRect.Height(), const_cast<FSceneView*>(&View)); |
| 159 | + CanvasOwner.Canvas->ApplySafeZoneTransform(); |
141 | 160 |
|
142 |
| - Widget->OnDrawCanvas.Execute(Widget->Canvas, Widget.Get()); |
| 161 | + Widget->OnDrawCanvas.Execute(CanvasOwner.Canvas, Widget.Get()); |
143 | 162 |
|
144 |
| - Widget->Canvas->PopSafeZoneTransform(); |
| 163 | + CanvasOwner.Canvas->PopSafeZoneTransform(); |
145 | 164 | }
|
146 | 165 | }
|
147 | 166 |
|
@@ -215,6 +234,9 @@ class FJavascriptEditorViewportClient : public FEditorViewportClient
|
215 | 234 | FPostProcessSettings PostProcessSettings;
|
216 | 235 | float PostProcessSettingsWeight;
|
217 | 236 | FLinearColor BackgroundColor;
|
| 237 | + |
| 238 | +private: |
| 239 | + FCanvasOwner CanvasOwner; |
218 | 240 | };
|
219 | 241 |
|
220 | 242 | class SAutoRefreshEditorViewport : public SEditorViewport
|
|
0 commit comments