Преглед на файлове

Draw2d updated to SDK and MG 3.8.*

CartBlanche преди 2 седмици
родител
ревизия
51e2162635
променени са 39 файла, в които са добавени 448 реда и са изтрити 749 реда
  1. 25 0
      Draw2D/.vscode/launch.json
  2. 3 0
      Draw2D/.vscode/settings.json
  3. 47 0
      Draw2D/.vscode/tasks.json
  4. 0 23
      Draw2D/Activity1.cs
  5. 0 0
      Draw2D/Core/Content/Default.png
  6. 0 0
      Draw2D/Core/Content/monogameicon.png
  7. 0 0
      Draw2D/Core/Content/monogameicon48x48.png
  8. 11 0
      Draw2D/Core/Draw2D.Core.csproj
  9. 1 1
      Draw2D/Core/FPSCounterComponent.cs
  10. 21 22
      Draw2D/Core/Game1.cs
  11. 0 93
      Draw2D/Draw2D.Android.csproj
  12. 0 79
      Draw2D/Draw2D.Linux.csproj
  13. 0 93
      Draw2D/Draw2D.MacOS.csproj
  14. 0 64
      Draw2D/Draw2D.PSMobile.csproj
  15. 0 86
      Draw2D/Draw2D.Windows.csproj
  16. 0 114
      Draw2D/Draw2D.iOS.csproj
  17. 56 0
      Draw2D/Draw2D.sln
  18. 0 16
      Draw2D/Info.plist
  19. 29 0
      Draw2D/Platforms/Android/Activity1.cs
  20. 18 0
      Draw2D/Platforms/Android/AndroidManifest.xml
  21. 23 0
      Draw2D/Platforms/Android/Draw2D.Android.csproj
  22. 6 6
      Draw2D/Platforms/Android/Properties/AndroidManifest.xml
  23. 0 0
      Draw2D/Platforms/Android/Resources/Drawable/Icon.png
  24. 0 0
      Draw2D/Platforms/Android/Resources/Drawable/Splash.png
  25. 0 0
      Draw2D/Platforms/Android/Resources/Resource.Designer.cs
  26. 4 0
      Draw2D/Platforms/Android/Resources/Values/Strings.xml
  27. 1 2
      Draw2D/Platforms/Android/Resources/Values/Styles.xml
  28. 23 0
      Draw2D/Platforms/Desktop/Draw2D.DesktopGL.csproj
  29. 14 0
      Draw2D/Platforms/Desktop/Program.cs
  30. 24 0
      Draw2D/Platforms/Windows/Draw2D.Windows.csproj
  31. 14 0
      Draw2D/Platforms/Windows/Program.cs
  32. 19 0
      Draw2D/Platforms/iOS/AppDelegate.cs
  33. 22 0
      Draw2D/Platforms/iOS/Draw2D.iOS.csproj
  34. 23 0
      Draw2D/Platforms/iOS/Info.plist
  35. 13 0
      Draw2D/Platforms/iOS/Program.cs
  36. 0 36
      Draw2D/Properties/AssemblyInfo.cs
  37. 51 0
      Draw2D/README.md
  38. 0 31
      Draw2D/app.xml
  39. 0 83
      Draw2D/main.cs

+ 25 - 0
Draw2D/.vscode/launch.json

@@ -0,0 +1,25 @@
+{
+  "version": "0.2.0",
+  "configurations": [
+    {
+      "name": "Run Windows",
+      "type": "coreclr",
+      "request": "launch",
+      "preLaunchTask": "build-windows",
+      "program": "${workspaceFolder}/Platforms/Windows/bin/Debug/net8.0-windows/Draw2D.Windows.exe",
+      "args": [],
+      "cwd": "${workspaceFolder}/Platforms/Windows",
+      "stopAtEntry": false
+    },
+    {
+      "name": "Run DesktopGL",
+      "type": "coreclr",
+      "request": "launch",
+      "preLaunchTask": "build-desktopgl",
+      "program": "${workspaceFolder}/Platforms/Desktop/bin/Debug/net8.0/Draw2D.DesktopGL.exe",
+      "args": [],
+      "cwd": "${workspaceFolder}/Platforms/Desktop",
+      "stopAtEntry": false
+    }
+  ]
+}

+ 3 - 0
Draw2D/.vscode/settings.json

@@ -0,0 +1,3 @@
+{
+    "dotnet.preferCSharpExtension": true
+}

+ 47 - 0
Draw2D/.vscode/tasks.json

@@ -0,0 +1,47 @@
+{
+  "version": "2.0.0",
+  "tasks": [
+    {
+      "label": "build-windows",
+      "type": "shell",
+      "command": "dotnet build Platforms/Windows/Draw2D.Windows.csproj",
+      "group": "build",
+      "problemMatcher": "$msCompile"
+    },
+    {
+      "label": "build-desktopgl",
+      "type": "shell",
+      "command": "dotnet build Platforms/Desktop/Draw2D.DesktopGL.csproj",
+      "group": "build",
+      "problemMatcher": "$msCompile"
+    },
+    {
+      "label": "build-android",
+      "type": "shell",
+      "command": "dotnet build Platforms/Android/Draw2D.Android.csproj",
+      "group": "build",
+      "problemMatcher": "$msCompile"
+    },
+    {
+      "label": "build-ios",
+      "type": "shell",
+      "command": "dotnet build Platforms/iOS/Draw2D.iOS.csproj",
+      "group": "build",
+      "problemMatcher": "$msCompile"
+    },
+    {
+      "label": "run-windows",
+      "type": "shell",
+      "command": "dotnet run --project Platforms/Windows/Draw2D.Windows.csproj",
+      "group": "test",
+      "problemMatcher": "$msCompile"
+    },
+    {
+      "label": "run-desktopgl",
+      "type": "shell",
+      "command": "dotnet run --project Platforms/Desktop/Draw2D.DesktopGL.csproj",
+      "group": "test",
+      "problemMatcher": "$msCompile"
+    }
+  ]
+}

+ 0 - 23
Draw2D/Activity1.cs

@@ -1,23 +0,0 @@
-using Android.App;
-using Android.OS;
-using Android.Content.PM;
-
-namespace Microsoft.Xna.Samples.Draw2D
-{
-    [Activity(Label = "Draw2D", MainLauncher = true, Icon = "@drawable/icon"
-	          , Theme = "@style/Theme.Splash"
-	          ,ScreenOrientation=ScreenOrientation.Portrait
-	          ,ConfigurationChanges=ConfigChanges.Orientation|ConfigChanges.Keyboard|ConfigChanges.KeyboardHidden)]	
-    public class Activity1 : Microsoft.Xna.Framework.AndroidGameActivity
-    {
-        protected override void OnCreate(Bundle bundle)
-        {
-            base.OnCreate(bundle);
-            Game1.Activity = this;
-            var g = new Game1();
-            SetContentView(g.Window);
-            g.Run();
-        }
-    }
-}
-

+ 0 - 0
Draw2D/Default.png → Draw2D/Core/Content/Default.png


+ 0 - 0
Draw2D/monogameicon.png → Draw2D/Core/Content/monogameicon.png


+ 0 - 0
Draw2D/Content/monogameicon48x48.png → Draw2D/Core/Content/monogameicon48x48.png


+ 11 - 0
Draw2D/Core/Draw2D.Core.csproj

@@ -0,0 +1,11 @@
+<Project Sdk="Microsoft.NET.Sdk">
+  <PropertyGroup>
+    <TargetFramework>net8.0</TargetFramework>
+    <RootNamespace>Draw2D.Core</RootNamespace>
+    <AssemblyName>Draw2D.Core</AssemblyName>
+    <GenerateAssemblyInfo>true</GenerateAssemblyInfo>
+  </PropertyGroup>
+  <ItemGroup>
+    <PackageReference Include="MonoGame.Framework.DesktopGL" Version="3.8.*" />
+  </ItemGroup>
+</Project>

+ 1 - 1
Draw2D/FPSCounterComponent.cs → Draw2D/Core/FPSCounterComponent.cs

@@ -3,7 +3,7 @@ using System;
 using Microsoft.Xna.Framework.Graphics;
 using Microsoft.Xna.Framework;
 
-namespace Microsoft.Xna.Samples.Draw2D
+namespace Draw2D
 {
 	public class FPSCounterComponent : DrawableGameComponent
     {

+ 21 - 22
Draw2D/Game1.cs → Draw2D/Core/Game1.cs

@@ -1,24 +1,17 @@
 using System;
 using System.Collections.Generic;
 
-#if ANDROID
-using Android.App;
-#endif
-
 using Microsoft.Xna.Framework;
 using Microsoft.Xna.Framework.Content;
 using Microsoft.Xna.Framework.Graphics;
 using Microsoft.Xna.Framework.Input;
-using Microsoft.Xna.Framework.Storage;
-
-using Microsoft.Xna.Framework.GamerServices;
 
-namespace Microsoft.Xna.Samples.Draw2D
+namespace Draw2D
 {
 	/// <summary>
 	/// This is the main type for your game
 	/// </summary>
-	public class Game1 : Microsoft.Xna.Framework.Game
+	public class Game1 : Game
 	{
 		GraphicsDeviceManager graphics;
 		SpriteBatch spriteBatch;		
@@ -29,21 +22,19 @@ namespace Microsoft.Xna.Samples.Draw2D
 		Color alphaColor = Color.White;
 		FPSCounterComponent fps;
 		
-        public Game1 ()  
+		public Game1 ()  
 		{
 			graphics = new GraphicsDeviceManager (this);
 			
 			Content.RootDirectory = "Content";
 			
 			graphics.PreferMultiSampling = true;
-#if ANDROID || IPHONE || PSS
+#if ___MOBILE___
 			graphics.IsFullScreen = true;
-#else
-			graphics.IsFullScreen = false;
 #endif
 			
 			graphics.PreferredBackBufferHeight = 480;
-			graphics.PreferredBackBufferWidth = 320;
+			graphics.PreferredBackBufferWidth = 620;
 
 			graphics.SupportedOrientations = DisplayOrientation.Portrait | DisplayOrientation.LandscapeLeft | DisplayOrientation.LandscapeRight | DisplayOrientation.PortraitDown;			
 		}
@@ -85,12 +76,20 @@ namespace Microsoft.Xna.Samples.Draw2D
 		/// <param name="gameTime">Provides a snapshot of timing values.</param>
 		protected override void Update (GameTime gameTime)
 		{
-			if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
+			KeyboardState currentKeyboardState = Keyboard.GetState();
+			GamePadState currentGamePadState = GamePad.GetState (PlayerIndex.One);
+
+			// Check for exit.
+			if (currentKeyboardState.IsKeyDown(Keys.Escape) ||
+				currentGamePadState.Buttons.Back == ButtonState.Pressed)
 			{
+#if !___IOS___
 				Exit();
+#endif
 			}
+            
 			// TODO: Add your update logic here
-			size += 0.5f;
+            size += 0.5f;
 			if (size > 150) {
 				size = 0;
 			}
@@ -117,7 +116,7 @@ namespace Microsoft.Xna.Samples.Draw2D
 		protected override void Draw (GameTime gameTime)
 		{
 			graphics.GraphicsDevice.Clear (Color.CornflowerBlue);
-            
+			
 			// Draw without blend
 			spriteBatch.Begin (SpriteSortMode.Deferred, BlendState.Opaque);			
 			spriteBatch.Draw (texture, new Vector2 (250,20), Color.White);	
@@ -128,13 +127,13 @@ namespace Microsoft.Xna.Samples.Draw2D
 			spriteBatch.Draw (texture, new Vector2 (250,110), Color.White);
 			spriteBatch.Draw (texture, new Vector2 (260,120), Color.White);
 			spriteBatch.End ();
-            
+			
 			spriteBatch.Begin ();
 
 			// Normal draw
 			// TODO spriteBatch.Draw (ball, new Vector2 (200,300), Color.White);	
 			// TODO spriteBatch.Draw (ball, new Vector2 (200,300), null, Color.Yellow, 0.0f, new Vector2 (5,5), 1.0f, SpriteEffects.None, 0);	
-            
+			
 			// Normal draw
 			spriteBatch.Draw (texture, new Vector2 (10,390), Color.White);		
 			// Draw stretching
@@ -159,11 +158,11 @@ namespace Microsoft.Xna.Samples.Draw2D
 			// Scale
 			spriteBatch.Draw (texture, new Vector2 (290,390), null, Color.White, 0.0f, Vector2.Zero, new Vector2(0.5f, 1.6f), SpriteEffects.None,0.0f);
 			
-            
+			
 			base.Draw (gameTime);
 
 			spriteBatch.End ();
-            
+			
 			// Now let's try some scissoring
 			//Disabled as this scissoring code is /wrong/
 			/*spriteBatch.Begin ();
@@ -177,7 +176,7 @@ namespace Microsoft.Xna.Samples.Draw2D
 			spriteBatch.End ();
 
 			spriteBatch.GraphicsDevice.RasterizerState.ScissorTestEnable = false;*/
-            
+			
 
 		}
 	}

+ 0 - 93
Draw2D/Draw2D.Android.csproj

@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>8.0.30703</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{616BBFA6-52F2-40A1-AA76-1CF2BD6390D5}</ProjectGuid>
-    <ProjectTypeGuids>{EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>MonoGame.Samples.Draw2D.Android</RootNamespace>
-    <AssemblyName>Draw2D</AssemblyName>
-    <FileAlignment>512</FileAlignment>
-    <AndroidApplication>true</AndroidApplication>
-    <AndroidResgenFile>Resources\Resource.Designer.cs</AndroidResgenFile>
-    <AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>True</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>False</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE;ANDROID</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <AndroidLinkMode>None</AndroidLinkMode>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>True</Optimize>
-    <OutputPath>bin\Release\</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="OpenTK" />
-    <Reference Include="mscorlib" />
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Xml" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Activity1.cs" />
-    <Compile Include="FPSCounterComponent.cs" />
-    <Compile Include="Game1.cs" />
-    <Compile Include="Resources\Resource.Designer.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <Content Include="Properties\AndroidManifest.xml" />
-    <AndroidResource Include="Resources\Values\Styles.xml" />
-    <AndroidResource Include="Resources\Drawable\Splash.png" />
-    <AndroidResource Include="Resources\Drawable\Icon.png" />
-  </ItemGroup>
-  <ItemGroup>
-    <AndroidAsset Include="Content\monogameicon48x48.png">
-      <Link>Assets\Content\monogameicon48x48.png</Link>
-    </AndroidAsset>
-  </ItemGroup>
-  <Import Project="$(MSBuildExtensionsPath)\Novell\Novell.MonoDroid.CSharp.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>
-  -->
-  <ItemGroup>
-    <Folder Include="Resources\Layout\" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\ThirdParty\Lidgren.Network\Lidgren.Network.Android.csproj">
-      <Project>{565129E0-4EE5-4F6F-B403-C3484C9740BE}</Project>
-      <Name>Lidgren.Network.Android</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\..\MonoGame.Framework\MonoGame.Framework.Android.csproj">
-      <Project>{BA9476CF-99BA-4D03-92F2-73D2C5E58883}</Project>
-      <Name>MonoGame.Framework.Android</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <AndroidAsset Include="..\CompiledContent\Android\Content\Fonts\Font.xnb">
-      <Link>Assets\Content\Font.xnb</Link>
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </AndroidAsset>
-  </ItemGroup>
-</Project>

+ 0 - 79
Draw2D/Draw2D.Linux.csproj

@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
-    <ProductVersion>8.0.30703</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{8CFEF1FE-9E32-43EB-A730-EB3AACDC77B1}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Draw2D</RootNamespace>
-    <AssemblyName>Draw2D</AssemblyName>
-    <FileAlignment>512</FileAlignment>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
-    <PlatformTarget>x86</PlatformTarget>
-    <DebugSymbols>True</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>False</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE;WINDOWS</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
-    <PlatformTarget>x86</PlatformTarget>
-    <DebugType>pdbonly</DebugType>
-    <Optimize>True</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE;WINDOWS</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Compile Include="FPSCounterComponent.cs">
-      <Link>FPSCounterComponent.cs</Link>
-    </Compile>
-    <Compile Include="Game1.cs">
-      <Link>Game1.cs</Link>
-    </Compile>
-    <Compile Include="main.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <Content Include="Content\monogameicon.png">
-      <Link>Content\monogameicon.png</Link>
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Content\purpleBall.xnb">
-      <Link>Content\purpleBall.xnb</Link>
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Content\spriteFont1.xnb">
-      <Link>Content\spriteFont1.xnb</Link>
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Default.png">
-      <Link>Default.png</Link>
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-  </ItemGroup>
-  <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Xml" />
-  </ItemGroup>
-  <ItemGroup>
-    <Content Include="Default.png">
-      <Link>Default.png</Link>
-    </Content>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.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>

+ 0 - 93
Draw2D/Draw2D.MacOS.csproj

@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>10.0.0</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{A82EAD58-40D7-49BE-8F24-09FEA34F9E55}</ProjectGuid>
-    <ProjectTypeGuids>{948B3504-5B70-4649-8FE4-BDE1FB46EC69};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <OutputType>Exe</OutputType>
-    <RootNamespace>MonoGame.Samples.Draw2D.MacOS</RootNamespace>
-    <AssemblyName>MonoGame.Samples.Draw2D.MacOS</AssemblyName>
-    <StartupObject>Microsoft.Xna.Samples.Draw2D.Program</StartupObject>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>True</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>False</Optimize>
-    <OutputPath>bin\Debug</OutputPath>
-    <DefineConstants>DEBUG MONOMAC</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>False</ConsolePause>
-    <EnableCodeSigning>False</EnableCodeSigning>
-    <CreatePackage>False</CreatePackage>
-    <EnablePackageSigning>False</EnablePackageSigning>
-    <IncludeMonoRuntime>False</IncludeMonoRuntime>
-    <UseSGen>False</UseSGen>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>none</DebugType>
-    <Optimize>False</Optimize>
-    <OutputPath>bin\Release</OutputPath>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>False</ConsolePause>
-    <EnableCodeSigning>False</EnableCodeSigning>
-    <CreatePackage>False</CreatePackage>
-    <EnablePackageSigning>False</EnablePackageSigning>
-    <IncludeMonoRuntime>False</IncludeMonoRuntime>
-    <UseSGen>False</UseSGen>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Xml" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Drawing" />
-    <Reference Include="MonoMac, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\..\..\MonoMac\monomac\src\MonoMac.dll</HintPath>
-    </Reference>
-  </ItemGroup>
-  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(MSBuildExtensionsPath)\Mono\MonoMac\v0.0\Mono.MonoMac.targets" />
-  <ItemGroup>
-    <Folder Include="Content\" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="main.cs" />
-    <Compile Include="FPSCounterComponent.cs">
-    </Compile>
-    <Compile Include="Game1.cs">
-    </Compile>
-  </ItemGroup>
-  <ItemGroup>
-    <Content Include="Default.png">
-    </Content>
-    <Content Include="monogameicon.png" />
-    <Content Include="..\CompiledContent\OSX\Content\Fonts\Font.xnb">
-      <Link>Content\Font.xnb</Link>
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="..\CompiledContent\OSX\Content\Textures\logo.xnb">
-      <Link>Content\logo.xnb</Link>
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="Info.plist">
-    </None>
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\MonoGame.Framework\MonoGame.Framework.MacOS.csproj">
-      <Project>{36C538E6-C32A-4A8D-A39C-566173D7118E}</Project>
-      <Name>MonoGame.Framework.MacOS</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\..\ThirdParty\Lidgren.Network\Lidgren.Network.MacOS.csproj">
-      <Project>{AE483C29-042E-4226-BA52-D247CE7676DA}</Project>
-      <Name>Lidgren.Network.MacOS</Name>
-    </ProjectReference>
-  </ItemGroup>
-</Project>

+ 0 - 64
Draw2D/Draw2D.PSMobile.csproj

@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>10.0.0</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{D46978DF-F83C-45A1-80CA-A9B578607B77}</ProjectGuid>
-    <ProjectTypeGuids>{69878862-DA7D-4DC6-B0A1-50D8FAB4242F};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <OutputType>Exe</OutputType>
-    <RootNamespace>MonoGame.Samples.Draw2D.PSSuite</RootNamespace>
-    <AssemblyName>MonoGame.Samples.Draw2D.PSSuite</AssemblyName>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug</OutputPath>
-    <DefineConstants>DEBUG;PSS</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>none</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release</OutputPath>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Xml" />
-    <Reference Include="System.Core" />
-    <Reference Include="Sce.PlayStation.Core" />
-  </ItemGroup>
-  <Import Project="$(MSBuildExtensionsPath)\Sce\Sce.Psm.CSharp.targets" />
-  <ItemGroup>
-    <Compile Include="FPSCounterComponent.cs" />
-    <Compile Include="Game1.cs" />
-    <Compile Include="main.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <Folder Include="Content\" />
-  </ItemGroup>
-  <ItemGroup>
-    <Content Include="..\CompiledContent\Android\Content\Fonts\Font.xnb">
-      <Link>Content\Font.xnb</Link>
-    </Content>
-    <Content Include="..\CompiledContent\Android\Content\Textures\logo.xnb">
-      <Link>Content\logo.xnb</Link>
-    </Content>
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\MonoGame.Framework\MonoGame.Framework.PSMobile.csproj">
-      <Project>{EA26E76F-FDFE-4A8C-B5A3-C3B5761E28F9}</Project>
-      <Name>MonoGame.Framework.PSMobile</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <PsmMetadata Include="app.xml" />
-  </ItemGroup>
-</Project>

+ 0 - 86
Draw2D/Draw2D.Windows.csproj

@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
-    <ProductVersion>8.0.30703</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{8CFEF1FE-9E32-43EB-A730-EB3AACDC77B1}</ProjectGuid>
-    <OutputType>WinExe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Draw2D</RootNamespace>
-    <AssemblyName>Draw2D</AssemblyName>
-    <FileAlignment>512</FileAlignment>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
-    <PlatformTarget>x86</PlatformTarget>
-    <DebugSymbols>True</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>False</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE;WINDOWS</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
-    <PlatformTarget>x86</PlatformTarget>
-    <DebugType>pdbonly</DebugType>
-    <Optimize>True</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE;WINDOWS</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup>
-    <StartupObject />
-  </PropertyGroup>
-  <ItemGroup>
-    <Compile Include="FPSCounterComponent.cs" />
-    <Compile Include="Game1.cs" />
-    <Compile Include="main.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <Content Include="Default.png">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-  </ItemGroup>
-  <ItemGroup>
-    <Reference Include="OpenTK, Version=1.1.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\ThirdParty\Libs\OpenTK.dll</HintPath>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Xml" />
-  </ItemGroup>
-  <ItemGroup>
-    <Content Include="Default.png">
-      <Link>Default.png</Link>
-    </Content>
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\MonoGame.Framework\MonoGame.Framework.WindowsGL.csproj">
-      <Project>{7DE47032-A904-4C29-BD22-2D235E8D91BA}</Project>
-      <Name>MonoGame.Framework.WindowsGL</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup />
-  <ItemGroup>
-    <Content Include="..\CompiledContent\Windows\Content\Fonts\Font.xnb">
-      <Link>Content\Font.xnb</Link>
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="..\CompiledContent\Windows\Content\Textures\logo.xnb">
-      <Link>Content\logo.xnb</Link>
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.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>

+ 0 - 114
Draw2D/Draw2D.iOS.csproj

@@ -1,114 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform>
-    <ProductVersion>9.0.21022</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{DEC435F4-9E84-490B-9890-72E5F514B8D0}</ProjectGuid>
-    <ProjectTypeGuids>{6BC8ED88-2882-458C-8E55-DFD12B67127B};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <OutputType>Exe</OutputType>
-    <RootNamespace>MonoGame.Samples.Draw2D</RootNamespace>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
-    <DebugSymbols>True</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>False</Optimize>
-    <OutputPath>bin\iPhoneSimulator\Debug</OutputPath>
-    <DefineConstants>IPHONE;DEBUG;TEST1_1</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <MtouchLink>None</MtouchLink>
-    <MtouchDebug>True</MtouchDebug>
-    <MtouchI18n />
-    <MtouchUseArmv7>false</MtouchUseArmv7>
-    <AssemblyName>Draw2D</AssemblyName>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
-    <DebugType>none</DebugType>
-    <Optimize>True</Optimize>
-    <OutputPath>bin\iPhoneSimulator\Release</OutputPath>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <MtouchI18n />
-    <MtouchUseArmv7>false</MtouchUseArmv7>
-    <AssemblyName>Draw2D</AssemblyName>
-    <DefineConstants>IPHONE;</DefineConstants>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' ">
-    <DebugSymbols>True</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>False</Optimize>
-    <OutputPath>bin\iPhone\Debug</OutputPath>
-    <DefineConstants>IPHONE;DEBUG;TEST1_1</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <MtouchDebug>True</MtouchDebug>
-    <CodesignKey>iPhone Developer</CodesignKey>
-    <MtouchI18n />
-    <MtouchSdkVersion>4.0</MtouchSdkVersion>
-    <MtouchUseArmv7>false</MtouchUseArmv7>
-    <AssemblyName>Draw2D</AssemblyName>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
-    <DebugType>none</DebugType>
-    <Optimize>False</Optimize>
-    <OutputPath>bin\iPhone\Release</OutputPath>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <MtouchI18n />
-    <CodesignKey>iPhone Developer</CodesignKey>
-    <MtouchSdkVersion>4.0</MtouchSdkVersion>
-    <MtouchUseArmv7>false</MtouchUseArmv7>
-    <AssemblyName>Draw2D</AssemblyName>
-    <DefineConstants>IPHONE</DefineConstants>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugType>none</DebugType>
-    <Optimize>False</Optimize>
-    <OutputPath>bin\Debug</OutputPath>
-    <WarningLevel>4</WarningLevel>
-    <AssemblyName>MonoGameSamplesDraw2D</AssemblyName>
-    <MtouchUseArmv7>false</MtouchUseArmv7>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>none</DebugType>
-    <Optimize>False</Optimize>
-    <OutputPath>bin\Release</OutputPath>
-    <WarningLevel>4</WarningLevel>
-    <AssemblyName>MonoGameSamplesDraw2D</AssemblyName>
-    <MtouchUseArmv7>false</MtouchUseArmv7>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Xml" />
-    <Reference Include="System.Core" />
-    <Reference Include="monotouch" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Game1.cs" />
-    <Compile Include="main.cs" />
-    <Compile Include="FPSCounterComponent.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <Content Include="Content\purpleBall.xnb">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Default.png">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Content\monogameicon.png">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Content\spriteFont1.xnb">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-  </ItemGroup>
-  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
-  <ItemGroup>
-    <None Include="monogameicon.png" />
-    <None Include="Info.iOS.plist">
-      <Link>Info.plist</Link>
-    </None>
-  </ItemGroup>
-</Project>

+ 56 - 0
Draw2D/Draw2D.sln

@@ -0,0 +1,56 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.5.2.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Draw2D.Core", "Core\Draw2D.Core.csproj", "{A1A1A1A1-1111-1111-1111-111111111111}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Draw2D.Windows", "Platforms\Windows\Draw2D.Windows.csproj", "{718CE0A5-5BE4-6B8B-2887-5C993E103D0C}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Draw2D.DesktopGL", "Platforms\Desktop\Draw2D.DesktopGL.csproj", "{E8B2E3A1-4F5C-4A8B-9E2D-1234567890AB}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Draw2D.Android", "Platforms\Android\Draw2D.Android.csproj", "{38EF25F3-7056-8170-D8D4-337849703EE6}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Draw2D.iOS", "Platforms\iOS\Draw2D.iOS.csproj", "{5305C373-ACF4-3261-AA32-C5B2000965C7}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{38EF25F3-7056-8170-D8D4-337849703EE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{38EF25F3-7056-8170-D8D4-337849703EE6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{38EF25F3-7056-8170-D8D4-337849703EE6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{38EF25F3-7056-8170-D8D4-337849703EE6}.Release|Any CPU.Build.0 = Release|Any CPU
+		{5305C373-ACF4-3261-AA32-C5B2000965C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{5305C373-ACF4-3261-AA32-C5B2000965C7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{5305C373-ACF4-3261-AA32-C5B2000965C7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{5305C373-ACF4-3261-AA32-C5B2000965C7}.Release|Any CPU.Build.0 = Release|Any CPU
+		{525B3F24-3918-6683-5219-39D5AD491A70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{525B3F24-3918-6683-5219-39D5AD491A70}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{525B3F24-3918-6683-5219-39D5AD491A70}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{525B3F24-3918-6683-5219-39D5AD491A70}.Release|Any CPU.Build.0 = Release|Any CPU
+		{B9F212F5-A41B-FF66-4520-DA8995005EEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{B9F212F5-A41B-FF66-4520-DA8995005EEB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{B9F212F5-A41B-FF66-4520-DA8995005EEB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{B9F212F5-A41B-FF66-4520-DA8995005EEB}.Release|Any CPU.Build.0 = Release|Any CPU
+		{C23C0C7A-B142-EF17-C11B-75603A5E537B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{C23C0C7A-B142-EF17-C11B-75603A5E537B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{C23C0C7A-B142-EF17-C11B-75603A5E537B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{C23C0C7A-B142-EF17-C11B-75603A5E537B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{718CE0A5-5BE4-6B8B-2887-5C993E103D0C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{718CE0A5-5BE4-6B8B-2887-5C993E103D0C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{718CE0A5-5BE4-6B8B-2887-5C993E103D0C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{718CE0A5-5BE4-6B8B-2887-5C993E103D0C}.Release|Any CPU.Build.0 = Release|Any CPU
+		{E8B2E3A1-4F5C-4A8B-9E2D-1234567890AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{E8B2E3A1-4F5C-4A8B-9E2D-1234567890AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{E8B2E3A1-4F5C-4A8B-9E2D-1234567890AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{E8B2E3A1-4F5C-4A8B-9E2D-1234567890AB}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {D5E9BAD4-D128-46BE-98F1-0ED4468953EC}
+	EndGlobalSection
+EndGlobal

+ 0 - 16
Draw2D/Info.plist

@@ -1,16 +0,0 @@
-<?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>CFBundleIdentifier</key>
-	<string>com.yourcompany.MonoGame.Samples.Draw2D.MacOS</string>
-	<key>CFBundleName</key>
-	<string>MonoGame.Samples.Draw2D.MacOS</string>
-	<key>CFBundleVersion</key>
-	<string>1</string>
-	<key>LSMinimumSystemVersion</key>
-	<string>10.6</string>
-	<key>NSPrincipalClass</key>
-	<string>NSApplication</string>
-</dict>
-</plist>

+ 29 - 0
Draw2D/Platforms/Android/Activity1.cs

@@ -0,0 +1,29 @@
+using Android.App;
+using Android.OS;
+using Android.Content.PM;
+
+namespace Draw2D
+{
+    [Activity(
+        Label = "@string/app_name",
+        MainLauncher = true,
+        AlwaysRetainTaskState = true,
+        LaunchMode = LaunchMode.SingleInstance,
+        ScreenOrientation = ScreenOrientation.SensorLandscape,
+        ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.Keyboard | ConfigChanges.KeyboardHidden | ConfigChanges.ScreenSize
+    )]
+    public class Activity1 : AndroidGameActivity
+    {
+        private Game1 _game;
+
+        protected override void OnCreate(Bundle bundle)
+        {
+            base.OnCreate(bundle);
+
+            _game = new Game1();
+            SetContentView((View)_game.Services.GetService(typeof(View)));
+            _game.Run();
+        }
+    }
+}
+

+ 18 - 0
Draw2D/Platforms/Android/AndroidManifest.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.asteroidbeltassault">
+    <uses-sdk android:minSdkVersion="28" android:targetSdkVersion="34" />
+    
+    <application android:allowBackup="true" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme">
+        <activity android:name="microsoft.xna.framework.AndroidGameActivity" 
+                  android:label="@string/app_name" 
+                  android:launchMode="singleInstance" 
+                  android:screenOrientation="sensorLandscape" 
+                  android:configChanges="orientation|keyboardHidden|keyboard|screenSize"
+                  android:exported="true">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+    </application>
+</manifest>

+ 23 - 0
Draw2D/Platforms/Android/Draw2D.Android.csproj

@@ -0,0 +1,23 @@
+<Project Sdk="Microsoft.NET.Sdk">
+  <PropertyGroup>
+    <TargetFramework>net8.0-android</TargetFramework>
+    <RootNamespace>Draw2D.Android</RootNamespace>
+    <AssemblyName>Draw2D.Android</AssemblyName>
+    <GenerateAssemblyInfo>true</GenerateAssemblyInfo>
+  </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\Core\Draw2D.Core.csproj" />
+  </ItemGroup>
+  <ItemGroup>
+    <PackageReference Include="MonoGame.Framework.Android" Version="3.8.*" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Content Include="..\..\..\CompiledContent\Android\Content\Textures\logo.xnb" Link="Content\logo.xnb">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="..\..\..\CompiledContent\Android\Content\Fonts\Arial.xnb" Link="Content\Font.xnb">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+  </ItemGroup>
+</Project>

+ 6 - 6
Draw2D/Properties/AndroidManifest.xml → Draw2D/Platforms/Android/Properties/AndroidManifest.xml

@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto" package="monogame.draw2d" android:versionCode="1" android:versionName="1">
-  <application android:label="draw2d">
-  </application>
-  <uses-sdk android:minSdkVersion="9" />
-  <uses-permission android:name="android.permission.INTERNET" />
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto" package="monogame.draw2d" android:versionCode="1" android:versionName="1">
+  <application android:label="draw2d">
+  </application>
+  <uses-sdk android:minSdkVersion="9" />
+  <uses-permission android:name="android.permission.INTERNET" />
 </manifest>

+ 0 - 0
Draw2D/Resources/Drawable/Icon.png → Draw2D/Platforms/Android/Resources/Drawable/Icon.png


+ 0 - 0
Draw2D/Resources/Drawable/Splash.png → Draw2D/Platforms/Android/Resources/Drawable/Splash.png


+ 0 - 0
Draw2D/Resources/Resource.Designer.cs → Draw2D/Platforms/Android/Resources/Resource.Designer.cs


+ 4 - 0
Draw2D/Platforms/Android/Resources/Values/Strings.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <string name="app_name">Draw2D</string>
+</resources>

+ 1 - 2
Draw2D/Resources/Values/Styles.xml → Draw2D/Platforms/Android/Resources/Values/Styles.xml

@@ -1,7 +1,6 @@
 <?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>
+</resources>

+ 23 - 0
Draw2D/Platforms/Desktop/Draw2D.DesktopGL.csproj

@@ -0,0 +1,23 @@
+<Project Sdk="Microsoft.NET.Sdk">
+  <PropertyGroup>
+    <TargetFramework>net8.0</TargetFramework>
+    <RootNamespace>Draw2D.DesktopGL</RootNamespace>
+    <AssemblyName>Draw2D.DesktopGL</AssemblyName>
+    <GenerateAssemblyInfo>true</GenerateAssemblyInfo>
+    <OutputType>Exe</OutputType>
+  </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\Core\Draw2D.Core.csproj" />
+  </ItemGroup>
+  <ItemGroup>
+    <PackageReference Include="MonoGame.Framework.DesktopGL" Version="3.8.*" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="..\..\..\CompiledContent\Windows\Content\Textures\logo.xnb" Link="Content\logo.xnb">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="..\..\..\CompiledContent\Windows\Content\Fonts\Arial.xnb" Link="Content\Font.xnb">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+  </ItemGroup>
+</Project>

+ 14 - 0
Draw2D/Platforms/Desktop/Program.cs

@@ -0,0 +1,14 @@
+using System;
+
+namespace Draw2D
+{
+    public static class Program
+    {
+        [STAThread]
+        static void Main()
+        {
+            using (var game = new Game1())
+                game.Run();
+        }
+    }
+}

+ 24 - 0
Draw2D/Platforms/Windows/Draw2D.Windows.csproj

@@ -0,0 +1,24 @@
+<Project Sdk="Microsoft.NET.Sdk">
+  <PropertyGroup>
+    <TargetFramework>net8.0-windows</TargetFramework>
+    <RootNamespace>Draw2D.Windows</RootNamespace>
+    <AssemblyName>Draw2D.Windows</AssemblyName>
+    <UseWindowsForms>true</UseWindowsForms>
+    <GenerateAssemblyInfo>true</GenerateAssemblyInfo>
+    <OutputType>WinExe</OutputType>
+  </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\Core\Draw2D.Core.csproj" />
+  </ItemGroup>
+  <ItemGroup>
+    <PackageReference Include="MonoGame.Framework.WindowsDX" Version="3.8.*" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="..\..\..\CompiledContent\Windows\Content\Textures\logo.xnb" Link="Content\logo.xnb">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="..\..\..\CompiledContent\Windows\Content\Fonts\Arial.xnb" Link="Content\Font.xnb">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+  </ItemGroup>
+</Project>

+ 14 - 0
Draw2D/Platforms/Windows/Program.cs

@@ -0,0 +1,14 @@
+using System;
+
+namespace Draw2D
+{
+    public static class Program
+    {
+        [STAThread]
+        static void Main()
+        {
+            using (var game = new Game1())
+                game.Run();
+        }
+    }
+}

+ 19 - 0
Draw2D/Platforms/iOS/AppDelegate.cs

@@ -0,0 +1,19 @@
+using Foundation;
+using UIKit;
+
+namespace Draw2D
+{
+    [Register("AppDelegate")]
+    public class AppDelegate : UIApplicationDelegate
+    {
+        public override UIWindow Window { get; set; }
+
+        public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
+        {
+            Window = new UIWindow(UIScreen.MainScreen.Bounds);
+            var game = new Game1();
+            game.Run();
+            return true;
+        }
+    }
+}

+ 22 - 0
Draw2D/Platforms/iOS/Draw2D.iOS.csproj

@@ -0,0 +1,22 @@
+<Project Sdk="Microsoft.NET.Sdk">
+  <PropertyGroup>
+    <TargetFramework>net8.0-ios</TargetFramework>
+    <RootNamespace>Draw2D.iOS</RootNamespace>
+    <AssemblyName>Draw2D.iOS</AssemblyName>
+    <GenerateAssemblyInfo>true</GenerateAssemblyInfo>
+  </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\Core\Draw2D.Core.csproj" />
+  </ItemGroup>
+  <ItemGroup>
+    <PackageReference Include="MonoGame.Framework.iOS" Version="3.8.*" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="..\..\..\CompiledContent\iOS\Content\Textures\logo.xnb" Link="Content\logo.xnb">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="..\..\..\CompiledContent\iOS\Content\Fonts\Arial.xnb" Link="Content\Font.xnb">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+  </ItemGroup>
+</Project>

+ 23 - 0
Draw2D/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>CFBundleIdentifier</key>
+	<string>com.cartblanche.draw2d</string>
+	<key>CFBundleName</key>
+	<string>Draw2D</string>
+	<key>CFBundleVersion</key>
+	<string>1.0</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>MinimumOSVersion</key>
+	<string>12.0</string>
+	<key>UILaunchStoryboardName</key>
+	<string>LaunchScreen</string>
+	<key>UISupportedInterfaceOrientations</key>
+	<array>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+</dict>
+</plist>

+ 13 - 0
Draw2D/Platforms/iOS/Program.cs

@@ -0,0 +1,13 @@
+using UIKit;
+
+namespace Draw2D
+{
+    public class Application
+    {
+        // This is the main entry point of the application.
+        static void Main(string[] args)
+        {
+            UIApplication.Main(args, null, typeof(AppDelegate));
+        }
+    }
+}

+ 0 - 36
Draw2D/Properties/AssemblyInfo.cs

@@ -1,36 +0,0 @@
-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("MonoDroidXnaTouchGame")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("Microsoft")]
-[assembly: AssemblyProduct("MonoDroidXnaTouchGame")]
-[assembly: AssemblyCopyright("Copyright © Microsoft 2011")]
-[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("a557ce8c-9dbe-4b93-8fc4-95ffc126cf14")]
-
-// 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")]

+ 51 - 0
Draw2D/README.md

@@ -0,0 +1,51 @@
+# Draw2D MonoGame Sample
+
+This project demonstrates 2D graphics rendering using MonoGame 3.8.* and .NET 8.0 for Windows, DesktopGL, Android, and iOS platforms. It is structured for modern cross-platform development and easy maintenance.
+
+## Project Structure
+
+```
+/Core                # Shared game logic and components
+/Platforms/Windows   # Windows-specific entry point and project
+/Platforms/Desktop   # DesktopGL (cross-platform desktop) entry point and project
+/Platforms/Android   # Android entry point and project
+/Platforms/iOS       # iOS entry point and project
+```
+
+## Building and Running
+
+### Prerequisites
+- .NET 8.0 SDK or newer
+- MonoGame 3.8.* NuGet packages (restored automatically)
+- Visual Studio 2022+ or VS Code
+- For Android/iOS: Xamarin/MAUI workloads and platform SDKs
+
+### Windows & DesktopGL
+- **Build:**
+  - `dotnet build Platforms/Windows/Draw2D.Windows.csproj`
+  - `dotnet build Platforms/Desktop/Draw2D.DesktopGL.csproj`
+- **Run:**
+  - `dotnet run --project Platforms/Windows/Draw2D.Windows.csproj`
+  - `dotnet run --project Platforms/Desktop/Draw2D.DesktopGL.csproj`
+- **VS Code:**
+  - Use the provided `.vscode/tasks.json` and `.vscode/launch.json` for build/run/debug.
+
+### Android & iOS
+- **Build:**
+  - `dotnet build Platforms/Android/Draw2D.Android.csproj`
+  - `dotnet build Platforms/iOS/Draw2D.iOS.csproj`
+- **Run:**
+  - Deploy using Visual Studio or appropriate device/emulator tools.
+
+## Content
+- No `Content.mgcb` file is used. Precompiled `.xnb` files are copied to the output directory for each platform.
+- Update content paths in the platform `.csproj` files if you add or move assets.
+
+## Notes
+- Windows and DesktopGL are fully supported and tested.
+- Android and iOS projects are included but may require additional setup or MonoGame compatibility fixes for .NET 8.0.
+- All shared code is in `/Core` and referenced by each platform project.
+- Platform-specific code and entry points are isolated in their respective folders.
+
+## License
+MIT or as specified by the repository owner.

+ 0 - 31
Draw2D/app.xml

@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<application project_name="Draw2D" version="1.00" runtime_version="1.11" sdk_version="1.11.00" default_locale="en-US">
-  <name />
-  <short_name />
-  <parental_control lock_level="2" />
-  <rating_list highest_age_limit="3" has_online_features="false">
-    <online_features chat="false" personal_info="false" user_location="false" exchange_content="false" />
-    <rating type="ESRB" value="3" age="3" code="" />
-    <rating type="PEGIEX" value="3" age="3" code="" />
-  </rating_list>
-  <images />
-  <genre_list />
-  <developer>
-    <name value="" />
-  </developer>
-  <website href="" />
-  <copyright author="" />
-  <purchase>
-    <product_list />
-  </purchase>
-  <runtime_config>
-    <memory managed_heap_size="32768" resource_heap_size="65536" />
-    <display max_screen_size="1920x1200" />
-    <camera max_capture_resolution="2048x1536" />
-  </runtime_config>
-  <feature_list>
-    <feature value="GamePad" />
-	<feature value="Touch" />
-	<feature value="Motion" />
-  </feature_list>
-</application>

+ 0 - 83
Draw2D/main.cs

@@ -1,83 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-
-#if MONOMAC
-using MonoMac.AppKit;
-using MonoMac.Foundation;
-#elif IPHONE
-using MonoTouch.Foundation;
-using MonoTouch.UIKit;
-#endif
-
-namespace Microsoft.Xna.Samples.Draw2D
-{
-#if MONOMAC
-	class Program
-	{
-		static void Main (string[] args)
-		{
-			NSApplication.Init ();
-
-			using (var p = new NSAutoreleasePool ()) {
-				NSApplication.SharedApplication.Delegate = new AppDelegate ();
-
-				// Set our Application Icon
-				NSImage appIcon = NSImage.ImageNamed ("monogameicon.png");
-				NSApplication.SharedApplication.ApplicationIconImage = appIcon;
-				
-				NSApplication.Main (args);
-			}
-		}
-	}
-
-	class AppDelegate : NSApplicationDelegate
-	{
-		private Game1 game;
-
-		public override void FinishedLaunching (MonoMac.Foundation.NSObject notification)
-		{
-			game = new Game1();
-			game.Run();
-		}
-
-		public override bool ApplicationShouldTerminateAfterLastWindowClosed (NSApplication sender)
-		{
-			return true;
-		}
-	}
-#elif IPHONE
-	[Register ("AppDelegate")]
-	class Program : UIApplicationDelegate 
-	{
-		private Game1 game;
-
-		public override void FinishedLaunching (UIApplication app)
-		{
-			// Fun begins..
-			game = new Game1();
-			game.Run();
-		}
-
-		static void Main (string [] args)
-		{
-			UIApplication.Main (args,null,"AppDelegate");
-		}
-	}
-#else
-	static class Program
-	{
-		private static Game1 game;
-
-		/// <summary>
-		/// The main entry point for the application.
-		/// </summary>
-		[STAThread]
-		static void Main()
-		{
-			game = new Game1();
-			game.Run();
-		}
-	}
-#endif
-}