Browse Source

merged changes

Dominique Louis 13 years ago
parent
commit
d8b68384e0
42 changed files with 1020 additions and 30 deletions
  1. 1 2
      StarterKits/Android/Cards/Blackjack.Android.csproj
  2. 0 1
      StarterKits/Android/Cards/CardsFramework.Android.csproj
  3. 1 2
      StarterKits/Android/Marblets/Marblets.csproj
  4. 2 1
      StarterKits/Android/Platformer/Platformer.csproj
  5. 3 1
      StarterKits/Android/VectorRumble/Activity1.cs
  6. 23 9
      StarterKits/Android/VectorRumble/Resources/Resource.designer.cs
  7. BIN
      StarterKits/Android/VectorRumble/Resources/drawable/Icon.png
  8. BIN
      StarterKits/Android/VectorRumble/Resources/drawable/Splash.png
  9. 7 0
      StarterKits/Android/VectorRumble/Resources/values/Styles.xml
  10. 5 0
      StarterKits/Android/VectorRumble/VectorRumble.csproj
  11. BIN
      StarterKits/MacOS/VectorRumble/Content/Textures/gamepad.png
  12. BIN
      StarterKits/MacOS/VectorRumble/Content/Textures/title.png
  13. 3 3
      StarterKits/MacOS/VectorRumble/Game.cs
  14. 10 0
      StarterKits/MacOS/VectorRumble/ScreenManager/InputState.cs
  15. 22 0
      StarterKits/MacOS/VectorRumble/Screens/GameplayScreen.cs
  16. 33 1
      StarterKits/MacOS/VectorRumble/Screens/MenuScreen.cs
  17. 1 1
      StarterKits/MonoGame.StarterKits.Android.sln
  18. 6 6
      StarterKits/iOS/VectorRumble/VectorRumble.iOS.csproj
  19. 2 2
      Tests/MacOS/MouseGetStateAndIsMouseVisibleTester/MouseGetStateAndIsMouseVisibleTester/Game1.cs
  20. BIN
      Tests/MacOS/TestDataSetAndGet/Content/Block.bmp
  21. BIN
      Tests/MacOS/TestDataSetAndGet/Content/Block.xnb
  22. BIN
      Tests/MacOS/TestDataSetAndGet/Content/Character.png
  23. BIN
      Tests/MacOS/TestDataSetAndGet/Content/Person.bmp
  24. BIN
      Tests/MacOS/TestDataSetAndGet/Content/Person.xnb
  25. BIN
      Tests/MacOS/TestDataSetAndGet/Content/Warrior3Active.png
  26. BIN
      Tests/MacOS/TestDataSetAndGet/Content/Warrior3Active.xnb
  27. 282 0
      Tests/MacOS/TestDataSetAndGet/Game1.cs
  28. 16 0
      Tests/MacOS/TestDataSetAndGet/Info.plist
  29. 52 0
      Tests/MacOS/TestDataSetAndGet/Program.cs
  30. 71 0
      Tests/MacOS/TestDataSetAndGet/TestDataSetAndGet.csproj
  31. BIN
      Tests/MacOS/TextureScaleColorTest/Content/FontCalibri14.xnb
  32. BIN
      Tests/MacOS/TextureScaleColorTest/Content/Test_Win.PNG
  33. BIN
      Tests/MacOS/TextureScaleColorTest/Content/blank.xnb
  34. 80 0
      Tests/MacOS/TextureScaleColorTest/Game1.cs
  35. 18 0
      Tests/MacOS/TextureScaleColorTest/Info.plist
  36. 118 0
      Tests/MacOS/TextureScaleColorTest/MainMenu.xib
  37. 37 0
      Tests/MacOS/TextureScaleColorTest/Program.cs
  38. 65 0
      Tests/MacOS/TextureScaleColorTest/TextureScaleColorTest.csproj
  39. 17 1
      Tests/MonoGame.Tests.MacOS.sln
  40. 15 0
      Tests/iOS/TextureScaleTest/Info.plist
  41. 44 0
      Tests/iOS/TextureScaleTest/Program.cs
  42. 86 0
      Tests/iOS/TextureScaleTest/TextureScaleColorTest.csproj

+ 1 - 2
StarterKits/Android/Cards/Blackjack.Android.csproj

@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?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>
@@ -15,7 +15,6 @@
     <AndroidApplication>True</AndroidApplication>
     <AndroidResgenFile>Resources\Resource.designer.cs</AndroidResgenFile>
     <AssemblyName>Blackjack.Android</AssemblyName>
-    <TargetFrameworkVersion>v2.2</TargetFrameworkVersion>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <DebugSymbols>true</DebugSymbols>

+ 0 - 1
StarterKits/Android/Cards/CardsFramework.Android.csproj

@@ -12,7 +12,6 @@
     <MonoAndroidAssetsPrefix>Assets</MonoAndroidAssetsPrefix>
     <MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix>
     <AssemblyName>CardsFramework.Android</AssemblyName>
-    <TargetFrameworkVersion>v2.2</TargetFrameworkVersion>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <DebugSymbols>true</DebugSymbols>

+ 1 - 2
StarterKits/Android/Marblets/Marblets.csproj

@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?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>
@@ -15,7 +15,6 @@
     <AndroidApplication>True</AndroidApplication>
     <AndroidResgenFile>Resources\Resource.designer.cs</AndroidResgenFile>
     <AssemblyName>Marblets</AssemblyName>
-    <TargetFrameworkVersion>v2.2</TargetFrameworkVersion>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <DebugSymbols>true</DebugSymbols>

+ 2 - 1
StarterKits/Android/Platformer/Platformer.csproj

@@ -15,7 +15,7 @@
     <AndroidApplication>True</AndroidApplication>
     <AndroidResgenFile>Resources\Resource.designer.cs</AndroidResgenFile>
     <AssemblyName>Platformer</AssemblyName>
-    <TargetFrameworkVersion>v2.2</TargetFrameworkVersion>
+    <AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <DebugSymbols>true</DebugSymbols>
@@ -266,6 +266,7 @@
     <AndroidAsset Include="..\..\iOS\Platformer\Content\Tiles\Platform.png">
       <Link>Assets\Content\Tiles\Platform.png</Link>
     </AndroidAsset>
+    <None Include="Properties\AndroidManifest.xml" />
   </ItemGroup>
   <ItemGroup>
     <AndroidResource Include="Resources\layout\Main.axml" />

+ 3 - 1
StarterKits/Android/VectorRumble/Activity1.cs

@@ -5,7 +5,9 @@ using Android.OS;
 
 namespace VectorRumble
 {
-	[Activity (Label = "VectorRumble", MainLauncher = true, Icon = "@drawable/icon")]
+	[Activity (Label = "VectorRumble", MainLauncher = true, 
+		Icon = "@drawable/icon", 
+		Theme = "@style/Theme.Splash")]
 	public class Activity1 : Microsoft.Xna.Framework.AndroidGameActivity
 	{
 		protected override void OnCreate(Bundle bundle)

+ 23 - 9
StarterKits/Android/VectorRumble/Resources/Resource.designer.cs

@@ -1,12 +1,12 @@
-// ------------------------------------------------------------------------------
-//  <autogenerated>
-//      This code was generated by a tool.
-//      Mono Runtime Version: 4.0.30319.1
-// 
-//      Changes to this file may cause incorrect behavior and will be lost if 
-//      the code is regenerated.
-//  </autogenerated>
-// ------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.239
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
 
 namespace VectorRumble
 {
@@ -29,6 +29,9 @@ namespace VectorRumble
 			// aapt resource value: 0x7f020000
 			public const int Icon = 2130837504;
 			
+			// aapt resource value: 0x7f020001
+			public const int Splash = 2130837505;
+			
 			private Drawable()
 			{
 			}
@@ -55,5 +58,16 @@ namespace VectorRumble
 			{
 			}
 		}
+		
+		public partial class Style
+		{
+			
+			// aapt resource value: 0x7f050000
+			public const int Theme_Splash = 2131034112;
+			
+			private Style()
+			{
+			}
+		}
 	}
 }

BIN
StarterKits/Android/VectorRumble/Resources/drawable/Icon.png


BIN
StarterKits/Android/VectorRumble/Resources/drawable/Splash.png


+ 7 - 0
StarterKits/Android/VectorRumble/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>

+ 5 - 0
StarterKits/Android/VectorRumble/VectorRumble.csproj

@@ -211,6 +211,8 @@
     <AndroidResource Include="Resources\layout\Main.axml" />
     <AndroidResource Include="Resources\values\Strings.xml" />
     <AndroidResource Include="Resources\drawable\Icon.png" />
+    <AndroidResource Include="Resources\drawable\Splash.png" />
+    <AndroidResource Include="Resources\values\Styles.xml" />
   </ItemGroup>
   <Import Project="$(MSBuildExtensionsPath)\Novell\Novell.MonoDroid.CSharp.targets" />
   <ItemGroup>
@@ -301,5 +303,8 @@
       <Link>Assets\Content\Audio\VectorRumble.xwb</Link>
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </AndroidAsset>
+    <AndroidAsset Include="..\..\MacOS\VectorRumble\Content\Textures\gamepad.png">
+      <Link>Assets\Content\Textures\gamepad.png</Link>
+    </AndroidAsset>
   </ItemGroup>
 </Project>

BIN
StarterKits/MacOS/VectorRumble/Content/Textures/gamepad.png


BIN
StarterKits/MacOS/VectorRumble/Content/Textures/title.png


+ 3 - 3
StarterKits/MacOS/VectorRumble/Game.cs

@@ -42,10 +42,10 @@ namespace VectorRumble
             Content.RootDirectory = "Content";
 			
 #if WINDOWS_PHONE || IOS || ANDROID // WP7, iPad or Tablets only
-            graphics.PreferredBackBufferWidth = 1024;
-            graphics.PreferredBackBufferHeight = 748;
+            graphics.PreferredBackBufferWidth = 800;
+            graphics.PreferredBackBufferHeight = 480;
 			graphics.IsFullScreen = true;
-			//graphics.SupportedOrientations = DisplayOrientation.LandscapeLeft | DisplayOrientation.LandscapeRight;
+			graphics.SupportedOrientations = DisplayOrientation.LandscapeLeft;
 #else
 			graphics.PreferredBackBufferWidth = 1280;
             graphics.PreferredBackBufferHeight = 720;

+ 10 - 0
StarterKits/MacOS/VectorRumble/ScreenManager/InputState.cs

@@ -10,6 +10,9 @@
 #region Using Statements
 using Microsoft.Xna.Framework;
 using Microsoft.Xna.Framework.Input;
+#if ANDROID
+using Microsoft.Xna.Framework.Input.Touch;
+#endif
 #endregion
 
 namespace VectorRumble
@@ -32,6 +35,10 @@ namespace VectorRumble
 
         public readonly KeyboardState[] LastKeyboardStates;
         public readonly GamePadState[] LastGamePadStates;
+		
+#if ANDROID
+		public TouchCollection CurrentTouchState;
+#endif		
 
         #endregion
 
@@ -150,6 +157,9 @@ namespace VectorRumble
                 CurrentKeyboardStates[i] = Keyboard.GetState((PlayerIndex)i);
                 CurrentGamePadStates[i] = GamePad.GetState((PlayerIndex)i);
             }
+#if ANDROID			
+			CurrentTouchState = TouchPanel.GetState();
+#endif			
         }
 
 

+ 22 - 0
StarterKits/MacOS/VectorRumble/Screens/GameplayScreen.cs

@@ -36,6 +36,7 @@ namespace VectorRumble
         SpriteBatch spriteBatch;
         SpriteFont spriteFont;
         Texture2D starTexture;
+		Texture2D gamePadTexture;
         World world;
         AudioManager audio;
         bool gameOver;
@@ -100,6 +101,23 @@ namespace VectorRumble
             lineBatch.SetProjection(Matrix.CreateOrthographicOffCenter(0.0f,
                 ScreenManager.GraphicsDevice.Viewport.Width, 
                 ScreenManager.GraphicsDevice.Viewport.Height, 0.0f, 0.0f, 1.0f));
+#if ANDROID || IOS
+			gamePadTexture = content.Load<Texture2D>("Textures/gamepad");
+			
+			ThumbStickDefinition thumbStickLeft = new ThumbStickDefinition();
+			thumbStickLeft.Position = new Vector2(10,400);
+			thumbStickLeft.Texture = gamePadTexture;
+			thumbStickLeft.TextureRect = new Rectangle(2,2,68,68);
+			
+			GamePad.LeftThumbStickDefinition = thumbStickLeft;
+			
+			ThumbStickDefinition thumbStickRight = new ThumbStickDefinition();
+			thumbStickRight.Position = new Vector2(240,400);
+			thumbStickRight.Texture = gamePadTexture;
+			thumbStickRight.TextureRect = new Rectangle(2,2,68,68);
+			
+			GamePad.RightThumbStickDefinition = thumbStickRight;
+#endif			
         }
 
 
@@ -239,6 +257,10 @@ namespace VectorRumble
             }
 
             DrawHud(elapsedTime);
+			
+#if ANDROID || IOS || WINDOWS_PHONE			
+			GamePad.Draw(gameTime, spriteBatch);
+#endif			
 
             // If the game is transitioning on or off, fade it out to black.
             if (TransitionPosition > 0)

+ 33 - 1
StarterKits/MacOS/VectorRumble/Screens/MenuScreen.cs

@@ -82,7 +82,39 @@ namespace VectorRumble
         /// or cancelling the menu.
         /// </summary>
         public override void HandleInput(InputState input)
-        {
+        {		
+#if ANDROID
+			var touch = input.CurrentTouchState;
+			if (touch.Count > 0)
+			{
+				Viewport viewport = ScreenManager.GraphicsDevice.Viewport;
+	            Vector2 viewportSize = new Vector2(viewport.Width, viewport.Height);
+	
+	            Vector2 position = new Vector2(0f, viewportSize.Y * 0.55f);
+				foreach(var t in touch)
+				{
+					// we have a touch event
+					if (t.State == Microsoft.Xna.Framework.Input.Touch.TouchLocationState.Pressed)
+					{
+						var pos = t.Position;
+						for (int i = 0; i < menuEntries.Count; i++)            			
+						{
+							// Draw text, centered on the middle of each line.
+			                Vector2 size = ScreenManager.Font.MeasureString(menuEntries[i].Text);	
+							position.X = viewportSize.X / 2f - size.X / 2f;
+							var rect = new Rectangle((int)position.X, (int)position.Y, (int)size.X, (int)size.Y);
+							if (rect.Contains(pos))
+							{
+								selectedEntry = i;
+								OnSelectEntry(selectedEntry);
+								break;
+							}
+			                position.Y += ScreenManager.Font.LineSpacing;
+						}
+					}					
+                 }				 
+			}
+#endif			
             // Move to the previous menu entry?
             if (input.MenuUp)
             {

+ 1 - 1
StarterKits/MonoGame.StarterKits.Android.sln

@@ -55,6 +55,6 @@ Global
 		{9B7D8FCF-5A3B-48D6-B9E7-4C3C0D0632F6} = {ED1C24CA-3D94-4BDF-9B56-1B5866E40BB2}
 	EndGlobalSection
 	GlobalSection(MonoDevelopProperties) = preSolution
-		StartupItem = Android\Platformer\Platformer.csproj
+		StartupItem = Android\VectorRumble\VectorRumble.csproj
 	EndGlobalSection
 EndGlobal

+ 6 - 6
StarterKits/iOS/VectorRumble/VectorRumble.iOS.csproj

@@ -224,12 +224,6 @@
       <Link>Simulation\WorldRules.cs</Link>
     </Compile>
   </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\..\..\MonoGame\MonoGame.Framework\MonoGame.Framework.iOS.csproj">
-      <Project>{DB8508BB-9849-4CC2-BC0F-8EB5DACB3C47}</Project>
-      <Name>MonoGame.Framework.iOS</Name>
-    </ProjectReference>
-  </ItemGroup>
   <ItemGroup>
     <Content Include="..\..\MacOS\VectorRumble\VectorRumble.png">
       <Link>VectorRumble.png</Link>
@@ -307,4 +301,10 @@
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\..\..\MonoGame\MonoGame.Framework\MonoGame.Framework.iOS.csproj">
+      <Project>{DB8508BB-9849-4CC2-BC0F-8EB5DACB3C47}</Project>
+      <Name>MonoGame.Framework.iOS</Name>
+    </ProjectReference>
+  </ItemGroup>
 </Project>

+ 2 - 2
Tests/MacOS/MouseGetStateAndIsMouseVisibleTester/MouseGetStateAndIsMouseVisibleTester/Game1.cs

@@ -36,8 +36,8 @@ namespace MouseGetStateAndIsMouseVisibleTester
 			Window.AllowUserResizing = true;
 
 			// Uncomment the line below to test full screen on startup.
-			graphics.IsFullScreen = true;
-			bFullScreen = true;
+			//graphics.IsFullScreen = false;
+			//bFullScreen = true;
 			
 			 // Subscribe to the game window's ClientSizeChanged event.
 			Window.ClientSizeChanged += Window_ClientSizeChanged;

BIN
Tests/MacOS/TestDataSetAndGet/Content/Block.bmp


BIN
Tests/MacOS/TestDataSetAndGet/Content/Block.xnb


BIN
Tests/MacOS/TestDataSetAndGet/Content/Character.png


BIN
Tests/MacOS/TestDataSetAndGet/Content/Person.bmp


BIN
Tests/MacOS/TestDataSetAndGet/Content/Person.xnb


BIN
Tests/MacOS/TestDataSetAndGet/Content/Warrior3Active.png


BIN
Tests/MacOS/TestDataSetAndGet/Content/Warrior3Active.xnb


+ 282 - 0
Tests/MacOS/TestDataSetAndGet/Game1.cs

@@ -0,0 +1,282 @@
+#region File Description
+//-----------------------------------------------------------------------------
+// Game.cs
+//
+// Microsoft XNA Community Game Platform
+// Copyright (C) Microsoft Corporation. All rights reserved.
+//-----------------------------------------------------------------------------
+#endregion
+
+#region Using Statements
+using System;
+using System.Collections.Generic;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Audio;
+using Microsoft.Xna.Framework.Content;
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+using Microsoft.Xna.Framework.Storage;
+#endregion
+
+namespace TestDataSetAndGet
+{
+    /// <summary>
+    /// This is the main type for your game
+    /// </summary>
+    public class PerPixelCollisionGame : Microsoft.Xna.Framework.Game
+    {
+        GraphicsDeviceManager graphics;
+
+        // The images we will draw
+        Texture2D personTexture;
+        Texture2D blockTexture;
+		
+		Texture2D characterTexture;
+
+        // The color data for the images; used for per pixel collision
+        Color[] personTextureData;
+        Color[] blockTextureData;
+		Color[] characterTextureData;
+
+        // The images will be drawn with this SpriteBatch
+        SpriteBatch spriteBatch;
+
+        // Person 
+        Vector2 personPosition;
+        const int PersonMoveSpeed = 5;
+
+        // Blocks
+        List<Vector2> blockPositions = new List<Vector2>();
+        float BlockSpawnProbability = 0.01f;
+        const int BlockFallSpeed = 2;
+
+        Random random = new Random();
+
+        // For when a collision is detected
+        bool personHit = false;
+
+        // The sub-rectangle of the drawable area which should be visible on all TVs
+        Rectangle safeBounds;
+        // Percentage of the screen on every side is the safe area
+        const float SafeAreaPortion = 0.05f;
+
+
+        public PerPixelCollisionGame()
+        {
+            graphics = new GraphicsDeviceManager(this);
+            Content.RootDirectory = "Content";
+        }
+
+
+        /// <summary>
+        /// Allows the game to perform any initialization it needs to before starting to
+        /// run. This is where it can query for any required services and load any
+        /// non-graphic related content.  Calling base.Initialize will enumerate through
+        /// any components and initialize them as well.
+        /// </summary>
+        protected override void Initialize()
+        {
+            base.Initialize();
+
+            // Calculate safe bounds based on current resolution
+            Viewport viewport = graphics.GraphicsDevice.Viewport;
+            safeBounds = new Rectangle(
+                (int)(viewport.Width * SafeAreaPortion),
+                (int)(viewport.Height * SafeAreaPortion),
+                (int)(viewport.Width * (1 - 2 * SafeAreaPortion)),
+                (int)(viewport.Height * (1 - 2 * SafeAreaPortion)));
+            // Start the player in the center along the bottom of the screen
+            personPosition.X = (safeBounds.Width - personTexture.Width) / 2;
+            personPosition.Y = safeBounds.Height - personTexture.Height;
+        }
+
+
+        /// <summary>
+        /// Load your graphics content.
+        /// </summary>
+        protected override void LoadContent()
+        {
+            // Load textures
+            blockTexture = Content.Load<Texture2D>("Block");
+            personTexture = Content.Load<Texture2D>("Character");
+            //personTexture = Content.Load<Texture2D>("Warrior3Active");
+			characterTexture = new RenderTarget2D(GraphicsDevice, personTexture.Width, personTexture.Height);
+            // Extract collision data
+            blockTextureData =
+                new Color[blockTexture.Width * blockTexture.Height];
+            blockTexture.GetData(blockTextureData);
+            personTextureData =
+                new Color[personTexture.Width * personTexture.Height];
+            personTexture.GetData(personTextureData);
+			characterTexture.SetData(personTextureData);
+            characterTextureData =
+                new Color[characterTexture.Width * characterTexture.Height];
+			characterTexture.GetData(characterTextureData);
+		//personTexture.SetData(characterTextureData);
+            // Create a sprite batch to draw those textures
+            spriteBatch = new SpriteBatch(graphics.GraphicsDevice);
+        }
+
+
+        /// <summary>
+        /// Allows the game to run logic such as updating the world,
+        /// checking for collisions, gathering input and playing audio.
+        /// </summary>
+        /// <param name="gameTime">Provides a snapshot of timing values.</param>
+        protected override void Update(GameTime gameTime)
+        {
+            // Get input
+            KeyboardState keyboard = Keyboard.GetState();
+            GamePadState gamePad = GamePad.GetState(PlayerIndex.One);
+
+            // Allows the game to exit
+            if (gamePad.Buttons.Back == ButtonState.Pressed ||
+                keyboard.IsKeyDown(Keys.Escape))
+            {
+                this.Exit();
+            }
+
+            // Move the player left and right with arrow keys or d-pad
+            if (keyboard.IsKeyDown(Keys.Left) ||
+                gamePad.DPad.Left == ButtonState.Pressed)
+            {
+                personPosition.X -= PersonMoveSpeed;
+            }
+            if (keyboard.IsKeyDown(Keys.Right) ||
+                gamePad.DPad.Right == ButtonState.Pressed)
+            {
+                personPosition.X += PersonMoveSpeed;
+            }
+
+            // Prevent the person from moving off of the screen
+            personPosition.X = MathHelper.Clamp(personPosition.X,
+                safeBounds.Left, safeBounds.Right - personTexture.Width);
+
+            // Spawn new falling blocks
+            if (random.NextDouble() < BlockSpawnProbability)
+            {
+                float x = (float)random.NextDouble() *
+                    (Window.ClientBounds.Width - blockTexture.Width);
+                blockPositions.Add(new Vector2(x, -blockTexture.Height));
+            }
+
+            // Get the bounding rectangle of the person
+            Rectangle personRectangle =
+                new Rectangle((int)personPosition.X, (int)personPosition.Y,
+                personTexture.Width, personTexture.Height);
+
+            // Update each block
+            personHit = false;
+            for (int i = 0; i < blockPositions.Count; i++)
+            {
+                // Animate this block falling
+                blockPositions[i] =
+                    new Vector2(blockPositions[i].X,
+                                blockPositions[i].Y + BlockFallSpeed);
+
+                // Get the bounding rectangle of this block
+                Rectangle blockRectangle =
+                    new Rectangle((int)blockPositions[i].X, (int)blockPositions[i].Y,
+                    blockTexture.Width, blockTexture.Height);
+
+                // Check collision with person
+                if (IntersectPixels(personRectangle, personTextureData,
+                                    blockRectangle, blockTextureData))
+                {
+                    personHit = true;
+                }
+
+                // Remove this block if it have fallen off the screen
+                if (blockPositions[i].Y > Window.ClientBounds.Height)
+                {
+                    blockPositions.RemoveAt(i);
+
+                    // When removing a block, the next block will have the same index
+                    // as the current block. Decrement i to prevent skipping a block.
+                    i--;
+                }
+            }
+
+            base.Update(gameTime);
+        }
+
+        /// <summary>
+        /// This is called when the game should draw itself.
+        /// </summary>
+        /// <param name="gameTime">Provides a snapshot of timing values.</param>
+        protected override void Draw(GameTime gameTime)
+        {
+            GraphicsDevice device = graphics.GraphicsDevice;
+
+            // Change the background to red when the person was hit by a block
+            if (personHit)
+            {
+                device.Clear(Color.Red);
+            }
+            else
+            {
+                device.Clear(Color.CornflowerBlue);
+            }
+
+            spriteBatch.Begin();
+
+            // Draw person
+            spriteBatch.Draw(personTexture, personPosition, Color.White);
+			Vector2 characterPosition = personPosition;
+			characterPosition.X += personTexture.Width;
+			spriteBatch.Draw(characterTexture, characterPosition, Color.White);
+			
+            // Draw blocks
+            foreach (Vector2 blockPosition in blockPositions)
+                spriteBatch.Draw(blockTexture, blockPosition, Color.White);
+
+            spriteBatch.End();
+
+
+            base.Draw(gameTime);
+        }
+
+
+        /// <summary>
+        /// Determines if there is overlap of the non-transparent pixels
+        /// between two sprites.
+        /// </summary>
+        /// <param name="rectangleA">Bounding rectangle of the first sprite</param>
+        /// <param name="dataA">Pixel data of the first sprite</param>
+        /// <param name="rectangleB">Bouding rectangle of the second sprite</param>
+        /// <param name="dataB">Pixel data of the second sprite</param>
+        /// <returns>True if non-transparent pixels overlap; false otherwise</returns>
+        static bool IntersectPixels(Rectangle rectangleA, Color[] dataA,
+                                    Rectangle rectangleB, Color[] dataB)
+        {
+            // Find the bounds of the rectangle intersection
+            int top = Math.Max(rectangleA.Top, rectangleB.Top);
+            int bottom = Math.Min(rectangleA.Bottom, rectangleB.Bottom);
+            int left = Math.Max(rectangleA.Left, rectangleB.Left);
+            int right = Math.Min(rectangleA.Right, rectangleB.Right);
+
+            // Check every point within the intersection bounds
+            for (int y = top; y < bottom; y++)
+            {
+                for (int x = left; x < right; x++)
+                {
+                    // Get the color of both pixels at this point
+                    Color colorA = dataA[(x - rectangleA.Left) +
+                                         (y - rectangleA.Top) * rectangleA.Width];
+                    Color colorB = dataB[(x - rectangleB.Left) +
+                                         (y - rectangleB.Top) * rectangleB.Width];
+
+                    // If both pixels are not completely transparent,
+                    if (colorA.A != 0 && colorB.A != 0)
+                    {
+                        // then an intersection has been found
+                        return true;
+                    }
+                }
+            }
+
+            // No intersection found
+            return false;
+        }
+    }
+}

+ 16 - 0
Tests/MacOS/TestDataSetAndGet/Info.plist

@@ -0,0 +1,16 @@
+<?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.TestDataSetAndGet</string>
+	<key>CFBundleName</key>
+	<string>TestDataSetAndGet</string>
+	<key>CFBundleVersion</key>
+	<string>1</string>
+	<key>LSMinimumSystemVersion</key>
+	<string>10.6</string>
+	<key>NSPrincipalClass</key>
+	<string>NSApplication</string>
+</dict>
+</plist>

+ 52 - 0
Tests/MacOS/TestDataSetAndGet/Program.cs

@@ -0,0 +1,52 @@
+#region File Description
+//-----------------------------------------------------------------------------
+// Program.cs
+//
+// Microsoft XNA Community Game Platform
+// Copyright (C) Microsoft Corporation. All rights reserved.
+//-----------------------------------------------------------------------------
+#endregion
+
+#region Using Statements
+using System;
+
+using MonoMac.Foundation;
+using MonoMac.AppKit;
+using MonoMac.ObjCRuntime;
+#endregion
+
+namespace TestDataSetAndGet
+{
+
+	static class Program
+	{
+		/// <summary>
+		/// The main entry point for the application.
+		/// </summary>
+		static void Main (string[] args)
+		{
+			NSApplication.Init ();
+			
+			using (var p = new NSAutoreleasePool ()) {
+				NSApplication.SharedApplication.Delegate = new AppDelegate();
+				NSApplication.Main(args);
+			}
+		}
+	}
+	
+	class AppDelegate : NSApplicationDelegate
+	{
+		
+		public override void FinishedLaunching (MonoMac.Foundation.NSObject notification)
+		{
+			using (PerPixelCollisionGame game = new PerPixelCollisionGame()) {
+				game.Run ();
+			}
+		}
+		
+		public override bool ApplicationShouldTerminateAfterLastWindowClosed (NSApplication sender)
+		{
+			return true;
+		}
+	}			
+}

+ 71 - 0
Tests/MacOS/TestDataSetAndGet/TestDataSetAndGet.csproj

@@ -0,0 +1,71 @@
+<?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>{98CB640D-B8C4-496F-9978-F2571268BD70}</ProjectGuid>
+    <ProjectTypeGuids>{948B3504-5B70-4649-8FE4-BDE1FB46EC69};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <OutputType>Exe</OutputType>
+    <RootNamespace>TestDataSetAndGet</RootNamespace>
+    <AssemblyName>TestDataSetAndGet</AssemblyName>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug</OutputPath>
+    <DefineConstants>DEBUG</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ConsolePause>false</ConsolePause>
+  </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>
+  </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" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Info.plist" />
+    <None Include="Content\Block.bmp" />
+    <None Include="Content\Warrior3Active.png" />
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <Import Project="$(MSBuildExtensionsPath)\Mono\MonoMac\v0.0\Mono.MonoMac.targets" />
+  <ItemGroup>
+    <Folder Include="Content\" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\..\..\MonoGame\ThirdParty\Lidgren.Network\Lidgren.Network.MacOS.csproj">
+      <Project>{AE483C29-042E-4226-BA52-D247CE7676DA}</Project>
+      <Name>Lidgren.Network.MacOS</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\..\..\MonoGame\MonoGame.Framework\MonoGame.Framework.MacOS.csproj">
+      <Project>{36C538E6-C32A-4A8D-A39C-566173D7118E}</Project>
+      <Name>MonoGame.Framework.MacOS</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Game1.cs" />
+    <Compile Include="Program.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="Content\Block.xnb" />
+    <Content Include="Content\Character.png" />
+    <Content Include="Content\Person.bmp" />
+    <Content Include="Content\Person.xnb" />
+    <Content Include="Content\Warrior3Active.xnb" />
+  </ItemGroup>
+</Project>

BIN
Tests/MacOS/TextureScaleColorTest/Content/FontCalibri14.xnb


BIN
Tests/MacOS/TextureScaleColorTest/Content/Test_Win.PNG


BIN
Tests/MacOS/TextureScaleColorTest/Content/blank.xnb


+ 80 - 0
Tests/MacOS/TextureScaleColorTest/Game1.cs

@@ -0,0 +1,80 @@
+using System;
+using System.Collections.Generic;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Audio;
+using Microsoft.Xna.Framework.Content;
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+using Microsoft.Xna.Framework.Media;
+
+
+
+
+namespace MonoTest
+{
+	public class Game1 : Microsoft.Xna.Framework.Game
+	{
+		static GraphicsDeviceManager graphics;
+		SpriteBatch spriteBatch;
+
+		public static Texture2D BlankTexture;
+		public static SpriteFont FontCalibri14;
+
+		public Game1()
+		{
+			graphics = new GraphicsDeviceManager(this);
+			Content.RootDirectory = "Content";
+			graphics.PreferredBackBufferWidth =  640;;
+			graphics.PreferredBackBufferHeight = 480;
+			graphics.IsFullScreen = false;
+		}
+
+		protected override void Initialize()
+		{
+
+			base.Initialize();
+
+		}
+
+		/// <summary>
+		/// LoadContent will be called once per game and is the place to load
+		/// all of your content.
+		/// </summary>
+		protected override void LoadContent()
+		{
+			spriteBatch = new SpriteBatch(GraphicsDevice);
+
+			FontCalibri14 = Content.Load<SpriteFont>("FontCalibri14");
+
+			BlankTexture = Content.Load<Texture2D>("Blank");
+
+//			BlankTexture = new Texture2D(GraphicsDevice,1,1);
+//			BlankTexture.SetData(new Color[] {Color.White});
+		}
+
+
+		protected override void Update(GameTime gameTime)
+		{
+			base.Update(gameTime);
+
+		}
+
+		protected override void Draw(GameTime gameTime)
+		{
+			GraphicsDevice.Clear(Color.Black);
+			base.Draw(gameTime);
+			spriteBatch.Begin();
+			spriteBatch.Draw(BlankTexture,
+				new Vector2(100,100),
+				null,
+				Color.Green,
+				0,
+				Vector2.Zero,
+				new Vector2(400,240),
+				SpriteEffects.None,
+				0);
+            spriteBatch.DrawString(FontCalibri14, "There should be no\n transparency near the corners...\n\nThis box should be solid green.", new Vector2(150,150), Color.Silver, 0, Vector2.Zero, 1, SpriteEffects.None, 1);
+			spriteBatch.End();
+		}
+	}
+}

+ 18 - 0
Tests/MacOS/TextureScaleColorTest/Info.plist

@@ -0,0 +1,18 @@
+<?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.MonoTest</string>
+	<key>CFBundleName</key>
+	<string>MonoTest</string>
+	<key>CFBundleVersion</key>
+	<string>1</string>
+	<key>LSMinimumSystemVersion</key>
+	<string>10.6</string>
+	<key>NSMainNibFile</key>
+	<string>MainMenu</string>
+	<key>NSPrincipalClass</key>
+	<string>NSApplication</string>
+</dict>
+</plist>

+ 118 - 0
Tests/MacOS/TextureScaleColorTest/MainMenu.xib

@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
+	<data>
+		<int key="IBDocument.SystemTarget">1060</int>
+		<string key="IBDocument.SystemVersion">10D573</string>
+		<string key="IBDocument.InterfaceBuilderVersion">762</string>
+		<string key="IBDocument.AppKitVersion">1038.29</string>
+		<string key="IBDocument.HIToolboxVersion">460.00</string>
+		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
+			<string key="NS.object.0">762</string>
+		</object>
+		<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+		</object>
+		<object class="NSArray" key="IBDocument.PluginDependencies">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+		</object>
+		<object class="NSMutableDictionary" key="IBDocument.Metadata">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<object class="NSArray" key="dict.sortedKeys" id="0">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+			</object>
+			<object class="NSMutableArray" key="dict.values">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+			</object>
+		</object>
+		<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<object class="NSCustomObject" id="1001">
+				<string key="NSClassName">NSObject</string>
+			</object>
+			<object class="NSCustomObject" id="1003">
+				<string key="NSClassName">FirstResponder</string>
+			</object>
+			<object class="NSCustomObject" id="1004">
+				<string key="NSClassName">NSApplication</string>
+			</object>
+		</object>
+		<object class="IBObjectContainer" key="IBDocument.Objects">
+			<object class="NSMutableArray" key="connectionRecords">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+			</object>
+			<object class="IBMutableOrderedSet" key="objectRecords">
+				<object class="NSArray" key="orderedObjects">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+					<object class="IBObjectRecord">
+						<int key="objectID">0</int>
+						<reference key="object" ref="0" />
+						<reference key="children" ref="1000" />
+						<nil key="parent" />
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">-2</int>
+						<reference key="object" ref="1001" />
+						<reference key="parent" ref="0" />
+						<string key="objectName">File's Owner</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">-1</int>
+						<reference key="object" ref="1003" />
+						<reference key="parent" ref="0" />
+						<string key="objectName">First Responder</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">-3</int>
+						<reference key="object" ref="1004" />
+						<reference key="parent" ref="0" />
+						<string key="objectName">Application</string>
+					</object>
+				</object>
+			</object>
+			<object class="NSMutableDictionary" key="flattenedProperties">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<object class="NSArray" key="dict.sortedKeys">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+					<string>-1.IBPluginDependency</string>
+					<string>-2.IBPluginDependency</string>
+					<string>-3.IBPluginDependency</string>
+				</object>
+				<object class="NSMutableArray" key="dict.values">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+				</object>
+			</object>
+			<object class="NSMutableDictionary" key="unlocalizedProperties">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<reference key="dict.sortedKeys" ref="0" />
+				<object class="NSMutableArray" key="dict.values">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+				</object>
+			</object>
+			<nil key="activeLocalization" />
+			<object class="NSMutableDictionary" key="localizations">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<reference key="dict.sortedKeys" ref="0" />
+				<object class="NSMutableArray" key="dict.values">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+				</object>
+			</object>
+			<nil key="sourceID" />
+			<int key="maxID">0</int>
+		</object>
+		<object class="IBClassDescriber" key="IBDocument.Classes" />
+		<int key="IBDocument.localizationMode">0</int>
+		<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
+		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
+			<integer value="3000" key="NS.object.0" />
+		</object>
+		<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+		<nil key="IBDocument.LastKnownRelativeProjectPath" />
+		<int key="IBDocument.defaultPropertyAccessControl">3</int>
+	</data>
+</archive>

+ 37 - 0
Tests/MacOS/TextureScaleColorTest/Program.cs

@@ -0,0 +1,37 @@
+using MonoMac.AppKit;
+using MonoMac.Foundation;
+using MonoMac.CoreGraphics;
+using System.Runtime.InteropServices;
+ 
+namespace MonoTest
+{
+    class Program
+    {
+        static void Main (string [] args)
+        {
+            NSApplication.Init ();
+ 
+            using (var p = new NSAutoreleasePool ()) {
+                NSApplication.SharedApplication.Delegate = new AppDelegate();
+                NSApplication.Main(args);
+            }
+        }
+    }
+ 
+    class AppDelegate : NSApplicationDelegate
+    {
+		Game1 game;
+ 
+        public override void FinishedLaunching (MonoMac.Foundation.NSObject notification)
+        {
+            using (game  = new Game1()) {
+                game.Run ();
+            }
+        }
+ 
+        public override bool ApplicationShouldTerminateAfterLastWindowClosed (NSApplication sender)
+        {
+            return true;
+        }
+    }
+}

+ 65 - 0
Tests/MacOS/TextureScaleColorTest/TextureScaleColorTest.csproj

@@ -0,0 +1,65 @@
+<?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)' == '' ">x86</Platform>
+    <ProductVersion>10.0.0</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{ABF4BDBE-C7DE-43E5-98BC-4547FE27A64A}</ProjectGuid>
+    <ProjectTypeGuids>{948B3504-5B70-4649-8FE4-BDE1FB46EC69};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <OutputType>Exe</OutputType>
+    <RootNamespace>TextureScaleColorTest</RootNamespace>
+    <AssemblyName>TextureScaleColorTest</AssemblyName>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug</OutputPath>
+    <DefineConstants>DEBUG;</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <PlatformTarget>x86</PlatformTarget>
+    <ConsolePause>false</ConsolePause>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+    <DebugType>none</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Release</OutputPath>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <PlatformTarget>x86</PlatformTarget>
+    <ConsolePause>false</ConsolePause>
+  </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" />
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <Import Project="$(MSBuildExtensionsPath)\Mono\MonoMac\v0.0\Mono.MonoMac.targets" />
+  <ItemGroup>
+    <ProjectReference Include="..\..\..\..\MonoGame\MonoGame.Framework\MonoGame.Framework.MacOS.csproj">
+      <Project>{36C538E6-C32A-4A8D-A39C-566173D7118E}</Project>
+      <Name>MonoGame.Framework.MacOS</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Game1.cs" />
+    <Compile Include="Program.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Info.plist" />
+  </ItemGroup>
+  <ItemGroup>
+    <InterfaceDefinition Include="MainMenu.xib" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="Content\FontCalibri14.xnb" />
+    <Content Include="Content\blank.xnb" />
+    <Content Include="Content\Test_Win.PNG" />
+  </ItemGroup>
+</Project>

+ 17 - 1
Tests/MonoGame.Tests.MacOS.sln

@@ -25,6 +25,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Colored3DCube", "..\Samples
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CollisionSample", "..\Samples\MacOS\CollisionSample\CollisionSample.csproj", "{AFFFC991-4956-45EF-8746-C1AE3FC7A245}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TextureScaleColorTest", "MacOS\TextureScaleColorTest\TextureScaleColorTest.csproj", "{ABF4BDBE-C7DE-43E5-98BC-4547FE27A64A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestDataSetAndGet", "MacOS\TestDataSetAndGet\TestDataSetAndGet.csproj", "{98CB640D-B8C4-496F-9978-F2571268BD70}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|x86 = Debug|x86
@@ -68,6 +72,18 @@ Global
 		{9704681E-C6DB-4946-9F31-0EF9BE63090A}.Distribution|Any CPU.Build.0 = Debug|x86
 		{9704681E-C6DB-4946-9F31-0EF9BE63090A}.Release|x86.ActiveCfg = Release|x86
 		{9704681E-C6DB-4946-9F31-0EF9BE63090A}.Release|x86.Build.0 = Release|x86
+		{98CB640D-B8C4-496F-9978-F2571268BD70}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{98CB640D-B8C4-496F-9978-F2571268BD70}.Debug|x86.Build.0 = Debug|Any CPU
+		{98CB640D-B8C4-496F-9978-F2571268BD70}.Distribution|Any CPU.ActiveCfg = Debug|Any CPU
+		{98CB640D-B8C4-496F-9978-F2571268BD70}.Distribution|Any CPU.Build.0 = Debug|Any CPU
+		{98CB640D-B8C4-496F-9978-F2571268BD70}.Release|x86.ActiveCfg = Release|Any CPU
+		{98CB640D-B8C4-496F-9978-F2571268BD70}.Release|x86.Build.0 = Release|Any CPU
+		{ABF4BDBE-C7DE-43E5-98BC-4547FE27A64A}.Debug|x86.ActiveCfg = Debug|x86
+		{ABF4BDBE-C7DE-43E5-98BC-4547FE27A64A}.Debug|x86.Build.0 = Debug|x86
+		{ABF4BDBE-C7DE-43E5-98BC-4547FE27A64A}.Distribution|Any CPU.ActiveCfg = Debug|x86
+		{ABF4BDBE-C7DE-43E5-98BC-4547FE27A64A}.Distribution|Any CPU.Build.0 = Debug|x86
+		{ABF4BDBE-C7DE-43E5-98BC-4547FE27A64A}.Release|x86.ActiveCfg = Release|x86
+		{ABF4BDBE-C7DE-43E5-98BC-4547FE27A64A}.Release|x86.Build.0 = Release|x86
 		{AE483C29-042E-4226-BA52-D247CE7676DA}.Debug|x86.ActiveCfg = Debug|Any CPU
 		{AE483C29-042E-4226-BA52-D247CE7676DA}.Debug|x86.Build.0 = Debug|Any CPU
 		{AE483C29-042E-4226-BA52-D247CE7676DA}.Distribution|Any CPU.ActiveCfg = Debug|Any CPU
@@ -106,7 +122,7 @@ Global
 		{ECD1D53E-F50A-4299-9B0F-2F64D6063513}.Release|x86.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(MonoDevelopProperties) = preSolution
-		StartupItem = ..\StarterKits\MacOS\VectorRumble\VectorRumble.csproj
+		StartupItem = MacOS\TextureScaleColorTest\TextureScaleColorTest.csproj
 		Policies = $0
 		$0.TextStylePolicy = $1
 		$1.FileWidth = 120

+ 15 - 0
Tests/iOS/TextureScaleTest/Info.plist

@@ -0,0 +1,15 @@
+<?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>UIDeviceFamily</key>
+	<array>
+		<string>2</string>
+	</array>
+	<key>UISupportedInterfaceOrientations</key>
+	<array>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+</dict>
+</plist>

+ 44 - 0
Tests/iOS/TextureScaleTest/Program.cs

@@ -0,0 +1,44 @@
+#region File Description
+//-----------------------------------------------------------------------------
+// Program.cs
+//
+// Microsoft XNA Community Game Platform
+// Copyright (C) Microsoft Corporation. All rights reserved.
+//-----------------------------------------------------------------------------
+#endregion
+
+#region Using Statements
+using System;
+
+#if IOS
+using MonoTouch.Foundation;
+using MonoTouch.UIKit;
+#endif
+
+
+#endregion
+
+namespace MonoTest
+{
+	[Register ("AppDelegate")]
+	class Program : UIApplicationDelegate 
+	{
+		public override void FinishedLaunching (UIApplication app)
+		{
+			// Fun begins..
+			using (Game1 game = new Game1())
+            {
+                game.Run();
+            }
+			
+			//MediaLibrary lib = new MediaLibrary();
+			//object result = lib.Playlists;
+		}
+
+		static void Main (string [] args)
+		{
+			UIApplication.Main (args,null,"AppDelegate");
+		}
+	}
+}
+

+ 86 - 0
Tests/iOS/TextureScaleTest/TextureScaleColorTest.csproj

@@ -0,0 +1,86 @@
+<?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)' == '' ">iPhoneSimulator</Platform>
+    <ProductVersion>10.0.0</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{0955881C-16CE-4A54-B962-11131B471047}</ProjectGuid>
+    <ProjectTypeGuids>{6BC8ED88-2882-458C-8E55-DFD12B67127B};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <OutputType>Exe</OutputType>
+    <RootNamespace>TextureScaleTest</RootNamespace>
+    <AssemblyName>TextureScaleTest</AssemblyName>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\iPhoneSimulator\Debug</OutputPath>
+    <DefineConstants>DEBUG; IOS</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ConsolePause>false</ConsolePause>
+    <MtouchLink>None</MtouchLink>
+    <MtouchDebug>true</MtouchDebug>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
+    <DebugType>none</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\iPhoneSimulator\Release</OutputPath>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ConsolePause>false</ConsolePause>
+    <MtouchLink>None</MtouchLink>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\iPhone\Debug</OutputPath>
+    <DefineConstants>DEBUG;</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ConsolePause>false</ConsolePause>
+    <MtouchDebug>true</MtouchDebug>
+    <CodesignKey>iPhone Developer</CodesignKey>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
+    <DebugType>none</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\iPhone\Release</OutputPath>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ConsolePause>false</ConsolePause>
+    <CodesignKey>iPhone Developer</CodesignKey>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Xml" />
+    <Reference Include="System.Core" />
+    <Reference Include="monotouch" />
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <ItemGroup>
+    <ProjectReference Include="..\..\..\..\MonoGame\MonoGame.Framework\MonoGame.Framework.iOS.csproj">
+      <Project>{DB8508BB-9849-4CC2-BC0F-8EB5DACB3C47}</Project>
+      <Name>MonoGame.Framework.iOS</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Info.plist" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Program.cs" />
+    <Compile Include="..\..\MacOS\TextureScaleColorTest\Game1.cs">
+      <Link>Game1.cs</Link>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="..\..\MacOS\TextureScaleColorTest\Content\FontCalibri14.xnb">
+      <Link>Content\FontCalibri14.xnb</Link>
+    </Content>
+    <Content Include="..\..\MacOS\TextureScaleColorTest\Content\blank.xnb">
+      <Link>Content\blank.xnb</Link>
+    </Content>
+  </ItemGroup>
+</Project>