Browse Source

Base sample created.

ParticleEffect.fx only works under GL for some reason. In DX it compiles but does not render for some reason.
Simon Jackson 8 years ago
parent
commit
661e0d54c4
38 changed files with 1502 additions and 6 deletions
  1. 1 1
      Content/Content.mgcb
  2. 27 0
      Platforms/Android/Activity1.cs
  3. 19 0
      Platforms/Android/Assets/AboutAssets.txt
  4. 5 0
      Platforms/Android/Properties/AndroidManifest.xml
  5. 41 0
      Platforms/Android/Properties/AssemblyInfo.cs
  6. 44 0
      Platforms/Android/Resources/AboutResources.txt
  7. BIN
      Platforms/Android/Resources/Drawable/Icon.png
  8. BIN
      Platforms/Android/Resources/Drawable/Splash.png
  9. 99 0
      Platforms/Android/Resources/Resource.Designer.cs
  10. 5 0
      Platforms/Android/Resources/Values/Strings.xml
  11. 7 0
      Platforms/Android/Resources/Values/Styles.xml
  12. 105 0
      Platforms/Android/XMLContentLoadingSample.Android.csproj
  13. 97 0
      Platforms/Android/XMLContentLoadingSample.Android.csproj.bak
  14. 8 0
      Platforms/WindowsUWP/App.xaml
  15. 134 0
      Platforms/WindowsUWP/App.xaml.cs
  16. BIN
      Platforms/WindowsUWP/Assets/LockScreenLogo.scale-200.png
  17. BIN
      Platforms/WindowsUWP/Assets/SplashScreen.scale-200.png
  18. BIN
      Platforms/WindowsUWP/Assets/Square150x150Logo.scale-200.png
  19. BIN
      Platforms/WindowsUWP/Assets/Square44x44Logo.scale-200.png
  20. BIN
      Platforms/WindowsUWP/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
  21. BIN
      Platforms/WindowsUWP/Assets/StoreLogo.png
  22. BIN
      Platforms/WindowsUWP/Assets/Wide310x150Logo.scale-200.png
  23. 12 0
      Platforms/WindowsUWP/GamePage.xaml
  24. 36 0
      Platforms/WindowsUWP/GamePage.xaml.cs
  25. 48 0
      Platforms/WindowsUWP/Package.appxmanifest
  26. 29 0
      Platforms/WindowsUWP/Properties/AssemblyInfo.cs
  27. 31 0
      Platforms/WindowsUWP/Properties/Default.rd.xml
  28. 158 0
      Platforms/WindowsUWP/XMLContentLoadingSample.WindowsUWP.csproj
  29. 16 0
      Platforms/WindowsUWP/project.json
  30. BIN
      Platforms/iOS/Default.png
  31. 6 0
      Platforms/iOS/Entitlements.plist
  32. BIN
      Platforms/iOS/GameThumbnail.png
  33. 23 0
      Platforms/iOS/Info.plist
  34. 31 0
      Platforms/iOS/Program.cs
  35. 34 0
      Platforms/iOS/Properties/AssemblyInfo.cs
  36. 136 0
      Platforms/iOS/XMLContentLoadingSample.iOS.csproj
  37. 348 0
      XMLContentLoadingSample.sln
  38. 2 5
      XMLContentLoadingSample/XMLParticleSystem.cs

+ 1 - 1
Content/Content.mgcb

@@ -3,7 +3,7 @@
 
 /outputDir:bin
 /intermediateDir:obj
-/platform:DesktopGL
+/platform:Windows
 /config:
 /profile:Reach
 /compress:False

+ 27 - 0
Platforms/Android/Activity1.cs

@@ -0,0 +1,27 @@
+using Android.App;
+using Android.Content.PM;
+using Android.OS;
+using Android.Views;
+
+namespace XMLContentLoadingSample.Android
+{
+    [Activity(Label = "XMLContentLoadingSample.Android"
+        , MainLauncher = true
+        , Icon = "@drawable/icon"
+        , Theme = "@style/Theme.Splash"
+        , AlwaysRetainTaskState = true
+        , LaunchMode = Android.Content.PM.LaunchMode.SingleInstance
+        , ScreenOrientation = ScreenOrientation.FullUser
+        , ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.Keyboard | ConfigChanges.KeyboardHidden | ConfigChanges.ScreenSize)]
+    public class Activity1 : Microsoft.Xna.Framework.AndroidGameActivity
+    {
+        protected override void OnCreate(Bundle bundle)
+        {
+            base.OnCreate(bundle);
+            var g = new Particle3DSampleGame();
+            SetContentView((View)g.Services.GetService(typeof(View)));
+            g.Run();
+        }
+    }
+}
+

+ 19 - 0
Platforms/Android/Assets/AboutAssets.txt

@@ -0,0 +1,19 @@
+Any raw assets you want to be deployed with your application can be placed in
+this directory (and child directories) and given a Build Action of "AndroidAsset".
+
+These files will be deployed with you package and will be accessible using Android's
+AssetManager, like this:
+
+public class ReadAsset : Activity
+{
+	protected override void OnCreate (Bundle bundle)
+	{
+		base.OnCreate (bundle);
+
+		InputStream input = Assets.Open ("my_asset.txt");
+	}
+}
+
+Additionally, some Android functions will automatically load asset files:
+
+Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf");

+ 5 - 0
Platforms/Android/Properties/AndroidManifest.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="XMLContentLoadingSample.Android" android:versionCode="1" android:versionName="1.0">
+	<uses-sdk />
+	<application android:label="XMLContentLoadingSample.Android" android:icon="@drawable/Icon"></application>
+</manifest>

+ 41 - 0
Platforms/Android/Properties/AssemblyInfo.cs

@@ -0,0 +1,41 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using Android.App;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("XMLContentLoadingSample.Android")]
+[assembly: AssemblyProduct("XMLContentLoadingSample.Android")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyCopyright("Copyright ©  2017")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("ba334959-9be5-45f6-b16f-f537f813af2b")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
+
+// Add some common permissions, these can be removed if not needed
+[assembly: UsesPermission(Android.Manifest.Permission.Internet)]
+[assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)]

+ 44 - 0
Platforms/Android/Resources/AboutResources.txt

@@ -0,0 +1,44 @@
+Images, layout descriptions, binary blobs and string dictionaries can be included 
+in your application as resource files.  Various Android APIs are designed to 
+operate on the resource IDs instead of dealing with images, strings or binary blobs 
+directly.
+
+For example, a sample Android app that contains a user interface layout (Main.xml),
+an internationalization string table (Strings.xml) and some icons (drawable/Icon.png) 
+would keep its resources in the "Resources" directory of the application:
+
+Resources/
+    Drawable/
+        Icon.png
+
+    Layout/
+        Main.axml
+
+    Values/
+        Strings.xml
+
+In order to get the build system to recognize Android resources, the build action should be set 
+to "AndroidResource".  The native Android APIs do not operate directly with filenames, but 
+instead operate on resource IDs.  When you compile an Android application that uses resources, 
+the build system will package the resources for distribution and generate a class called
+"Resource" that contains the tokens for each one of the resources included. For example, 
+for the above Resources layout, this is what the Resource class would expose:
+
+public class Resource {
+    public class Drawable {
+        public const int Icon = 0x123;
+    }
+
+    public class Layout {
+        public const int Main = 0x456;
+    }
+
+    public class String {
+        public const int FirstString = 0xabc;
+        public const int SecondString = 0xbcd;
+    }
+}
+
+You would then use Resource.Drawable.Icon to reference the Drawable/Icon.png file, or 
+Resource.Layout.Main to reference the Layout/Main.axml file, or Resource.String.FirstString
+to reference the first string in the dictionary file Values/Strings.xml.

BIN
Platforms/Android/Resources/Drawable/Icon.png


BIN
Platforms/Android/Resources/Drawable/Splash.png


+ 99 - 0
Platforms/Android/Resources/Resource.Designer.cs

@@ -0,0 +1,99 @@
+#pragma warning disable 1591
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+[assembly: global::Android.Runtime.ResourceDesignerAttribute("XMLContentLoadingSample.Android.Resource", IsApplication=true)]
+
+namespace XMLContentLoadingSample.Android
+{
+	
+	
+	[System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
+	public partial class Resource
+	{
+		
+		static Resource()
+		{
+			global::Android.Runtime.ResourceIdManager.UpdateIdValues();
+		}
+		
+		public static void UpdateIdValues()
+		{
+		}
+		
+		public partial class Attribute
+		{
+			
+			static Attribute()
+			{
+				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
+			}
+			
+			private Attribute()
+			{
+			}
+		}
+		
+		public partial class Drawable
+		{
+			
+			// aapt resource value: 0x7f020000
+			public const int Icon = 2130837504;
+			
+			// aapt resource value: 0x7f020001
+			public const int Splash = 2130837505;
+			
+			static Drawable()
+			{
+				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
+			}
+			
+			private Drawable()
+			{
+			}
+		}
+		
+		public partial class String
+		{
+			
+			// aapt resource value: 0x7f030001
+			public const int ApplicationName = 2130903041;
+			
+			// aapt resource value: 0x7f030000
+			public const int Hello = 2130903040;
+			
+			static String()
+			{
+				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
+			}
+			
+			private String()
+			{
+			}
+		}
+		
+		public partial class Style
+		{
+			
+			// aapt resource value: 0x7f040000
+			public const int Theme_Splash = 2130968576;
+			
+			static Style()
+			{
+				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
+			}
+			
+			private Style()
+			{
+			}
+		}
+	}
+}
+#pragma warning restore 1591

+ 5 - 0
Platforms/Android/Resources/Values/Strings.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <string name="Hello">Hello World, Click Me!</string>
+    <string name="ApplicationName">XMLContentLoadingSample.Android</string>
+</resources>

+ 7 - 0
Platforms/Android/Resources/Values/Styles.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+  <style name="Theme.Splash" parent="android:Theme">
+    <item name="android:windowBackground">@drawable/splash</item>
+    <item name="android:windowNoTitle">true</item>
+  </style>
+</resources>

+ 105 - 0
Platforms/Android/XMLContentLoadingSample.Android.csproj

@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{12F42FF1-FCDC-4F02-932B-FB0F303358ED}</ProjectGuid>
+    <ProjectTypeGuids>{EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>XMLContentLoadingSample.Android</RootNamespace>
+    <AssemblyName>XMLContentLoadingSample.Android</AssemblyName>
+    <FileAlignment>512</FileAlignment>
+    <AndroidApplication>true</AndroidApplication>
+    <AndroidResgenFile>Resources\Resource.Designer.cs</AndroidResgenFile>
+    <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+    <AndroidSupportedAbis>armeabi-v7a%3bx86</AndroidSupportedAbis>
+    <AndroidStoreUncompressedFileExtensions>.m4a</AndroidStoreUncompressedFileExtensions>
+    <MandroidI18n />
+    <TargetFrameworkVersion>v6.0</TargetFrameworkVersion>
+    <MonoGamePlatform>Android</MonoGamePlatform>
+    <AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
+    <AndroidUseLatestPlatformSdk>True</AndroidUseLatestPlatformSdk>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\$(MonoGamePlatform)\$(Platform)\$(Configuration)\</OutputPath>
+    <DefineConstants>DEBUG;TRACE;ANDROID</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <AndroidUseSharedRuntime>True</AndroidUseSharedRuntime>
+    <AndroidLinkMode>None</AndroidLinkMode>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\$(MonoGamePlatform)\$(Platform)\$(Configuration)\</OutputPath>
+    <DefineConstants>TRACE;ANDROID</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <AndroidUseSharedRuntime>False</AndroidUseSharedRuntime>
+    <AndroidLinkMode>SdkOnly</AndroidLinkMode>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Mono.Android" />
+    <Reference Include="mscorlib" />
+    <Reference Include="OpenTK-1.0" />
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Xml" />
+    <Reference Include="MonoGame.Framework">
+      <HintPath>$(MonoGameInstallDirectory)\MonoGame\v3.0\Assemblies\Android\MonoGame.Framework.dll</HintPath>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Activity1.cs" />
+    <Compile Include="Resources\Resource.Designer.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <MonoGameContentReference Include="..\..\Content\Content.mgcb">
+      <Link>Content\Content.mgcb</Link>
+    </MonoGameContentReference>
+    <None Include="Resources\AboutResources.txt" />
+    <None Include="Assets\AboutAssets.txt" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidResource Include="Resources\Values\Strings.xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidResource Include="Resources\Drawable\Icon.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <Folder Include="Resources\Layout\" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidResource Include="Resources\Drawable\Splash.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidResource Include="Resources\Values\Styles.xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Properties\AndroidManifest.xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\XMLContentLoadingSample\XMLContentLoadingSample.csproj">
+      <Project>{18a0f682-c28f-43e9-be04-38e188b3379b}</Project>
+      <Name>XMLContentLoadingSample</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildExtensionsPath)\Novell\Novell.MonoDroid.CSharp.targets" />
+  <Import Project="$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Content.Builder.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>

+ 97 - 0
Platforms/Android/XMLContentLoadingSample.Android.csproj.bak

@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{12F42FF1-FCDC-4F02-932B-FB0F303358ED}</ProjectGuid>
+    <ProjectTypeGuids>{EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>XMLContentLoadingSample.Android</RootNamespace>
+    <AssemblyName>XMLContentLoadingSample.Android</AssemblyName>
+    <FileAlignment>512</FileAlignment>
+    <AndroidApplication>true</AndroidApplication>
+    <AndroidResgenFile>Resources\Resource.Designer.cs</AndroidResgenFile>
+    <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+    <AndroidSupportedAbis>armeabi-v7a%3bx86</AndroidSupportedAbis>
+    <AndroidStoreUncompressedFileExtensions>.m4a</AndroidStoreUncompressedFileExtensions>
+    <MandroidI18n />
+    <TargetFrameworkVersion>v4.4</TargetFrameworkVersion>
+    <MonoGamePlatform>Android</MonoGamePlatform>
+    <AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
+    <AndroidUseLatestPlatformSdk>True</AndroidUseLatestPlatformSdk>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\$(MonoGamePlatform)\$(Platform)\$(Configuration)\</OutputPath>
+    <DefineConstants>DEBUG;TRACE;ANDROID</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <AndroidUseSharedRuntime>True</AndroidUseSharedRuntime>
+    <AndroidLinkMode>None</AndroidLinkMode>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\$(MonoGamePlatform)\$(Platform)\$(Configuration)\</OutputPath>
+    <DefineConstants>TRACE;ANDROID</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <AndroidUseSharedRuntime>False</AndroidUseSharedRuntime>
+    <AndroidLinkMode>SdkOnly</AndroidLinkMode>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Mono.Android" />
+    <Reference Include="mscorlib" />
+    <Reference Include="OpenTK-1.0" />
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Xml" />
+    <Reference Include="MonoGame.Framework">
+      <HintPath>$(MonoGameInstallDirectory)\MonoGame\v3.0\Assemblies\Android\MonoGame.Framework.dll</HintPath>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Activity1.cs" />
+    <Compile Include="Game1.cs" />
+    <Compile Include="Resources\Resource.Designer.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\AboutResources.txt" />
+    <None Include="Assets\AboutAssets.txt" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidResource Include="Resources\Values\Strings.xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidResource Include="Resources\Drawable\Icon.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <Folder Include="Resources\Layout\" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidResource Include="Resources\Drawable\Splash.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidResource Include="Resources\Values\Styles.xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <MonoGameContentReference Include="Content\Content.mgcb" />
+  </ItemGroup>
+  <Import Project="$(MSBuildExtensionsPath)\Novell\Novell.MonoDroid.CSharp.targets" />
+  <Import Project="$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Content.Builder.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>

+ 8 - 0
Platforms/WindowsUWP/App.xaml

@@ -0,0 +1,8 @@
+<Application
+    x:Class="XMLContentLoadingSample.WindowsUWP.App"
+    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+    xmlns:local="using:XMLContentLoadingSample.WindowsUWP"
+    RequestedTheme="Light">
+
+</Application>

+ 134 - 0
Platforms/WindowsUWP/App.xaml.cs

@@ -0,0 +1,134 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Runtime.InteropServices.WindowsRuntime;
+using Windows.ApplicationModel;
+using Windows.ApplicationModel.Activation;
+using Windows.Foundation;
+using Windows.Foundation.Collections;
+using Windows.UI.ViewManagement;
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
+using Windows.UI.Xaml.Controls.Primitives;
+using Windows.UI.Xaml.Data;
+using Windows.UI.Xaml.Input;
+using Windows.UI.Xaml.Media;
+using Windows.UI.Xaml.Navigation;
+
+// The Blank Application template is documented at http://go.microsoft.com/fwlink/?LinkId=402347&clcid=0x409
+
+namespace XMLContentLoadingSample.WindowsUWP
+{
+    /// <summary>
+    /// Provides application-specific behavior to supplement the default Application class.
+    /// </summary>
+    sealed partial class App : Application
+{
+    static string deviceFamily;
+
+    /// <summary>
+    /// Initializes the singleton application object.  This is the first line of authored code
+    /// executed, and as such is the logical equivalent of main() or WinMain().
+    /// </summary>
+    public App()
+    {
+        this.InitializeComponent();
+        this.Suspending += OnSuspending;
+
+        //API check to ensure the "RequiresPointerMode" property exists, ensuring project is running on build 14393 or later
+        if (Windows.Foundation.Metadata.ApiInformation.IsPropertyPresent("Windows.UI.Xaml.Application", "RequiresPointerMode"))
+        {
+            //If running on the Xbox, disable the default on screen pointer
+            if (IsXbox())
+            {
+                Application.Current.RequiresPointerMode = ApplicationRequiresPointerMode.WhenRequested;
+            }
+        }
+    }
+
+    /// <summary>
+    /// Detection code in Windows 10 to identify the platform it is being run on
+    /// This function returns true if the project is running on an XboxOne
+    /// </summary>
+    public static bool IsXbox()
+    {
+        if (deviceFamily == null)
+            deviceFamily = Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily;
+
+        return deviceFamily == "Windows.Xbox";
+    }
+
+    /// <summary>
+    /// Invoked when the application is launched normally by the end user.  Other entry points
+    /// will be used such as when the application is launched to open a specific file.
+    /// </summary>
+    /// <param name="e">Details about the launch request and process.</param>
+    protected override void OnLaunched(LaunchActivatedEventArgs e)
+    {
+        // By default we want to fill the entire core window.
+        ApplicationView.GetForCurrentView().SetDesiredBoundsMode(ApplicationViewBoundsMode.UseCoreWindow);
+
+#if DEBUG
+            if (System.Diagnostics.Debugger.IsAttached)
+            {
+                this.DebugSettings.EnableFrameRateCounter = true;
+            }
+#endif
+
+        Frame rootFrame = Window.Current.Content as Frame;
+
+        // Do not repeat app initialization when the Window already has content,
+        // just ensure that the window is active
+        if (rootFrame == null)
+        {
+            // Create a Frame to act as the navigation context and navigate to the first page
+            rootFrame = new Frame();
+
+            rootFrame.NavigationFailed += OnNavigationFailed;
+
+            if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
+            {
+                //TODO: Load state from previously suspended application
+            }
+
+            // Place the frame in the current Window
+            Window.Current.Content = rootFrame;
+        }
+
+        if (rootFrame.Content == null)
+        {
+            // When the navigation stack isn't restored navigate to the first page,
+            // configuring the new page by passing required information as a navigation
+            // parameter
+            rootFrame.Navigate(typeof(GamePage), e.Arguments);
+        }
+        // Ensure the current window is active
+        Window.Current.Activate();
+    }
+
+    /// <summary>
+    /// Invoked when Navigation to a certain page fails
+    /// </summary>
+    /// <param name="sender">The Frame which failed navigation</param>
+    /// <param name="e">Details about the navigation failure</param>
+    void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
+    {
+        throw new Exception("Failed to load Page " + e.SourcePageType.FullName);
+    }
+
+    /// <summary>
+    /// Invoked when application execution is being suspended.  Application state is saved
+    /// without knowing whether the application will be terminated or resumed with the contents
+    /// of memory still intact.
+    /// </summary>
+    /// <param name="sender">The source of the suspend request.</param>
+    /// <param name="e">Details about the suspend request.</param>
+    private void OnSuspending(object sender, SuspendingEventArgs e)
+    {
+        var deferral = e.SuspendingOperation.GetDeferral();
+        //TODO: Save application state and stop any background activity
+        deferral.Complete();
+    }
+}
+}

BIN
Platforms/WindowsUWP/Assets/LockScreenLogo.scale-200.png


BIN
Platforms/WindowsUWP/Assets/SplashScreen.scale-200.png


BIN
Platforms/WindowsUWP/Assets/Square150x150Logo.scale-200.png


BIN
Platforms/WindowsUWP/Assets/Square44x44Logo.scale-200.png


BIN
Platforms/WindowsUWP/Assets/Square44x44Logo.targetsize-24_altform-unplated.png


BIN
Platforms/WindowsUWP/Assets/StoreLogo.png


BIN
Platforms/WindowsUWP/Assets/Wide310x150Logo.scale-200.png


+ 12 - 0
Platforms/WindowsUWP/GamePage.xaml

@@ -0,0 +1,12 @@
+<Page
+    x:Class="XMLContentLoadingSample.WindowsUWP.GamePage"
+    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+    xmlns:local="using:XMLContentLoadingSample.WindowsUWP"
+    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+    mc:Ignorable="d">
+
+  <SwapChainPanel x:Name="swapChainPanel" />
+
+</Page>

+ 36 - 0
Platforms/WindowsUWP/GamePage.xaml.cs

@@ -0,0 +1,36 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Runtime.InteropServices.WindowsRuntime;
+using Windows.Foundation;
+using Windows.Foundation.Collections;
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
+using Windows.UI.Xaml.Controls.Primitives;
+using Windows.UI.Xaml.Data;
+using Windows.UI.Xaml.Input;
+using Windows.UI.Xaml.Media;
+using Windows.UI.Xaml.Navigation;
+
+// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409
+
+namespace XMLContentLoadingSample.WindowsUWP
+{
+    /// <summary>
+    /// An empty page that can be used on its own or navigated to within a Frame.
+    /// </summary>
+    public sealed partial class GamePage : Page
+    {
+		readonly Particle3DSampleGame _game;
+
+		public GamePage()
+        {
+            this.InitializeComponent();
+
+			// Create the game.
+			var launchArguments = string.Empty;
+            _game = MonoGame.Framework.XamlGame<Particle3DSampleGame>.Create(launchArguments, Window.Current.CoreWindow, swapChainPanel);
+        }
+    }
+}

+ 48 - 0
Platforms/WindowsUWP/Package.appxmanifest

@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<Package
+  xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
+  xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
+  xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
+  IgnorableNamespaces="uap mp">
+
+  <Identity
+    Name="8738f748-7cfa-4887-b76d-d16ce5273e0e"
+    Publisher="CN=gamed"
+    Version="1.0.0.0" />
+
+  <mp:PhoneIdentity PhoneProductId="8738f748-7cfa-4887-b76d-d16ce5273e0e" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>
+
+  <Properties>
+    <DisplayName>XMLContentLoadingSample.WindowsUWP</DisplayName>
+    <PublisherDisplayName>gamed</PublisherDisplayName>
+    <Logo>Assets\StoreLogo.png</Logo>
+  </Properties>
+
+  <Dependencies>
+    <TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" />
+  </Dependencies>
+
+  <Resources>
+    <Resource Language="x-generate"/>
+  </Resources>
+
+  <Applications>
+    <Application Id="App"
+      Executable="$targetnametoken$.exe"
+      EntryPoint="XMLContentLoadingSample.WindowsUWP.App">
+      <uap:VisualElements
+        DisplayName="XMLContentLoadingSample.WindowsUWP"
+        Square150x150Logo="Assets\Logo.png"
+        Square44x44Logo="Assets\SmallLogo.png"
+        Description="XMLContentLoadingSample.WindowsUWP"
+        BackgroundColor="#464646">
+        <uap:SplashScreen Image="Assets\SplashScreen.png" />
+      </uap:VisualElements>
+    </Application>
+  </Applications>
+
+  <Capabilities>
+    <Capability Name="internetClient" />
+  </Capabilities>
+</Package>

+ 29 - 0
Platforms/WindowsUWP/Properties/AssemblyInfo.cs

@@ -0,0 +1,29 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("XMLContentLoadingSample.WindowsUWP")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("XMLContentLoadingSample.WindowsUWP")]
+[assembly: AssemblyCopyright("Copyright ©  2017")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
+[assembly: ComVisible(false)]

+ 31 - 0
Platforms/WindowsUWP/Properties/Default.rd.xml

@@ -0,0 +1,31 @@
+<!--
+    This file contains Runtime Directives used by .NET Native. The defaults here are suitable for most
+    developers. However, you can modify these parameters to modify the behavior of the .NET Native
+    optimizer.
+
+    Runtime Directives are documented at http://go.microsoft.com/fwlink/?LinkID=391919
+
+    To fully enable reflection for App1.MyClass and all of its public/private members
+    <Type Name="App1.MyClass" Dynamic="Required All"/>
+
+    To enable dynamic creation of the specific instantiation of AppClass<T> over System.Int32
+    <TypeInstantiation Name="App1.AppClass" Arguments="System.Int32" Activate="Required Public" />
+
+    Using the Namespace directive to apply reflection policy to all the types in a particular namespace
+    <Namespace Name="DataClasses.ViewModels" Seralize="All" />
+-->
+
+<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
+  <Application>
+    <!--
+      An Assembly element with Name="*Application*" applies to all assemblies in
+      the application package. The asterisks are not wildcards.
+    -->
+    <Assembly Name="*Application*" Dynamic="Required All" />
+    
+    
+    <!-- Add your application specific runtime directives here. -->
+
+
+  </Application>
+</Directives>

+ 158 - 0
Platforms/WindowsUWP/XMLContentLoadingSample.WindowsUWP.csproj

@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Common.props')" />
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
+    <ProjectGuid>{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}</ProjectGuid>
+    <OutputType>AppContainerExe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>XMLContentLoadingSample.WindowsUWP</RootNamespace>
+    <AssemblyName>XMLContentLoadingSample.WindowsUWP</AssemblyName>
+    <DefaultLanguage>en-US</DefaultLanguage>
+    <TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
+    <TargetPlatformVersion>10.0.14393.0</TargetPlatformVersion>
+    <TargetPlatformMinVersion>10.0.10240.0</TargetPlatformMinVersion>
+    <MinimumVisualStudioVersion>14</MinimumVisualStudioVersion>
+    <EnableDotNetNativeCompatibleProfile>true</EnableDotNetNativeCompatibleProfile>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <PackageCertificateKeyFile>XMLContentLoadingSample.WindowsUWP_TemporaryKey.pfx</PackageCertificateKeyFile>
+    <MonoGamePlatform>WindowsStoreApp</MonoGamePlatform>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\WindowsUniversal\$(Platform)\$(Configuration)\</OutputPath>
+    <DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UAP</DefineConstants>
+    <NoWarn>;2008</NoWarn>
+    <DebugType>full</DebugType>
+    <PlatformTarget>ARM</PlatformTarget>
+    <UseVSHostingProcess>false</UseVSHostingProcess>
+    <ErrorReport>prompt</ErrorReport>
+    <Prefer32Bit>true</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|ARM'">
+    <OutputPath>bin\WindowsUniversal\$(Platform)\$(Configuration)\</OutputPath>
+    <DefineConstants>TRACE;NETFX_CORE;WINDOWS_UAP</DefineConstants>
+    <Optimize>true</Optimize>
+    <NoWarn>;2008</NoWarn>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>ARM</PlatformTarget>
+    <UseVSHostingProcess>false</UseVSHostingProcess>
+    <ErrorReport>prompt</ErrorReport>
+    <Prefer32Bit>true</Prefer32Bit>
+    <UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\WindowsUniversal\$(Platform)\$(Configuration)\</OutputPath>
+    <DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UAP</DefineConstants>
+    <NoWarn>;2008</NoWarn>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <UseVSHostingProcess>false</UseVSHostingProcess>
+    <ErrorReport>prompt</ErrorReport>
+    <Prefer32Bit>true</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+    <OutputPath>bin\WindowsUniversal\$(Platform)\$(Configuration)\</OutputPath>
+    <DefineConstants>TRACE;NETFX_CORE;WINDOWS_UAP</DefineConstants>
+    <Optimize>true</Optimize>
+    <NoWarn>;2008</NoWarn>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <UseVSHostingProcess>false</UseVSHostingProcess>
+    <ErrorReport>prompt</ErrorReport>
+    <Prefer32Bit>true</Prefer32Bit>
+    <UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\WindowsUniversal\$(Platform)\$(Configuration)\</OutputPath>
+    <DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UAP</DefineConstants>
+    <NoWarn>;2008</NoWarn>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <UseVSHostingProcess>false</UseVSHostingProcess>
+    <ErrorReport>prompt</ErrorReport>
+    <Prefer32Bit>true</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
+    <OutputPath>bin\WindowsUniversal\$(Platform)\$(Configuration)\</OutputPath>
+    <DefineConstants>TRACE;NETFX_CORE;WINDOWS_UAP</DefineConstants>
+    <Optimize>true</Optimize>
+    <NoWarn>;2008</NoWarn>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <UseVSHostingProcess>false</UseVSHostingProcess>
+    <ErrorReport>prompt</ErrorReport>
+    <Prefer32Bit>true</Prefer32Bit>
+    <UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
+  </PropertyGroup>
+  <ItemGroup>
+    <!-- A reference to the entire .Net Framework and Windows SDK are automatically included -->
+    <Reference Include="MonoGame.Framework">
+      <HintPath>$(MonoGameInstallDirectory)\MonoGame\v3.0\Assemblies\WindowsUniversal\MonoGame.Framework.dll</HintPath>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="App.xaml.cs">
+      <DependentUpon>App.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="GamePage.xaml.cs">
+      <DependentUpon>GamePage.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <MonoGameContentReference Include="..\..\Content\Content.mgcb">
+      <Link>Content\Content.mgcb</Link>
+    </MonoGameContentReference>
+    <None Include="project.json" />
+  </ItemGroup>
+  <ItemGroup>
+    <AppxManifest Include="Package.appxmanifest">
+      <SubType>Designer</SubType>
+    </AppxManifest>
+    <None Include="XMLContentLoadingSample.WindowsUWP_TemporaryKey.pfx" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="Properties\Default.rd.xml" />
+    <Content Include="Assets\LockScreenLogo.scale-200.png" />
+    <Content Include="Assets\SplashScreen.scale-200.png" />
+    <Content Include="Assets\Square150x150Logo.scale-200.png" />
+    <Content Include="Assets\Square44x44Logo.scale-200.png" />
+    <Content Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png" />
+    <Content Include="Assets\StoreLogo.png" />
+    <Content Include="Assets\Wide310x150Logo.scale-200.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <ApplicationDefinition Include="App.xaml">
+      <Generator>MSBuild:Compile</Generator>
+      <SubType>Designer</SubType>
+    </ApplicationDefinition>
+    <Page Include="GamePage.xaml">
+      <Generator>MSBuild:Compile</Generator>
+      <SubType>Designer</SubType>
+    </Page>
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\XMLContentLoadingSample\XMLContentLoadingSample.csproj">
+      <Project>{18a0f682-c28f-43e9-be04-38e188b3379b}</Project>
+      <Name>XMLContentLoadingSample</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' &lt; '14.0' ">
+    <VisualStudioVersion>14.0</VisualStudioVersion>
+  </PropertyGroup>
+  <Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" />
+  <Import Project="$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Content.Builder.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>

+ 16 - 0
Platforms/WindowsUWP/project.json

@@ -0,0 +1,16 @@
+{
+  "dependencies": {
+    "Microsoft.NETCore.UniversalWindowsPlatform": "5.2.2"
+  },
+  "frameworks": {
+    "uap10.0": {}
+  },
+  "runtimes": {
+    "win10-arm": {},
+    "win10-arm-aot": {},
+    "win10-x86": {},
+    "win10-x86-aot": {},
+    "win10-x64": {},
+    "win10-x64-aot": {}
+  }
+}

BIN
Platforms/iOS/Default.png


+ 6 - 0
Platforms/iOS/Entitlements.plist

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+</dict>
+</plist>

BIN
Platforms/iOS/GameThumbnail.png


+ 23 - 0
Platforms/iOS/Info.plist

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDisplayName</key>
+	<string>XMLContentLoadingSample.iOS</string>
+	<key>CFBundleIconFiles</key>
+	<array>
+		<string>GameThumbnail.png</string>
+	</array>
+	<key>CFBundleIdentifier</key>
+	<string>project.MonoGame.XMLContentLoadingSample.iOS</string>
+	<key>MinimumOSVersion</key>
+	<string>7.0</string>
+	<key>UISupportedInterfaceOrientations</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationPortraitUpsideDown</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+</dict>
+</plist>

+ 31 - 0
Platforms/iOS/Program.cs

@@ -0,0 +1,31 @@
+using System;
+using Foundation;
+using UIKit;
+
+namespace XMLContentLoadingSample.iOS
+{
+    [Register("AppDelegate")]
+    class Program : UIApplicationDelegate
+    {
+        private static Particle3DSampleGame game;
+
+        internal static void RunGame()
+        {
+            game = new Particle3DSampleGame();
+            game.Run();
+        }
+
+        /// <summary>
+        /// The main entry point for the application.
+        /// </summary>
+        static void Main(string[] args)
+        {
+            UIApplication.Main(args, null, "AppDelegate");
+        }
+
+        public override void FinishedLaunching(UIApplication app)
+        {
+            RunGame();
+        }
+    }
+}

+ 34 - 0
Platforms/iOS/Properties/AssemblyInfo.cs

@@ -0,0 +1,34 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("XMLContentLoadingSample.iOS")]
+[assembly: AssemblyProduct("XMLContentLoadingSample.iOS")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyCopyright("Copyright ©  2017")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
+
+// The following attributes are used to specify the signing key for the assembly,
+// if desired. See the Mono documentation for more information about signing.
+
+//[assembly: AssemblyDelaySign(false)]
+//[assembly: AssemblyKeyFile("")]
+

+ 136 - 0
Platforms/iOS/XMLContentLoadingSample.iOS.csproj

@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform>
+    <ProjectTypeGuids>{FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <ProjectGuid>{16A211FF-510F-436B-80C6-D9262DF51D92}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <RootNamespace>XMLContentLoadingSample.iOS</RootNamespace>
+    <IPhoneResourcePrefix>Resources</IPhoneResourcePrefix>
+    <AssemblyName>XMLContentLoadingSample.iOS</AssemblyName>
+    <MonoGamePlatform>iOS</MonoGamePlatform>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\$(Platform)\$(Configuration)</OutputPath>
+    <DefineConstants>DEBUG;</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ConsolePause>false</ConsolePause>
+    <MtouchArch>i386, x86_64</MtouchArch>
+    <MtouchLink>None</MtouchLink>
+    <MtouchUseRefCounting>true</MtouchUseRefCounting>
+    <MtouchUseSGen>true</MtouchUseSGen>
+    <MtouchFastDev>true</MtouchFastDev>
+    <MtouchDebug>true</MtouchDebug>
+    <MtouchProfiling>true</MtouchProfiling>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
+    <DebugType>none</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\$(Platform)\$(Configuration)</OutputPath>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ConsolePause>false</ConsolePause>
+    <MtouchArch>i386, x86_64</MtouchArch>
+    <MtouchLink>None</MtouchLink>
+    <MtouchUseRefCounting>true</MtouchUseRefCounting>
+    <MtouchUseSGen>true</MtouchUseSGen>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\$(Platform)\$(Configuration)</OutputPath>
+    <DefineConstants>DEBUG;</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ConsolePause>false</ConsolePause>
+    <MtouchArch>ARMv7, ARMv7s, ARM64</MtouchArch>
+    <DeviceSpecificBuild>true</DeviceSpecificBuild>
+    <MtouchDebug>true</MtouchDebug>
+    <MtouchUseSGen>true</MtouchUseSGen>
+    <MtouchUseRefCounting>true</MtouchUseRefCounting>
+    <MtouchProfiling>true</MtouchProfiling>
+    <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
+    <CodesignKey>iPhone Developer</CodesignKey>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
+    <DebugType>none</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\$(Platform)\$(Configuration)</OutputPath>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ConsolePause>false</ConsolePause>
+    <MtouchArch>ARMv7, ARMv7s, ARM64</MtouchArch>
+    <MtouchUseSGen>true</MtouchUseSGen>
+    <MtouchUseRefCounting>true</MtouchUseRefCounting>
+    <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
+    <CodesignKey>iPhone Developer</CodesignKey>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Ad-Hoc|iPhone' ">
+    <DebugType>none</DebugType>
+    <Optimize>True</Optimize>
+    <OutputPath>bin\$(Platform)\$(Configuration)</OutputPath>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ConsolePause>False</ConsolePause>
+    <MtouchArch>ARMv7, ARMv7s, ARM64</MtouchArch>
+    <MtouchUseRefCounting>true</MtouchUseRefCounting>
+    <MtouchUseSGen>true</MtouchUseSGen>
+    <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
+    <BuildIpa>True</BuildIpa>
+    <CodesignProvision>Automatic:AdHoc</CodesignProvision>
+    <CodesignKey>iPhone Distribution</CodesignKey>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'AppStore|iPhone' ">
+    <DebugType>none</DebugType>
+    <Optimize>True</Optimize>
+    <OutputPath>bin\$(Platform)\$(Configuration)</OutputPath>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ConsolePause>False</ConsolePause>
+    <MtouchArch>ARMv7, ARMv7s, ARM64</MtouchArch>
+    <MtouchUseSGen>true</MtouchUseSGen>
+    <MtouchUseRefCounting>true</MtouchUseRefCounting>
+    <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
+    <CodesignProvision>Automatic:AppStore</CodesignProvision>
+    <CodesignKey>iPhone Distribution</CodesignKey>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Xml" />
+    <Reference Include="System.Core" />
+    <Reference Include="Xamarin.iOS" />
+    <Reference Include="MonoGame.Framework">
+      <HintPath>$(MonoGameInstallDirectory)\MonoGame\v3.0\Assemblies\iOS\MonoGame.Framework.dll</HintPath>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <MonoGameContentReference Include="..\..\Content\Content.mgcb">
+      <Link>Content\Content.mgcb</Link>
+    </MonoGameContentReference>
+    <None Include="Entitlements.plist" />
+    <None Include="Info.plist" />
+  </ItemGroup>
+  <ItemGroup>
+    <BundleResource Include="Default.png" />
+    <BundleResource Include="GameThumbnail.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\XMLContentLoadingSample\XMLContentLoadingSample.csproj">
+      <Project>{18a0f682-c28f-43e9-be04-38e188b3379b}</Project>
+      <Name>XMLContentLoadingSample</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
+  <Import Project="$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Content.Builder.targets" />
+</Project>

+ 348 - 0
XMLContentLoadingSample.sln

@@ -13,44 +13,389 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XMLContentLoadingSample.Des
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XMLContentLoadingSample.WindowsDX", "Platforms\WindowsDX\XMLContentLoadingSample.WindowsDX.csproj", "{65C24C9F-7E44-4ED8-9250-B04EB691EB96}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XMLContentLoadingSample.WindowsUWP", "Platforms\WindowsUWP\XMLContentLoadingSample.WindowsUWP.csproj", "{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XMLContentLoadingSample.Android", "Platforms\Android\XMLContentLoadingSample.Android.csproj", "{12F42FF1-FCDC-4F02-932B-FB0F303358ED}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XMLContentLoadingSample.iOS", "Platforms\iOS\XMLContentLoadingSample.iOS.csproj", "{16A211FF-510F-436B-80C6-D9262DF51D92}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
+		Ad-Hoc|ARM = Ad-Hoc|ARM
+		Ad-Hoc|iPhone = Ad-Hoc|iPhone
+		Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator
+		Ad-Hoc|x64 = Ad-Hoc|x64
+		Ad-Hoc|x86 = Ad-Hoc|x86
+		AppStore|Any CPU = AppStore|Any CPU
+		AppStore|ARM = AppStore|ARM
+		AppStore|iPhone = AppStore|iPhone
+		AppStore|iPhoneSimulator = AppStore|iPhoneSimulator
+		AppStore|x64 = AppStore|x64
+		AppStore|x86 = AppStore|x86
 		Debug|Any CPU = Debug|Any CPU
+		Debug|ARM = Debug|ARM
+		Debug|iPhone = Debug|iPhone
+		Debug|iPhoneSimulator = Debug|iPhoneSimulator
+		Debug|x64 = Debug|x64
 		Debug|x86 = Debug|x86
 		Release|Any CPU = Release|Any CPU
+		Release|ARM = Release|ARM
+		Release|iPhone = Release|iPhone
+		Release|iPhoneSimulator = Release|iPhoneSimulator
+		Release|x64 = Release|x64
 		Release|x86 = Release|x86
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Ad-Hoc|ARM.Build.0 = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Ad-Hoc|x64.Build.0 = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Ad-Hoc|x86.Build.0 = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.AppStore|Any CPU.Build.0 = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.AppStore|ARM.ActiveCfg = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.AppStore|ARM.Build.0 = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.AppStore|iPhone.ActiveCfg = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.AppStore|iPhone.Build.0 = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.AppStore|x64.ActiveCfg = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.AppStore|x64.Build.0 = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.AppStore|x86.ActiveCfg = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.AppStore|x86.Build.0 = Release|Any CPU
 		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Debug|ARM.ActiveCfg = Debug|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Debug|ARM.Build.0 = Debug|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Debug|iPhone.Build.0 = Debug|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Debug|x64.Build.0 = Debug|Any CPU
 		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Debug|x86.ActiveCfg = Debug|Any CPU
 		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Debug|x86.Build.0 = Debug|Any CPU
 		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Release|ARM.ActiveCfg = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Release|ARM.Build.0 = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Release|iPhone.ActiveCfg = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Release|iPhone.Build.0 = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Release|x64.ActiveCfg = Release|Any CPU
+		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Release|x64.Build.0 = Release|Any CPU
 		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Release|x86.ActiveCfg = Release|Any CPU
 		{18A0F682-C28F-43E9-BE04-38E188B3379B}.Release|x86.Build.0 = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Ad-Hoc|ARM.Build.0 = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Ad-Hoc|x64.Build.0 = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Ad-Hoc|x86.Build.0 = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.AppStore|Any CPU.Build.0 = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.AppStore|ARM.ActiveCfg = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.AppStore|ARM.Build.0 = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.AppStore|iPhone.ActiveCfg = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.AppStore|iPhone.Build.0 = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.AppStore|x64.ActiveCfg = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.AppStore|x64.Build.0 = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.AppStore|x86.ActiveCfg = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.AppStore|x86.Build.0 = Release|Any CPU
 		{3994E064-F047-433B-9388-7F1748B87AC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{3994E064-F047-433B-9388-7F1748B87AC0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Debug|ARM.ActiveCfg = Debug|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Debug|ARM.Build.0 = Debug|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Debug|iPhone.Build.0 = Debug|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Debug|x64.Build.0 = Debug|Any CPU
 		{3994E064-F047-433B-9388-7F1748B87AC0}.Debug|x86.ActiveCfg = Debug|Any CPU
 		{3994E064-F047-433B-9388-7F1748B87AC0}.Debug|x86.Build.0 = Debug|Any CPU
 		{3994E064-F047-433B-9388-7F1748B87AC0}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{3994E064-F047-433B-9388-7F1748B87AC0}.Release|Any CPU.Build.0 = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Release|ARM.ActiveCfg = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Release|ARM.Build.0 = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Release|iPhone.ActiveCfg = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Release|iPhone.Build.0 = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Release|x64.ActiveCfg = Release|Any CPU
+		{3994E064-F047-433B-9388-7F1748B87AC0}.Release|x64.Build.0 = Release|Any CPU
 		{3994E064-F047-433B-9388-7F1748B87AC0}.Release|x86.ActiveCfg = Release|Any CPU
 		{3994E064-F047-433B-9388-7F1748B87AC0}.Release|x86.Build.0 = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Ad-Hoc|ARM.Build.0 = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Ad-Hoc|x64.Build.0 = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Ad-Hoc|x86.Build.0 = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.AppStore|Any CPU.Build.0 = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.AppStore|ARM.ActiveCfg = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.AppStore|ARM.Build.0 = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.AppStore|iPhone.ActiveCfg = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.AppStore|iPhone.Build.0 = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.AppStore|x64.ActiveCfg = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.AppStore|x64.Build.0 = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.AppStore|x86.ActiveCfg = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.AppStore|x86.Build.0 = Release|Any CPU
 		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Debug|ARM.ActiveCfg = Debug|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Debug|ARM.Build.0 = Debug|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Debug|iPhone.Build.0 = Debug|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Debug|x64.Build.0 = Debug|Any CPU
 		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Debug|x86.ActiveCfg = Debug|Any CPU
 		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Debug|x86.Build.0 = Debug|Any CPU
 		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Release|Any CPU.Build.0 = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Release|ARM.ActiveCfg = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Release|ARM.Build.0 = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Release|iPhone.ActiveCfg = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Release|iPhone.Build.0 = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Release|x64.ActiveCfg = Release|Any CPU
+		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Release|x64.Build.0 = Release|Any CPU
 		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Release|x86.ActiveCfg = Release|Any CPU
 		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E}.Release|x86.Build.0 = Release|Any CPU
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Ad-Hoc|Any CPU.ActiveCfg = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Ad-Hoc|Any CPU.Build.0 = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Ad-Hoc|ARM.ActiveCfg = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Ad-Hoc|ARM.Build.0 = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Ad-Hoc|iPhone.ActiveCfg = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Ad-Hoc|iPhone.Build.0 = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Ad-Hoc|x64.ActiveCfg = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Ad-Hoc|x64.Build.0 = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Ad-Hoc|x86.ActiveCfg = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Ad-Hoc|x86.Build.0 = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.AppStore|Any CPU.ActiveCfg = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.AppStore|Any CPU.Build.0 = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.AppStore|ARM.ActiveCfg = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.AppStore|ARM.Build.0 = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.AppStore|iPhone.ActiveCfg = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.AppStore|iPhone.Build.0 = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.AppStore|iPhoneSimulator.ActiveCfg = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.AppStore|iPhoneSimulator.Build.0 = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.AppStore|x64.ActiveCfg = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.AppStore|x64.Build.0 = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.AppStore|x86.ActiveCfg = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.AppStore|x86.Build.0 = Release|x86
 		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Debug|Any CPU.ActiveCfg = Debug|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Debug|Any CPU.Build.0 = Debug|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Debug|ARM.ActiveCfg = Debug|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Debug|iPhone.ActiveCfg = Debug|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Debug|x64.ActiveCfg = Debug|x86
 		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Debug|x86.ActiveCfg = Debug|x86
 		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Debug|x86.Build.0 = Debug|x86
 		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Release|Any CPU.ActiveCfg = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Release|ARM.ActiveCfg = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Release|iPhone.ActiveCfg = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Release|iPhoneSimulator.ActiveCfg = Release|x86
+		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Release|x64.ActiveCfg = Release|x86
 		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Release|x86.ActiveCfg = Release|x86
 		{65C24C9F-7E44-4ED8-9250-B04EB691EB96}.Release|x86.Build.0 = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Ad-Hoc|Any CPU.ActiveCfg = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Ad-Hoc|Any CPU.Build.0 = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Ad-Hoc|Any CPU.Deploy.0 = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Ad-Hoc|ARM.ActiveCfg = Release|ARM
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Ad-Hoc|ARM.Build.0 = Release|ARM
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Ad-Hoc|ARM.Deploy.0 = Release|ARM
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Ad-Hoc|iPhone.ActiveCfg = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Ad-Hoc|iPhone.Build.0 = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Ad-Hoc|iPhone.Deploy.0 = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Ad-Hoc|x64.ActiveCfg = Release|x64
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Ad-Hoc|x64.Build.0 = Release|x64
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Ad-Hoc|x64.Deploy.0 = Release|x64
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Ad-Hoc|x86.ActiveCfg = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Ad-Hoc|x86.Build.0 = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Ad-Hoc|x86.Deploy.0 = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.AppStore|Any CPU.ActiveCfg = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.AppStore|Any CPU.Build.0 = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.AppStore|Any CPU.Deploy.0 = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.AppStore|ARM.ActiveCfg = Release|ARM
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.AppStore|ARM.Build.0 = Release|ARM
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.AppStore|ARM.Deploy.0 = Release|ARM
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.AppStore|iPhone.ActiveCfg = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.AppStore|iPhone.Build.0 = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.AppStore|iPhone.Deploy.0 = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.AppStore|iPhoneSimulator.ActiveCfg = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.AppStore|iPhoneSimulator.Build.0 = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.AppStore|iPhoneSimulator.Deploy.0 = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.AppStore|x64.ActiveCfg = Release|x64
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.AppStore|x64.Build.0 = Release|x64
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.AppStore|x64.Deploy.0 = Release|x64
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.AppStore|x86.ActiveCfg = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.AppStore|x86.Build.0 = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.AppStore|x86.Deploy.0 = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Debug|Any CPU.ActiveCfg = Debug|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Debug|Any CPU.Build.0 = Debug|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Debug|Any CPU.Deploy.0 = Debug|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Debug|ARM.ActiveCfg = Debug|ARM
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Debug|ARM.Build.0 = Debug|ARM
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Debug|ARM.Deploy.0 = Debug|ARM
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Debug|iPhone.ActiveCfg = Debug|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Debug|x64.ActiveCfg = Debug|x64
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Debug|x64.Build.0 = Debug|x64
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Debug|x64.Deploy.0 = Debug|x64
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Debug|x86.ActiveCfg = Debug|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Debug|x86.Build.0 = Debug|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Debug|x86.Deploy.0 = Debug|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Release|Any CPU.ActiveCfg = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Release|ARM.ActiveCfg = Release|ARM
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Release|ARM.Build.0 = Release|ARM
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Release|ARM.Deploy.0 = Release|ARM
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Release|iPhone.ActiveCfg = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Release|iPhoneSimulator.ActiveCfg = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Release|x64.ActiveCfg = Release|x64
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Release|x64.Build.0 = Release|x64
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Release|x64.Deploy.0 = Release|x64
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Release|x86.ActiveCfg = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Release|x86.Build.0 = Release|x86
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472}.Release|x86.Deploy.0 = Release|x86
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Ad-Hoc|Any CPU.Deploy.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Ad-Hoc|ARM.Build.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Ad-Hoc|ARM.Deploy.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Ad-Hoc|iPhone.Deploy.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Ad-Hoc|x64.Build.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Ad-Hoc|x64.Deploy.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Ad-Hoc|x86.Build.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Ad-Hoc|x86.Deploy.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.AppStore|Any CPU.Build.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.AppStore|Any CPU.Deploy.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.AppStore|ARM.ActiveCfg = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.AppStore|ARM.Build.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.AppStore|ARM.Deploy.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.AppStore|iPhone.ActiveCfg = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.AppStore|iPhone.Build.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.AppStore|iPhone.Deploy.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.AppStore|iPhoneSimulator.Deploy.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.AppStore|x64.ActiveCfg = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.AppStore|x64.Build.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.AppStore|x64.Deploy.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.AppStore|x86.ActiveCfg = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.AppStore|x86.Build.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.AppStore|x86.Deploy.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Debug|ARM.ActiveCfg = Debug|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Debug|ARM.Build.0 = Debug|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Debug|ARM.Deploy.0 = Debug|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Debug|iPhone.Build.0 = Debug|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Debug|iPhone.Deploy.0 = Debug|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Debug|x64.Build.0 = Debug|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Debug|x64.Deploy.0 = Debug|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Debug|x86.Build.0 = Debug|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Debug|x86.Deploy.0 = Debug|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Release|Any CPU.Build.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Release|Any CPU.Deploy.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Release|ARM.ActiveCfg = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Release|ARM.Build.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Release|ARM.Deploy.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Release|iPhone.ActiveCfg = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Release|iPhone.Build.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Release|iPhone.Deploy.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Release|x64.ActiveCfg = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Release|x64.Build.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Release|x64.Deploy.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Release|x86.ActiveCfg = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Release|x86.Build.0 = Release|Any CPU
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED}.Release|x86.Deploy.0 = Release|Any CPU
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhone
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.Ad-Hoc|ARM.ActiveCfg = Ad-Hoc|iPhone
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.Ad-Hoc|x64.ActiveCfg = Ad-Hoc|iPhone
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.Ad-Hoc|x86.ActiveCfg = Ad-Hoc|iPhone
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.AppStore|Any CPU.ActiveCfg = AppStore|iPhone
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.AppStore|ARM.ActiveCfg = AppStore|iPhone
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.AppStore|iPhone.ActiveCfg = AppStore|iPhone
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.AppStore|iPhone.Build.0 = AppStore|iPhone
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.AppStore|x64.ActiveCfg = AppStore|iPhone
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.AppStore|x86.ActiveCfg = AppStore|iPhone
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.Debug|Any CPU.ActiveCfg = Debug|iPhone
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.Debug|ARM.ActiveCfg = Debug|iPhone
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.Debug|iPhone.ActiveCfg = Debug|iPhone
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.Debug|iPhone.Build.0 = Debug|iPhone
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.Debug|x64.ActiveCfg = Debug|iPhone
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.Debug|x86.ActiveCfg = Debug|iPhone
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.Release|Any CPU.ActiveCfg = Release|iPhone
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.Release|ARM.ActiveCfg = Release|iPhone
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.Release|iPhone.ActiveCfg = Release|iPhone
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.Release|iPhone.Build.0 = Release|iPhone
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.Release|x64.ActiveCfg = Release|iPhone
+		{16A211FF-510F-436B-80C6-D9262DF51D92}.Release|x86.ActiveCfg = Release|iPhone
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -58,5 +403,8 @@ Global
 	GlobalSection(NestedProjects) = preSolution
 		{E606F782-2258-49B2-8BD6-A6DE3ACFD01E} = {FE76C17D-1849-4E9F-8C66-520B9A146F5B}
 		{65C24C9F-7E44-4ED8-9250-B04EB691EB96} = {FE76C17D-1849-4E9F-8C66-520B9A146F5B}
+		{CE7C4EBE-CCF4-4BFD-B620-76E4A3525472} = {FE76C17D-1849-4E9F-8C66-520B9A146F5B}
+		{12F42FF1-FCDC-4F02-932B-FB0F303358ED} = {FE76C17D-1849-4E9F-8C66-520B9A146F5B}
+		{16A211FF-510F-436B-80C6-D9262DF51D92} = {FE76C17D-1849-4E9F-8C66-520B9A146F5B}
 	EndGlobalSection
 EndGlobal

+ 2 - 5
XMLContentLoadingSample/XMLParticleSystem.cs

@@ -400,22 +400,19 @@ namespace XMLContentLoadingSample
                     {
                         // If the active particles are all in one consecutive range,
                         // we can draw them all in a single call.
-                        device.DrawIndexedPrimitives(PrimitiveType.TriangleList, 0,
-                                                     firstActiveParticle * 4, (firstFreeParticle - firstActiveParticle) * 4,
+                        device.DrawIndexedPrimitives(PrimitiveType.TriangleList, 0,                                                     
                                                      firstActiveParticle * 6, (firstFreeParticle - firstActiveParticle) * 2);
                     }
                     else
                     {
                         // If the active particle range wraps past the end of the queue
-                        // back to the start, we must split them over two draw calls.
+                        //// back to the start, we must split them over two draw calls.
                         device.DrawIndexedPrimitives(PrimitiveType.TriangleList, 0,
-                                                     firstActiveParticle * 4, (settings.MaxParticles - firstActiveParticle) * 4,
                                                      firstActiveParticle * 6, (settings.MaxParticles - firstActiveParticle) * 2);
 
                         if (firstFreeParticle > 0)
                         {
                             device.DrawIndexedPrimitives(PrimitiveType.TriangleList, 0,
-                                                         0, firstFreeParticle * 4,
                                                          0, firstFreeParticle * 2);
                         }
                     }