Browse Source

Merge remote-tracking branch 'origin/master'

NathanSweet 12 năm trước cách đây
mục cha
commit
306f394100
1 tập tin đã thay đổi với 13 bổ sung1 xóa
  1. 13 1
      spine-xna/src/Util.cs

+ 13 - 1
spine-xna/src/Util.cs

@@ -76,7 +76,19 @@ namespace Spine {
 			// Release the GPU back to drawing to the screen
 			device.SetRenderTarget(null);
 
-			return result as Texture2D;
+			// RenderTarget2D are volatile and will be lost on screen resolution changes.
+      			// So instead of using this directly, we create a non-voliate Texture2D.
+      			// This is computationally slower, but should be safe as long as it is done
+      			// on load.
+      			Texture2D resultTexture = new Texture2D(device, file.Width, file.Height);
+      			Color[] resultContent = new Color[Convert.ToInt32(file.Width * file.Height)];
+      			result.GetData(resultContent);
+      			resultTexture.SetData(resultContent);
+	
+			// Dispose of the RenderTarget2D immediately.
+      			result.Dispose();
+      			
+			return resultTexture;
 		}
 	}
 }