Эх сурвалжийг харах

Merge pull request #63 from BigRedPK/master

XNA RenderTarget2D Fix
Nathan Sweet 12 жил өмнө
parent
commit
dc33e82c35
1 өөрчлөгдсөн 13 нэмэгдсэн , 1 устгасан
  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;
 		}
 	}
 }