@@ -168,6 +168,21 @@ protected override void OnLoadContents() {
168168 _avatarImages = avatarImages ;
169169 _avatarRectangles = rects ;
170170
171+ var avatarImagesData = new byte [ avatarImages . Length ] [ ] ;
172+
173+ for ( var i = 0 ; i < avatarImages . Length ; ++ i ) {
174+ if ( avatarImages [ i ] == null ) {
175+ continue ;
176+ }
177+
178+ var data = new byte [ avatarImages [ i ] . Width * avatarImages [ i ] . Height * sizeof ( int ) ] ;
179+ avatarImages [ i ] . GetData ( data ) ;
180+
181+ avatarImagesData [ i ] = data ;
182+ }
183+
184+ _avatarImagesData = avatarImagesData ;
185+
171186 var scalingResponder = theaterDays . FindSingleElement < MltdStageScalingResponder > ( ) ;
172187
173188 if ( scalingResponder == null ) {
@@ -214,6 +229,7 @@ private void DrawContents() {
214229 graphics . SetClipPath ( clipPath , false ) ;
215230
216231 var avatarImages = _avatarImages ;
232+ var avatarImagesData = _avatarImagesData ;
217233
218234 for ( var i = 0 ; i < avatarImages . Length ; ++ i ) {
219235 var image = avatarImages [ i ] ;
@@ -222,9 +238,13 @@ private void DrawContents() {
222238 continue ;
223239 }
224240
241+ var imageData = avatarImagesData [ i ] ;
242+
243+ Debug . Assert ( imageData != null , nameof ( imageData ) + "!= null" ) ;
244+
225245 var rect = avatarRectangles [ i ] ;
226246
227- graphics . DrawImage ( image , rect ) ;
247+ graphics . DrawImage ( imageData , image . Format , image . Width , image . Height , rect . X , rect . Y , rect . Width , rect . Height ) ;
228248 }
229249
230250 graphics . RestoreState ( ) ;
@@ -241,6 +261,9 @@ private void DrawContents() {
241261 [ ItemCanBeNull ]
242262 private Texture2D [ ] _avatarImages ;
243263
264+ [ ItemCanBeNull ]
265+ private byte [ ] [ ] _avatarImagesData ;
266+
244267 private OngoingAnimation _ongoingAnimation = OngoingAnimation . None ;
245268 private TimeSpan _animationStartedTime = TimeSpan . Zero ;
246269
0 commit comments