From b51a110c5449b00166b02f9141800af4da1d5778 Mon Sep 17 00:00:00 2001 From: Liquidoodle Date: Thu, 10 Oct 2013 18:02:50 +0100 Subject: [PATCH] Fixed file loading for XNA on Windows Phone 7. --- spine-csharp/src/Atlas.cs | 16 ++++++++++++---- spine-csharp/src/SkeletonJson.cs | 10 ++++++++-- spine-xna/src/Util.cs | 15 +++++++++++---- 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/spine-csharp/src/Atlas.cs b/spine-csharp/src/Atlas.cs index f130b4606..bc69a1b59 100644 --- a/spine-csharp/src/Atlas.cs +++ b/spine-csharp/src/Atlas.cs @@ -29,11 +29,12 @@ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - *****************************************************************************/ - + *****************************************************************************/ + using System; using System.Collections.Generic; using System.IO; +using System.Reflection; #if WINDOWS_STOREAPP using System.Threading.Tasks; @@ -64,7 +65,14 @@ namespace Spine { } #else public Atlas (String path, TextureLoader textureLoader) { - using (StreamReader reader = new StreamReader(path)) { + +#if WINDOWS_PHONE + Stream stream = Microsoft.Xna.Framework.TitleContainer.OpenStream(path); + using (StreamReader reader = new StreamReader(stream)) + { +#else + using (StreamReader reader = new StreamReader(path)) { +#endif try { Load(reader, Path.GetDirectoryName(path), textureLoader); } catch (Exception ex) { @@ -270,4 +278,4 @@ namespace Spine { void Load (AtlasPage page, String path); void Unload (Object texture); } -} +} diff --git a/spine-csharp/src/SkeletonJson.cs b/spine-csharp/src/SkeletonJson.cs index 7506d633f..30016ca65 100644 --- a/spine-csharp/src/SkeletonJson.cs +++ b/spine-csharp/src/SkeletonJson.cs @@ -80,8 +80,14 @@ namespace Spine { } #else public SkeletonData ReadSkeletonData (String path) { - using (StreamReader reader = new StreamReader(path)) { - SkeletonData skeletonData = ReadSkeletonData(reader); +#if WINDOWS_PHONE + Stream stream = Microsoft.Xna.Framework.TitleContainer.OpenStream(path); + using (StreamReader reader = new StreamReader(stream)) + { +#else + using (StreamReader reader = new StreamReader(path)) { +#endif + SkeletonData skeletonData = ReadSkeletonData(reader); skeletonData.name = Path.GetFileNameWithoutExtension(path); return skeletonData; } diff --git a/spine-xna/src/Util.cs b/spine-xna/src/Util.cs index 70f582fa3..61a4f763e 100644 --- a/spine-xna/src/Util.cs +++ b/spine-xna/src/Util.cs @@ -29,8 +29,8 @@ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - *****************************************************************************/ - + *****************************************************************************/ + using System; using System.IO; using Microsoft.Xna.Framework; @@ -60,7 +60,14 @@ namespace Spine { } #else static public Texture2D LoadTexture (GraphicsDevice device, String path) { - using (Stream input = new FileStream(path, FileMode.Open, FileAccess.Read)) { + +#if WINDOWS_PHONE + Stream stream = Microsoft.Xna.Framework.TitleContainer.OpenStream(path); + using (Stream input = stream) + { +#else + using (Stream input = new FileStream(path, FileMode.Open, FileAccess.Read)) { +#endif try { return Util.LoadTexture(device, input); } catch (Exception ex) { @@ -74,4 +81,4 @@ namespace Spine { return Texture2D.FromStream(device, input); } } -} +}