@@ -90,6 +90,9 @@ export default defineComponent({
90
90
91
91
let app: PIXI .Application
92
92
93
+ let mainRenderTexture: PIXI .RenderTexture
94
+ let mainRenderContainer: PIXI .Container
95
+
93
96
let verticalScrollingContainer: PIXI .Container
94
97
let horizontalScrollingContainer: PIXI .Container
95
98
@@ -109,13 +112,37 @@ export default defineComponent({
109
112
app .view .style .opacity = ' 1'
110
113
})
111
114
115
+ mainRenderTexture = PIXI .RenderTexture .create ({
116
+ width: app .view .width ,
117
+ height: app .view .height ,
118
+ resolution: window .devicePixelRatio ,
119
+ })
120
+ const mainRenderSprite = new PIXI .Sprite (mainRenderTexture )
121
+ app .stage .addChild (mainRenderSprite )
122
+
123
+ mainRenderContainer = new PIXI .Container ()
124
+
112
125
verticalScrollingContainer = new PIXI .Container ()
113
- app . stage .addChild (verticalScrollingContainer )
126
+ mainRenderContainer .addChild (verticalScrollingContainer )
114
127
115
128
horizontalScrollingContainer = new PIXI .Container ()
116
129
verticalScrollingContainer .addChild (horizontalScrollingContainer )
117
130
})
118
131
132
+ let drawScheduled = false
133
+
134
+ function draw () {
135
+ if (! drawScheduled ) {
136
+ drawScheduled = true
137
+ Vue .nextTick (() => {
138
+ app .renderer .render (mainRenderContainer , {
139
+ renderTexture: mainRenderTexture ,
140
+ })
141
+ drawScheduled = false
142
+ })
143
+ }
144
+ }
145
+
119
146
onUnmounted (() => {
120
147
app .destroy ()
121
148
})
@@ -276,6 +303,7 @@ export default defineComponent({
276
303
} else {
277
304
layerHoverEffect .visible = false
278
305
}
306
+ draw ()
279
307
}
280
308
281
309
function drawLayerBackground (layerId : Layer [' id' ], alpha = 1 ) {
@@ -376,6 +404,7 @@ export default defineComponent({
376
404
while ((event = updateEventVerticalPositionQueue .shift ())) {
377
405
computeEventVerticalPosition (event )
378
406
}
407
+ draw ()
379
408
}
380
409
381
410
function isEventIgnored (event : TimelineEvent ) {
@@ -622,6 +651,7 @@ export default defineComponent({
622
651
drawEventGroup (event )
623
652
}
624
653
}
654
+ draw ()
625
655
}
626
656
627
657
watch (startTime , () => queueEventsUpdate ())
@@ -834,12 +864,8 @@ export default defineComponent({
834
864
text .push (` Group: ${event .group .duration }ms (${event .group .events .length } event${event .group .events .length > 1 ? ' s' : ' ' }) ` )
835
865
}
836
866
837
- if (hoverEvent ?.container && hoverEvent !== event ) {
838
- hoverEvent .container .alpha = 1
839
- }
840
- hoverEvent = event
841
- if (hoverEvent ?.container ) {
842
- hoverEvent .container .alpha = 0.5
867
+ if (event ?.container ) {
868
+ event .container .alpha = 0.5
843
869
}
844
870
} else {
845
871
// Marker tooltip
@@ -850,6 +876,13 @@ export default defineComponent({
850
876
text .push (' (marker)' )
851
877
}
852
878
}
879
+ if (event !== hoverEvent ) {
880
+ if (hoverEvent ?.container ) {
881
+ hoverEvent .container .alpha = 1
882
+ }
883
+ draw ()
884
+ }
885
+ hoverEvent = event
853
886
854
887
if (text .length ) {
855
888
// Draw tooltip
@@ -1035,6 +1068,7 @@ export default defineComponent({
1035
1068
drawLayerBackgroundEffects ()
1036
1069
drawTimeGrid ()
1037
1070
drawMarkers ()
1071
+ draw ()
1038
1072
}
1039
1073
1040
1074
watch (startTime , () => queueCameraUpdate ())
@@ -1110,6 +1144,7 @@ export default defineComponent({
1110
1144
function updateVScroll () {
1111
1145
if (verticalScrollingContainer ) {
1112
1146
verticalScrollingContainer .y = - vScroll .value
1147
+ draw ()
1113
1148
}
1114
1149
}
1115
1150
@@ -1181,10 +1216,12 @@ export default defineComponent({
1181
1216
app .view .style .opacity = ' 0'
1182
1217
// @ts-expect-error PIXI type is missing queueResize
1183
1218
app .queueResize ()
1219
+ mainRenderTexture .resize (app .view .width , app .view .height )
1184
1220
queueEventsUpdate ()
1185
1221
drawLayerBackgroundEffects ()
1186
1222
drawTimeCursor ()
1187
1223
drawTimeGrid ()
1224
+ draw ()
1188
1225
}
1189
1226
1190
1227
// Events
0 commit comments