diff --git a/.vs/WatercolorGames.Pong/v15/.suo b/.vs/WatercolorGames.Pong/v15/.suo
new file mode 100644
index 0000000..4c78dbd
Binary files /dev/null and b/.vs/WatercolorGames.Pong/v15/.suo differ
diff --git a/.vs/WatercolorGames.Pong/v15/Server/sqlite3/db.lock b/.vs/WatercolorGames.Pong/v15/Server/sqlite3/db.lock
new file mode 100644
index 0000000..e69de29
diff --git a/.vs/WatercolorGames.Pong/v15/Server/sqlite3/storage.ide b/.vs/WatercolorGames.Pong/v15/Server/sqlite3/storage.ide
new file mode 100644
index 0000000..b7bee79
Binary files /dev/null and b/.vs/WatercolorGames.Pong/v15/Server/sqlite3/storage.ide differ
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..444858b
--- /dev/null
+++ b/README.md
@@ -0,0 +1,40 @@
+# ShiftOS Pong
+
+This is an Android port of the Pong minigame from ShiftOS. In this version of Pong, the game is split into
+60-second levels. The higher the level, the harder the game gets and the more Codepoints you earn for surviving
+the level or beating the computer player.
+
+In ShiftOS, the mouse was used to control your paddle by moving the mouse up and down the screen to move the
+paddle. In this version, since there is no mouse, you use your finger to swipe up and down the screen to move
+your paddle.
+
+This version of the game also does not allow you to cash out your Codepoints into your Shiftorium, because this
+is not in any way attached to a ShiftOS backend. It is simply a way to see how far you can get in ShiftOS Pong
+without having to play ShiftOS.
+
+It can actually get quite addictive. The current "world" record (the record set by the developer of the game) is
+Level 4 with 43 Codepoints. Can you beat that?
+
+## Compiling
+
+You will need Xamarin for Visual Studio 2017, as well as the MonoGame 3.6 SDK for Visual Studio. That'll get you
+at least a working development environment on your computer.
+
+The game is tested on Android 7.0 Nougat on an LG G5, however it should theoretically work on Marshmallow as
+well.
+
+## Getting the game on your device
+
+Since this game isn't on Google Play, you'll have to side-load it. You can do this from within Visual Studio if
+you have a proper Xamarin Android dev environment set up. However, there are a few things you need to do on your
+device to get it to let you side-load.
+
+For modern Android versions, you'll want to head into your Settings and find your Android build number. Tap that
+at least 5 times in a row, and your phone should go into Developer Mode. Developer Mode unlocks some advanced
+settings for Android developers, under the "Developer Options" category. In there, you will find an option for
+USB Debugging.
+
+Turn that on. If it is greyed out, make sure your device is **not** plugged in via USB! Once it's on, plug your
+device into your development environment through USB and make sure the device is set to charge off your PC. If
+the device asks you if you want to allow USB debugging for this system, say yes. Now you can side-load the game
+onto your device from within Visual Studio by compiling the game an using your device as the target.
diff --git a/WatercolorGames.Pong.sln b/WatercolorGames.Pong.sln
new file mode 100644
index 0000000..b468c26
--- /dev/null
+++ b/WatercolorGames.Pong.sln
@@ -0,0 +1,27 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.27428.2002
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WatercolorGames.Pong", "WatercolorGames.Pong\WatercolorGames.Pong.csproj", "{235981A1-6BC1-428D-8882-7A0373D3FED4}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {235981A1-6BC1-428D-8882-7A0373D3FED4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {235981A1-6BC1-428D-8882-7A0373D3FED4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {235981A1-6BC1-428D-8882-7A0373D3FED4}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {235981A1-6BC1-428D-8882-7A0373D3FED4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {235981A1-6BC1-428D-8882-7A0373D3FED4}.Release|Any CPU.Build.0 = Release|Any CPU
+ {235981A1-6BC1-428D-8882-7A0373D3FED4}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {63168E43-6C18-46D2-9ED3-87618792CB32}
+ EndGlobalSection
+EndGlobal
diff --git a/WatercolorGames.Pong/ATextRenderer.cs b/WatercolorGames.Pong/ATextRenderer.cs
new file mode 100644
index 0000000..b19fa2c
--- /dev/null
+++ b/WatercolorGames.Pong/ATextRenderer.cs
@@ -0,0 +1,226 @@
+using System;
+using System.Linq;
+using System.Text;
+using Microsoft.Xna.Framework;
+using Plex.Engine.GraphicsSubsystem;
+using Microsoft.Xna.Framework.Graphics;
+
+namespace Plex.Engine
+{
+ public enum WrapMode
+ {
+ None,
+ Words,
+ Letters
+ }
+
+ ///
+ /// A class for rendering text.
+ ///
+ public static class TextRenderer
+ {
+ private static string WrapLine(SpriteFont font, string text, float maxLineWidth)
+ {
+ if (string.IsNullOrEmpty(text))
+ return text;
+ if (font.MeasureString(text).X <= maxLineWidth)
+ return text;
+ text = text.Trim();
+ var sb = new StringBuilder();
+
+ return sb.ToString().TrimEnd();
+ }
+
+ ///
+ /// Perform text wrapping on a string of text using the specified .
+ ///
+ /// The representing the font to measure the text in.
+ /// The text to wrap.
+ /// The maximum width (in pixels) that a line of text can be.
+ /// The type of text wrapping to apply.
+ /// The resulting wrapped text.
+ public static string WrapText(SpriteFont font, string text, float maxLineWidth, WrapMode mode)
+ {
+ if (string.IsNullOrEmpty(text))
+ return text;
+ if (font.MeasureString(text).X <= maxLineWidth)
+ return text;
+ if (mode == WrapMode.Words)
+ {
+ float spacewidth = font.MeasureString(" ").X;
+ if (maxLineWidth < spacewidth)
+ return text;
+ text = text.Trim().Replace("\r", "");
+ string[] lines = text.Split('\n');
+ float lineWidth = 0;
+ var sb = new StringBuilder();
+ foreach (var line in lines)
+ {
+ lineWidth = 0;
+ if (sb.Length>0)
+ sb.Append("\n");
+ var words = line.Split(' ').ToList();
+ for (int i = 0; i < words.Count; i++)
+ {
+ string word = words[i];
+
+ Vector2 size = font.MeasureString(word);
+
+ if (lineWidth + size.X <= maxLineWidth)
+ {
+
+ sb.Append(word + " ");
+ lineWidth += size.X + spacewidth;
+ }
+ else
+ {
+ if (size.X >= maxLineWidth)
+ {
+ if (sb.Length>0)
+ sb.Append("\n");
+ int half = word.Length / 2;
+ string first = word.Substring(0, half);
+ string second = word.Substring(half);
+ words[i] = first;
+ words.Insert(i + 1, second);
+ i--;
+ continue;
+ }
+ else
+ {
+ sb.Append("\n" + word + " ");
+ lineWidth = size.X + spacewidth;
+ }
+ }
+ }
+
+ }
+ return sb.ToString().TrimEnd();
+ }
+ else
+ {
+ float lineWidth = 0;
+ string newstr = "";
+ foreach (char c in text)
+ {
+ var measure = font.MeasureString(c.ToString());
+ if(lineWidth + measure.X > maxLineWidth)
+ {
+ newstr += "\n";
+ lineWidth = 0;
+ }
+ else
+ {
+ if (c == '\n')
+ {
+ lineWidth = 0;
+ }
+ else
+ lineWidth += measure.X;
+ }
+ newstr += c;
+ }
+ return newstr;
+ }
+
+ }
+
+ ///
+ /// Measure a string of text to get its width and height in pixels.
+ ///
+ /// The text to measure
+ /// The font to measure with
+ /// The maximum width text can be before it is wrapped
+ /// The wrap mode to use
+ /// The size in pixels of the text.
+ public static Vector2 MeasureText(string text, SpriteFont font, int maxwidth, WrapMode wrapMode)
+ {
+ if (string.IsNullOrEmpty(text))
+ return Vector2.Zero;
+ switch (wrapMode)
+ {
+ case WrapMode.None:
+ return font.MeasureString(text);
+ default:
+ return font.MeasureString(WrapText(font, text, maxwidth, wrapMode));
+ }
+ }
+
+ ///
+ /// Render a string of text.
+ ///
+ /// The graphics context to render the text to.
+ /// The text to render.
+ /// The X coordinate of the text.
+ /// The Y coordinate of the text.
+ /// The font to render the text in.
+ /// The maximum width text can be before it is wrapped.
+ /// The alignment of the text.
+ /// The type of text wrapping to use.
+ /// The color of the text to render
+ public static void DrawText(GraphicsContext gfx, int x, int y, string text, SpriteFont font, Color color, int maxwidth, TextAlignment alignment, WrapMode wrapMode)
+ {
+ if (string.IsNullOrEmpty(text))
+ return;
+ string measured = (wrapMode == WrapMode.None) ? text : WrapText(font, text, maxwidth, wrapMode);
+ string[] lines = measured.Split('\n');
+ for (int i = 0; i < lines.Length; i++)
+ {
+ var line = lines[i];
+ var measure = font.MeasureString(line);
+ switch (alignment)
+ {
+ case TextAlignment.Left:
+ gfx.Batch.DrawString(font, line, new Vector2(x, y + (measure.Y * i)), color);
+ break;
+ case TextAlignment.Center:
+ gfx.Batch.DrawString(font, line, new Vector2(x + ((maxwidth-measure.X)/2), y + (measure.Y * i)), color);
+ break;
+ case TextAlignment.Right:
+ gfx.Batch.DrawString(font, line, new Vector2(x + (maxwidth - measure.X), y + (measure.Y * i)), color);
+ break;
+ }
+ }
+
+ }
+
+
+ }
+
+ ///
+ /// Describes how text should be aligned when rendered.
+ ///
+ public enum TextAlignment
+ {
+ ///
+ /// Text should be aligned to the centre of the render bounds.
+ ///
+ Center = 0,
+ ///
+ /// Text should be aligned to the left.
+ ///
+ Left = 1,
+ ///
+ /// Text should be rendered to the right.
+ ///
+ Right = 2,
+ }
+
+ ///
+ /// Indicates that this should be the default renderer for the game.
+ ///
+ [Obsolete("GDI fonts no longer supported.")]
+ public class DefaultRenderer : Attribute
+ {
+
+ }
+
+ ///
+ /// Indicates that this should be the fallback renderer for the game.
+ ///
+ [Obsolete("GDI fonts no longer supported.")]
+ public class FallbackRenderer : Attribute
+ {
+
+ }
+}
diff --git a/WatercolorGames.Pong/Activity1.cs b/WatercolorGames.Pong/Activity1.cs
new file mode 100644
index 0000000..6cfe249
--- /dev/null
+++ b/WatercolorGames.Pong/Activity1.cs
@@ -0,0 +1,27 @@
+using Android.App;
+using Android.Content.PM;
+using Android.OS;
+using Android.Views;
+
+namespace WatercolorGames.Pong
+{
+ [Activity(Label = "WatercolorGames.Pong"
+ , MainLauncher = true
+ , Icon = "@drawable/icon"
+ , Theme = "@style/Theme.Splash"
+ , AlwaysRetainTaskState = true
+ , LaunchMode = Android.Content.PM.LaunchMode.SingleInstance
+ , ScreenOrientation = ScreenOrientation.FullUser
+ , ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.Keyboard | ConfigChanges.KeyboardHidden | ConfigChanges.ScreenSize)]
+ public class Activity1 : Microsoft.Xna.Framework.AndroidGameActivity
+ {
+ protected override void OnCreate(Bundle bundle)
+ {
+ base.OnCreate(bundle);
+ var g = new Game1(this);
+ SetContentView((View)g.Services.GetService(typeof(View)));
+ g.Run();
+ }
+ }
+}
+
diff --git a/WatercolorGames.Pong/Assets/AboutAssets.txt b/WatercolorGames.Pong/Assets/AboutAssets.txt
new file mode 100644
index 0000000..ee39886
--- /dev/null
+++ b/WatercolorGames.Pong/Assets/AboutAssets.txt
@@ -0,0 +1,19 @@
+Any raw assets you want to be deployed with your application can be placed in
+this directory (and child directories) and given a Build Action of "AndroidAsset".
+
+These files will be deployed with you package and will be accessible using Android's
+AssetManager, like this:
+
+public class ReadAsset : Activity
+{
+ protected override void OnCreate (Bundle bundle)
+ {
+ base.OnCreate (bundle);
+
+ InputStream input = Assets.Open ("my_asset.txt");
+ }
+}
+
+Additionally, some Android functions will automatically load asset files:
+
+Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf");
\ No newline at end of file
diff --git a/WatercolorGames.Pong/Content/Content.mgcb b/WatercolorGames.Pong/Content/Content.mgcb
new file mode 100644
index 0000000..3134fcb
--- /dev/null
+++ b/WatercolorGames.Pong/Content/Content.mgcb
@@ -0,0 +1,48 @@
+
+#----------------------------- Global Properties ----------------------------#
+
+/outputDir:bin/$(Platform)
+/intermediateDir:obj/$(Platform)
+/platform:Android
+/config:
+/profile:Reach
+/compress:False
+
+#-------------------------------- References --------------------------------#
+
+
+#---------------------------------- Content ---------------------------------#
+
+#begin Fonts/MainBody.spritefont
+/importer:FontDescriptionImporter
+/processor:FontDescriptionProcessor
+/processorParam:PremultiplyAlpha=True
+/processorParam:TextureFormat=Compressed
+/build:Fonts/MainBody.spritefont
+
+#begin Fonts/TimeLeft.spritefont
+/importer:FontDescriptionImporter
+/processor:FontDescriptionProcessor
+/processorParam:PremultiplyAlpha=True
+/processorParam:TextureFormat=Compressed
+/build:Fonts/TimeLeft.spritefont
+
+#begin Fonts/Score.spritefont
+/importer:FontDescriptionImporter
+/processor:FontDescriptionProcessor
+/processorParam:PremultiplyAlpha=True
+/processorParam:TextureFormat=Compressed
+/build:Fonts/Score.spritefont
+
+#begin SFX/writesound.wav
+/importer:WavImporter
+/processor:SoundEffectProcessor
+/processorParam:Quality=Best
+/build:SFX/writesound.wav
+
+#begin SFX/typesound.wav
+/importer:WavImporter
+/processor:SoundEffectProcessor
+/processorParam:Quality=Best
+/build:SFX/typesound.wav
+
diff --git a/WatercolorGames.Pong/Content/Fonts/MainBody.spritefont b/WatercolorGames.Pong/Content/Fonts/MainBody.spritefont
new file mode 100644
index 0000000..13fab60
--- /dev/null
+++ b/WatercolorGames.Pong/Content/Fonts/MainBody.spritefont
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+ Oxygen
+
+
+ 45
+
+
+ 0
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+ ~
+
+
+
+
diff --git a/WatercolorGames.Pong/Content/Fonts/Score.spritefont b/WatercolorGames.Pong/Content/Fonts/Score.spritefont
new file mode 100644
index 0000000..d143172
--- /dev/null
+++ b/WatercolorGames.Pong/Content/Fonts/Score.spritefont
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+ Oxygen
+
+
+ 48
+
+
+ 0
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+ ~
+
+
+
+
diff --git a/WatercolorGames.Pong/Content/Fonts/TimeLeft.spritefont b/WatercolorGames.Pong/Content/Fonts/TimeLeft.spritefont
new file mode 100644
index 0000000..4f1505c
--- /dev/null
+++ b/WatercolorGames.Pong/Content/Fonts/TimeLeft.spritefont
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+ Roboto Mono
+
+
+ 96
+
+
+ 0
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+ ~
+
+
+
+
diff --git a/WatercolorGames.Pong/Content/SFX/typesound.wav b/WatercolorGames.Pong/Content/SFX/typesound.wav
new file mode 100644
index 0000000..d3e381f
Binary files /dev/null and b/WatercolorGames.Pong/Content/SFX/typesound.wav differ
diff --git a/WatercolorGames.Pong/Content/SFX/writesound.wav b/WatercolorGames.Pong/Content/SFX/writesound.wav
new file mode 100644
index 0000000..84092d0
Binary files /dev/null and b/WatercolorGames.Pong/Content/SFX/writesound.wav differ
diff --git a/WatercolorGames.Pong/Content/bin/Android/Fonts/MainBody.xnb b/WatercolorGames.Pong/Content/bin/Android/Fonts/MainBody.xnb
new file mode 100644
index 0000000..542f625
Binary files /dev/null and b/WatercolorGames.Pong/Content/bin/Android/Fonts/MainBody.xnb differ
diff --git a/WatercolorGames.Pong/Content/bin/Android/Fonts/Score.xnb b/WatercolorGames.Pong/Content/bin/Android/Fonts/Score.xnb
new file mode 100644
index 0000000..d6f2ccb
Binary files /dev/null and b/WatercolorGames.Pong/Content/bin/Android/Fonts/Score.xnb differ
diff --git a/WatercolorGames.Pong/Content/bin/Android/Fonts/TimeLeft.xnb b/WatercolorGames.Pong/Content/bin/Android/Fonts/TimeLeft.xnb
new file mode 100644
index 0000000..e73c033
Binary files /dev/null and b/WatercolorGames.Pong/Content/bin/Android/Fonts/TimeLeft.xnb differ
diff --git a/WatercolorGames.Pong/Content/bin/Android/SFX/typesound.xnb b/WatercolorGames.Pong/Content/bin/Android/SFX/typesound.xnb
new file mode 100644
index 0000000..cfbf67d
Binary files /dev/null and b/WatercolorGames.Pong/Content/bin/Android/SFX/typesound.xnb differ
diff --git a/WatercolorGames.Pong/Content/bin/Android/SFX/writesound.xnb b/WatercolorGames.Pong/Content/bin/Android/SFX/writesound.xnb
new file mode 100644
index 0000000..b947619
Binary files /dev/null and b/WatercolorGames.Pong/Content/bin/Android/SFX/writesound.xnb differ
diff --git a/WatercolorGames.Pong/Content/obj/Android/.mgcontent b/WatercolorGames.Pong/Content/obj/Android/.mgcontent
new file mode 100644
index 0000000..348df38
--- /dev/null
+++ b/WatercolorGames.Pong/Content/obj/Android/.mgcontent
@@ -0,0 +1,13 @@
+
+
+ Reach
+ Android
+
+
+ C:/Users/Michael/source/repos/WatercolorGames.Pong/WatercolorGames.Pong/Content/Fonts/MainBody.spritefont
+ C:/Users/Michael/source/repos/WatercolorGames.Pong/WatercolorGames.Pong/Content/Fonts/TimeLeft.spritefont
+ C:/Users/Michael/source/repos/WatercolorGames.Pong/WatercolorGames.Pong/Content/Fonts/Score.spritefont
+ C:/Users/Michael/source/repos/WatercolorGames.Pong/WatercolorGames.Pong/Content/SFX/writesound.wav
+ C:/Users/Michael/source/repos/WatercolorGames.Pong/WatercolorGames.Pong/Content/SFX/typesound.wav
+
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/Content/obj/Android/Fonts/MainBody.mgcontent b/WatercolorGames.Pong/Content/obj/Android/Fonts/MainBody.mgcontent
new file mode 100644
index 0000000..7dcdda8
--- /dev/null
+++ b/WatercolorGames.Pong/Content/obj/Android/Fonts/MainBody.mgcontent
@@ -0,0 +1,22 @@
+
+
+ C:/Users/Michael/source/repos/WatercolorGames.Pong/WatercolorGames.Pong/Content/Fonts/MainBody.spritefont
+ 2018-03-11T22:50:31.6415571-04:00
+ C:/Users/Michael/source/repos/WatercolorGames.Pong/WatercolorGames.Pong/Content/bin/Android/Fonts/MainBody.xnb
+ 2018-03-11T22:50:33.8371122-04:00
+ FontDescriptionImporter
+ 2017-03-01T10:05:36-05:00
+ FontDescriptionProcessor
+ 2017-03-01T10:05:36-05:00
+
+ PremultiplyAlpha
+ True
+
+
+ TextureFormat
+ Compressed
+
+
+
+
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/Content/obj/Android/Fonts/Score.mgcontent b/WatercolorGames.Pong/Content/obj/Android/Fonts/Score.mgcontent
new file mode 100644
index 0000000..34e919e
--- /dev/null
+++ b/WatercolorGames.Pong/Content/obj/Android/Fonts/Score.mgcontent
@@ -0,0 +1,22 @@
+
+
+ C:/Users/Michael/source/repos/WatercolorGames.Pong/WatercolorGames.Pong/Content/Fonts/Score.spritefont
+ 2018-03-11T18:13:51.1849077-04:00
+ C:/Users/Michael/source/repos/WatercolorGames.Pong/WatercolorGames.Pong/Content/bin/Android/Fonts/Score.xnb
+ 2018-03-11T18:13:52.6961013-04:00
+ FontDescriptionImporter
+ 2017-03-01T10:05:36-05:00
+ FontDescriptionProcessor
+ 2017-03-01T10:05:36-05:00
+
+ PremultiplyAlpha
+ True
+
+
+ TextureFormat
+ Compressed
+
+
+
+
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/Content/obj/Android/Fonts/TimeLeft.mgcontent b/WatercolorGames.Pong/Content/obj/Android/Fonts/TimeLeft.mgcontent
new file mode 100644
index 0000000..83c9d9d
--- /dev/null
+++ b/WatercolorGames.Pong/Content/obj/Android/Fonts/TimeLeft.mgcontent
@@ -0,0 +1,22 @@
+
+
+ C:/Users/Michael/source/repos/WatercolorGames.Pong/WatercolorGames.Pong/Content/Fonts/TimeLeft.spritefont
+ 2018-03-11T18:13:51.163905-04:00
+ C:/Users/Michael/source/repos/WatercolorGames.Pong/WatercolorGames.Pong/Content/bin/Android/Fonts/TimeLeft.xnb
+ 2018-03-11T18:13:52.6020888-04:00
+ FontDescriptionImporter
+ 2017-03-01T10:05:36-05:00
+ FontDescriptionProcessor
+ 2017-03-01T10:05:36-05:00
+
+ PremultiplyAlpha
+ True
+
+
+ TextureFormat
+ Compressed
+
+
+
+
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/Content/obj/Android/SFX/typesound.mgcontent b/WatercolorGames.Pong/Content/obj/Android/SFX/typesound.mgcontent
new file mode 100644
index 0000000..a836b5d
--- /dev/null
+++ b/WatercolorGames.Pong/Content/obj/Android/SFX/typesound.mgcontent
@@ -0,0 +1,18 @@
+
+
+ C:/Users/Michael/source/repos/WatercolorGames.Pong/WatercolorGames.Pong/Content/SFX/typesound.wav
+ 2017-04-09T11:14:37.6494174-04:00
+ C:/Users/Michael/source/repos/WatercolorGames.Pong/WatercolorGames.Pong/Content/bin/Android/SFX/typesound.xnb
+ 2018-03-12T11:28:08.6344184-04:00
+ WavImporter
+ 2017-03-01T10:05:36-05:00
+ SoundEffectProcessor
+ 2017-03-01T10:05:36-05:00
+
+ Quality
+ Best
+
+
+
+
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/Content/obj/Android/SFX/writesound.mgcontent b/WatercolorGames.Pong/Content/obj/Android/SFX/writesound.mgcontent
new file mode 100644
index 0000000..a1f9b39
--- /dev/null
+++ b/WatercolorGames.Pong/Content/obj/Android/SFX/writesound.mgcontent
@@ -0,0 +1,18 @@
+
+
+ C:/Users/Michael/source/repos/WatercolorGames.Pong/WatercolorGames.Pong/Content/SFX/writesound.wav
+ 2017-04-09T11:14:37.7734673-04:00
+ C:/Users/Michael/source/repos/WatercolorGames.Pong/WatercolorGames.Pong/Content/bin/Android/SFX/writesound.xnb
+ 2018-03-12T11:28:08.3453727-04:00
+ WavImporter
+ 2017-03-01T10:05:36-05:00
+ SoundEffectProcessor
+ 2017-03-01T10:05:36-05:00
+
+ Quality
+ Best
+
+
+
+
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/Game1.cs b/WatercolorGames.Pong/Game1.cs
new file mode 100644
index 0000000..b46e748
--- /dev/null
+++ b/WatercolorGames.Pong/Game1.cs
@@ -0,0 +1,399 @@
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+using Plex.Engine.GraphicsSubsystem;
+using Microsoft.Xna.Framework.Input.Touch;
+using System;
+using Plex.Engine;
+using Microsoft.Xna.Framework.Audio;
+
+namespace WatercolorGames.Pong
+{
+ ///
+ /// This is the main type for your game.
+ ///
+ public class Game1 : Game
+ {
+ private SpriteFont _scoreFont = null;
+ private SpriteFont _timeLeftFont = null;
+ private SpriteFont _bodyFont = null;
+
+ private double _timeLeftSeconds = 60;
+ private int _level = 1;
+ private long _codepoints = 0;
+
+ private SoundEffect _typesound = null;
+ private SoundEffect _writesound = null;
+
+
+ GraphicsDeviceManager graphics;
+ SpriteBatch spriteBatch;
+
+ private float _playerPaddleY = 0.5F;
+ private float _cpuPaddleY = 0.5F;
+
+ private float _ballX = 0.5F;
+ private float _ballY = 0.5F;
+
+ private const float _paddleHeight = 0.15F;
+ private const float _paddleWidth = 0.05F;
+
+ private const float _ballSize = 0.1F;
+ private const float _ballSizeLandscape = 0.05F;
+
+ private Rectangle _ballRect = new Rectangle();
+ private Rectangle _playerRect = new Rectangle();
+ private Rectangle _cpuRect = new Rectangle();
+
+ private const long _cpLevelBeatReward = 1;
+ private const long _cpCpuBeatReward = 2;
+
+ private string _countdownHead = "Countdown header";
+ private string _countdownDesc = "Countdown description";
+
+ private double _countdown = 3;
+
+ private const float _paddleHeightLandscape = 0.20F;
+ private const float _paddleWidthLandscape = 0.025F;
+
+ private float _ballVelYStart = 0.0025F;
+ private float _ballVelX = 0.0025F;
+ private float _ballVelY = -0.0025F;
+ private float _cpuSpeed = 0.5F;
+
+ private int _gameState = 0;
+
+ private double _countdownBeepTimer = 0;
+
+ private bool _isLandscape = false;
+
+ private GraphicsContext _gfx = null;
+
+ private Activity1 _activity = null;
+
+ public Game1(Activity1 activity)
+ {
+ _activity = activity;
+
+ graphics = new GraphicsDeviceManager(this);
+ Content.RootDirectory = "Content";
+
+ graphics.IsFullScreen = true;
+ graphics.SupportedOrientations = DisplayOrientation.Portrait | DisplayOrientation.PortraitDown | DisplayOrientation.LandscapeLeft | DisplayOrientation.LandscapeRight;
+ }
+
+ ///
+ /// 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.
+ ///
+ protected override void Initialize()
+ {
+ // TODO: Add your initialization logic here
+
+ base.Initialize();
+ }
+
+ ///
+ /// LoadContent will be called once per game and is the place to load
+ /// all of your content.
+ ///
+ protected override void LoadContent()
+ {
+ // Create a new SpriteBatch, which can be used to draw textures.
+ spriteBatch = new SpriteBatch(GraphicsDevice);
+
+ _gfx = new GraphicsContext(GraphicsDevice, spriteBatch, 0, 0, GraphicsDevice.PresentationParameters.BackBufferWidth, GraphicsDevice.PresentationParameters.BackBufferHeight);
+
+ _bodyFont = Content.Load("Fonts/MainBody");
+ _timeLeftFont = Content.Load("Fonts/TimeLeft");
+ _scoreFont = Content.Load("Fonts/Score");
+
+ _typesound = Content.Load("SFX/typesound");
+ _writesound = Content.Load("SFX/writesound");
+
+
+ // TODO: use this.Content to load your game content here
+ }
+
+ ///
+ /// UnloadContent will be called once per game and is the place to unload
+ /// game-specific content.
+ ///
+ protected override void UnloadContent()
+ {
+ // TODO: Unload any non ContentManager content here
+ }
+
+ private int _frames = 0;
+
+ ///
+ /// Allows the game to run logic such as updating the world,
+ /// checking for collisions, gathering input, and playing audio.
+ ///
+ /// Provides a snapshot of timing values.
+ protected override void Update(GameTime gameTime)
+ {
+ if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
+ Exit();
+
+ //In case the player rotates their screen...
+ _gfx.Width = GraphicsDevice.PresentationParameters.BackBufferWidth;
+ _gfx.Height = GraphicsDevice.PresentationParameters.BackBufferHeight;
+
+ //Now we need to figure out if we're landscape or not.
+ _isLandscape = GraphicsDevice.PresentationParameters.DisplayOrientation == DisplayOrientation.LandscapeLeft || GraphicsDevice.PresentationParameters.DisplayOrientation == DisplayOrientation.LandscapeLeft;
+
+
+ switch (_gameState)
+ {
+ case 0: //intro
+ foreach(var touch in TouchPanel.GetState())
+ {
+ if(touch.State == TouchLocationState.Released)
+ {
+ _countdownHead = "Ready to play?";
+ _countdownDesc = $"Level {_level} - you can earn:\n\n{_cpCpuBeatReward * _level} CP for beating the computer.\n{_cpLevelBeatReward * _level} CP for surviving.";
+ _gameState = 2;
+ break;
+ }
+ }
+ break;
+ case 1: //In-game.
+ _frames++;
+
+ TouchLocation previous = default(TouchLocation);
+
+
+ foreach (var touch in TouchPanel.GetState())
+ {
+ if (!touch.TryGetPreviousLocation(out previous))
+ continue;
+
+ var delta = previous.Position - touch.Position;
+ _playerPaddleY -= (delta.Y / _gfx.Width);
+
+ }
+
+ float ballSize = (_isLandscape) ? _ballSizeLandscape : _ballSize;
+ float paddleSize = (_isLandscape) ? _paddleWidthLandscape : _paddleWidth;
+ float paddleHeight = (_isLandscape) ? _paddleHeightLandscape : _paddleHeight;
+
+ _ballRect.Width = (int)Math.Round(MathHelper.Lerp(0, _gfx.Width, ballSize));
+ _ballRect.Height = (int)Math.Round(MathHelper.Lerp(0, _gfx.Height, ballSize));
+ _ballRect.X = (int)Math.Round(MathHelper.Lerp(0, _gfx.Width, _ballX - (ballSize / 2)));
+ _ballRect.Y = (int)MathHelper.Clamp((float)Math.Round(MathHelper.Lerp(0, _gfx.Height, _ballY - (ballSize / 2))), 0, _gfx.Height);
+
+ _playerRect.Width = (int)MathHelper.Lerp(0, _gfx.Width, paddleSize);
+ _playerRect.Height = (int)MathHelper.Lerp(0, _gfx.Height, paddleHeight);
+
+ _cpuRect.Width = _playerRect.Width;
+ _cpuRect.Height = _playerRect.Height;
+
+ float screenMarginX = 0.01f;
+
+ _playerRect.X = (int)MathHelper.Lerp(0, _gfx.Width, screenMarginX);
+ _cpuRect.X = (int)MathHelper.Lerp(0, _gfx.Width, (1F - screenMarginX) - paddleSize);
+
+ _playerRect.Y = (int)MathHelper.Lerp(0, _gfx.Height, _playerPaddleY - (paddleHeight / 2));
+ _cpuRect.Y = (int)MathHelper.Lerp(0, _gfx.Height, _cpuPaddleY - (paddleHeight / 2));
+
+
+
+ if (_ballRect.Top <= 0)
+ {
+ _ballY = ballSize / 2;
+ _ballVelY = -_ballVelY;
+ }
+
+ if (_ballRect.Bottom >= _gfx.Height)
+ {
+ _ballY = 1f - (ballSize / 2F);
+ _ballVelY = -_ballVelY;
+ }
+
+
+ if (_cpuRect.Intersects(_ballRect))
+ {
+ float ballInPaddle = _ballY - (_cpuPaddleY - (paddleHeight / 2));
+ float hitLocationPercentage = ballInPaddle / paddleHeight;
+
+
+
+ _ballVelX = -_ballVelX;
+ _ballVelY = MathHelper.Lerp(-_ballVelYStart, _ballVelYStart, hitLocationPercentage);
+ _typesound.Play();
+ }
+
+ if (_playerRect.Intersects(_ballRect))
+ {
+ float ballInPaddle = _ballY - (_playerPaddleY - (paddleHeight / 2));
+ float hitLocationPercentage = ballInPaddle / paddleHeight;
+
+ _ballX = screenMarginX + paddleSize + (ballSize / 2);
+
+ _ballVelX = -_ballVelX;
+ _ballVelY = MathHelper.Lerp(-_ballVelYStart, _ballVelYStart, hitLocationPercentage);
+ _typesound.Play();
+ }
+
+ if (_ballRect.Left >= _gfx.Width)
+ {
+ _ballX = 0.85F;
+ _ballY = 0.5F;
+ _codepoints += (_cpCpuBeatReward * _level);
+ _ballVelX = -_ballVelX;
+ _countdownHead = "You Beat the Computer!";
+ _countdownDesc = $"{_cpCpuBeatReward * _level} Codepoints rewarded.";
+ _gameState++;
+ }
+
+ if (_ballRect.Right <= 0)
+ {
+ _ballX = 0.5F;
+ _ballY = 0.5F;
+ _ballVelX = 0.0025F;
+ _ballVelY = 0.0025F;
+ _ballVelYStart = 0.0025F;
+ _playerPaddleY = 0.5F;
+ _cpuPaddleY = 0.5F;
+ _countdownHead = "You Lost!";
+ _countdownDesc = $"You missed out on {_codepoints} Codepoints!";
+ _codepoints = 0;
+ _timeLeftSeconds = 60;
+ _level = 1;
+ _gameState++;
+ return;
+ }
+
+
+
+ _ballX += _ballVelX;
+ _ballY += _ballVelY;
+
+ _timeLeftSeconds -= gameTime.ElapsedGameTime.TotalSeconds;
+
+ if(_timeLeftSeconds < 0)
+ {
+ _timeLeftSeconds = 60;
+ _ballVelYStart *= 2;
+ _ballVelX *= 2;
+ _codepoints += _cpLevelBeatReward * _level;
+ _countdownHead = $"Level {_level} Complete";
+ _level++;
+ _countdownDesc = $"Now on Level {_level} - you can earn:\n\n{_cpCpuBeatReward * _level} CP for beating the computer.\n{_cpLevelBeatReward * _level} CP for surviving.";
+ _gameState++;
+ }
+
+ if (_frames >= 7)
+ {
+ _frames = 0;
+ return;
+ }
+
+ if (_cpuPaddleY > _ballY)
+ {
+ _cpuPaddleY -= (_ballVelYStart * _cpuSpeed);
+ }
+ else if (_cpuPaddleY < _ballY)
+ {
+ _cpuPaddleY += (_ballVelYStart * _cpuSpeed);
+ }
+
+
+ _playerPaddleY = MathHelper.Clamp(_playerPaddleY, paddleHeight / 2, 1 - (paddleHeight / 2));
+ break;
+ case 2: //Countdown.
+ _countdownBeepTimer += gameTime.ElapsedGameTime.TotalSeconds;
+ if(_countdownBeepTimer>=1)
+ {
+ _writesound.Play();
+ _countdownBeepTimer = 0;
+ }
+ _countdown -= gameTime.ElapsedGameTime.TotalSeconds;
+ if(_countdown < 0)
+ {
+ _gameState--;
+ _countdown = 3;
+ }
+ break;
+ }
+
+ base.Update(gameTime);
+ }
+
+ ///
+ /// This is called when the game should draw itself.
+ ///
+ /// Provides a snapshot of timing values.
+ protected override void Draw(GameTime gameTime)
+ {
+ _gfx.Device.Clear(Color.Black);
+
+ _gfx.BeginDraw();
+
+ switch (_gameState)
+ {
+ case 0:
+ string welcome = _activity.ApplicationContext.Resources.GetString(Resource.String.WelcomeToPong);
+
+ var measure = TextRenderer.MeasureText(welcome, _bodyFont, (int)(_gfx.Width / 1.25), WrapMode.Words);
+
+ _gfx.DrawString(welcome, (_gfx.Width - (int)(_gfx.Width / 1.25)) / 2, (_gfx.Height - (int)measure.Y) / 2, Color.White, _bodyFont, TextAlignment.Center, (int)(_gfx.Width / 1.25), WrapMode.Words);
+
+ break;
+ case 1:
+
+ //Draw the two paddles.
+ _gfx.DrawRectangle(_playerRect.X, _playerRect.Y, _playerRect.Width, _playerRect.Height, Color.White);
+ _gfx.DrawRectangle(_cpuRect.X, _cpuRect.Y, _cpuRect.Width, _cpuRect.Height, Color.White);
+
+ //Draw the ball.
+ _gfx.DrawCircle(_ballRect.X + (_ballRect.Width / 2), _ballRect.Y + (_ballRect.Width / 2), _ballRect.Width / 2, Color.White);
+ break;
+ case 2:
+ var headMeasure = TextRenderer.MeasureText(_countdownHead, _bodyFont, (int)(_gfx.Width / 1.25), WrapMode.Words);
+
+ _gfx.DrawString(_countdownHead, (_gfx.Width - (int)(_gfx.Width / 1.25)) / 2, _gfx.Height / 4, Color.White, _bodyFont, TextAlignment.Center, (int)(_gfx.Width / 1.25), WrapMode.Words);
+ _gfx.DrawString(_countdownDesc, (_gfx.Width - (_gfx.Width/2)) / 2, (_gfx.Height / 4) + (int)headMeasure.Y + 30, Color.White, _scoreFont, TextAlignment.Center, _gfx.Width/2, WrapMode.Words);
+
+
+
+ string countdownText = Math.Round(_countdown).ToString();
+ var countdownMeasure = _timeLeftFont.MeasureString(countdownText);
+
+ _gfx.Batch.DrawString(_timeLeftFont, countdownText, new Vector2((_gfx.Width - countdownMeasure.X) / 2, (_gfx.Height - countdownMeasure.Y) / 2), Color.White);
+
+
+
+ break;
+ }
+ //Measure the "Seconds Left" counter.
+ string secondsleft = $"{Math.Round(_timeLeftSeconds)} Seconds Left";
+
+ //Render the seconds left counter
+ _gfx.DrawString(secondsleft, (_gfx.Width - (_gfx.Width / 2)) / 2, 20, Color.White, _timeLeftFont, TextAlignment.Center, _gfx.Width / 2, WrapMode.Words);
+
+ //Level text
+ string level = $"Level: {_level}";
+ var lMeasure = TextRenderer.MeasureText(level, _scoreFont, 0, WrapMode.None);
+
+ //render level text
+ _gfx.DrawString(level, 20, (_gfx.Height - (int)lMeasure.Y) - 20, Color.White, _scoreFont, TextAlignment.Left, 0, WrapMode.None);
+
+ //Codepoints text
+ string codepoints = $"{_codepoints} Codepoints";
+ var cMeasure = TextRenderer.MeasureText(codepoints, _scoreFont, 0, WrapMode.None);
+
+ //render codepoints text
+ _gfx.DrawString(codepoints, (_gfx.Width - (int)cMeasure.X)-20, (_gfx.Height - (int)lMeasure.Y) - 20, Color.White, _scoreFont, TextAlignment.Left, 0, WrapMode.None);
+
+
+
+ _gfx.EndDraw();
+
+ base.Draw(gameTime);
+ }
+ }
+}
diff --git a/WatercolorGames.Pong/GraphicsContext.cs b/WatercolorGames.Pong/GraphicsContext.cs
new file mode 100644
index 0000000..9d01477
--- /dev/null
+++ b/WatercolorGames.Pong/GraphicsContext.cs
@@ -0,0 +1,428 @@
+using System;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Graphics;
+
+namespace Plex.Engine.GraphicsSubsystem
+{
+ ///
+ /// Encapsulates a and and contains methods for easily rendering various objects using those encapsulated objects. This class cannot be inherited.
+ ///
+ ///
+ /// The class employs scissor testing in all of its draw calls. This makes it so that any data rendering outside the scissor rectangle (defined by the , , and properties) will be clipped and not rendered to the screen.
+ /// Also, apart from the and properties of the graphics context, any X/Y coordinate pairs are relative to the coordinates of the scissor rectangle. So, the coordinates (0,5) refer to +0,+5.
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public sealed class GraphicsContext
+ {
+ private static Texture2D white = null;
+
+ ///
+ /// Retrieves the sprite batch associated with this graphics context.
+ ///
+ public SpriteBatch Batch
+ {
+ get
+ {
+ return _spritebatch;
+ }
+ }
+
+ ///
+ /// Retrieves the graphics device associated with this graphics context.
+ ///
+ public GraphicsDevice Device
+ {
+ get
+ {
+ return _graphicsDevice;
+ }
+ }
+
+ ///
+ /// Gets or sets the X coordinate of the scissor rectangle.
+ ///
+ public int X
+ {
+ get
+ {
+ return Device.ScissorRectangle.X;
+ }
+ set
+ {
+ Device.ScissorRectangle = new Rectangle(value, Y, Width, Height);
+ }
+ }
+
+ ///
+ /// Gets or sets the Y coordinate of the scissor rectangle.
+ ///
+ public int Y
+ {
+ get
+ {
+ return Device.ScissorRectangle.Y;
+ }
+ set
+ {
+ Device.ScissorRectangle = new Rectangle(X, value, Width, Height);
+ }
+ }
+
+ ///
+ /// Gets or sets the width of the scissor rectangle.
+ ///
+ public int Width
+ {
+ get
+ {
+ return Device.ScissorRectangle.Width;
+ }
+ set
+ {
+ Device.ScissorRectangle = new Rectangle(X, Y, value, Height);
+ }
+ }
+
+ ///
+ /// Gets or sets the height of the scissor rectangle.
+ ///
+ public int Height
+ {
+ get
+ {
+ return Device.ScissorRectangle.Height;
+ }
+ set
+ {
+ Device.ScissorRectangle = new Rectangle(X, Y, Width, value);
+ }
+ }
+
+ ///
+ /// Draw an outlined polygon.
+ ///
+ /// The color of the polygon's outlines
+ /// The various X and Y coordinates relative to the scissor rectangle of the polygon. The size of this array must be a multiple of 2.
+ /// The array does not have a length which is a multiple of 2.
+ public void DrawPolygon(Color c, params int[] locs)
+ {
+ if ((locs.Length % 2) != 0)
+ throw new Exception("The locs argument count must be a multiple of 2.");
+ for(int i = 0; i < locs.Length; i+= 2)
+ {
+ int x = locs[i];
+ int y = locs[i + 1];
+ int x1 = locs[0];
+ int y1 = locs[1];
+
+ if (i < locs.Length - 2)
+ {
+ x1 = locs[i + 2];
+ y1 = locs[i + 3];
+ }
+ DrawLine(x, y, x1, y1, 1, c);
+ }
+ }
+
+ private GraphicsDevice _graphicsDevice;
+ private SpriteBatch _spritebatch;
+
+ ///
+ /// Creates a new instance of the class.
+ ///
+ /// The graphics device where rendering will take place.
+ /// The sprite batch to associate with the graphics context.
+ /// The starting X coordinate of the scissor rectangle.
+ /// The starting Y coordinate of the scissor rectangle.
+ /// The starting width of the scissor rectangle.
+ /// The starting height of the scissor rectangle.
+ public GraphicsContext(GraphicsDevice device, SpriteBatch batch, int x, int y, int width, int height)
+ {
+ if (device == null || batch == null)
+ throw new ArgumentNullException();
+
+ _graphicsDevice = device;
+ _spritebatch = batch;
+ if(white == null)
+ {
+ white = new Texture2D(_graphicsDevice, 1, 1);
+ white.SetData(new byte[] { 0xFF, 0xFF, 0xFF, 0xFF });
+ }
+ Width = width;
+ Height = height;
+ X = x;
+ Y = y;
+
+
+ }
+
+ ///
+ /// Clears the canvas with the specified color.
+ ///
+ /// The color to render
+ public void Clear(Color c)
+ {
+ DrawRectangle(0, 0, Width, Height, c);
+ }
+
+ ///
+ /// Draw a line between two separate points on the canvas
+ ///
+ /// The X coordinate of the first point
+ /// The Y coordinate of the first point
+ /// The X coordinate of the second point
+ /// The Y coordinate of the second point
+ /// The thickness of the line
+ /// The line's texture
+ public void DrawLine(int x, int y, int x1, int y1, int thickness, Texture2D tex2)
+ {
+ DrawLine(x, y, x1, y1, thickness, tex2, Color.White);
+ }
+
+ ///
+ /// Draw a line with a tint between two separate points on the canvas
+ ///
+ /// The X coordinate of the first point
+ /// The Y coordinate of the first point
+ /// The X coordinate of the second point
+ /// The Y coordinate of the second point
+ /// The thickness of the line
+ /// The line's texture
+ /// The tint of the texture
+ public void DrawLine(int x, int y, int x1, int y1, int thickness, Texture2D tex2, Color tint)
+ {
+ if (tint.A == 0)
+ return; //no sense rendering if you CAN'T SEE IT
+ x += X;
+ y += Y;
+ x1 += X;
+ y1 += Y;
+ int distance = (int)Vector2.Distance(new Vector2(x, y), new Vector2(x1, y1));
+ float rotation = GetRotation(x, y, x1, y1);
+ _spritebatch.Draw(tex2, new Rectangle(x, y, distance, thickness), null, tint, rotation, Vector2.Zero, SpriteEffects.None, 0);
+ }
+
+ ///
+ /// Draw a line with a tint between two separate points on the canvas
+ ///
+ /// The X coordinate of the first point
+ /// The Y coordinate of the first point
+ /// The X coordinate of the second point
+ /// The Y coordinate of the second point
+ /// The thickness of the line
+ /// The color of the line
+ public void DrawLine(int x, int y, int x1, int y1, int thickness, Color color)
+ {
+ if (color.A == 0)
+ return; //no sense rendering if you CAN'T SEE IT
+ x += X;
+ y += Y;
+ x1 += X;
+ y1 += Y;
+ int distance = (int)Vector2.Distance(new Vector2(x, y), new Vector2(x1, y1));
+ float rotation = GetRotation(x, y, x1, y1);
+ _spritebatch.Draw(white, new Rectangle(x, y, distance, thickness), null, color, rotation, Vector2.Zero, SpriteEffects.None, 0);
+ }
+
+ ///
+ /// Draw a rectangle with the specified color to the canvas.
+ ///
+ /// The X coordinate of the rectangle
+ /// The Y coordinate of the rectangle
+ /// The width of the rectangle
+ /// The height of the rectangle
+ /// The color of the rectangle
+ public void DrawRectangle(int x, int y, int width, int height, Color color)
+ {
+ if (color.A == 0)
+ return; //no sense rendering if you CAN'T SEE IT
+ x += X;
+ y += Y;
+ _spritebatch.Draw(white, new Rectangle(x, y, width, height), color);
+ }
+
+ ///
+ /// Begin a draw call.
+ ///
+ public void BeginDraw()
+ {
+ _spritebatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend,
+ SamplerState.LinearClamp, Device.DepthStencilState,
+ RasterizerState);
+
+ }
+
+ ///
+ /// End the current draw call.
+ ///
+ public void EndDraw()
+ {
+ _spritebatch.End();
+ }
+
+ ///
+ /// Draw a circle to the canvas.
+ ///
+ /// The X coordinate of the circle
+ /// The Y coordinate of the circle
+ /// The radius of the circle
+ /// The color of the circle
+ public void DrawCircle(int x, int y, int radius, Color color)
+ {
+ if (color.A == 0)
+ return; //no sense rendering if you CAN'T SEE IT
+ float step = (float) Math.PI / (radius * 4);
+ var rect = new Rectangle(x, y, radius, 1);
+ for (float theta = 0; theta < 2 * Math.PI; theta += step)
+ _spritebatch.Draw(white, rect, null, color, theta, Vector2.Zero, SpriteEffects.None, 0);
+ }
+
+ ///
+ /// Draw a rectangle with the specified texture and tint to the canvas.
+ ///
+ /// The X coordinate of the rectangle
+ /// The Y coordinate of the rectangle
+ /// The width of the rectangle
+ /// The height of the rectangle
+ /// The texture of the rectangle
+ /// The tint of the rectangle
+ public void DrawRectangle(int x, int y, int width, int height, Texture2D tex2, ImageLayout layout = ImageLayout.Stretch)
+ {
+ DrawRectangle(x, y, width, height, tex2, Color.White, layout);
+ }
+
+ ///
+ /// Retrieves a new preferred to be used by the graphics context.
+ ///
+ public readonly RasterizerState RasterizerState = new RasterizerState { ScissorTestEnable = true, MultiSampleAntiAlias = true };
+
+ ///
+ /// Draw a rectangle with the specified texture, tint and to the canvas.
+ ///
+ /// The X coordinate of the rectangle
+ /// The Y coordinate of the rectangle
+ /// The width of the rectangle
+ /// The height of the rectangle
+ /// The texture of the rectangle
+ /// The tint of the texture
+ /// The layout of the texture
+ /// Whether the rectangle should be opaque regardless of the texture data or tint's alpha value.
+ /// Whether the texture data is already pre-multiplied.
+ public void DrawRectangle(int x, int y, int width, int height, Texture2D tex2, Color tint, ImageLayout layout = ImageLayout.Stretch, bool opaque = false, bool premultiplied=true)
+ {
+ if (tint.A == 0)
+ return; //no sense rendering if you CAN'T SEE IT
+ if (tex2 == null)
+ return;
+ x += X;
+ y += Y;
+ _spritebatch.End();
+ var state = SamplerState.LinearClamp;
+ if (layout == ImageLayout.Tile)
+ state = SamplerState.LinearWrap;
+ if (opaque)
+ {
+ _spritebatch.Begin(SpriteSortMode.Immediate, BlendState.Opaque,
+ state, Device.DepthStencilState,
+ RasterizerState);
+ }
+ else
+ {
+ if (premultiplied)
+ {
+ _spritebatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend,
+ state, Device.DepthStencilState,
+ RasterizerState);
+ }
+ else
+ {
+ _spritebatch.Begin(SpriteSortMode.Immediate, BlendState.NonPremultiplied,
+ state, Device.DepthStencilState,
+ RasterizerState);
+
+ }
+ }
+ switch (layout)
+ {
+ case ImageLayout.Tile:
+ _spritebatch.Draw(tex2, new Vector2(x,y), new Rectangle(0, 0, width, height), Color.White, 0, Vector2.Zero, 1f, SpriteEffects.None, 0);
+ break;
+ case ImageLayout.Stretch:
+ _spritebatch.Draw(tex2, new Rectangle(x, y, width, height), tint);
+ break;
+ case ImageLayout.None:
+ _spritebatch.Draw(tex2, new Rectangle(x, y, tex2.Width, tex2.Height), tint);
+ break;
+ case ImageLayout.Center:
+ _spritebatch.Draw(tex2, new Rectangle(x+((width - tex2.Width) / 2), y+((height - tex2.Height) / 2), tex2.Width, tex2.Height), tint);
+ break;
+ case ImageLayout.Zoom:
+ float scale = Math.Min(width / (float)tex2.Width, height / (float)tex2.Height);
+
+ var scaleWidth = (int)(tex2.Width * scale);
+ var scaleHeight = (int)(tex2.Height * scale);
+
+ _spritebatch.Draw(tex2, new Rectangle(x+(((int)width - scaleWidth) / 2), y+(((int)height - scaleHeight) / 2), scaleWidth, scaleHeight), tint);
+ break;
+ ;
+ }
+ _spritebatch.End();
+ BeginDraw();
+ }
+
+ ///
+ /// Measure a string. Note that this method is a stub and just calls . This stub will be removed soon.
+ ///
+ /// The text to measure
+ /// The font to measure with
+ /// The maximum width text can be before it is wrapped
+ /// The wrap mode of the text
+ /// The size of the text in pixels
+ public static Vector2 MeasureString(string text, SpriteFont font, int wrapWidth = int.MaxValue, WrapMode wrapMode = WrapMode.Words)
+ {
+ return TextRenderer.MeasureText(text, font, wrapWidth, wrapMode);
+ }
+
+ ///
+ /// Draw a string of text.
+ ///
+ /// The text to render
+ /// The X coordinate of the text
+ /// The Y coordinate of the text
+ /// The color of the text
+ /// The font of the text
+ /// The alignment of the text
+ /// The maximum width text can be before it is wrapped.
+ /// The wrap mode of the text
+ public void DrawString(string text, int x, int y, Color color, SpriteFont font, TextAlignment alignment, int wrapWidth = int.MaxValue, WrapMode wrapMode = WrapMode.Words)
+ {
+ x += X;
+ y += Y;
+ if (color.A == 0)
+ return; //no sense rendering if you CAN'T SEE IT
+ if (string.IsNullOrEmpty(text))
+ return;
+ TextRenderer.DrawText(this, x, y, text, font, color, wrapWidth, alignment, wrapMode);
+ }
+
+ private float GetRotation(float x, float y, float x2, float y2)
+ {
+ float adj = x - x2;
+ float opp = y - y2;
+ return (float) Math.Atan2(opp, adj) - (float) Math.PI;
+ }
+ }
+
+ public enum ImageLayout
+ {
+ Tile,
+ Stretch,
+ None,
+ Zoom,
+ Center
+ }
+}
diff --git a/WatercolorGames.Pong/Properties/AndroidManifest.xml b/WatercolorGames.Pong/Properties/AndroidManifest.xml
new file mode 100644
index 0000000..887cf6b
--- /dev/null
+++ b/WatercolorGames.Pong/Properties/AndroidManifest.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/Properties/AssemblyInfo.cs b/WatercolorGames.Pong/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..1efb0ab
--- /dev/null
+++ b/WatercolorGames.Pong/Properties/AssemblyInfo.cs
@@ -0,0 +1,41 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using Android.App;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("WatercolorGames.Pong")]
+[assembly: AssemblyProduct("WatercolorGames.Pong")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyCopyright("Copyright © 2018")]
+[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("35d5f325-e46a-410b-ab70-1b9accd0b118")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
+
+// Add some common permissions, these can be removed if not needed
+[assembly: UsesPermission(Android.Manifest.Permission.Internet)]
+[assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)]
diff --git a/WatercolorGames.Pong/Resources/AboutResources.txt b/WatercolorGames.Pong/Resources/AboutResources.txt
new file mode 100644
index 0000000..b0fc999
--- /dev/null
+++ b/WatercolorGames.Pong/Resources/AboutResources.txt
@@ -0,0 +1,44 @@
+Images, layout descriptions, binary blobs and string dictionaries can be included
+in your application as resource files. Various Android APIs are designed to
+operate on the resource IDs instead of dealing with images, strings or binary blobs
+directly.
+
+For example, a sample Android app that contains a user interface layout (Main.xml),
+an internationalization string table (Strings.xml) and some icons (drawable/Icon.png)
+would keep its resources in the "Resources" directory of the application:
+
+Resources/
+ Drawable/
+ Icon.png
+
+ Layout/
+ Main.axml
+
+ Values/
+ Strings.xml
+
+In order to get the build system to recognize Android resources, the build action should be set
+to "AndroidResource". The native Android APIs do not operate directly with filenames, but
+instead operate on resource IDs. When you compile an Android application that uses resources,
+the build system will package the resources for distribution and generate a class called
+"Resource" that contains the tokens for each one of the resources included. For example,
+for the above Resources layout, this is what the Resource class would expose:
+
+public class Resource {
+ public class Drawable {
+ public const int Icon = 0x123;
+ }
+
+ public class Layout {
+ public const int Main = 0x456;
+ }
+
+ public class String {
+ public const int FirstString = 0xabc;
+ public const int SecondString = 0xbcd;
+ }
+}
+
+You would then use Resource.Drawable.Icon to reference the Drawable/Icon.png file, or
+Resource.Layout.Main to reference the Layout/Main.axml file, or Resource.String.FirstString
+to reference the first string in the dictionary file Values/Strings.xml.
\ No newline at end of file
diff --git a/WatercolorGames.Pong/Resources/Drawable/Icon.png b/WatercolorGames.Pong/Resources/Drawable/Icon.png
new file mode 100644
index 0000000..f6f4f41
Binary files /dev/null and b/WatercolorGames.Pong/Resources/Drawable/Icon.png differ
diff --git a/WatercolorGames.Pong/Resources/Drawable/Splash.png b/WatercolorGames.Pong/Resources/Drawable/Splash.png
new file mode 100644
index 0000000..2f86107
Binary files /dev/null and b/WatercolorGames.Pong/Resources/Drawable/Splash.png differ
diff --git a/WatercolorGames.Pong/Resources/Resource.Designer.cs b/WatercolorGames.Pong/Resources/Resource.Designer.cs
new file mode 100644
index 0000000..2072910
--- /dev/null
+++ b/WatercolorGames.Pong/Resources/Resource.Designer.cs
@@ -0,0 +1,102 @@
+#pragma warning disable 1591
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+[assembly: global::Android.Runtime.ResourceDesignerAttribute("WatercolorGames.Pong.Resource", IsApplication=true)]
+
+namespace WatercolorGames.Pong
+{
+
+
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
+ public partial class Resource
+ {
+
+ static Resource()
+ {
+ global::Android.Runtime.ResourceIdManager.UpdateIdValues();
+ }
+
+ public static void UpdateIdValues()
+ {
+ }
+
+ public partial class Attribute
+ {
+
+ static Attribute()
+ {
+ global::Android.Runtime.ResourceIdManager.UpdateIdValues();
+ }
+
+ private Attribute()
+ {
+ }
+ }
+
+ public partial class Drawable
+ {
+
+ // aapt resource value: 0x7f020000
+ public const int Icon = 2130837504;
+
+ // aapt resource value: 0x7f020001
+ public const int Splash = 2130837505;
+
+ static Drawable()
+ {
+ global::Android.Runtime.ResourceIdManager.UpdateIdValues();
+ }
+
+ private Drawable()
+ {
+ }
+ }
+
+ public partial class String
+ {
+
+ // aapt resource value: 0x7f030001
+ public const int ApplicationName = 2130903041;
+
+ // aapt resource value: 0x7f030000
+ public const int Hello = 2130903040;
+
+ // aapt resource value: 0x7f030002
+ public const int WelcomeToPong = 2130903042;
+
+ static String()
+ {
+ global::Android.Runtime.ResourceIdManager.UpdateIdValues();
+ }
+
+ private String()
+ {
+ }
+ }
+
+ public partial class Style
+ {
+
+ // aapt resource value: 0x7f040000
+ public const int Theme_Splash = 2130968576;
+
+ static Style()
+ {
+ global::Android.Runtime.ResourceIdManager.UpdateIdValues();
+ }
+
+ private Style()
+ {
+ }
+ }
+ }
+}
+#pragma warning restore 1591
diff --git a/WatercolorGames.Pong/Resources/Values/Strings.xml b/WatercolorGames.Pong/Resources/Values/Strings.xml
new file mode 100644
index 0000000..8a21300
--- /dev/null
+++ b/WatercolorGames.Pong/Resources/Values/Strings.xml
@@ -0,0 +1,6 @@
+
+
+ Hello World, Click Me!
+ ShiftOS Pong
+ Welcome to ShiftOS Pong.\n\nShiftOS was a game made by Philip Adams where the goal was to upgrade an experimental operating system using "Codepoints" to one usable as a daily driver.\n\nOne of the upgrades you could buy with Codepoints was a special version of the classic arcade game "Pong". This is that game.\n\nThe goal is simple - earn as many Codepoints as you can by beating the computer or surviving the level. Each level lasts one minute, and the higher the level, the more Codepoints you can earn - but the harder the game will get. Losing the ball will end your run!\n\nTap your screen to start playing.
+
diff --git a/WatercolorGames.Pong/Resources/Values/Styles.xml b/WatercolorGames.Pong/Resources/Values/Styles.xml
new file mode 100644
index 0000000..5102134
--- /dev/null
+++ b/WatercolorGames.Pong/Resources/Values/Styles.xml
@@ -0,0 +1,7 @@
+
+
+
+
diff --git a/WatercolorGames.Pong/WatercolorGames.Pong.csproj b/WatercolorGames.Pong/WatercolorGames.Pong.csproj
new file mode 100644
index 0000000..ea302a9
--- /dev/null
+++ b/WatercolorGames.Pong/WatercolorGames.Pong.csproj
@@ -0,0 +1,108 @@
+
+
+
+
+ Debug
+ AnyCPU
+ 8.0.30703
+ 2.0
+ {235981A1-6BC1-428D-8882-7A0373D3FED4}
+ {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Library
+ Properties
+ WatercolorGames.Pong
+ WatercolorGames.Pong
+ 512
+ true
+ Resources\Resource.Designer.cs
+ Off
+ armeabi-v7a%3bx86
+ .m4a
+
+ v6.0
+ Android
+ Properties\AndroidManifest.xml
+ false
+
+
+ true
+ full
+ false
+ bin\$(MonoGamePlatform)\$(Platform)\$(Configuration)\
+ DEBUG;TRACE;ANDROID
+ prompt
+ 4
+ true
+ Full
+ false
+ false
+ false
+ false
+ false
+ armeabi;armeabi-v7a;x86;x86_64
+
+
+ pdbonly
+ true
+ bin\$(MonoGamePlatform)\$(Platform)\$(Configuration)\
+ TRACE;ANDROID
+ prompt
+ 4
+ False
+ SdkOnly
+
+
+
+
+
+
+
+
+
+
+ $(MonoGameInstallDirectory)\MonoGame\v3.0\Assemblies\Android\MonoGame.Framework.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/WatercolorGames.Pong.csproj.bak b/WatercolorGames.Pong/WatercolorGames.Pong.csproj.bak
new file mode 100644
index 0000000..8024a5b
--- /dev/null
+++ b/WatercolorGames.Pong/WatercolorGames.Pong.csproj.bak
@@ -0,0 +1,97 @@
+
+
+
+
+ Debug
+ AnyCPU
+ 8.0.30703
+ 2.0
+ {235981A1-6BC1-428D-8882-7A0373D3FED4}
+ {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Library
+ Properties
+ WatercolorGames.Pong
+ WatercolorGames.Pong
+ 512
+ true
+ Resources\Resource.Designer.cs
+ Off
+ armeabi-v7a%3bx86
+ .m4a
+
+ v4.4
+ Android
+ Properties\AndroidManifest.xml
+ True
+
+
+ true
+ full
+ false
+ bin\$(MonoGamePlatform)\$(Platform)\$(Configuration)\
+ DEBUG;TRACE;ANDROID
+ prompt
+ 4
+ True
+ None
+
+
+ pdbonly
+ true
+ bin\$(MonoGamePlatform)\$(Platform)\$(Configuration)\
+ TRACE;ANDROID
+ prompt
+ 4
+ False
+ SdkOnly
+
+
+
+
+
+
+
+
+
+
+ $(MonoGameInstallDirectory)\MonoGame\v3.0\Assemblies\Android\MonoGame.Framework.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/WatercolorGames.Pong.csproj.user b/WatercolorGames.Pong/WatercolorGames.Pong.csproj.user
new file mode 100644
index 0000000..f2a0af8
--- /dev/null
+++ b/WatercolorGames.Pong/WatercolorGames.Pong.csproj.user
@@ -0,0 +1,8 @@
+
+
+
+ LGE LG-H831
+ Android_Accelerated_x86_Nougat
+ ShowAllFiles
+
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/Mono.Android.pdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/Mono.Android.pdb
new file mode 100644
index 0000000..a77c3c2
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/Mono.Android.pdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/Mono.Security.pdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/Mono.Security.pdb
new file mode 100644
index 0000000..dfc9716
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/Mono.Security.pdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/MonoGame.Framework.dll b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/MonoGame.Framework.dll
new file mode 100644
index 0000000..c99c020
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/MonoGame.Framework.dll differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/MonoGame.Framework.xml b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/MonoGame.Framework.xml
new file mode 100644
index 0000000..77307f7
--- /dev/null
+++ b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/MonoGame.Framework.xml
@@ -0,0 +1,16862 @@
+
+
+
+ MonoGame.Framework
+
+
+
+
+ Create a bounding box from the given list of points.
+
+ The list of Vector3 instances defining the point cloud to bound
+ A bounding box that encapsulates the given point cloud.
+ Thrown if the given list has no points.
+
+
+
+ Defines a viewing frustum for intersection operations.
+
+
+
+
+ The number of planes in the frustum.
+
+
+
+
+ The number of corner points in the frustum.
+
+
+
+
+ Constructs the frustum by extracting the view planes from a matrix.
+
+ Combined matrix which usually is (View * Projection).
+
+
+
+ Compares whether two instances are equal.
+
+ instance on the left of the equal sign.
+ instance on the right of the equal sign.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether two instances are not equal.
+
+ instance on the left of the not equal sign.
+ instance on the right of the not equal sign.
+ true if the instances are not equal; false otherwise.
+
+
+
+ Containment test between this and specified .
+
+ A for testing.
+ Result of testing for containment between this and specified .
+
+
+
+ Containment test between this and specified .
+
+ A for testing.
+ Result of testing for containment between this and specified as an output parameter.
+
+
+
+ Containment test between this and specified .
+
+ A for testing.
+ Result of testing for containment between this and specified .
+
+
+
+ Containment test between this and specified .
+
+ A for testing.
+ Result of testing for containment between this and specified .
+
+
+
+ Containment test between this and specified .
+
+ A for testing.
+ Result of testing for containment between this and specified as an output parameter.
+
+
+
+ Containment test between this and specified .
+
+ A for testing.
+ Result of testing for containment between this and specified .
+
+
+
+ Containment test between this and specified .
+
+ A for testing.
+ Result of testing for containment between this and specified as an output parameter.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Returns a copy of internal corners array.
+
+ The array of corners.
+
+
+
+ Returns a copy of internal corners array.
+
+ The array which values will be replaced to corner values of this instance. It must have size of .
+
+
+
+ Gets the hash code of this .
+
+ Hash code of this .
+
+
+
+ Gets whether or not a specified intersects with this .
+
+ A for intersection test.
+ true if specified intersects with this ; false otherwise.
+
+
+
+ Gets whether or not a specified intersects with this .
+
+ A for intersection test.
+ true if specified intersects with this ; false otherwise as an output parameter.
+
+
+
+ Gets whether or not a specified intersects with this .
+
+ An other for intersection test.
+ true if other intersects with this ; false otherwise.
+
+
+
+ Gets whether or not a specified intersects with this .
+
+ A for intersection test.
+ true if specified intersects with this ; false otherwise.
+
+
+
+ Gets whether or not a specified intersects with this .
+
+ A for intersection test.
+ true if specified intersects with this ; false otherwise as an output parameter.
+
+
+
+ Gets type of intersection between specified and this .
+
+ A for intersection test.
+ A plane intersection type.
+
+
+
+ Gets type of intersection between specified and this .
+
+ A for intersection test.
+ A plane intersection type as an output parameter.
+
+
+
+ Gets the distance of intersection of and this or null if no intersection happens.
+
+ A for intersection test.
+ Distance at which ray intersects with this or null if no intersection happens.
+
+
+
+ Gets the distance of intersection of and this or null if no intersection happens.
+
+ A for intersection test.
+ Distance at which ray intersects with this or null if no intersection happens as an output parameter.
+
+
+
+ Returns a representation of this in the format:
+ {Near:[nearPlane] Far:[farPlane] Left:[leftPlane] Right:[rightPlane] Top:[topPlane] Bottom:[bottomPlane]}
+
+ representation of this .
+
+
+
+ Gets or sets the of the frustum.
+
+
+
+
+ Gets the near plane of the frustum.
+
+
+
+
+ Gets the far plane of the frustum.
+
+
+
+
+ Gets the left plane of the frustum.
+
+
+
+
+ Gets the right plane of the frustum.
+
+
+
+
+ Gets the top plane of the frustum.
+
+
+
+
+ Gets the bottom plane of the frustum.
+
+
+
+
+ Describes a sphere in 3D-space for bounding operations.
+
+
+
+
+ The sphere center.
+
+
+
+
+ The sphere radius.
+
+
+
+
+ Constructs a bounding sphere with the specified center and radius.
+
+ The sphere center.
+ The sphere radius.
+
+
+
+ Test if a bounding box is fully inside, outside, or just intersecting the sphere.
+
+ The box for testing.
+ The containment type.
+
+
+
+ Test if a bounding box is fully inside, outside, or just intersecting the sphere.
+
+ The box for testing.
+ The containment type as an output parameter.
+
+
+
+ Test if a frustum is fully inside, outside, or just intersecting the sphere.
+
+ The frustum for testing.
+ The containment type.
+
+
+
+ Test if a frustum is fully inside, outside, or just intersecting the sphere.
+
+ The frustum for testing.
+ The containment type as an output parameter.
+
+
+
+ Test if a sphere is fully inside, outside, or just intersecting the sphere.
+
+ The other sphere for testing.
+ The containment type.
+
+
+
+ Test if a sphere is fully inside, outside, or just intersecting the sphere.
+
+ The other sphere for testing.
+ The containment type as an output parameter.
+
+
+
+ Test if a point is fully inside, outside, or just intersecting the sphere.
+
+ The vector in 3D-space for testing.
+ The containment type.
+
+
+
+ Test if a point is fully inside, outside, or just intersecting the sphere.
+
+ The vector in 3D-space for testing.
+ The containment type as an output parameter.
+
+
+
+ Creates the smallest that can contain a specified .
+
+ The box to create the sphere from.
+ The new .
+
+
+
+ Creates the smallest that can contain a specified .
+
+ The box to create the sphere from.
+ The new as an output parameter.
+
+
+
+ Creates the smallest that can contain a specified .
+
+ The frustum to create the sphere from.
+ The new .
+
+
+
+ Creates the smallest that can contain a specified list of points in 3D-space.
+
+ List of point to create the sphere from.
+ The new .
+
+
+
+ Creates the smallest that can contain two spheres.
+
+ First sphere.
+ Second sphere.
+ The new .
+
+
+
+ Creates the smallest that can contain two spheres.
+
+ First sphere.
+ Second sphere.
+ The new as an output parameter.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Gets the hash code of this .
+
+ Hash code of this .
+
+
+
+ Gets whether or not a specified intersects with this sphere.
+
+ The box for testing.
+ true if intersects with this sphere; false otherwise.
+
+
+
+ Gets whether or not a specified intersects with this sphere.
+
+ The box for testing.
+ true if intersects with this sphere; false otherwise. As an output parameter.
+
+
+
+ Gets whether or not the other intersects with this sphere.
+
+ The other sphere for testing.
+ true if other intersects with this sphere; false otherwise.
+
+
+
+ Gets whether or not the other intersects with this sphere.
+
+ The other sphere for testing.
+ true if other intersects with this sphere; false otherwise. As an output parameter.
+
+
+
+ Gets whether or not a specified intersects with this sphere.
+
+ The plane for testing.
+ Type of intersection.
+
+
+
+ Gets whether or not a specified intersects with this sphere.
+
+ The plane for testing.
+ Type of intersection as an output parameter.
+
+
+
+ Gets whether or not a specified intersects with this sphere.
+
+ The ray for testing.
+ Distance of ray intersection or null if there is no intersection.
+
+
+
+ Gets whether or not a specified intersects with this sphere.
+
+ The ray for testing.
+ Distance of ray intersection or null if there is no intersection as an output parameter.
+
+
+
+ Returns a representation of this in the format:
+ {Center:[] Radius:[]}
+
+ A representation of this .
+
+
+
+ Creates a new that contains a transformation of translation and scale from this sphere by the specified .
+
+ The transformation .
+ Transformed .
+
+
+
+ Creates a new that contains a transformation of translation and scale from this sphere by the specified .
+
+ The transformation .
+ Transformed as an output parameter.
+
+
+
+ Compares whether two instances are equal.
+
+ instance on the left of the equal sign.
+ instance on the right of the equal sign.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether two instances are not equal.
+
+ instance on the left of the not equal sign.
+ instance on the right of the not equal sign.
+ true if the instances are not equal; false otherwise.
+
+
+
+ Describes a 32-bit packed color.
+
+
+
+
+ Constructs an RGBA color from a packed value.
+ The value is a 32-bit unsigned integer, with R in the least significant octet.
+
+ The packed value.
+
+
+
+ Constructs an RGBA color from the XYZW unit length components of a vector.
+
+ A representing color.
+
+
+
+ Constructs an RGBA color from the XYZ unit length components of a vector. Alpha value will be opaque.
+
+ A representing color.
+
+
+
+ Constructs an RGBA color from a and an alpha value.
+
+ A for RGB values of new instance.
+ The alpha component value from 0 to 255.
+
+
+
+ Constructs an RGBA color from color and alpha value.
+
+ A for RGB values of new instance.
+ Alpha component value from 0.0f to 1.0f.
+
+
+
+ Constructs an RGBA color from scalars representing red, green and blue values. Alpha value will be opaque.
+
+ Red component value from 0.0f to 1.0f.
+ Green component value from 0.0f to 1.0f.
+ Blue component value from 0.0f to 1.0f.
+
+
+
+ Constructs an RGBA color from scalars representing red, green, blue and alpha values.
+
+ Red component value from 0.0f to 1.0f.
+ Green component value from 0.0f to 1.0f.
+ Blue component value from 0.0f to 1.0f.
+ Alpha component value from 0.0f to 1.0f.
+
+
+
+ Constructs an RGBA color from scalars representing red, green and blue values. Alpha value will be opaque.
+
+ Red component value from 0 to 255.
+ Green component value from 0 to 255.
+ Blue component value from 0 to 255.
+
+
+
+ Constructs an RGBA color from scalars representing red, green, blue and alpha values.
+
+ Red component value from 0 to 255.
+ Green component value from 0 to 255.
+ Blue component value from 0 to 255.
+ Alpha component value from 0 to 255.
+
+
+
+ Constructs an RGBA color from scalars representing red, green, blue and alpha values.
+
+
+ This overload sets the values directly without clamping, and may therefore be faster than the other overloads.
+
+
+
+
+
+
+
+
+ Compares whether two instances are equal.
+
+ instance on the left of the equal sign.
+ instance on the right of the equal sign.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether two instances are not equal.
+
+ instance on the left of the not equal sign.
+ instance on the right of the not equal sign.
+ true if the instances are not equal; false otherwise.
+
+
+
+ Gets the hash code of this .
+
+ Hash code of this .
+
+
+
+ Compares whether current instance is equal to specified object.
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Performs linear interpolation of .
+
+ Source .
+ Destination .
+ Interpolation factor.
+ Interpolated .
+
+
+
+ should be used instead of this function.
+
+ Interpolated .
+
+
+
+ Multiply by value.
+
+ Source .
+ Multiplicator.
+ Multiplication result.
+
+
+
+ Multiply by value.
+
+ Source .
+ Multiplicator.
+ Multiplication result.
+
+
+
+ Gets a representation for this object.
+
+ A representation for this object.
+
+
+
+ Gets a representation for this object.
+
+ A representation for this object.
+
+
+
+ Returns a representation of this in the format:
+ {R:[red] G:[green] B:[blue] A:[alpha]}
+
+ representation of this .
+
+
+
+ Translate a non-premultipled alpha to a that contains premultiplied alpha.
+
+ A representing color.
+ A which contains premultiplied alpha data.
+
+
+
+ Translate a non-premultipled alpha to a that contains premultiplied alpha.
+
+ Red component value.
+ Green component value.
+ Blue component value.
+ Alpha component value.
+ A which contains premultiplied alpha data.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Gets or sets the blue component.
+
+
+
+
+ Gets or sets the green component.
+
+
+
+
+ Gets or sets the red component.
+
+
+
+
+ Gets or sets the alpha component.
+
+
+
+
+ TransparentBlack color (R:0,G:0,B:0,A:0).
+
+
+
+
+ Transparent color (R:0,G:0,B:0,A:0).
+
+
+
+
+ AliceBlue color (R:240,G:248,B:255,A:255).
+
+
+
+
+ AntiqueWhite color (R:250,G:235,B:215,A:255).
+
+
+
+
+ Aqua color (R:0,G:255,B:255,A:255).
+
+
+
+
+ Aquamarine color (R:127,G:255,B:212,A:255).
+
+
+
+
+ Azure color (R:240,G:255,B:255,A:255).
+
+
+
+
+ Beige color (R:245,G:245,B:220,A:255).
+
+
+
+
+ Bisque color (R:255,G:228,B:196,A:255).
+
+
+
+
+ Black color (R:0,G:0,B:0,A:255).
+
+
+
+
+ BlanchedAlmond color (R:255,G:235,B:205,A:255).
+
+
+
+
+ Blue color (R:0,G:0,B:255,A:255).
+
+
+
+
+ BlueViolet color (R:138,G:43,B:226,A:255).
+
+
+
+
+ Brown color (R:165,G:42,B:42,A:255).
+
+
+
+
+ BurlyWood color (R:222,G:184,B:135,A:255).
+
+
+
+
+ CadetBlue color (R:95,G:158,B:160,A:255).
+
+
+
+
+ Chartreuse color (R:127,G:255,B:0,A:255).
+
+
+
+
+ Chocolate color (R:210,G:105,B:30,A:255).
+
+
+
+
+ Coral color (R:255,G:127,B:80,A:255).
+
+
+
+
+ CornflowerBlue color (R:100,G:149,B:237,A:255).
+
+
+
+
+ Cornsilk color (R:255,G:248,B:220,A:255).
+
+
+
+
+ Crimson color (R:220,G:20,B:60,A:255).
+
+
+
+
+ Cyan color (R:0,G:255,B:255,A:255).
+
+
+
+
+ DarkBlue color (R:0,G:0,B:139,A:255).
+
+
+
+
+ DarkCyan color (R:0,G:139,B:139,A:255).
+
+
+
+
+ DarkGoldenrod color (R:184,G:134,B:11,A:255).
+
+
+
+
+ DarkGray color (R:169,G:169,B:169,A:255).
+
+
+
+
+ DarkGreen color (R:0,G:100,B:0,A:255).
+
+
+
+
+ DarkKhaki color (R:189,G:183,B:107,A:255).
+
+
+
+
+ DarkMagenta color (R:139,G:0,B:139,A:255).
+
+
+
+
+ DarkOliveGreen color (R:85,G:107,B:47,A:255).
+
+
+
+
+ DarkOrange color (R:255,G:140,B:0,A:255).
+
+
+
+
+ DarkOrchid color (R:153,G:50,B:204,A:255).
+
+
+
+
+ DarkRed color (R:139,G:0,B:0,A:255).
+
+
+
+
+ DarkSalmon color (R:233,G:150,B:122,A:255).
+
+
+
+
+ DarkSeaGreen color (R:143,G:188,B:139,A:255).
+
+
+
+
+ DarkSlateBlue color (R:72,G:61,B:139,A:255).
+
+
+
+
+ DarkSlateGray color (R:47,G:79,B:79,A:255).
+
+
+
+
+ DarkTurquoise color (R:0,G:206,B:209,A:255).
+
+
+
+
+ DarkViolet color (R:148,G:0,B:211,A:255).
+
+
+
+
+ DeepPink color (R:255,G:20,B:147,A:255).
+
+
+
+
+ DeepSkyBlue color (R:0,G:191,B:255,A:255).
+
+
+
+
+ DimGray color (R:105,G:105,B:105,A:255).
+
+
+
+
+ DodgerBlue color (R:30,G:144,B:255,A:255).
+
+
+
+
+ Firebrick color (R:178,G:34,B:34,A:255).
+
+
+
+
+ FloralWhite color (R:255,G:250,B:240,A:255).
+
+
+
+
+ ForestGreen color (R:34,G:139,B:34,A:255).
+
+
+
+
+ Fuchsia color (R:255,G:0,B:255,A:255).
+
+
+
+
+ Gainsboro color (R:220,G:220,B:220,A:255).
+
+
+
+
+ GhostWhite color (R:248,G:248,B:255,A:255).
+
+
+
+
+ Gold color (R:255,G:215,B:0,A:255).
+
+
+
+
+ Goldenrod color (R:218,G:165,B:32,A:255).
+
+
+
+
+ Gray color (R:128,G:128,B:128,A:255).
+
+
+
+
+ Green color (R:0,G:128,B:0,A:255).
+
+
+
+
+ GreenYellow color (R:173,G:255,B:47,A:255).
+
+
+
+
+ Honeydew color (R:240,G:255,B:240,A:255).
+
+
+
+
+ HotPink color (R:255,G:105,B:180,A:255).
+
+
+
+
+ IndianRed color (R:205,G:92,B:92,A:255).
+
+
+
+
+ Indigo color (R:75,G:0,B:130,A:255).
+
+
+
+
+ Ivory color (R:255,G:255,B:240,A:255).
+
+
+
+
+ Khaki color (R:240,G:230,B:140,A:255).
+
+
+
+
+ Lavender color (R:230,G:230,B:250,A:255).
+
+
+
+
+ LavenderBlush color (R:255,G:240,B:245,A:255).
+
+
+
+
+ LawnGreen color (R:124,G:252,B:0,A:255).
+
+
+
+
+ LemonChiffon color (R:255,G:250,B:205,A:255).
+
+
+
+
+ LightBlue color (R:173,G:216,B:230,A:255).
+
+
+
+
+ LightCoral color (R:240,G:128,B:128,A:255).
+
+
+
+
+ LightCyan color (R:224,G:255,B:255,A:255).
+
+
+
+
+ LightGoldenrodYellow color (R:250,G:250,B:210,A:255).
+
+
+
+
+ LightGray color (R:211,G:211,B:211,A:255).
+
+
+
+
+ LightGreen color (R:144,G:238,B:144,A:255).
+
+
+
+
+ LightPink color (R:255,G:182,B:193,A:255).
+
+
+
+
+ LightSalmon color (R:255,G:160,B:122,A:255).
+
+
+
+
+ LightSeaGreen color (R:32,G:178,B:170,A:255).
+
+
+
+
+ LightSkyBlue color (R:135,G:206,B:250,A:255).
+
+
+
+
+ LightSlateGray color (R:119,G:136,B:153,A:255).
+
+
+
+
+ LightSteelBlue color (R:176,G:196,B:222,A:255).
+
+
+
+
+ LightYellow color (R:255,G:255,B:224,A:255).
+
+
+
+
+ Lime color (R:0,G:255,B:0,A:255).
+
+
+
+
+ LimeGreen color (R:50,G:205,B:50,A:255).
+
+
+
+
+ Linen color (R:250,G:240,B:230,A:255).
+
+
+
+
+ Magenta color (R:255,G:0,B:255,A:255).
+
+
+
+
+ Maroon color (R:128,G:0,B:0,A:255).
+
+
+
+
+ MediumAquamarine color (R:102,G:205,B:170,A:255).
+
+
+
+
+ MediumBlue color (R:0,G:0,B:205,A:255).
+
+
+
+
+ MediumOrchid color (R:186,G:85,B:211,A:255).
+
+
+
+
+ MediumPurple color (R:147,G:112,B:219,A:255).
+
+
+
+
+ MediumSeaGreen color (R:60,G:179,B:113,A:255).
+
+
+
+
+ MediumSlateBlue color (R:123,G:104,B:238,A:255).
+
+
+
+
+ MediumSpringGreen color (R:0,G:250,B:154,A:255).
+
+
+
+
+ MediumTurquoise color (R:72,G:209,B:204,A:255).
+
+
+
+
+ MediumVioletRed color (R:199,G:21,B:133,A:255).
+
+
+
+
+ MidnightBlue color (R:25,G:25,B:112,A:255).
+
+
+
+
+ MintCream color (R:245,G:255,B:250,A:255).
+
+
+
+
+ MistyRose color (R:255,G:228,B:225,A:255).
+
+
+
+
+ Moccasin color (R:255,G:228,B:181,A:255).
+
+
+
+
+ MonoGame orange theme color (R:231,G:60,B:0,A:255).
+
+
+
+
+ NavajoWhite color (R:255,G:222,B:173,A:255).
+
+
+
+
+ Navy color (R:0,G:0,B:128,A:255).
+
+
+
+
+ OldLace color (R:253,G:245,B:230,A:255).
+
+
+
+
+ Olive color (R:128,G:128,B:0,A:255).
+
+
+
+
+ OliveDrab color (R:107,G:142,B:35,A:255).
+
+
+
+
+ Orange color (R:255,G:165,B:0,A:255).
+
+
+
+
+ OrangeRed color (R:255,G:69,B:0,A:255).
+
+
+
+
+ Orchid color (R:218,G:112,B:214,A:255).
+
+
+
+
+ PaleGoldenrod color (R:238,G:232,B:170,A:255).
+
+
+
+
+ PaleGreen color (R:152,G:251,B:152,A:255).
+
+
+
+
+ PaleTurquoise color (R:175,G:238,B:238,A:255).
+
+
+
+
+ PaleVioletRed color (R:219,G:112,B:147,A:255).
+
+
+
+
+ PapayaWhip color (R:255,G:239,B:213,A:255).
+
+
+
+
+ PeachPuff color (R:255,G:218,B:185,A:255).
+
+
+
+
+ Peru color (R:205,G:133,B:63,A:255).
+
+
+
+
+ Pink color (R:255,G:192,B:203,A:255).
+
+
+
+
+ Plum color (R:221,G:160,B:221,A:255).
+
+
+
+
+ PowderBlue color (R:176,G:224,B:230,A:255).
+
+
+
+
+ Purple color (R:128,G:0,B:128,A:255).
+
+
+
+
+ Red color (R:255,G:0,B:0,A:255).
+
+
+
+
+ RosyBrown color (R:188,G:143,B:143,A:255).
+
+
+
+
+ RoyalBlue color (R:65,G:105,B:225,A:255).
+
+
+
+
+ SaddleBrown color (R:139,G:69,B:19,A:255).
+
+
+
+
+ Salmon color (R:250,G:128,B:114,A:255).
+
+
+
+
+ SandyBrown color (R:244,G:164,B:96,A:255).
+
+
+
+
+ SeaGreen color (R:46,G:139,B:87,A:255).
+
+
+
+
+ SeaShell color (R:255,G:245,B:238,A:255).
+
+
+
+
+ Sienna color (R:160,G:82,B:45,A:255).
+
+
+
+
+ Silver color (R:192,G:192,B:192,A:255).
+
+
+
+
+ SkyBlue color (R:135,G:206,B:235,A:255).
+
+
+
+
+ SlateBlue color (R:106,G:90,B:205,A:255).
+
+
+
+
+ SlateGray color (R:112,G:128,B:144,A:255).
+
+
+
+
+ Snow color (R:255,G:250,B:250,A:255).
+
+
+
+
+ SpringGreen color (R:0,G:255,B:127,A:255).
+
+
+
+
+ SteelBlue color (R:70,G:130,B:180,A:255).
+
+
+
+
+ Tan color (R:210,G:180,B:140,A:255).
+
+
+
+
+ Teal color (R:0,G:128,B:128,A:255).
+
+
+
+
+ Thistle color (R:216,G:191,B:216,A:255).
+
+
+
+
+ Tomato color (R:255,G:99,B:71,A:255).
+
+
+
+
+ Turquoise color (R:64,G:224,B:208,A:255).
+
+
+
+
+ Violet color (R:238,G:130,B:238,A:255).
+
+
+
+
+ Wheat color (R:245,G:222,B:179,A:255).
+
+
+
+
+ White color (R:255,G:255,B:255,A:255).
+
+
+
+
+ WhiteSmoke color (R:245,G:245,B:245,A:255).
+
+
+
+
+ Yellow color (R:255,G:255,B:0,A:255).
+
+
+
+
+ YellowGreen color (R:154,G:205,B:50,A:255).
+
+
+
+
+ Gets or sets packed value of this .
+
+
+
+
+ Defines how the bounding volumes intersects or contain one another.
+
+
+
+
+ Indicates that there is no overlap between two bounding volumes.
+
+
+
+
+ Indicates that one bounding volume completely contains another volume.
+
+
+
+
+ Indicates that bounding volumes partially overlap one another.
+
+
+
+
+ Defines the continuity of keys on a .
+
+
+
+
+ Interpolation can be used between this key and the next.
+
+
+
+
+ Interpolation cannot be used. A position between the two points returns this point.
+
+
+
+
+ Contains a collection of points in 2D space and provides methods for evaluating features of the curve they define.
+
+
+
+
+ Constructs a curve.
+
+
+
+
+ Creates a copy of this curve.
+
+ A copy of this curve.
+
+
+
+ Evaluate the value at a position of this .
+
+ The position on this .
+ Value at the position on this .
+
+
+
+ Computes tangents for all keys in the collection.
+
+ The tangent type for both in and out.
+
+
+
+ Computes tangents for all keys in the collection.
+
+ The tangent in-type. for more details.
+ The tangent out-type. for more details.
+
+
+
+ Computes tangent for the specific key in the collection.
+
+ The index of a key in the collection.
+ The tangent type for both in and out.
+
+
+
+ Computes tangent for the specific key in the collection.
+
+ The index of key in the collection.
+ The tangent in-type. for more details.
+ The tangent out-type. for more details.
+
+
+
+ Returns true if this curve is constant (has zero or one points); false otherwise.
+
+
+
+
+ Defines how to handle weighting values that are less than the first control point in the curve.
+
+
+
+
+ Defines how to handle weighting values that are greater than the last control point in the curve.
+
+
+
+
+ The collection of curve keys.
+
+
+
+
+ The collection of the elements and a part of the class.
+
+
+
+
+ Creates a new instance of class.
+
+
+
+
+ Adds a key to this collection.
+
+ New key for the collection.
+ Throws if is null.
+ The new key would be added respectively to a position of that key and the position of other keys.
+
+
+
+ Removes all keys from this collection.
+
+
+
+
+ Creates a copy of this collection.
+
+ A copy of this collection.
+
+
+
+ Determines whether this collection contains a specific key.
+
+ The key to locate in this collection.
+ true if the key is found; false otherwise.
+
+
+
+ Copies the keys of this collection to an array, starting at the array index provided.
+
+ Destination array where elements will be copied.
+ The zero-based index in the array to start copying from.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+ An enumerator for the .
+
+
+
+ Finds element in the collection and returns its index.
+
+ Element for the search.
+ Index of the element; or -1 if item is not found.
+
+
+
+ Removes element at the specified index.
+
+ The index which element will be removed.
+
+
+
+ Removes specific element.
+
+ The element
+ true if item is successfully removed; false otherwise. This method also returns false if item was not found.
+
+
+
+ Indexer.
+
+ The index of key in this collection.
+ at position.
+
+
+
+ Returns the count of keys in this collection.
+
+
+
+
+ Returns false because it is not a read-only collection.
+
+
+
+
+ Key point on the .
+
+
+
+
+ Creates a new instance of class with position: 0 and value: 0.
+
+
+
+
+ Creates a new instance of class.
+
+ Position on the curve.
+ Value of the control point.
+
+
+
+ Creates a new instance of class.
+
+ Position on the curve.
+ Value of the control point.
+ Tangent approaching point from the previous point on the curve.
+ Tangent leaving point toward next point on the curve.
+
+
+
+ Creates a new instance of class.
+
+ Position on the curve.
+ Value of the control point.
+ Tangent approaching point from the previous point on the curve.
+ Tangent leaving point toward next point on the curve.
+ Indicates whether the curve is discrete or continuous.
+
+
+
+
+ Compares whether two instances are not equal.
+
+ instance on the left of the not equal sign.
+ instance on the right of the not equal sign.
+ true if the instances are not equal; false otherwise.
+
+
+
+ Compares whether two instances are equal.
+
+ instance on the left of the equal sign.
+ instance on the right of the equal sign.
+ true if the instances are equal; false otherwise.
+
+
+
+ Creates a copy of this key.
+
+ A copy of this key.
+
+
+
+ Gets or sets the indicator whether the segment between this point and the next point on the curve is discrete or continuous.
+
+
+
+
+ Gets a position of the key on the curve.
+
+
+
+
+ Gets or sets a tangent when approaching this point from the previous point on the curve.
+
+
+
+
+ Gets or sets a tangent when leaving this point to the next point on the curve.
+
+
+
+
+ Gets a value of this point.
+
+
+
+
+ Defines how the value is determined for position before first point or after the end point on the .
+
+
+
+
+ The value of will be evaluated as first point for positions before the beginning and end point for positions after the end.
+
+
+
+
+ The positions will wrap around from the end to beginning of the for determined the value.
+
+
+
+
+ The positions will wrap around from the end to beginning of the .
+ The value will be offset by the difference between the values of first and end multiplied by the wrap amount.
+ If the position is before the beginning of the the difference will be subtracted from its value; otherwise the difference will be added.
+
+
+
+
+ The value at the end of the act as an offset from the same side of the toward the opposite side.
+
+
+
+
+ The linear interpolation will be performed for determined the value.
+
+
+
+
+ Defines the different tangent types to be calculated for points in a .
+
+
+
+
+ The tangent which always has a value equal to zero.
+
+
+
+
+ The tangent which contains a difference between current tangent value and the tangent value from the previous .
+
+
+
+
+ The smoouth tangent which contains the inflection between and by taking into account the values of both neighbors of the .
+
+
+
+
+ Defines the orientation of the display.
+
+
+
+
+ The default orientation.
+
+
+
+
+ The display is rotated counterclockwise into a landscape orientation. Width is greater than height.
+
+
+
+
+ The display is rotated clockwise into a landscape orientation. Width is greater than height.
+
+
+
+
+ The display is rotated as portrait, where height is greater than width.
+
+
+
+
+ The display is rotated as inverted portrait, where height is greater than width.
+
+
+
+
+ Unknown display orientation.
+
+
+
+
+ Shuts down the component.
+
+
+
+
+ Shuts down the component.
+
+
+
+
+ Helper class for processing internal framework events.
+
+
+ If you use class, is called automatically.
+ Otherwise you must call it as part of your game loop.
+
+
+
+
+ Processes framework events.
+
+
+
+
+ Removes every from this .
+ Triggers once for each removed.
+
+
+
+
+ Event that is triggered when a is added
+ to this .
+
+
+
+
+ Event that is triggered when a is removed
+ from this .
+
+
+
+
+ The maximum amount of time we will frameskip over and only perform Update calls with no Draw calls.
+ MonoGame extension.
+
+
+
+
+ The SortingFilteringCollection class provides efficient, reusable
+ sorting and filtering based on a configurable sort comparer, filter
+ predicate, and associate change events.
+
+
+
+
+ Raises the AsyncRunLoopEnded event. This method must be called by
+ derived classes when the asynchronous run loop they start has
+ stopped running.
+
+
+
+
+ Gives derived classes an opportunity to do work before any
+ components are initialized. Note that the base implementation sets
+ IsActive to true, so derived classes should either call the base
+ implementation or set IsActive to true by their own means.
+
+
+
+
+ Gives derived classes an opportunity to do work just before the
+ run loop is begun. Implementations may also return false to prevent
+ the run loop from starting.
+
+
+
+
+
+ When implemented in a derived, ends the active run loop.
+
+
+
+
+ When implemented in a derived, starts the run loop and blocks
+ until it has ended.
+
+
+
+
+ When implemented in a derived, starts the run loop and returns
+ immediately.
+
+
+
+
+ Gives derived classes an opportunity to do work just before Update
+ is called for all IUpdatable components. Returning false from this
+ method will result in this round of Update calls being skipped.
+
+
+
+
+
+
+ Gives derived classes an opportunity to do work just before Draw
+ is called for all IDrawable components. Returning false from this
+ method will result in this round of Draw calls being skipped.
+
+
+
+
+
+
+ When implemented in a derived class, causes the game to enter
+ full-screen mode.
+
+
+
+
+ When implemented in a derived class, causes the game to exit
+ full-screen mode.
+
+
+
+
+ Gives derived classes an opportunity to modify
+ Game.TargetElapsedTime before it is set.
+
+ The proposed new value of TargetElapsedTime.
+ The new value of TargetElapsedTime that will be set.
+
+
+
+ Starts a device transition (windowed to full screen or vice versa).
+
+
+ Specifies whether the device will be in full-screen mode upon completion of the change.
+
+
+
+
+ Completes a device transition.
+
+
+ Screen device name.
+
+
+ The new width of the game's client window.
+
+
+ The new height of the game's client window.
+
+
+
+
+ Gives derived classes an opportunity to take action after
+ Game.TargetElapsedTime has been set.
+
+
+
+
+ MSDN: Use this method if your game is recovering from a slow-running state, and ElapsedGameTime is too large to be useful.
+ Frame timing is generally handled by the Game class, but some platforms still handle it elsewhere. Once all platforms
+ rely on the Game class's functionality, this method and any overrides should be removed.
+
+
+
+
+ Used by the GraphicsDeviceManager to update the platform window
+ after the graphics device has changed the presentation.
+
+
+
+
+ Performs application-defined tasks associated with freeing,
+ releasing, or resetting unmanaged resources.
+
+
+
+
+ Log the specified Message.
+
+
+
+
+
+
+
+ When implemented in a derived class, reports the default
+ GameRunBehavior for this platform.
+
+
+
+
+ Gets the Game instance that owns this GamePlatform instance.
+
+
+
+
+ Defines how should be runned.
+
+
+
+
+ The game loop will be runned asynchronous.
+
+
+
+
+ The game loop will be runned synchronous.
+
+
+
+
+ Gets or sets a bool that enables usage of Alt+F4 for window closing on desktop platforms. Value is true by default.
+
+
+
+
+ Gets or sets the title of the game window.
+
+
+ For Windows 8 and Windows 10 UWP this has no effect. For these platforms the title should be
+ set by using the DisplayName property found in the app manifest file.
+
+
+
+
+ Determines whether the border of the window is visible. Currently only supported on the WinDX and WinGL/Linux platforms.
+
+
+ Thrown when trying to use this property on a platform other than the WinDX and WinGL/Linux platforms.
+
+
+
+
+ Used by the platform code to control the graphics device.
+
+
+
+
+ Called at the start of rendering a frame.
+
+ Returns true if the frame should be rendered.
+
+
+
+ Called to create the graphics device.
+
+ Does nothing if the graphics device is already created.
+
+
+
+ Called after rendering to present the frame to the screen.
+
+
+
+
+ Contains commonly used precalculated values and mathematical operations.
+
+
+
+
+ Represents the mathematical constant e(2.71828175).
+
+
+
+
+ Represents the log base ten of e(0.4342945).
+
+
+
+
+ Represents the log base two of e(1.442695).
+
+
+
+
+ Represents the value of pi(3.14159274).
+
+
+
+
+ Represents the value of pi divided by two(1.57079637).
+
+
+
+
+ Represents the value of pi divided by four(0.7853982).
+
+
+
+
+ Represents the value of pi times two(6.28318548).
+
+
+
+
+ Returns the Cartesian coordinate for one axis of a point that is defined by a given triangle and two normalized barycentric (areal) coordinates.
+
+ The coordinate on one axis of vertex 1 of the defining triangle.
+ The coordinate on the same axis of vertex 2 of the defining triangle.
+ The coordinate on the same axis of vertex 3 of the defining triangle.
+ The normalized barycentric (areal) coordinate b2, equal to the weighting factor for vertex 2, the coordinate of which is specified in value2.
+ The normalized barycentric (areal) coordinate b3, equal to the weighting factor for vertex 3, the coordinate of which is specified in value3.
+ Cartesian coordinate of the specified point with respect to the axis being used.
+
+
+
+ Performs a Catmull-Rom interpolation using the specified positions.
+
+ The first position in the interpolation.
+ The second position in the interpolation.
+ The third position in the interpolation.
+ The fourth position in the interpolation.
+ Weighting factor.
+ A position that is the result of the Catmull-Rom interpolation.
+
+
+
+ Restricts a value to be within a specified range.
+
+ The value to clamp.
+ The minimum value. If value is less than min, min will be returned.
+ The maximum value. If value is greater than max, max will be returned.
+ The clamped value.
+
+
+
+ Restricts a value to be within a specified range.
+
+ The value to clamp.
+ The minimum value. If value is less than min, min will be returned.
+ The maximum value. If value is greater than max, max will be returned.
+ The clamped value.
+
+
+
+ Calculates the absolute value of the difference of two values.
+
+ Source value.
+ Source value.
+ Distance between the two values.
+
+
+
+ Performs a Hermite spline interpolation.
+
+ Source position.
+ Source tangent.
+ Source position.
+ Source tangent.
+ Weighting factor.
+ The result of the Hermite spline interpolation.
+
+
+
+ Linearly interpolates between two values.
+
+ Source value.
+ Destination value.
+ Value between 0 and 1 indicating the weight of value2.
+ Interpolated value.
+ This method performs the linear interpolation based on the following formula:
+ value1 + (value2 - value1) * amount
.
+ Passing amount a value of 0 will cause value1 to be returned, a value of 1 will cause value2 to be returned.
+ See for a less efficient version with more precision around edge cases.
+
+
+
+
+ Linearly interpolates between two values.
+ This method is a less efficient, more precise version of .
+ See remarks for more info.
+
+ Source value.
+ Destination value.
+ Value between 0 and 1 indicating the weight of value2.
+ Interpolated value.
+ This method performs the linear interpolation based on the following formula:
+ ((1 - amount) * value1) + (value2 * amount)
.
+ Passing amount a value of 0 will cause value1 to be returned, a value of 1 will cause value2 to be returned.
+ This method does not have the floating point precision issue that has.
+ i.e. If there is a big gap between value1 and value2 in magnitude (e.g. value1=10000000000000000, value2=1),
+ right at the edge of the interpolation range (amount=1), will return 0 (whereas it should return 1).
+ This also holds for value1=10^17, value2=10; value1=10^18,value2=10^2... so on.
+ For an in depth explanation of the issue, see below references:
+ Relevant Wikipedia Article: https://en.wikipedia.org/wiki/Linear_interpolation#Programming_language_support
+ Relevant StackOverflow Answer: http://stackoverflow.com/questions/4353525/floating-point-linear-interpolation#answer-23716956
+
+
+
+
+ Returns the greater of two values.
+
+ Source value.
+ Source value.
+ The greater value.
+
+
+
+ Returns the greater of two values.
+
+ Source value.
+ Source value.
+ The greater value.
+
+
+
+ Returns the lesser of two values.
+
+ Source value.
+ Source value.
+ The lesser value.
+
+
+
+ Returns the lesser of two values.
+
+ Source value.
+ Source value.
+ The lesser value.
+
+
+
+ Interpolates between two values using a cubic equation.
+
+ Source value.
+ Source value.
+ Weighting value.
+ Interpolated value.
+
+
+
+ Converts radians to degrees.
+
+ The angle in radians.
+ The angle in degrees.
+
+ This method uses double precission internally,
+ though it returns single float
+ Factor = 180 / pi
+
+
+
+
+ Converts degrees to radians.
+
+ The angle in degrees.
+ The angle in radians.
+
+ This method uses double precission internally,
+ though it returns single float
+ Factor = pi / 180
+
+
+
+
+ Reduces a given angle to a value between π and -π.
+
+ The angle to reduce, in radians.
+ The new angle, in radians.
+
+
+
+ Determines if value is powered by two.
+
+ A value.
+ true if value is powered by two; otherwise false.
+
+
+
+ Represents the right-handed 4x4 floating point matrix, which can store translation, scale and rotation information.
+
+
+
+
+ Constructs a matrix.
+
+ A first row and first column value.
+ A first row and second column value.
+ A first row and third column value.
+ A first row and fourth column value.
+ A second row and first column value.
+ A second row and second column value.
+ A second row and third column value.
+ A second row and fourth column value.
+ A third row and first column value.
+ A third row and second column value.
+ A third row and third column value.
+ A third row and fourth column value.
+ A fourth row and first column value.
+ A fourth row and second column value.
+ A fourth row and third column value.
+ A fourth row and fourth column value.
+
+
+
+ Constructs a matrix.
+
+ A first row of the created matrix.
+ A second row of the created matrix.
+ A third row of the created matrix.
+ A fourth row of the created matrix.
+
+
+
+ A first row and first column value.
+
+
+
+
+ A first row and second column value.
+
+
+
+
+ A first row and third column value.
+
+
+
+
+ A first row and fourth column value.
+
+
+
+
+ A second row and first column value.
+
+
+
+
+ A second row and second column value.
+
+
+
+
+ A second row and third column value.
+
+
+
+
+ A second row and fourth column value.
+
+
+
+
+ A third row and first column value.
+
+
+
+
+ A third row and second column value.
+
+
+
+
+ A third row and third column value.
+
+
+
+
+ A third row and fourth column value.
+
+
+
+
+ A fourth row and first column value.
+
+
+
+
+ A fourth row and second column value.
+
+
+
+
+ A fourth row and third column value.
+
+
+
+
+ A fourth row and fourth column value.
+
+
+
+
+ Creates a new which contains sum of two matrixes.
+
+ The first matrix to add.
+ The second matrix to add.
+ The result of the matrix addition.
+
+
+
+ Creates a new which contains sum of two matrixes.
+
+ The first matrix to add.
+ The second matrix to add.
+ The result of the matrix addition as an output parameter.
+
+
+
+ Creates a new for spherical billboarding that rotates around specified object position.
+
+ Position of billboard object. It will rotate around that vector.
+ The camera position.
+ The camera up vector.
+ Optional camera forward vector.
+ The for spherical billboarding.
+
+
+
+ Creates a new for spherical billboarding that rotates around specified object position.
+
+ Position of billboard object. It will rotate around that vector.
+ The camera position.
+ The camera up vector.
+ Optional camera forward vector.
+ The for spherical billboarding as an output parameter.
+
+
+
+ Creates a new for cylindrical billboarding that rotates around specified axis.
+
+ Object position the billboard will rotate around.
+ Camera position.
+ Axis of billboard for rotation.
+ Optional camera forward vector.
+ Optional object forward vector.
+ The for cylindrical billboarding.
+
+
+
+ Creates a new for cylindrical billboarding that rotates around specified axis.
+
+ Object position the billboard will rotate around.
+ Camera position.
+ Axis of billboard for rotation.
+ Optional camera forward vector.
+ Optional object forward vector.
+ The for cylindrical billboarding as an output parameter.
+
+
+
+ Creates a new which contains the rotation moment around specified axis.
+
+ The axis of rotation.
+ The angle of rotation in radians.
+ The rotation .
+
+
+
+ Creates a new which contains the rotation moment around specified axis.
+
+ The axis of rotation.
+ The angle of rotation in radians.
+ The rotation as an output parameter.
+
+
+
+ Creates a new rotation from a .
+
+ of rotation moment.
+ The rotation .
+
+
+
+ Creates a new rotation from a .
+
+ of rotation moment.
+ The rotation as an output parameter.
+
+
+
+ Creates a new rotation from the specified yaw, pitch and roll values.
+
+ The yaw rotation value in radians.
+ The pitch rotation value in radians.
+ The roll rotation value in radians.
+ The rotation .
+ For more information about yaw, pitch and roll visit http://en.wikipedia.org/wiki/Euler_angles.
+
+
+
+
+ Creates a new rotation from the specified yaw, pitch and roll values.
+
+ The yaw rotation value in radians.
+ The pitch rotation value in radians.
+ The roll rotation value in radians.
+ The rotation as an output parameter.
+ For more information about yaw, pitch and roll visit http://en.wikipedia.org/wiki/Euler_angles.
+
+
+
+
+ Creates a new viewing .
+
+ Position of the camera.
+ Lookup vector of the camera.
+ The direction of the upper edge of the camera.
+ The viewing .
+
+
+
+ Creates a new viewing .
+
+ Position of the camera.
+ Lookup vector of the camera.
+ The direction of the upper edge of the camera.
+ The viewing as an output parameter.
+
+
+
+ Creates a new projection for orthographic view.
+
+ Width of the viewing volume.
+ Height of the viewing volume.
+ Depth of the near plane.
+ Depth of the far plane.
+ The new projection for orthographic view.
+
+
+
+ Creates a new projection for orthographic view.
+
+ Width of the viewing volume.
+ Height of the viewing volume.
+ Depth of the near plane.
+ Depth of the far plane.
+ The new projection for orthographic view as an output parameter.
+
+
+
+ Creates a new projection for customized orthographic view.
+
+ Lower x-value at the near plane.
+ Upper x-value at the near plane.
+ Lower y-coordinate at the near plane.
+ Upper y-value at the near plane.
+ Depth of the near plane.
+ Depth of the far plane.
+ The new projection for customized orthographic view.
+
+
+
+ Creates a new projection for customized orthographic view.
+
+ The viewing volume.
+ Depth of the near plane.
+ Depth of the far plane.
+ The new projection for customized orthographic view.
+
+
+
+ Creates a new projection for customized orthographic view.
+
+ Lower x-value at the near plane.
+ Upper x-value at the near plane.
+ Lower y-coordinate at the near plane.
+ Upper y-value at the near plane.
+ Depth of the near plane.
+ Depth of the far plane.
+ The new projection for customized orthographic view as an output parameter.
+
+
+
+ Creates a new projection for perspective view.
+
+ Width of the viewing volume.
+ Height of the viewing volume.
+ Distance to the near plane.
+ Distance to the far plane.
+ The new projection for perspective view.
+
+
+
+ Creates a new projection for perspective view.
+
+ Width of the viewing volume.
+ Height of the viewing volume.
+ Distance to the near plane.
+ Distance to the far plane.
+ The new projection for perspective view as an output parameter.
+
+
+
+ Creates a new projection for perspective view with field of view.
+
+ Field of view in the y direction in radians.
+ Width divided by height of the viewing volume.
+ Distance to the near plane.
+ Distance to the far plane.
+ The new projection for perspective view with FOV.
+
+
+
+ Creates a new projection for perspective view with field of view.
+
+ Field of view in the y direction in radians.
+ Width divided by height of the viewing volume.
+ Distance of the near plane.
+ Distance of the far plane.
+ The new projection for perspective view with FOV as an output parameter.
+
+
+
+ Creates a new projection for customized perspective view.
+
+ Lower x-value at the near plane.
+ Upper x-value at the near plane.
+ Lower y-coordinate at the near plane.
+ Upper y-value at the near plane.
+ Distance to the near plane.
+ Distance to the far plane.
+ The new for customized perspective view.
+
+
+
+ Creates a new projection for customized perspective view.
+
+ The viewing volume.
+ Distance to the near plane.
+ Distance to the far plane.
+ The new for customized perspective view.
+
+
+
+ Creates a new projection for customized perspective view.
+
+ Lower x-value at the near plane.
+ Upper x-value at the near plane.
+ Lower y-coordinate at the near plane.
+ Upper y-value at the near plane.
+ Distance to the near plane.
+ Distance to the far plane.
+ The new for customized perspective view as an output parameter.
+
+
+
+ Creates a new rotation around X axis.
+
+ Angle in radians.
+ The rotation around X axis.
+
+
+
+ Creates a new rotation around X axis.
+
+ Angle in radians.
+ The rotation around X axis as an output parameter.
+
+
+
+ Creates a new rotation around Y axis.
+
+ Angle in radians.
+ The rotation around Y axis.
+
+
+
+ Creates a new rotation around Y axis.
+
+ Angle in radians.
+ The rotation around Y axis as an output parameter.
+
+
+
+ Creates a new rotation around Z axis.
+
+ Angle in radians.
+ The rotation around Z axis.
+
+
+
+ Creates a new rotation around Z axis.
+
+ Angle in radians.
+ The rotation around Z axis as an output parameter.
+
+
+
+ Creates a new scaling .
+
+ Scale value for all three axises.
+ The scaling .
+
+
+
+ Creates a new scaling .
+
+ Scale value for all three axises.
+ The scaling as an output parameter.
+
+
+
+ Creates a new scaling .
+
+ Scale value for X axis.
+ Scale value for Y axis.
+ Scale value for Z axis.
+ The scaling .
+
+
+
+ Creates a new scaling .
+
+ Scale value for X axis.
+ Scale value for Y axis.
+ Scale value for Z axis.
+ The scaling as an output parameter.
+
+
+
+ Creates a new scaling .
+
+ representing x,y and z scale values.
+ The scaling .
+
+
+
+ Creates a new scaling .
+
+ representing x,y and z scale values.
+ The scaling as an output parameter.
+
+
+
+ Creates a new that flattens geometry into a specified as if casting a shadow from a specified light source.
+
+ A vector specifying the direction from which the light that will cast the shadow is coming.
+ The plane onto which the new matrix should flatten geometry so as to cast a shadow.
+ A that can be used to flatten geometry onto the specified plane from the specified direction.
+
+
+
+ Creates a new that flattens geometry into a specified as if casting a shadow from a specified light source.
+
+ A vector specifying the direction from which the light that will cast the shadow is coming.
+ The plane onto which the new matrix should flatten geometry so as to cast a shadow.
+ A that can be used to flatten geometry onto the specified plane from the specified direction as an output parameter.
+
+
+
+ Creates a new translation .
+
+ X coordinate of translation.
+ Y coordinate of translation.
+ Z coordinate of translation.
+ The translation .
+
+
+
+ Creates a new translation .
+
+ X,Y and Z coordinates of translation.
+ The translation as an output parameter.
+
+
+
+ Creates a new translation .
+
+ X,Y and Z coordinates of translation.
+ The translation .
+
+
+
+ Creates a new translation .
+
+ X coordinate of translation.
+ Y coordinate of translation.
+ Z coordinate of translation.
+ The translation as an output parameter.
+
+
+
+ Creates a new reflection .
+
+ The plane that used for reflection calculation.
+ The reflection .
+
+
+
+ Creates a new reflection .
+
+ The plane that used for reflection calculation.
+ The reflection as an output parameter.
+
+
+
+ Creates a new world .
+
+ The position vector.
+ The forward direction vector.
+ The upward direction vector. Usually .
+ The world .
+
+
+
+ Creates a new world .
+
+ The position vector.
+ The forward direction vector.
+ The upward direction vector. Usually .
+ The world as an output parameter.
+
+
+
+ Decomposes this matrix to translation, rotation and scale elements. Returns true if matrix can be decomposed; false otherwise.
+
+ Scale vector as an output parameter.
+ Rotation quaternion as an output parameter.
+ Translation vector as an output parameter.
+ true if matrix can be decomposed; false otherwise.
+
+
+
+ Returns a determinant of this .
+
+ Determinant of this
+ See more about determinant here - http://en.wikipedia.org/wiki/Determinant.
+
+
+
+
+ Divides the elements of a by the elements of another matrix.
+
+ Source .
+ Divisor .
+ The result of dividing the matrix.
+
+
+
+ Divides the elements of a by the elements of another matrix.
+
+ Source .
+ Divisor .
+ The result of dividing the matrix as an output parameter.
+
+
+
+ Divides the elements of a by a scalar.
+
+ Source .
+ Divisor scalar.
+ The result of dividing a matrix by a scalar.
+
+
+
+ Divides the elements of a by a scalar.
+
+ Source .
+ Divisor scalar.
+ The result of dividing a matrix by a scalar as an output parameter.
+
+
+
+ Compares whether current instance is equal to specified without any tolerance.
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether current instance is equal to specified without any tolerance.
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Gets the hash code of this .
+
+ Hash code of this .
+
+
+
+ Creates a new which contains inversion of the specified matrix.
+
+ Source .
+ The inverted matrix.
+
+
+
+ Creates a new which contains inversion of the specified matrix.
+
+ Source .
+ The inverted matrix as output parameter.
+
+
+
+ Creates a new that contains linear interpolation of the values in specified matrixes.
+
+ The first .
+ The second .
+ Weighting value(between 0.0 and 1.0).
+ >The result of linear interpolation of the specified matrixes.
+
+
+
+ Creates a new that contains linear interpolation of the values in specified matrixes.
+
+ The first .
+ The second .
+ Weighting value(between 0.0 and 1.0).
+ The result of linear interpolation of the specified matrixes as an output parameter.
+
+
+
+ Creates a new that contains a multiplication of two matrix.
+
+ Source .
+ Source .
+ Result of the matrix multiplication.
+
+
+
+ Creates a new that contains a multiplication of two matrix.
+
+ Source .
+ Source .
+ Result of the matrix multiplication as an output parameter.
+
+
+
+ Creates a new that contains a multiplication of and a scalar.
+
+ Source .
+ Scalar value.
+ Result of the matrix multiplication with a scalar.
+
+
+
+ Creates a new that contains a multiplication of and a scalar.
+
+ Source .
+ Scalar value.
+ Result of the matrix multiplication with a scalar as an output parameter.
+
+
+
+ Copy the values of specified to the float array.
+
+ The source .
+ The array which matrix values will be stored.
+
+ Required for OpenGL 2.0 projection matrix stuff.
+
+
+
+
+ Returns a matrix with the all values negated.
+
+ Source .
+ Result of the matrix negation.
+
+
+
+ Returns a matrix with the all values negated.
+
+ Source .
+ Result of the matrix negation as an output parameter.
+
+
+
+ Adds two matrixes.
+
+ Source on the left of the add sign.
+ Source on the right of the add sign.
+ Sum of the matrixes.
+
+
+
+ Divides the elements of a by the elements of another .
+
+ Source on the left of the div sign.
+ Divisor on the right of the div sign.
+ The result of dividing the matrixes.
+
+
+
+ Divides the elements of a by a scalar.
+
+ Source on the left of the div sign.
+ Divisor scalar on the right of the div sign.
+ The result of dividing a matrix by a scalar.
+
+
+
+ Compares whether two instances are equal without any tolerance.
+
+ Source on the left of the equal sign.
+ Source on the right of the equal sign.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether two instances are not equal without any tolerance.
+
+ Source on the left of the not equal sign.
+ Source on the right of the not equal sign.
+ true if the instances are not equal; false otherwise.
+
+
+
+ Multiplies two matrixes.
+
+ Source on the left of the mul sign.
+ Source on the right of the mul sign.
+ Result of the matrix multiplication.
+
+ Using matrix multiplication algorithm - see http://en.wikipedia.org/wiki/Matrix_multiplication.
+
+
+
+
+ Multiplies the elements of matrix by a scalar.
+
+ Source on the left of the mul sign.
+ Scalar value on the right of the mul sign.
+ Result of the matrix multiplication with a scalar.
+
+
+
+ Subtracts the values of one from another .
+
+ Source on the left of the sub sign.
+ Source on the right of the sub sign.
+ Result of the matrix subtraction.
+
+
+
+ Inverts values in the specified .
+
+ Source on the right of the sub sign.
+ Result of the inversion.
+
+
+
+ Creates a new that contains subtraction of one matrix from another.
+
+ The first .
+ The second .
+ The result of the matrix subtraction.
+
+
+
+ Creates a new that contains subtraction of one matrix from another.
+
+ The first .
+ The second .
+ The result of the matrix subtraction as an output parameter.
+
+
+
+ Returns a representation of this in the format:
+ {M11:[] M12:[] M13:[] M14:[]}
+ {M21:[] M12:[] M13:[] M14:[]}
+ {M31:[] M32:[] M33:[] M34:[]}
+ {M41:[] M42:[] M43:[] M44:[]}
+
+ A representation of this .
+
+
+
+ Swap the matrix rows and columns.
+
+ The matrix for transposing operation.
+ The new which contains the transposing result.
+
+
+
+ Swap the matrix rows and columns.
+
+ The matrix for transposing operation.
+ The new which contains the transposing result as an output parameter.
+
+
+
+ Helper method for using the Laplace expansion theorem using two rows expansions to calculate major and
+ minor determinants of a 4x4 matrix. This method is used for inverting a matrix.
+
+
+
+
+ The backward vector formed from the third row M31, M32, M33 elements.
+
+
+
+
+ The down vector formed from the second row -M21, -M22, -M23 elements.
+
+
+
+
+ The forward vector formed from the third row -M31, -M32, -M33 elements.
+
+
+
+
+ Returns the identity matrix.
+
+
+
+
+ The left vector formed from the first row -M11, -M12, -M13 elements.
+
+
+
+
+ The right vector formed from the first row M11, M12, M13 elements.
+
+
+
+
+ Rotation stored in this matrix.
+
+
+
+
+ Position stored in this matrix.
+
+
+
+
+ Scale stored in this matrix.
+
+
+
+
+ The upper vector formed from the second row M21, M22, M23 elements.
+
+
+
+
+ Provides functionality to handle input from keyboards, mice, gamepads, etc.
+
+
+
+
+ Support for playing sound effects and XACT audio.
+
+
+
+
+ The runtime support for loading content pipeline content.
+
+
+
+
+ Returns a value indicating what side (positive/negative) of a plane a point is
+
+ The point to check with
+ The plane to check against
+ Greater than zero if on the positive side, less than zero if on the negative size, 0 otherwise
+
+
+
+ Returns the perpendicular distance from a point to a plane
+
+ The point to check
+ The place to check
+ The perpendicular distance from the point to the plane
+
+
+
+ Transforms a normalized plane by a matrix.
+
+ The normalized plane to transform.
+ The transformation matrix.
+ The transformed plane.
+
+
+
+ Transforms a normalized plane by a matrix.
+
+ The normalized plane to transform.
+ The transformation matrix.
+ The transformed plane.
+
+
+
+ Transforms a normalized plane by a quaternion rotation.
+
+ The normalized plane to transform.
+ The quaternion rotation.
+ The transformed plane.
+
+
+
+ Transforms a normalized plane by a quaternion rotation.
+
+ The normalized plane to transform.
+ The quaternion rotation.
+ The transformed plane.
+
+
+
+ Defines the intersection between a and a bounding volume.
+
+
+
+
+ There is no intersection, the bounding volume is in the negative half space of the plane.
+
+
+
+
+ There is no intersection, the bounding volume is in the positive half space of the plane.
+
+
+
+
+ The plane is intersected.
+
+
+
+
+ Defines the index of player for various MonoGame components.
+
+
+
+
+ The first player index.
+
+
+
+
+ The second player index.
+
+
+
+
+ The third player index.
+
+
+
+
+ The fourth player index.
+
+
+
+
+ Describes a 2D-point.
+
+
+
+
+ The x coordinate of this .
+
+
+
+
+ The y coordinate of this .
+
+
+
+
+ Constructs a point with X and Y from two values.
+
+ The x coordinate in 2d-space.
+ The y coordinate in 2d-space.
+
+
+
+ Constructs a point with X and Y set to the same value.
+
+ The x and y coordinates in 2d-space.
+
+
+
+ Adds two points.
+
+ Source on the left of the add sign.
+ Source on the right of the add sign.
+ Sum of the points.
+
+
+
+ Subtracts a from a .
+
+ Source on the left of the sub sign.
+ Source on the right of the sub sign.
+ Result of the subtraction.
+
+
+
+ Multiplies the components of two points by each other.
+
+ Source on the left of the mul sign.
+ Source on the right of the mul sign.
+ Result of the multiplication.
+
+
+
+ Divides the components of a by the components of another .
+
+ Source on the left of the div sign.
+ Divisor on the right of the div sign.
+ The result of dividing the points.
+
+
+
+ Compares whether two instances are equal.
+
+ instance on the left of the equal sign.
+ instance on the right of the equal sign.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether two instances are not equal.
+
+ instance on the left of the not equal sign.
+ instance on the right of the not equal sign.
+ true if the instances are not equal; false otherwise.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Gets the hash code of this .
+
+ Hash code of this .
+
+
+
+ Returns a representation of this in the format:
+ {X:[] Y:[]}
+
+ representation of this .
+
+
+
+ Gets a representation for this object.
+
+ A representation for this object.
+
+
+
+ Returns a with coordinates 0, 0.
+
+
+
+
+ The arguments to the event.
+
+
+
+
+ Create a new instance of the event.
+
+ The default settings to be used in device creation.
+
+
+
+ The default settings that will be used in device creation.
+
+
+
+
+ Interface used to add an object to be loaded on the primary thread
+
+
+
+
+ Static class that is called before every draw to load resources that need to finish loading on the primary thread
+
+
+
+
+ Loops through list and loads the item. If successful, it is removed from the list.
+
+
+
+
+ An efficient mathematical representation for three dimensional rotations.
+
+
+
+
+ The x coordinate of this .
+
+
+
+
+ The y coordinate of this .
+
+
+
+
+ The z coordinate of this .
+
+
+
+
+ The rotation component of this .
+
+
+
+
+ Constructs a quaternion with X, Y, Z and W from four values.
+
+ The x coordinate in 3d-space.
+ The y coordinate in 3d-space.
+ The z coordinate in 3d-space.
+ The rotation component.
+
+
+
+ Constructs a quaternion with X, Y, Z from and rotation component from a scalar.
+
+ The x, y, z coordinates in 3d-space.
+ The rotation component.
+
+
+
+ Constructs a quaternion from .
+
+ The x, y, z coordinates in 3d-space and the rotation component.
+
+
+
+ Creates a new that contains the sum of two quaternions.
+
+ Source .
+ Source .
+ The result of the quaternion addition.
+
+
+
+ Creates a new that contains the sum of two quaternions.
+
+ Source .
+ Source .
+ The result of the quaternion addition as an output parameter.
+
+
+
+ Creates a new that contains concatenation between two quaternion.
+
+ The first to concatenate.
+ The second to concatenate.
+ The result of rotation of followed by rotation.
+
+
+
+ Creates a new that contains concatenation between two quaternion.
+
+ The first to concatenate.
+ The second to concatenate.
+ The result of rotation of followed by rotation as an output parameter.
+
+
+
+ Transforms this quaternion into its conjugated version.
+
+
+
+
+ Creates a new that contains conjugated version of the specified quaternion.
+
+ The quaternion which values will be used to create the conjugated version.
+ The conjugate version of the specified quaternion.
+
+
+
+ Creates a new that contains conjugated version of the specified quaternion.
+
+ The quaternion which values will be used to create the conjugated version.
+ The conjugated version of the specified quaternion as an output parameter.
+
+
+
+ Creates a new from the specified axis and angle.
+
+ The axis of rotation.
+ The angle in radians.
+ The new quaternion builded from axis and angle.
+
+
+
+ Creates a new from the specified axis and angle.
+
+ The axis of rotation.
+ The angle in radians.
+ The new quaternion builded from axis and angle as an output parameter.
+
+
+
+ Creates a new from the specified .
+
+ The rotation matrix.
+ A quaternion composed from the rotation part of the matrix.
+
+
+
+ Creates a new from the specified .
+
+ The rotation matrix.
+ A quaternion composed from the rotation part of the matrix as an output parameter.
+
+
+
+ Creates a new from the specified yaw, pitch and roll angles.
+
+ Yaw around the y axis in radians.
+ Pitch around the x axis in radians.
+ Roll around the z axis in radians.
+ A new quaternion from the concatenated yaw, pitch, and roll angles.
+
+
+
+ Creates a new from the specified yaw, pitch and roll angles.
+
+ Yaw around the y axis in radians.
+ Pitch around the x axis in radians.
+ Roll around the z axis in radians.
+ A new quaternion from the concatenated yaw, pitch, and roll angles as an output parameter.
+
+
+
+ Divides a by the other .
+
+ Source .
+ Divisor .
+ The result of dividing the quaternions.
+
+
+
+ Divides a by the other .
+
+ Source .
+ Divisor .
+ The result of dividing the quaternions as an output parameter.
+
+
+
+ Returns a dot product of two quaternions.
+
+ The first quaternion.
+ The second quaternion.
+ The dot product of two quaternions.
+
+
+
+ Returns a dot product of two quaternions.
+
+ The first quaternion.
+ The second quaternion.
+ The dot product of two quaternions as an output parameter.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Gets the hash code of this .
+
+ Hash code of this .
+
+
+
+ Returns the inverse quaternion which represents the opposite rotation.
+
+ Source .
+ The inverse quaternion.
+
+
+
+ Returns the inverse quaternion which represents the opposite rotation.
+
+ Source .
+ The inverse quaternion as an output parameter.
+
+
+
+ Returns the magnitude of the quaternion components.
+
+ The magnitude of the quaternion components.
+
+
+
+ Returns the squared magnitude of the quaternion components.
+
+ The squared magnitude of the quaternion components.
+
+
+
+ Performs a linear blend between two quaternions.
+
+ Source .
+ Source .
+ The blend amount where 0 returns and 1 .
+ The result of linear blending between two quaternions.
+
+
+
+ Performs a linear blend between two quaternions.
+
+ Source .
+ Source .
+ The blend amount where 0 returns and 1 .
+ The result of linear blending between two quaternions as an output parameter.
+
+
+
+ Performs a spherical linear blend between two quaternions.
+
+ Source .
+ Source .
+ The blend amount where 0 returns and 1 .
+ The result of spherical linear blending between two quaternions.
+
+
+
+ Performs a spherical linear blend between two quaternions.
+
+ Source .
+ Source .
+ The blend amount where 0 returns and 1 .
+ The result of spherical linear blending between two quaternions as an output parameter.
+
+
+
+ Creates a new that contains subtraction of one from another.
+
+ Source .
+ Source .
+ The result of the quaternion subtraction.
+
+
+
+ Creates a new that contains subtraction of one from another.
+
+ Source .
+ Source .
+ The result of the quaternion subtraction as an output parameter.
+
+
+
+ Creates a new that contains a multiplication of two quaternions.
+
+ Source .
+ Source .
+ The result of the quaternion multiplication.
+
+
+
+ Creates a new that contains a multiplication of and a scalar.
+
+ Source .
+ Scalar value.
+ The result of the quaternion multiplication with a scalar.
+
+
+
+ Creates a new that contains a multiplication of and a scalar.
+
+ Source .
+ Scalar value.
+ The result of the quaternion multiplication with a scalar as an output parameter.
+
+
+
+ Creates a new that contains a multiplication of two quaternions.
+
+ Source .
+ Source .
+ The result of the quaternion multiplication as an output parameter.
+
+
+
+ Flips the sign of the all the quaternion components.
+
+ Source .
+ The result of the quaternion negation.
+
+
+
+ Flips the sign of the all the quaternion components.
+
+ Source .
+ The result of the quaternion negation as an output parameter.
+
+
+
+ Scales the quaternion magnitude to unit length.
+
+
+
+
+ Scales the quaternion magnitude to unit length.
+
+ Source .
+ The unit length quaternion.
+
+
+
+ Scales the quaternion magnitude to unit length.
+
+ Source .
+ The unit length quaternion an output parameter.
+
+
+
+ Returns a representation of this in the format:
+ {X:[] Y:[] Z:[] W:[]}
+
+ A representation of this .
+
+
+
+ Gets a representation for this object.
+
+ A representation for this object.
+
+
+
+ Adds two quaternions.
+
+ Source on the left of the add sign.
+ Source on the right of the add sign.
+ Sum of the vectors.
+
+
+
+ Divides a by the other .
+
+ Source on the left of the div sign.
+ Divisor on the right of the div sign.
+ The result of dividing the quaternions.
+
+
+
+ Compares whether two instances are equal.
+
+ instance on the left of the equal sign.
+ instance on the right of the equal sign.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether two instances are not equal.
+
+ instance on the left of the not equal sign.
+ instance on the right of the not equal sign.
+ true if the instances are not equal; false otherwise.
+
+
+
+ Multiplies two quaternions.
+
+ Source on the left of the mul sign.
+ Source on the right of the mul sign.
+ Result of the quaternions multiplication.
+
+
+
+ Multiplies the components of quaternion by a scalar.
+
+ Source on the left of the mul sign.
+ Scalar value on the right of the mul sign.
+ Result of the quaternion multiplication with a scalar.
+
+
+
+ Subtracts a from a .
+
+ Source on the left of the sub sign.
+ Source on the right of the sub sign.
+ Result of the quaternion subtraction.
+
+
+
+ Flips the sign of the all the quaternion components.
+
+ Source on the right of the sub sign.
+ The result of the quaternion negation.
+
+
+
+ Returns a quaternion representing no rotation.
+
+
+
+
+ Describes a 2D-rectangle.
+
+
+
+
+ The x coordinate of the top-left corner of this .
+
+
+
+
+ The y coordinate of the top-left corner of this .
+
+
+
+
+ The width of this .
+
+
+
+
+ The height of this .
+
+
+
+
+ Creates a new instance of struct, with the specified
+ position, width, and height.
+
+ The x coordinate of the top-left corner of the created .
+ The y coordinate of the top-left corner of the created .
+ The width of the created .
+ The height of the created .
+
+
+
+ Creates a new instance of struct, with the specified
+ location and size.
+
+ The x and y coordinates of the top-left corner of the created .
+ The width and height of the created .
+
+
+
+ Compares whether two instances are equal.
+
+ instance on the left of the equal sign.
+ instance on the right of the equal sign.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether two instances are not equal.
+
+ instance on the left of the not equal sign.
+ instance on the right of the not equal sign.
+ true if the instances are not equal; false otherwise.
+
+
+
+ Gets whether or not the provided coordinates lie within the bounds of this .
+
+ The x coordinate of the point to check for containment.
+ The y coordinate of the point to check for containment.
+ true if the provided coordinates lie inside this ; false otherwise.
+
+
+
+ Gets whether or not the provided coordinates lie within the bounds of this .
+
+ The x coordinate of the point to check for containment.
+ The y coordinate of the point to check for containment.
+ true if the provided coordinates lie inside this ; false otherwise.
+
+
+
+ Gets whether or not the provided lies within the bounds of this .
+
+ The coordinates to check for inclusion in this .
+ true if the provided lies inside this ; false otherwise.
+
+
+
+ Gets whether or not the provided lies within the bounds of this .
+
+ The coordinates to check for inclusion in this .
+ true if the provided lies inside this ; false otherwise. As an output parameter.
+
+
+
+ Gets whether or not the provided lies within the bounds of this .
+
+ The coordinates to check for inclusion in this .
+ true if the provided lies inside this ; false otherwise.
+
+
+
+ Gets whether or not the provided lies within the bounds of this .
+
+ The coordinates to check for inclusion in this .
+ true if the provided lies inside this ; false otherwise. As an output parameter.
+
+
+
+ Gets whether or not the provided lies within the bounds of this .
+
+ The to check for inclusion in this .
+ true if the provided 's bounds lie entirely inside this ; false otherwise.
+
+
+
+ Gets whether or not the provided lies within the bounds of this .
+
+ The to check for inclusion in this .
+ true if the provided 's bounds lie entirely inside this ; false otherwise. As an output parameter.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Gets the hash code of this .
+
+ Hash code of this .
+
+
+
+ Adjusts the edges of this by specified horizontal and vertical amounts.
+
+ Value to adjust the left and right edges.
+ Value to adjust the top and bottom edges.
+
+
+
+ Adjusts the edges of this by specified horizontal and vertical amounts.
+
+ Value to adjust the left and right edges.
+ Value to adjust the top and bottom edges.
+
+
+
+ Gets whether or not the other intersects with this rectangle.
+
+ The other rectangle for testing.
+ true if other intersects with this rectangle; false otherwise.
+
+
+
+ Gets whether or not the other intersects with this rectangle.
+
+ The other rectangle for testing.
+ true if other intersects with this rectangle; false otherwise. As an output parameter.
+
+
+
+ Creates a new that contains overlapping region of two other rectangles.
+
+ The first .
+ The second .
+ Overlapping region of the two rectangles.
+
+
+
+ Creates a new that contains overlapping region of two other rectangles.
+
+ The first .
+ The second .
+ Overlapping region of the two rectangles as an output parameter.
+
+
+
+ Changes the of this .
+
+ The x coordinate to add to this .
+ The y coordinate to add to this .
+
+
+
+ Changes the of this .
+
+ The x coordinate to add to this .
+ The y coordinate to add to this .
+
+
+
+ Changes the of this .
+
+ The x and y components to add to this .
+
+
+
+ Changes the of this .
+
+ The x and y components to add to this .
+
+
+
+ Returns a representation of this in the format:
+ {X:[] Y:[] Width:[] Height:[]}
+
+ representation of this .
+
+
+
+ Creates a new that completely contains two other rectangles.
+
+ The first .
+ The second .
+ The union of the two rectangles.
+
+
+
+ Creates a new that completely contains two other rectangles.
+
+ The first .
+ The second .
+ The union of the two rectangles as an output parameter.
+
+
+
+ Returns a with X=0, Y=0, Width=0, Height=0.
+
+
+
+
+ Returns the x coordinate of the left edge of this .
+
+
+
+
+ Returns the x coordinate of the right edge of this .
+
+
+
+
+ Returns the y coordinate of the top edge of this .
+
+
+
+
+ Returns the y coordinate of the bottom edge of this .
+
+
+
+
+ Whether or not this has a and
+ of 0, and a of (0, 0).
+
+
+
+
+ The top-left coordinates of this .
+
+
+
+
+ The width-height coordinates of this .
+
+
+
+
+ A located in the center of this .
+
+
+ If or is an odd number,
+ the center point will be rounded down.
+
+
+
+
+ Checks if the code is currently running on the UI thread.
+
+ true if the code is currently running on the UI thread.
+
+
+
+ Throws an exception if the code is not currently running on the UI thread.
+
+ Thrown if the code is not currently running on the UI thread.
+
+
+
+ Runs the given action on the UI thread and blocks the current thread while the action is running.
+ If the current thread is the UI thread, the action will run immediately.
+
+ The action to be run on the UI thread
+
+
+
+ Runs all pending actions. Must be called from the UI thread.
+
+
+
+
+ Returns an open stream to an exsiting file in the title storage area.
+
+ The filepath relative to the title storage area.
+ A open stream or null if the file is not found.
+
+
+
+ Describes a 2D-vector.
+
+
+
+
+ The x coordinate of this .
+
+
+
+
+ The y coordinate of this .
+
+
+
+
+ Constructs a 2d vector with X and Y from two values.
+
+ The x coordinate in 2d-space.
+ The y coordinate in 2d-space.
+
+
+
+ Constructs a 2d vector with X and Y set to the same value.
+
+ The x and y coordinates in 2d-space.
+
+
+
+ Inverts values in the specified .
+
+ Source on the right of the sub sign.
+ Result of the inversion.
+
+
+
+ Adds two vectors.
+
+ Source on the left of the add sign.
+ Source on the right of the add sign.
+ Sum of the vectors.
+
+
+
+ Subtracts a from a .
+
+ Source on the left of the sub sign.
+ Source on the right of the sub sign.
+ Result of the vector subtraction.
+
+
+
+ Multiplies the components of two vectors by each other.
+
+ Source on the left of the mul sign.
+ Source on the right of the mul sign.
+ Result of the vector multiplication.
+
+
+
+ Multiplies the components of vector by a scalar.
+
+ Source on the left of the mul sign.
+ Scalar value on the right of the mul sign.
+ Result of the vector multiplication with a scalar.
+
+
+
+ Multiplies the components of vector by a scalar.
+
+ Scalar value on the left of the mul sign.
+ Source on the right of the mul sign.
+ Result of the vector multiplication with a scalar.
+
+
+
+ Divides the components of a by the components of another .
+
+ Source on the left of the div sign.
+ Divisor on the right of the div sign.
+ The result of dividing the vectors.
+
+
+
+ Divides the components of a by a scalar.
+
+ Source on the left of the div sign.
+ Divisor scalar on the right of the div sign.
+ The result of dividing a vector by a scalar.
+
+
+
+ Compares whether two instances are equal.
+
+ instance on the left of the equal sign.
+ instance on the right of the equal sign.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether two instances are not equal.
+
+ instance on the left of the not equal sign.
+ instance on the right of the not equal sign.
+ true if the instances are not equal; false otherwise.
+
+
+
+ Performs vector addition on and .
+
+ The first vector to add.
+ The second vector to add.
+ The result of the vector addition.
+
+
+
+ Performs vector addition on and
+ , storing the result of the
+ addition in .
+
+ The first vector to add.
+ The second vector to add.
+ The result of the vector addition.
+
+
+
+ Creates a new that contains the cartesian coordinates of a vector specified in barycentric coordinates and relative to 2d-triangle.
+
+ The first vector of 2d-triangle.
+ The second vector of 2d-triangle.
+ The third vector of 2d-triangle.
+ Barycentric scalar b2 which represents a weighting factor towards second vector of 2d-triangle.
+ Barycentric scalar b3 which represents a weighting factor towards third vector of 2d-triangle.
+ The cartesian translation of barycentric coordinates.
+
+
+
+ Creates a new that contains the cartesian coordinates of a vector specified in barycentric coordinates and relative to 2d-triangle.
+
+ The first vector of 2d-triangle.
+ The second vector of 2d-triangle.
+ The third vector of 2d-triangle.
+ Barycentric scalar b2 which represents a weighting factor towards second vector of 2d-triangle.
+ Barycentric scalar b3 which represents a weighting factor towards third vector of 2d-triangle.
+ The cartesian translation of barycentric coordinates as an output parameter.
+
+
+
+ Creates a new that contains CatmullRom interpolation of the specified vectors.
+
+ The first vector in interpolation.
+ The second vector in interpolation.
+ The third vector in interpolation.
+ The fourth vector in interpolation.
+ Weighting factor.
+ The result of CatmullRom interpolation.
+
+
+
+ Creates a new that contains CatmullRom interpolation of the specified vectors.
+
+ The first vector in interpolation.
+ The second vector in interpolation.
+ The third vector in interpolation.
+ The fourth vector in interpolation.
+ Weighting factor.
+ The result of CatmullRom interpolation as an output parameter.
+
+
+
+ Clamps the specified value within a range.
+
+ The value to clamp.
+ The min value.
+ The max value.
+ The clamped value.
+
+
+
+ Clamps the specified value within a range.
+
+ The value to clamp.
+ The min value.
+ The max value.
+ The clamped value as an output parameter.
+
+
+
+ Returns the distance between two vectors.
+
+ The first vector.
+ The second vector.
+ The distance between two vectors.
+
+
+
+ Returns the distance between two vectors.
+
+ The first vector.
+ The second vector.
+ The distance between two vectors as an output parameter.
+
+
+
+ Returns the squared distance between two vectors.
+
+ The first vector.
+ The second vector.
+ The squared distance between two vectors.
+
+
+
+ Returns the squared distance between two vectors.
+
+ The first vector.
+ The second vector.
+ The squared distance between two vectors as an output parameter.
+
+
+
+ Divides the components of a by the components of another .
+
+ Source .
+ Divisor .
+ The result of dividing the vectors.
+
+
+
+ Divides the components of a by the components of another .
+
+ Source .
+ Divisor .
+ The result of dividing the vectors as an output parameter.
+
+
+
+ Divides the components of a by a scalar.
+
+ Source .
+ Divisor scalar.
+ The result of dividing a vector by a scalar.
+
+
+
+ Divides the components of a by a scalar.
+
+ Source .
+ Divisor scalar.
+ The result of dividing a vector by a scalar as an output parameter.
+
+
+
+ Returns a dot product of two vectors.
+
+ The first vector.
+ The second vector.
+ The dot product of two vectors.
+
+
+
+ Returns a dot product of two vectors.
+
+ The first vector.
+ The second vector.
+ The dot product of two vectors as an output parameter.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Gets the hash code of this .
+
+ Hash code of this .
+
+
+
+ Creates a new that contains hermite spline interpolation.
+
+ The first position vector.
+ The first tangent vector.
+ The second position vector.
+ The second tangent vector.
+ Weighting factor.
+ The hermite spline interpolation vector.
+
+
+
+ Creates a new that contains hermite spline interpolation.
+
+ The first position vector.
+ The first tangent vector.
+ The second position vector.
+ The second tangent vector.
+ Weighting factor.
+ The hermite spline interpolation vector as an output parameter.
+
+
+
+ Returns the length of this .
+
+ The length of this .
+
+
+
+ Returns the squared length of this .
+
+ The squared length of this .
+
+
+
+ Creates a new that contains linear interpolation of the specified vectors.
+
+ The first vector.
+ The second vector.
+ Weighting value(between 0.0 and 1.0).
+ The result of linear interpolation of the specified vectors.
+
+
+
+ Creates a new that contains linear interpolation of the specified vectors.
+
+ The first vector.
+ The second vector.
+ Weighting value(between 0.0 and 1.0).
+ The result of linear interpolation of the specified vectors as an output parameter.
+
+
+
+ Creates a new that contains linear interpolation of the specified vectors.
+ Uses on MathHelper for the interpolation.
+ Less efficient but more precise compared to .
+ See remarks section of on MathHelper for more info.
+
+ The first vector.
+ The second vector.
+ Weighting value(between 0.0 and 1.0).
+ The result of linear interpolation of the specified vectors.
+
+
+
+ Creates a new that contains linear interpolation of the specified vectors.
+ Uses on MathHelper for the interpolation.
+ Less efficient but more precise compared to .
+ See remarks section of on MathHelper for more info.
+
+ The first vector.
+ The second vector.
+ Weighting value(between 0.0 and 1.0).
+ The result of linear interpolation of the specified vectors as an output parameter.
+
+
+
+ Creates a new that contains a maximal values from the two vectors.
+
+ The first vector.
+ The second vector.
+ The with maximal values from the two vectors.
+
+
+
+ Creates a new that contains a maximal values from the two vectors.
+
+ The first vector.
+ The second vector.
+ The with maximal values from the two vectors as an output parameter.
+
+
+
+ Creates a new that contains a minimal values from the two vectors.
+
+ The first vector.
+ The second vector.
+ The with minimal values from the two vectors.
+
+
+
+ Creates a new that contains a minimal values from the two vectors.
+
+ The first vector.
+ The second vector.
+ The with minimal values from the two vectors as an output parameter.
+
+
+
+ Creates a new that contains a multiplication of two vectors.
+
+ Source .
+ Source .
+ The result of the vector multiplication.
+
+
+
+ Creates a new that contains a multiplication of two vectors.
+
+ Source .
+ Source .
+ The result of the vector multiplication as an output parameter.
+
+
+
+ Creates a new that contains a multiplication of and a scalar.
+
+ Source .
+ Scalar value.
+ The result of the vector multiplication with a scalar.
+
+
+
+ Creates a new that contains a multiplication of and a scalar.
+
+ Source .
+ Scalar value.
+ The result of the multiplication with a scalar as an output parameter.
+
+
+
+ Creates a new that contains the specified vector inversion.
+
+ Source .
+ The result of the vector inversion.
+
+
+
+ Creates a new that contains the specified vector inversion.
+
+ Source .
+ The result of the vector inversion as an output parameter.
+
+
+
+ Turns this to a unit vector with the same direction.
+
+
+
+
+ Creates a new that contains a normalized values from another vector.
+
+ Source .
+ Unit vector.
+
+
+
+ Creates a new that contains a normalized values from another vector.
+
+ Source .
+ Unit vector as an output parameter.
+
+
+
+ Creates a new that contains reflect vector of the given vector and normal.
+
+ Source .
+ Reflection normal.
+ Reflected vector.
+
+
+
+ Creates a new that contains reflect vector of the given vector and normal.
+
+ Source .
+ Reflection normal.
+ Reflected vector as an output parameter.
+
+
+
+ Creates a new that contains cubic interpolation of the specified vectors.
+
+ Source .
+ Source .
+ Weighting value.
+ Cubic interpolation of the specified vectors.
+
+
+
+ Creates a new that contains cubic interpolation of the specified vectors.
+
+ Source .
+ Source .
+ Weighting value.
+ Cubic interpolation of the specified vectors as an output parameter.
+
+
+
+ Creates a new that contains subtraction of on from a another.
+
+ Source .
+ Source .
+ The result of the vector subtraction.
+
+
+
+ Creates a new that contains subtraction of on from a another.
+
+ Source .
+ Source .
+ The result of the vector subtraction as an output parameter.
+
+
+
+ Returns a representation of this in the format:
+ {X:[] Y:[]}
+
+ A representation of this .
+
+
+
+ Gets a representation for this object.
+
+ A representation for this object.
+
+
+
+ Creates a new that contains a transformation of 2d-vector by the specified .
+
+ Source .
+ The transformation .
+ Transformed .
+
+
+
+ Creates a new that contains a transformation of 2d-vector by the specified .
+
+ Source .
+ The transformation .
+ Transformed as an output parameter.
+
+
+
+ Creates a new that contains a transformation of 2d-vector by the specified , representing the rotation.
+
+ Source .
+ The which contains rotation transformation.
+ Transformed .
+
+
+
+ Creates a new that contains a transformation of 2d-vector by the specified , representing the rotation.
+
+ Source .
+ The which contains rotation transformation.
+ Transformed as an output parameter.
+
+
+
+ Apply transformation on vectors within array of by the specified and places the results in an another array.
+
+ Source array.
+ The starting index of transformation in the source array.
+ The transformation .
+ Destination array.
+ The starting index in the destination array, where the first should be written.
+ The number of vectors to be transformed.
+
+
+
+ Apply transformation on vectors within array of by the specified and places the results in an another array.
+
+ Source array.
+ The starting index of transformation in the source array.
+ The which contains rotation transformation.
+ Destination array.
+ The starting index in the destination array, where the first should be written.
+ The number of vectors to be transformed.
+
+
+
+ Apply transformation on all vectors within array of by the specified and places the results in an another array.
+
+ Source array.
+ The transformation .
+ Destination array.
+
+
+
+ Apply transformation on all vectors within array of by the specified and places the results in an another array.
+
+ Source array.
+ The which contains rotation transformation.
+ Destination array.
+
+
+
+ Creates a new that contains a transformation of the specified normal by the specified .
+
+ Source which represents a normal vector.
+ The transformation .
+ Transformed normal.
+
+
+
+ Creates a new that contains a transformation of the specified normal by the specified .
+
+ Source which represents a normal vector.
+ The transformation .
+ Transformed normal as an output parameter.
+
+
+
+ Apply transformation on normals within array of by the specified and places the results in an another array.
+
+ Source array.
+ The starting index of transformation in the source array.
+ The transformation .
+ Destination array.
+ The starting index in the destination array, where the first should be written.
+ The number of normals to be transformed.
+
+
+
+ Apply transformation on all normals within array of by the specified and places the results in an another array.
+
+ Source array.
+ The transformation .
+ Destination array.
+
+
+
+ Returns a with components 0, 0.
+
+
+
+
+ Returns a with components 1, 1.
+
+
+
+
+ Returns a with components 1, 0.
+
+
+
+
+ Returns a with components 0, 1.
+
+
+
+
+ Describes a 3D-vector.
+
+
+
+
+ The x coordinate of this .
+
+
+
+
+ The y coordinate of this .
+
+
+
+
+ The z coordinate of this .
+
+
+
+
+ Constructs a 3d vector with X, Y and Z from three values.
+
+ The x coordinate in 3d-space.
+ The y coordinate in 3d-space.
+ The z coordinate in 3d-space.
+
+
+
+ Constructs a 3d vector with X, Y and Z set to the same value.
+
+ The x, y and z coordinates in 3d-space.
+
+
+
+ Constructs a 3d vector with X, Y from and Z from a scalar.
+
+ The x and y coordinates in 3d-space.
+ The z coordinate in 3d-space.
+
+
+
+ Performs vector addition on and .
+
+ The first vector to add.
+ The second vector to add.
+ The result of the vector addition.
+
+
+
+ Performs vector addition on and
+ , storing the result of the
+ addition in .
+
+ The first vector to add.
+ The second vector to add.
+ The result of the vector addition.
+
+
+
+ Creates a new that contains the cartesian coordinates of a vector specified in barycentric coordinates and relative to 3d-triangle.
+
+ The first vector of 3d-triangle.
+ The second vector of 3d-triangle.
+ The third vector of 3d-triangle.
+ Barycentric scalar b2 which represents a weighting factor towards second vector of 3d-triangle.
+ Barycentric scalar b3 which represents a weighting factor towards third vector of 3d-triangle.
+ The cartesian translation of barycentric coordinates.
+
+
+
+ Creates a new that contains the cartesian coordinates of a vector specified in barycentric coordinates and relative to 3d-triangle.
+
+ The first vector of 3d-triangle.
+ The second vector of 3d-triangle.
+ The third vector of 3d-triangle.
+ Barycentric scalar b2 which represents a weighting factor towards second vector of 3d-triangle.
+ Barycentric scalar b3 which represents a weighting factor towards third vector of 3d-triangle.
+ The cartesian translation of barycentric coordinates as an output parameter.
+
+
+
+ Creates a new that contains CatmullRom interpolation of the specified vectors.
+
+ The first vector in interpolation.
+ The second vector in interpolation.
+ The third vector in interpolation.
+ The fourth vector in interpolation.
+ Weighting factor.
+ The result of CatmullRom interpolation.
+
+
+
+ Creates a new that contains CatmullRom interpolation of the specified vectors.
+
+ The first vector in interpolation.
+ The second vector in interpolation.
+ The third vector in interpolation.
+ The fourth vector in interpolation.
+ Weighting factor.
+ The result of CatmullRom interpolation as an output parameter.
+
+
+
+ Clamps the specified value within a range.
+
+ The value to clamp.
+ The min value.
+ The max value.
+ The clamped value.
+
+
+
+ Clamps the specified value within a range.
+
+ The value to clamp.
+ The min value.
+ The max value.
+ The clamped value as an output parameter.
+
+
+
+ Computes the cross product of two vectors.
+
+ The first vector.
+ The second vector.
+ The cross product of two vectors.
+
+
+
+ Computes the cross product of two vectors.
+
+ The first vector.
+ The second vector.
+ The cross product of two vectors as an output parameter.
+
+
+
+ Returns the distance between two vectors.
+
+ The first vector.
+ The second vector.
+ The distance between two vectors.
+
+
+
+ Returns the distance between two vectors.
+
+ The first vector.
+ The second vector.
+ The distance between two vectors as an output parameter.
+
+
+
+ Returns the squared distance between two vectors.
+
+ The first vector.
+ The second vector.
+ The squared distance between two vectors.
+
+
+
+ Returns the squared distance between two vectors.
+
+ The first vector.
+ The second vector.
+ The squared distance between two vectors as an output parameter.
+
+
+
+ Divides the components of a by the components of another .
+
+ Source .
+ Divisor .
+ The result of dividing the vectors.
+
+
+
+ Divides the components of a by a scalar.
+
+ Source .
+ Divisor scalar.
+ The result of dividing a vector by a scalar.
+
+
+
+ Divides the components of a by a scalar.
+
+ Source .
+ Divisor scalar.
+ The result of dividing a vector by a scalar as an output parameter.
+
+
+
+ Divides the components of a by the components of another .
+
+ Source .
+ Divisor .
+ The result of dividing the vectors as an output parameter.
+
+
+
+ Returns a dot product of two vectors.
+
+ The first vector.
+ The second vector.
+ The dot product of two vectors.
+
+
+
+ Returns a dot product of two vectors.
+
+ The first vector.
+ The second vector.
+ The dot product of two vectors as an output parameter.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Gets the hash code of this .
+
+ Hash code of this .
+
+
+
+ Creates a new that contains hermite spline interpolation.
+
+ The first position vector.
+ The first tangent vector.
+ The second position vector.
+ The second tangent vector.
+ Weighting factor.
+ The hermite spline interpolation vector.
+
+
+
+ Creates a new that contains hermite spline interpolation.
+
+ The first position vector.
+ The first tangent vector.
+ The second position vector.
+ The second tangent vector.
+ Weighting factor.
+ The hermite spline interpolation vector as an output parameter.
+
+
+
+ Returns the length of this .
+
+ The length of this .
+
+
+
+ Returns the squared length of this .
+
+ The squared length of this .
+
+
+
+ Creates a new that contains linear interpolation of the specified vectors.
+
+ The first vector.
+ The second vector.
+ Weighting value(between 0.0 and 1.0).
+ The result of linear interpolation of the specified vectors.
+
+
+
+ Creates a new that contains linear interpolation of the specified vectors.
+
+ The first vector.
+ The second vector.
+ Weighting value(between 0.0 and 1.0).
+ The result of linear interpolation of the specified vectors as an output parameter.
+
+
+
+ Creates a new that contains linear interpolation of the specified vectors.
+ Uses on MathHelper for the interpolation.
+ Less efficient but more precise compared to .
+ See remarks section of on MathHelper for more info.
+
+ The first vector.
+ The second vector.
+ Weighting value(between 0.0 and 1.0).
+ The result of linear interpolation of the specified vectors.
+
+
+
+ Creates a new that contains linear interpolation of the specified vectors.
+ Uses on MathHelper for the interpolation.
+ Less efficient but more precise compared to .
+ See remarks section of on MathHelper for more info.
+
+ The first vector.
+ The second vector.
+ Weighting value(between 0.0 and 1.0).
+ The result of linear interpolation of the specified vectors as an output parameter.
+
+
+
+ Creates a new that contains a maximal values from the two vectors.
+
+ The first vector.
+ The second vector.
+ The with maximal values from the two vectors.
+
+
+
+ Creates a new that contains a maximal values from the two vectors.
+
+ The first vector.
+ The second vector.
+ The with maximal values from the two vectors as an output parameter.
+
+
+
+ Creates a new that contains a minimal values from the two vectors.
+
+ The first vector.
+ The second vector.
+ The with minimal values from the two vectors.
+
+
+
+ Creates a new that contains a minimal values from the two vectors.
+
+ The first vector.
+ The second vector.
+ The with minimal values from the two vectors as an output parameter.
+
+
+
+ Creates a new that contains a multiplication of two vectors.
+
+ Source .
+ Source .
+ The result of the vector multiplication.
+
+
+
+ Creates a new that contains a multiplication of and a scalar.
+
+ Source .
+ Scalar value.
+ The result of the vector multiplication with a scalar.
+
+
+
+ Creates a new that contains a multiplication of and a scalar.
+
+ Source .
+ Scalar value.
+ The result of the multiplication with a scalar as an output parameter.
+
+
+
+ Creates a new that contains a multiplication of two vectors.
+
+ Source .
+ Source .
+ The result of the vector multiplication as an output parameter.
+
+
+
+ Creates a new that contains the specified vector inversion.
+
+ Source .
+ The result of the vector inversion.
+
+
+
+ Creates a new that contains the specified vector inversion.
+
+ Source .
+ The result of the vector inversion as an output parameter.
+
+
+
+ Turns this to a unit vector with the same direction.
+
+
+
+
+ Creates a new that contains a normalized values from another vector.
+
+ Source .
+ Unit vector.
+
+
+
+ Creates a new that contains a normalized values from another vector.
+
+ Source .
+ Unit vector as an output parameter.
+
+
+
+ Creates a new that contains reflect vector of the given vector and normal.
+
+ Source .
+ Reflection normal.
+ Reflected vector.
+
+
+
+ Creates a new that contains reflect vector of the given vector and normal.
+
+ Source .
+ Reflection normal.
+ Reflected vector as an output parameter.
+
+
+
+ Creates a new that contains cubic interpolation of the specified vectors.
+
+ Source .
+ Source .
+ Weighting value.
+ Cubic interpolation of the specified vectors.
+
+
+
+ Creates a new that contains cubic interpolation of the specified vectors.
+
+ Source .
+ Source .
+ Weighting value.
+ Cubic interpolation of the specified vectors as an output parameter.
+
+
+
+ Creates a new that contains subtraction of on from a another.
+
+ Source .
+ Source .
+ The result of the vector subtraction.
+
+
+
+ Creates a new that contains subtraction of on from a another.
+
+ Source .
+ Source .
+ The result of the vector subtraction as an output parameter.
+
+
+
+ Returns a representation of this in the format:
+ {X:[] Y:[] Z:[]}
+
+ A representation of this .
+
+
+
+ Creates a new that contains a transformation of 3d-vector by the specified .
+
+ Source .
+ The transformation .
+ Transformed .
+
+
+
+ Creates a new that contains a transformation of 3d-vector by the specified .
+
+ Source .
+ The transformation .
+ Transformed as an output parameter.
+
+
+
+ Creates a new that contains a transformation of 3d-vector by the specified , representing the rotation.
+
+ Source .
+ The which contains rotation transformation.
+ Transformed .
+
+
+
+ Creates a new that contains a transformation of 3d-vector by the specified , representing the rotation.
+
+ Source .
+ The which contains rotation transformation.
+ Transformed as an output parameter.
+
+
+
+ Apply transformation on vectors within array of by the specified and places the results in an another array.
+
+ Source array.
+ The starting index of transformation in the source array.
+ The transformation .
+ Destination array.
+ The starting index in the destination array, where the first should be written.
+ The number of vectors to be transformed.
+
+
+
+ Apply transformation on vectors within array of by the specified and places the results in an another array.
+
+ Source array.
+ The starting index of transformation in the source array.
+ The which contains rotation transformation.
+ Destination array.
+ The starting index in the destination array, where the first should be written.
+ The number of vectors to be transformed.
+
+
+
+ Apply transformation on all vectors within array of by the specified and places the results in an another array.
+
+ Source array.
+ The transformation .
+ Destination array.
+
+
+
+ Apply transformation on all vectors within array of by the specified and places the results in an another array.
+
+ Source array.
+ The which contains rotation transformation.
+ Destination array.
+
+
+
+ Creates a new that contains a transformation of the specified normal by the specified .
+
+ Source which represents a normal vector.
+ The transformation .
+ Transformed normal.
+
+
+
+ Creates a new that contains a transformation of the specified normal by the specified .
+
+ Source which represents a normal vector.
+ The transformation .
+ Transformed normal as an output parameter.
+
+
+
+ Apply transformation on normals within array of by the specified and places the results in an another array.
+
+ Source array.
+ The starting index of transformation in the source array.
+ The transformation .
+ Destination array.
+ The starting index in the destination array, where the first should be written.
+ The number of normals to be transformed.
+
+
+
+ Apply transformation on all normals within array of by the specified and places the results in an another array.
+
+ Source array.
+ The transformation .
+ Destination array.
+
+
+
+ Compares whether two instances are equal.
+
+ instance on the left of the equal sign.
+ instance on the right of the equal sign.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether two instances are not equal.
+
+ instance on the left of the not equal sign.
+ instance on the right of the not equal sign.
+ true if the instances are not equal; false otherwise.
+
+
+
+ Adds two vectors.
+
+ Source on the left of the add sign.
+ Source on the right of the add sign.
+ Sum of the vectors.
+
+
+
+ Inverts values in the specified .
+
+ Source on the right of the sub sign.
+ Result of the inversion.
+
+
+
+ Subtracts a from a .
+
+ Source on the left of the sub sign.
+ Source on the right of the sub sign.
+ Result of the vector subtraction.
+
+
+
+ Multiplies the components of two vectors by each other.
+
+ Source on the left of the mul sign.
+ Source on the right of the mul sign.
+ Result of the vector multiplication.
+
+
+
+ Multiplies the components of vector by a scalar.
+
+ Source on the left of the mul sign.
+ Scalar value on the right of the mul sign.
+ Result of the vector multiplication with a scalar.
+
+
+
+ Multiplies the components of vector by a scalar.
+
+ Scalar value on the left of the mul sign.
+ Source on the right of the mul sign.
+ Result of the vector multiplication with a scalar.
+
+
+
+ Divides the components of a by the components of another .
+
+ Source on the left of the div sign.
+ Divisor on the right of the div sign.
+ The result of dividing the vectors.
+
+
+
+ Divides the components of a by a scalar.
+
+ Source on the left of the div sign.
+ Divisor scalar on the right of the div sign.
+ The result of dividing a vector by a scalar.
+
+
+
+ Returns a with components 0, 0, 0.
+
+
+
+
+ Returns a with components 1, 1, 1.
+
+
+
+
+ Returns a with components 1, 0, 0.
+
+
+
+
+ Returns a with components 0, 1, 0.
+
+
+
+
+ Returns a with components 0, 0, 1.
+
+
+
+
+ Returns a with components 0, 1, 0.
+
+
+
+
+ Returns a with components 0, -1, 0.
+
+
+
+
+ Returns a with components 1, 0, 0.
+
+
+
+
+ Returns a with components -1, 0, 0.
+
+
+
+
+ Returns a with components 0, 0, -1.
+
+
+
+
+ Returns a with components 0, 0, 1.
+
+
+
+
+ Describes a 4D-vector.
+
+
+
+
+ The x coordinate of this .
+
+
+
+
+ The y coordinate of this .
+
+
+
+
+ The z coordinate of this .
+
+
+
+
+ The w coordinate of this .
+
+
+
+
+ Constructs a 3d vector with X, Y, Z and W from four values.
+
+ The x coordinate in 4d-space.
+ The y coordinate in 4d-space.
+ The z coordinate in 4d-space.
+ The w coordinate in 4d-space.
+
+
+
+ Constructs a 3d vector with X and Z from and Z and W from the scalars.
+
+ The x and y coordinates in 4d-space.
+ The z coordinate in 4d-space.
+ The w coordinate in 4d-space.
+
+
+
+ Constructs a 3d vector with X, Y, Z from and W from a scalar.
+
+ The x, y and z coordinates in 4d-space.
+ The w coordinate in 4d-space.
+
+
+
+ Constructs a 4d vector with X, Y, Z and W set to the same value.
+
+ The x, y, z and w coordinates in 4d-space.
+
+
+
+ Performs vector addition on and .
+
+ The first vector to add.
+ The second vector to add.
+ The result of the vector addition.
+
+
+
+ Performs vector addition on and
+ , storing the result of the
+ addition in .
+
+ The first vector to add.
+ The second vector to add.
+ The result of the vector addition.
+
+
+
+ Creates a new that contains the cartesian coordinates of a vector specified in barycentric coordinates and relative to 4d-triangle.
+
+ The first vector of 4d-triangle.
+ The second vector of 4d-triangle.
+ The third vector of 4d-triangle.
+ Barycentric scalar b2 which represents a weighting factor towards second vector of 4d-triangle.
+ Barycentric scalar b3 which represents a weighting factor towards third vector of 4d-triangle.
+ The cartesian translation of barycentric coordinates.
+
+
+
+ Creates a new that contains the cartesian coordinates of a vector specified in barycentric coordinates and relative to 4d-triangle.
+
+ The first vector of 4d-triangle.
+ The second vector of 4d-triangle.
+ The third vector of 4d-triangle.
+ Barycentric scalar b2 which represents a weighting factor towards second vector of 4d-triangle.
+ Barycentric scalar b3 which represents a weighting factor towards third vector of 4d-triangle.
+ The cartesian translation of barycentric coordinates as an output parameter.
+
+
+
+ Creates a new that contains CatmullRom interpolation of the specified vectors.
+
+ The first vector in interpolation.
+ The second vector in interpolation.
+ The third vector in interpolation.
+ The fourth vector in interpolation.
+ Weighting factor.
+ The result of CatmullRom interpolation.
+
+
+
+ Creates a new that contains CatmullRom interpolation of the specified vectors.
+
+ The first vector in interpolation.
+ The second vector in interpolation.
+ The third vector in interpolation.
+ The fourth vector in interpolation.
+ Weighting factor.
+ The result of CatmullRom interpolation as an output parameter.
+
+
+
+ Clamps the specified value within a range.
+
+ The value to clamp.
+ The min value.
+ The max value.
+ The clamped value.
+
+
+
+ Clamps the specified value within a range.
+
+ The value to clamp.
+ The min value.
+ The max value.
+ The clamped value as an output parameter.
+
+
+
+ Returns the distance between two vectors.
+
+ The first vector.
+ The second vector.
+ The distance between two vectors.
+
+
+
+ Returns the distance between two vectors.
+
+ The first vector.
+ The second vector.
+ The distance between two vectors as an output parameter.
+
+
+
+ Returns the squared distance between two vectors.
+
+ The first vector.
+ The second vector.
+ The squared distance between two vectors.
+
+
+
+ Returns the squared distance between two vectors.
+
+ The first vector.
+ The second vector.
+ The squared distance between two vectors as an output parameter.
+
+
+
+ Divides the components of a by the components of another .
+
+ Source .
+ Divisor .
+ The result of dividing the vectors.
+
+
+
+ Divides the components of a by a scalar.
+
+ Source .
+ Divisor scalar.
+ The result of dividing a vector by a scalar.
+
+
+
+ Divides the components of a by a scalar.
+
+ Source .
+ Divisor scalar.
+ The result of dividing a vector by a scalar as an output parameter.
+
+
+
+ Divides the components of a by the components of another .
+
+ Source .
+ Divisor .
+ The result of dividing the vectors as an output parameter.
+
+
+
+ Returns a dot product of two vectors.
+
+ The first vector.
+ The second vector.
+ The dot product of two vectors.
+
+
+
+ Returns a dot product of two vectors.
+
+ The first vector.
+ The second vector.
+ The dot product of two vectors as an output parameter.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Gets the hash code of this .
+
+ Hash code of this .
+
+
+
+ Creates a new that contains hermite spline interpolation.
+
+ The first position vector.
+ The first tangent vector.
+ The second position vector.
+ The second tangent vector.
+ Weighting factor.
+ The hermite spline interpolation vector.
+
+
+
+ Creates a new that contains hermite spline interpolation.
+
+ The first position vector.
+ The first tangent vector.
+ The second position vector.
+ The second tangent vector.
+ Weighting factor.
+ The hermite spline interpolation vector as an output parameter.
+
+
+
+ Returns the length of this .
+
+ The length of this .
+
+
+
+ Returns the squared length of this .
+
+ The squared length of this .
+
+
+
+ Creates a new that contains linear interpolation of the specified vectors.
+
+ The first vector.
+ The second vector.
+ Weighting value(between 0.0 and 1.0).
+ The result of linear interpolation of the specified vectors.
+
+
+
+ Creates a new that contains linear interpolation of the specified vectors.
+
+ The first vector.
+ The second vector.
+ Weighting value(between 0.0 and 1.0).
+ The result of linear interpolation of the specified vectors as an output parameter.
+
+
+
+ Creates a new that contains linear interpolation of the specified vectors.
+ Uses on MathHelper for the interpolation.
+ Less efficient but more precise compared to .
+ See remarks section of on MathHelper for more info.
+
+ The first vector.
+ The second vector.
+ Weighting value(between 0.0 and 1.0).
+ The result of linear interpolation of the specified vectors.
+
+
+
+ Creates a new that contains linear interpolation of the specified vectors.
+ Uses on MathHelper for the interpolation.
+ Less efficient but more precise compared to .
+ See remarks section of on MathHelper for more info.
+
+ The first vector.
+ The second vector.
+ Weighting value(between 0.0 and 1.0).
+ The result of linear interpolation of the specified vectors as an output parameter.
+
+
+
+ Creates a new that contains a maximal values from the two vectors.
+
+ The first vector.
+ The second vector.
+ The with maximal values from the two vectors.
+
+
+
+ Creates a new that contains a maximal values from the two vectors.
+
+ The first vector.
+ The second vector.
+ The with maximal values from the two vectors as an output parameter.
+
+
+
+ Creates a new that contains a minimal values from the two vectors.
+
+ The first vector.
+ The second vector.
+ The with minimal values from the two vectors.
+
+
+
+ Creates a new that contains a minimal values from the two vectors.
+
+ The first vector.
+ The second vector.
+ The with minimal values from the two vectors as an output parameter.
+
+
+
+ Creates a new that contains a multiplication of two vectors.
+
+ Source .
+ Source .
+ The result of the vector multiplication.
+
+
+
+ Creates a new that contains a multiplication of and a scalar.
+
+ Source .
+ Scalar value.
+ The result of the vector multiplication with a scalar.
+
+
+
+ Creates a new that contains a multiplication of and a scalar.
+
+ Source .
+ Scalar value.
+ The result of the multiplication with a scalar as an output parameter.
+
+
+
+ Creates a new that contains a multiplication of two vectors.
+
+ Source .
+ Source .
+ The result of the vector multiplication as an output parameter.
+
+
+
+ Creates a new that contains the specified vector inversion.
+
+ Source .
+ The result of the vector inversion.
+
+
+
+ Creates a new that contains the specified vector inversion.
+
+ Source .
+ The result of the vector inversion as an output parameter.
+
+
+
+ Turns this to a unit vector with the same direction.
+
+
+
+
+ Creates a new that contains a normalized values from another vector.
+
+ Source .
+ Unit vector.
+
+
+
+ Creates a new that contains a normalized values from another vector.
+
+ Source .
+ Unit vector as an output parameter.
+
+
+
+ Creates a new that contains cubic interpolation of the specified vectors.
+
+ Source .
+ Source .
+ Weighting value.
+ Cubic interpolation of the specified vectors.
+
+
+
+ Creates a new that contains cubic interpolation of the specified vectors.
+
+ Source .
+ Source .
+ Weighting value.
+ Cubic interpolation of the specified vectors as an output parameter.
+
+
+
+ Creates a new that contains subtraction of on from a another.
+
+ Source .
+ Source .
+ The result of the vector subtraction.
+
+
+
+ Creates a new that contains subtraction of on from a another.
+
+ Source .
+ Source .
+ The result of the vector subtraction as an output parameter.
+
+
+
+ Creates a new that contains a transformation of 2d-vector by the specified .
+
+ Source .
+ The transformation .
+ Transformed .
+
+
+
+ Creates a new that contains a transformation of 2d-vector by the specified .
+
+ Source .
+ The which contains rotation transformation.
+ Transformed .
+
+
+
+ Creates a new that contains a transformation of 3d-vector by the specified .
+
+ Source .
+ The transformation .
+ Transformed .
+
+
+
+ Creates a new that contains a transformation of 3d-vector by the specified .
+
+ Source .
+ The which contains rotation transformation.
+ Transformed .
+
+
+
+ Creates a new that contains a transformation of 4d-vector by the specified .
+
+ Source .
+ The transformation .
+ Transformed .
+
+
+
+ Creates a new that contains a transformation of 4d-vector by the specified .
+
+ Source .
+ The which contains rotation transformation.
+ Transformed .
+
+
+
+ Creates a new that contains a transformation of 2d-vector by the specified .
+
+ Source .
+ The transformation .
+ Transformed as an output parameter.
+
+
+
+ Creates a new that contains a transformation of 2d-vector by the specified .
+
+ Source .
+ The which contains rotation transformation.
+ Transformed as an output parameter.
+
+
+
+ Creates a new that contains a transformation of 3d-vector by the specified .
+
+ Source .
+ The transformation .
+ Transformed as an output parameter.
+
+
+
+ Creates a new that contains a transformation of 3d-vector by the specified .
+
+ Source .
+ The which contains rotation transformation.
+ Transformed as an output parameter.
+
+
+
+ Creates a new that contains a transformation of 4d-vector by the specified .
+
+ Source .
+ The transformation .
+ Transformed as an output parameter.
+
+
+
+ Creates a new that contains a transformation of 4d-vector by the specified .
+
+ Source .
+ The which contains rotation transformation.
+ Transformed as an output parameter.
+
+
+
+ Apply transformation on vectors within array of by the specified and places the results in an another array.
+
+ Source array.
+ The starting index of transformation in the source array.
+ The transformation .
+ Destination array.
+ The starting index in the destination array, where the first should be written.
+ The number of vectors to be transformed.
+
+
+
+ Apply transformation on vectors within array of by the specified and places the results in an another array.
+
+ Source array.
+ The starting index of transformation in the source array.
+ The which contains rotation transformation.
+ Destination array.
+ The starting index in the destination array, where the first should be written.
+ The number of vectors to be transformed.
+
+
+
+ Apply transformation on all vectors within array of by the specified and places the results in an another array.
+
+ Source array.
+ The transformation .
+ Destination array.
+
+
+
+ Apply transformation on all vectors within array of by the specified and places the results in an another array.
+
+ Source array.
+ The which contains rotation transformation.
+ Destination array.
+
+
+
+ Returns a representation of this in the format:
+ {X:[] Y:[] Z:[] W:[]}
+
+ A representation of this .
+
+
+
+ Inverts values in the specified .
+
+ Source on the right of the sub sign.
+ Result of the inversion.
+
+
+
+ Compares whether two instances are equal.
+
+ instance on the left of the equal sign.
+ instance on the right of the equal sign.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether two instances are not equal.
+
+ instance on the left of the not equal sign.
+ instance on the right of the not equal sign.
+ true if the instances are not equal; false otherwise.
+
+
+
+ Adds two vectors.
+
+ Source on the left of the add sign.
+ Source on the right of the add sign.
+ Sum of the vectors.
+
+
+
+ Subtracts a from a .
+
+ Source on the left of the sub sign.
+ Source on the right of the sub sign.
+ Result of the vector subtraction.
+
+
+
+ Multiplies the components of two vectors by each other.
+
+ Source on the left of the mul sign.
+ Source on the right of the mul sign.
+ Result of the vector multiplication.
+
+
+
+ Multiplies the components of vector by a scalar.
+
+ Source on the left of the mul sign.
+ Scalar value on the right of the mul sign.
+ Result of the vector multiplication with a scalar.
+
+
+
+ Multiplies the components of vector by a scalar.
+
+ Scalar value on the left of the mul sign.
+ Source on the right of the mul sign.
+ Result of the vector multiplication with a scalar.
+
+
+
+ Divides the components of a by the components of another .
+
+ Source on the left of the div sign.
+ Divisor on the right of the div sign.
+ The result of dividing the vectors.
+
+
+
+ Divides the components of a by a scalar.
+
+ Source on the left of the div sign.
+ Divisor scalar on the right of the div sign.
+ The result of dividing a vector by a scalar.
+
+
+
+ Returns a with components 0, 0, 0, 0.
+
+
+
+
+ Returns a with components 1, 1, 1, 1.
+
+
+
+
+ Returns a with components 1, 0, 0, 0.
+
+
+
+
+ Returns a with components 0, 1, 0, 0.
+
+
+
+
+ Returns a with components 0, 0, 1, 0.
+
+
+
+
+ Returns a with components 0, 0, 0, 1.
+
+
+
+
+ Represents how many channels are used in the audio data.
+
+
+
+ Single channel.
+
+
+ Two channels.
+
+
+
+ Represents a 3D audio emitter. Used to simulate 3D audio effects.
+
+
+
+ Initializes a new AudioEmitter instance.
+
+
+ Gets or sets a scale applied to the Doppler effect between the AudioEmitter and an AudioListener.
+
+ Defaults to 1.0
+ A value of 1.0 leaves the Doppler effect unmodified.
+
+
+
+ Gets or sets the emitter's forward vector.
+
+ Defaults to Vector3.Forward. (new Vector3(0, 0, -1))
+ Used with AudioListener.Velocity to calculate Doppler values.
+ The Forward and Up values must be orthonormal.
+
+
+
+ Gets or sets the position of this emitter.
+
+
+ Gets or sets the emitter's Up vector.
+
+ Defaults to Vector3.Up. (new Vector3(0, -1, 1)).
+ The Up and Forward vectors must be orthonormal.
+
+
+
+ Gets or sets the emitter's velocity vector.
+
+ Defaults to Vector3.Zero.
+ This value is only used when calculating Doppler values.
+
+
+
+
+ Represents a 3D audio listener. Used when simulating 3D Audio.
+
+
+
+ Gets or sets the listener's forward vector.
+
+ Defaults to Vector3.Forward. (new Vector3(0, 0, -1))
+ Used with AudioListener.Velocity and AudioEmitter.Velocity to calculate Doppler values.
+ The Forward and Up vectors must be orthonormal.
+
+
+
+ Gets or sets the listener's position.
+
+ Defaults to Vector3.Zero.
+
+
+
+
+ Gets or sets the listener's up vector..
+
+
+ Defaults to Vector3.Up (New Vector3(0, -1, 0)).
+ Used with AudioListener.Velocity and AudioEmitter.Velocity to calculate Doppler values.
+ The values of the Forward and Up vectors must be orthonormal.
+
+
+
+ Gets or sets the listener's velocity vector.
+
+ Defaults to Vector3.Zero.
+ Scaled by DopplerScale to calculate the Doppler effect value applied to a Cue.
+ This value is only used to calculate Doppler values.
+
+
+
+
+ A for which the audio buffer is provided by the game at run time.
+
+
+
+ Represents a single instance of a playing, paused, or stopped sound.
+
+ SoundEffectInstances are created through SoundEffect.CreateInstance() and used internally by SoundEffect.Play()
+
+
+
+
+ Releases unmanaged resources and performs other cleanup operations before the
+ is reclaimed by garbage collection.
+
+
+
+ Applies 3D positioning to the SoundEffectInstance using a single listener.
+ Data about the listener.
+ Data about the source of emission.
+
+
+ Applies 3D positioning to the SoundEffectInstance using multiple listeners.
+ Data about each listener.
+ Data about the source of emission.
+
+
+ Pauses playback of a SoundEffectInstance.
+ Paused instances can be resumed with SoundEffectInstance.Play() or SoundEffectInstance.Resume().
+
+
+ Plays or resumes a SoundEffectInstance.
+ Throws an exception if more sounds are playing than the platform allows.
+
+
+ Resumes playback for a SoundEffectInstance.
+ Only has effect on a SoundEffectInstance in a paused state.
+
+
+ Immediately stops playing a SoundEffectInstance.
+
+
+ Stops playing a SoundEffectInstance, either immediately or as authored.
+ Determined whether the sound stops immediately, or after playing its release phase and/or transitions.
+ Stopping a sound with the immediate argument set to false will allow it to play any release phases, such as fade, before coming to a stop.
+
+
+ Releases the resources held by this .
+
+
+
+ Releases the resources held by this .
+
+ If set to true, Dispose was called explicitly.
+ If the disposing parameter is true, the Dispose method was called explicitly. This
+ means that managed objects referenced by this instance should be disposed or released as
+ required. If the disposing parameter is false, Dispose was called by the finalizer and
+ no managed objects should be touched because we do not know if they are still valid or
+ not at that time. Unmanaged resources should always be released.
+
+
+
+ Creates a standalone SoundEffectInstance from given wavedata.
+
+
+
+
+ Gets the OpenAL sound controller, constructs the sound buffer, and sets up the event delegates for
+ the reserved and recycled events.
+
+
+
+
+ Converts the XNA [-1, 1] pitch range to OpenAL pitch (0, INF) or Android SoundPool playback rate [0.5, 2].
+ The pitch of the sound in the Microsoft XNA range.
+
+
+
+ Enables or Disables whether the SoundEffectInstance should repeat after playback.
+ This value has no effect on an already playing sound.
+
+
+ Gets or sets the pan, or speaker balance..
+ Pan value ranging from -1.0 (left speaker) to 0.0 (centered), 1.0 (right speaker). Values outside of this range will throw an exception.
+
+
+ Gets or sets the pitch adjustment.
+ Pitch adjustment, ranging from -1.0 (down an octave) to 0.0 (no change) to 1.0 (up an octave). Values outside of this range will throw an Exception.
+
+
+ Gets or sets the volume of the SoundEffectInstance.
+ Volume, ranging from 0.0 (silence) to 1.0 (full volume). Volume during playback is scaled by SoundEffect.MasterVolume.
+
+ This is the volume relative to SoundEffect.MasterVolume. Before playback, this Volume property is multiplied by SoundEffect.MasterVolume when determining the final mix volume.
+
+
+
+ Gets the SoundEffectInstance's current playback state.
+
+
+ Indicates whether the object is disposed.
+
+
+ Sample rate, in Hertz (Hz).
+ Number of channels (mono or stereo).
+
+
+
+ Returns the duration of an audio buffer of the specified size, based on the settings of this instance.
+
+ Size of the buffer, in bytes.
+ The playback length of the buffer.
+
+
+
+ Returns the size, in bytes, of a buffer of the specified duration, based on the settings of this instance.
+
+ The playback length of the buffer.
+ The data size of the buffer, in bytes.
+
+
+
+ Plays or resumes the DynamicSoundEffectInstance.
+
+
+
+
+ Pauses playback of the DynamicSoundEffectInstance.
+
+
+
+
+ Resumes playback of the DynamicSoundEffectInstance.
+
+
+
+
+ Immediately stops playing the DynamicSoundEffectInstance.
+
+
+ Calling this also releases all queued buffers.
+
+
+
+
+ Stops playing the DynamicSoundEffectInstance.
+ If the parameter is false, this call has no effect.
+
+
+ Calling this also releases all queued buffers.
+
+ When set to false, this call has no effect.
+
+
+
+ Queues an audio buffer for playback.
+
+
+ The buffer length must conform to alignment requirements for the audio format.
+
+ The buffer containing PCM audio data.
+
+
+
+ Queues an audio buffer for playback.
+
+
+ The buffer length must conform to alignment requirements for the audio format.
+
+ The buffer containing PCM audio data.
+ The starting position of audio data.
+ The amount of bytes to use.
+
+
+
+ This value has no effect on DynamicSoundEffectInstance.
+ It may not be set.
+
+
+
+
+ Returns the number of audio buffers queued for playback.
+
+
+
+
+ The event that occurs when the number of queued audio buffers is less than or equal to 2.
+
+
+ This event may occur when is called or during playback when a buffer is completed.
+
+
+
+
+ Handles the buffer events of all DynamicSoundEffectInstance instances.
+
+
+
+
+ Updates buffer queues of the currently playing instances.
+
+
+ XNA posts events always on the main thread.
+
+
+
+
+ The exception thrown when the system attempts to play more SoundEffectInstances than allotted.
+
+
+ Most platforms have a hard limit on how many sounds can be played simultaneously. This exception is thrown when that limit is exceeded.
+
+
+
+ A bunch of magical numbers that predict the sample data from the
+ MSADPCM wavedata. Do not attempt to understand at all costs!
+
+
+ Splits the MSADPCM samples from each byte block.
+ @param block An MSADPCM sample byte
+ @param nibbleBlock we copy the parsed shorts into here
+
+
+ Calculates PCM samples based on previous samples and a nibble input.
+ @param nibble A parsed MSADPCM sample we got from getNibbleBlock
+ @param predictor The predictor we get from the MSADPCM block's preamble
+ @param sample_1 The first sample we use to predict the next sample
+ @param sample_2 The second sample we use to predict the next sample
+ @param delta Used to calculate the final sample
+ @return The calculated PCM sample
+
+
+ Decodes MSADPCM data to signed 16-bit PCM data.
+ @param Source A BinaryReader containing the headerless MSADPCM data
+ @param numChannels The number of channels (WAVEFORMATEX nChannels)
+ @param blockAlign The ADPCM block size (WAVEFORMATEX nBlockAlign)
+ @return A byte array containing the raw 16-bit PCM wavedata
+
+ NOTE: The original MSADPCMToPCM class returns as a short[] array!
+
+
+
+ The exception thrown when no audio hardware is present, or driver issues are detected.
+
+
+
+ A message describing the error.
+
+
+ A message describing the error.
+ The exception that is the underlying cause of the current exception. If not null, the current exception is raised in a try/catch block that handled the innerException.
+
+
+
+ Sets up the hardware resources used by the controller.
+
+
+
+
+ Open the sound device, sets up an audio context, and makes the new context
+ the current context. Note that this method will stop the playback of
+ music that was running prior to the game start. If any error occurs, then
+ the state of the controller is reset.
+
+ True if the sound controller was setup, and false if not.
+
+
+
+ Checks the error state of the OpenAL driver. If a value that is not AlcError.NoError
+ is returned, then the operation message and the error code is output to the console.
+
+ the operation message
+ true if an error occurs, and false if not.
+
+
+
+ Destroys the AL context and closes the device, when they exist.
+
+
+
+
+ Dispose of the OpenALSoundCOntroller.
+
+
+
+
+ Dispose of the OpenALSoundCOntroller.
+
+ If true, the managed resources are to be disposed.
+
+
+
+ Reserves a sound buffer and return its identifier. If there are no available sources
+ or the controller was not able to setup the hardware then an
+ is thrown.
+
+ The source number of the reserved sound buffer.
+
+
+
+ Checks if the AL controller was initialized properly. If there was an
+ exception thrown during the OpenAL init, then that exception is thrown
+ inside of NoAudioHardwareException.
+
+ True if the controller was initialized, false if not.
+
+
+ Represents a loaded sound resource.
+
+ A SoundEffect represents the buffer used to hold audio data and metadata. SoundEffectInstances are used to play from SoundEffects. Multiple SoundEffectInstance objects can be created and played from the same SoundEffect object.
+ The only limit on the number of loaded SoundEffects is restricted by available memory. When a SoundEffect is disposed, all SoundEffectInstances created from it will become invalid.
+ SoundEffect.Play() can be used for 'fire and forget' sounds. If advanced playback controls like volume or pitch is required, use SoundEffect.CreateInstance().
+
+
+
+
+ Create a sound effect.
+
+ The buffer with the sound data.
+ The sound data sample rate in hertz.
+ The number of channels in the sound data.
+ This only supports uncompressed 16bit PCM wav data.
+
+
+
+ Create a sound effect.
+
+ The buffer with the sound data.
+ The offset to the start of the sound data in bytes.
+ The length of the sound data in bytes.
+ The sound data sample rate in hertz.
+ The number of channels in the sound data.
+ The position where the sound should begin looping in samples.
+ The duration of the sound data loop in samples.
+ This only supports uncompressed 16bit PCM wav data.
+
+
+
+ Releases unmanaged resources and performs other cleanup operations before the
+ is reclaimed by garbage collection.
+
+
+
+
+ Creates a new SoundEffectInstance for this SoundEffect.
+
+ A new SoundEffectInstance for this SoundEffect.
+ Creating a SoundEffectInstance before calling SoundEffectInstance.Play() allows you to access advanced playback features, such as volume, pitch, and 3D positioning.
+
+
+
+ Creates a new SoundEffect object based on the specified data stream.
+
+ A stream containing the PCM wave data.
+ A new SoundEffect object.
+ The stream must point to the head of a valid PCM wave file in the RIFF bitstream format.
+
+
+
+ Returns the duration for 16bit PCM audio.
+
+ The length of the audio data in bytes.
+ Sample rate, in Hertz (Hz). Must be between 8000 Hz and 48000 Hz
+ Number of channels in the audio data.
+ The duration of the audio data.
+
+
+
+ Returns the data size in bytes for 16bit PCM audio.
+
+ The total duration of the audio data.
+ Sample rate, in Hertz (Hz), of audio data. Must be between 8,000 and 48,000 Hz.
+ Number of channels in the audio data.
+ The size in bytes of a single sample of audio data.
+
+
+ Gets an internal SoundEffectInstance and plays it.
+ True if a SoundEffectInstance was successfully played, false if not.
+
+ Play returns false if more SoundEffectInstances are currently playing then the platform allows.
+ To loop a sound or apply 3D effects, call SoundEffect.CreateInstance() and SoundEffectInstance.Play() instead.
+ SoundEffectInstances used by SoundEffect.Play() are pooled internally.
+
+
+
+ Gets an internal SoundEffectInstance and plays it with the specified volume, pitch, and panning.
+ True if a SoundEffectInstance was successfully created and played, false if not.
+ Volume, ranging from 0.0 (silence) to 1.0 (full volume). Volume during playback is scaled by SoundEffect.MasterVolume.
+ Pitch adjustment, ranging from -1.0 (down an octave) to 0.0 (no change) to 1.0 (up an octave).
+ Panning, ranging from -1.0 (left speaker) to 0.0 (centered), 1.0 (right speaker).
+
+ Play returns false if more SoundEffectInstances are currently playing then the platform allows.
+ To apply looping or simulate 3D audio, call SoundEffect.CreateInstance() and SoundEffectInstance.Play() instead.
+ SoundEffectInstances used by SoundEffect.Play() are pooled internally.
+
+
+
+
+ Returns a sound effect instance from the pool or null if none are available.
+
+
+
+ Releases the resources held by this .
+
+
+
+ Releases the resources held by this .
+
+ If set to true, Dispose was called explicitly.
+ If the disposing parameter is true, the Dispose method was called explicitly. This
+ means that managed objects referenced by this instance should be disposed or released as
+ required. If the disposing parameter is false, Dispose was called by the finalizer and
+ no managed objects should be touched because we do not know if they are still valid or
+ not at that time. Unmanaged resources should always be released.
+
+
+ Gets the duration of the SoundEffect.
+
+
+ Gets or sets the asset name of the SoundEffect.
+
+
+
+ Gets or sets the master volume scale applied to all SoundEffectInstances.
+
+
+ Each SoundEffectInstance has its own Volume property that is independent to SoundEffect.MasterVolume. During playback SoundEffectInstance.Volume is multiplied by SoundEffect.MasterVolume.
+ This property is used to adjust the volume on all current and newly created SoundEffectInstances. The volume of an individual SoundEffectInstance can be adjusted on its own.
+
+
+
+
+ Gets or sets the scale of distance calculations.
+
+
+ DistanceScale defaults to 1.0 and must be greater than 0.0.
+ Higher values reduce the rate of falloff between the sound and listener.
+
+
+
+
+ Gets or sets the scale of Doppler calculations applied to sounds.
+
+
+ DopplerScale defaults to 1.0 and must be greater or equal to 0.0
+ Affects the relative velocity of emitters and listeners.
+ Higher values more dramatically shift the pitch for the given relative velocity of the emitter and listener.
+
+
+
+ Returns the speed of sound used when calculating the Doppler effect..
+
+ Defaults to 343.5. Value is measured in meters per second.
+ Has no effect on distance attenuation.
+
+
+
+ Indicates whether the object is disposed.
+
+
+
+ Add the specified instance to the pool if it is a pooled instance and removes it from the
+ list of playing instances.
+
+ The SoundEffectInstance
+
+
+
+ Adds the SoundEffectInstance to the list of playing instances.
+
+ The SoundEffectInstance to add to the playing list.
+
+
+
+ Returns a pooled SoundEffectInstance if one is available, or allocates a new
+ SoundEffectInstance if the pool is empty.
+
+ The SoundEffectInstance.
+
+
+
+ Iterates the list of playing instances, returning them to the pool if they
+ have stopped playing.
+
+
+
+
+ Iterates the list of playing instances, stop them and return them to the pool if they are instances of the given SoundEffect.
+
+ The SoundEffect
+
+
+
+ Gets a value indicating whether the platform has capacity for more sounds to be played at this time.
+
+ true if more sounds can be played; otherwise, false.
+
+
+ Described the playback state of a SoundEffectInstance.
+
+
+ The SoundEffectInstance is currently playing.
+
+
+ The SoundEffectInstance is currently paused.
+
+
+ The SoundEffectInstance is currently stopped.
+
+
+
+ Provides functionality for manipulating multiple sounds at a time.
+
+
+
+
+ Pauses all associated sounds.
+
+
+
+
+ Resumes all associated paused sounds.
+
+
+
+
+ Stops all associated sounds.
+
+
+
+
+ Determines whether two AudioCategory instances are equal.
+
+ First AudioCategory instance to compare.
+ Second AudioCategory instance to compare.
+ true if the objects are equal or false if they aren't.
+
+
+
+ Determines whether two AudioCategory instances are not equal.
+
+ First AudioCategory instance to compare.
+ Second AudioCategory instance to compare.
+ true if the objects are not equal or false if they are.
+
+
+
+ Determines whether two AudioCategory instances are equal.
+
+ AudioCategory to compare with this instance.
+ true if the objects are equal or false if they aren't
+
+
+
+ Determines whether two AudioCategory instances are equal.
+
+ Object to compare with this instance.
+ true if the objects are equal or false if they aren't.
+
+
+
+ Gets the hash code for this instance.
+
+ Hash code for this object.
+
+
+
+ Returns the name of this AudioCategory
+
+ Friendly name of the AudioCategory
+
+
+
+ Gets the category's friendly name.
+
+
+
+
+ Class used to create and manipulate code audio objects.
+
+
+
+
+ The current content version.
+
+
+
+ Path to a XACT settings file.
+
+
+ Path to a XACT settings file.
+ Determines how many milliseconds the engine will look ahead when determing when to transition to another sound.
+ A string that specifies the audio renderer to use.
+ For the best results, use a lookAheadTime of 250 milliseconds or greater.
+
+
+
+ Performs periodic work required by the audio engine.
+
+ Must be called at least once per frame.
+
+
+ Returns an audio category by name.
+ Friendly name of the category to get.
+ The AudioCategory with a matching name. Throws an exception if not found.
+
+
+ Gets the value of a global variable.
+ Friendly name of the variable.
+ float value of the queried variable.
+ A global variable has global scope. It can be accessed by all code within a project.
+
+
+ Sets the value of a global variable.
+ Friendly name of the variable.
+ Value of the global variable.
+
+
+
+ Disposes the AudioEngine.
+
+
+
+
+ This event is triggered when the AudioEngine is disposed.
+
+
+
+
+ Is true if the AudioEngine has been disposed.
+
+
+
+ Controls how Cue objects should cease playback when told to stop.
+
+
+ Stop normally, playing any pending release phases or transitions.
+
+
+ Immediately stops the cue, ignoring any pending release phases or transitions.
+
+
+ Manages the playback of a sound or set of sounds.
+
+ Cues are comprised of one or more sounds.
+ Cues also define specific properties such as pitch or volume.
+ Cues are referenced through SoundBank objects.
+
+
+
+ Pauses playback.
+
+
+ Requests playback of a prepared or preparing Cue.
+ Calling Play when the Cue already is playing can result in an InvalidOperationException.
+
+
+ Resumes playback of a paused Cue.
+
+
+ Stops playback of a Cue.
+ Specifies if the sound should play any pending release phases or transitions before stopping.
+
+
+
+ Sets the value of a cue-instance variable based on its friendly name.
+
+ Friendly name of the variable to set.
+ Value to assign to the variable.
+ The friendly name is a value set from the designer.
+
+
+ Gets a cue-instance variable value based on its friendly name.
+ Friendly name of the variable.
+ Value of the variable.
+
+ Cue-instance variables are useful when multiple instantiations of a single cue (and its associated sounds) are required (for example, a "car" cue where there may be more than one car at any given time). While a global variable allows multiple audio elements to be controlled in unison, a cue instance variable grants discrete control of each instance of a cue, even for each copy of the same cue.
+ The friendly name is a value set from the designer.
+
+
+
+ Updates the simulated 3D Audio settings calculated between an AudioEmitter and AudioListener.
+ The listener to calculate.
+ The emitter to calculate.
+
+ This must be called before Play().
+ Calling this method automatically converts the sound to monoaural and sets the speaker mix for any sound played by this cue to a value calculated with the listener's and emitter's positions. Any stereo information in the sound will be discarded.
+
+
+
+
+ Disposes the Cue.
+
+
+
+ Indicates whether or not the cue is currently paused.
+ IsPlaying and IsPaused both return true if a cue is paused while playing.
+
+
+ Indicates whether or not the cue is currently playing.
+ IsPlaying and IsPaused both return true if a cue is paused while playing.
+
+
+ Indicates whether or not the cue is currently stopped.
+
+
+ Gets the friendly name of the cue.
+ The friendly name is a value set from the designer.
+
+
+
+ This event is triggered when the Cue is disposed.
+
+
+
+
+ Is true if the Cue has been disposed.
+
+
+
+ Represents a collection of Cues.
+
+
+ AudioEngine that will be associated with this sound bank.
+ Path to a .xsb SoundBank file.
+
+
+
+ Returns a pooled Cue object.
+
+ Friendly name of the cue to get.
+ a unique Cue object from a pool.
+
+ Cue instances are unique, even when sharing the same name. This allows multiple instances to simultaneously play.
+
+
+
+
+ Plays a cue.
+
+ Name of the cue to play.
+
+
+
+ Plays a cue with static 3D positional information.
+
+
+ Commonly used for short lived effects. To dynamically change the 3D
+ positional information on a cue over time use and .
+ The name of the cue to play.
+ The listener state.
+ The cue emitter state.
+
+
+
+ Disposes the SoundBank.
+
+
+
+
+ Is true if the SoundBank has any live Cues in use.
+
+
+
+
+ This event is triggered when the SoundBank is disposed.
+
+
+
+
+ Is true if the SoundBank has been disposed.
+
+
+
+ Represents a collection of wave files.
+
+
+ Instance of the AudioEngine to associate this wave bank with.
+ Path to the .xwb file to load.
+ This constructor immediately loads all wave data into memory at once.
+
+
+ Instance of the AudioEngine to associate this wave bank with.
+ Path to the .xwb to stream from.
+ DVD sector-aligned offset within the wave bank data file.
+ Stream packet size, in sectors, to use for each stream. The minimum value is 2.
+
+ This constructor streams wave data as needed.
+ Note that packetsize is in sectors, which is 2048 bytes.
+ AudioEngine.Update() must be called at least once before using data from a streaming wave bank.
+
+
+
+
+ Disposes the WaveBank.
+
+
+
+
+
+
+
+
+
+
+
+
+ This event is triggered when the WaveBank is disposed.
+
+
+
+
+ Is true if the WaveBank has been disposed.
+
+
+
+
+ Set the combined volume scale from the parent objects.
+
+ The volume scale.
+
+
+
+ Set the volume for the clip.
+
+ The volume level.
+
+
+
+ Virtual property to allow a derived ContentManager to have it's assets reloaded
+
+
+
+
+ External reference reader, provided for compatibility with XNA Framework built content
+
+
+
+
+ Creates an instance of the attribute.
+
+
+
+
+ Returns the overriden XML element name or the default "Item".
+
+
+
+
+ Returns true if the default CollectionItemName value was overridden.
+
+
+
+
+ This is used to specify the XML element name to use for each item in a collection.
+
+
+
+
+ Creates an instance of the attribute.
+
+ The XML element name to use for each item in the collection.
+
+
+
+ The XML element name to use for each item in the collection.
+
+
+
+
+ This is used to specify the type to use when deserializing this object at runtime.
+
+
+
+
+ Creates an instance of the attribute.
+
+ The name of the type to use at runtime.
+
+
+
+ The name of the type to use at runtime.
+
+
+
+
+ This is used to specify the version when deserializing this object at runtime.
+
+
+
+
+ Creates an instance of the attribute.
+
+ The version passed to the type at runtime.
+
+
+
+ The version passed to the type at runtime.
+
+
+
+
+ Removes Version, Culture and PublicKeyToken from a type string.
+
+
+ Supports multiple generic types (e.g. Dictionary<TKey,TValue>) and nested generic types (e.g. List<List<int>>).
+
+
+ A
+
+
+ A
+
+
+
+
+ Adds the type creator.
+
+
+ Type string.
+
+
+ Create function.
+
+
+
+
+ Defines the buffers for clearing when calling operation.
+
+
+
+
+ Color buffer.
+
+
+
+
+ Depth buffer.
+
+
+
+
+ Stencil buffer.
+
+
+
+
+ Defines the color channels for render target blending operations.
+
+
+
+
+ No channels selected.
+
+
+
+
+ Red channel selected.
+
+
+
+
+ Green channel selected.
+
+
+
+
+ Blue channel selected.
+
+
+
+
+ Alpha channel selected.
+
+
+
+
+ All channels selected.
+
+
+
+
+ Defines the faces in a cube map for the class.
+
+
+
+
+ Positive X face in the cube map.
+
+
+
+
+ Negative X face in the cube map.
+
+
+
+
+ Positive Y face in the cube map.
+
+
+
+
+ Negative Y face in the cube map.
+
+
+
+
+ Positive Z face in the cube map.
+
+
+
+
+ Negative Z face in the cube map.
+
+
+
+
+ The settings used in creation of the graphics device.
+ See .
+
+
+
+
+ The graphics adapter on which the graphics device will be created.
+
+
+ This is only valid on desktop systems where multiple graphics
+ adapters are possible. Defaults to .
+
+
+
+
+ The requested graphics device feature set.
+
+
+
+
+ The settings that define how graphics will be presented to the display.
+
+
+
+
+ This method is used by MonoGame Android to adjust the game's drawn to area to fill
+ as much of the screen as possible whilst retaining the aspect ratio inferred from
+ aspectRatio = (PreferredBackBufferWidth / PreferredBackBufferHeight)
+
+ NOTE: this is a hack that should be removed if proper back buffer to screen scaling
+ is implemented. To disable it's effect, in the game's constructor use:
+
+ graphics.IsFullScreen = true;
+ graphics.PreferredBackBufferHeight = Window.ClientBounds.Height;
+ graphics.PreferredBackBufferWidth = Window.ClientBounds.Width;
+
+
+
+
+
+ Gets or sets the boolean which defines how window switches from windowed to fullscreen state.
+ "Hard" mode(true) is slow to switch, but more effecient for performance, while "soft" mode(false) is vice versa.
+ The default value is true.
+
+
+
+
+ A snapshot of rendering statistics from to be used for runtime debugging and profiling.
+
+
+
+
+ Returns the difference between two sets of metrics.
+
+ Source on the left of the sub sign.
+ Source on the right of the sub sign.
+ Difference between two sets of metrics.
+
+
+
+ Returns the combination of two sets of metrics.
+
+ Source on the left of the add sign.
+ Source on the right of the add sign.
+ Combination of two sets of metrics.
+
+
+
+ Number of times Clear was called.
+
+
+
+
+ Number of times Draw was called.
+
+
+
+
+ Number of times the pixel shader was changed on the GPU.
+
+
+
+
+ Number of rendered primitives.
+
+
+
+
+ Number of sprites and text characters rendered via .
+
+
+
+
+ Number of times a target was changed on the GPU.
+
+
+
+
+ Number of times a texture was changed on the GPU.
+
+
+
+
+ Number of times the vertex shader was changed on the GPU.
+
+
+
+
+ Built-in effect that supports alpha testing.
+
+
+
+
+ Called before the device is reset. Allows graphics resources to
+ invalidate their state so they can be recreated after the device reset.
+ Warning: This may be called after a call to Dispose() up until
+ the resource is garbage collected.
+
+
+
+
+ The method that derived classes should override to implement disposing of managed and native resources.
+
+ True if managed objects should be disposed.
+ Native resources should always be released regardless of the value of the disposing parameter.
+
+
+
+ Clone the source into this existing object.
+
+
+ Note this is not overloaded in derived classes on purpose. This is
+ only a reason this exists is for caching effects.
+
+ The source effect to clone from.
+
+
+
+ Returns a deep copy of the effect where immutable types
+ are shared and mutable data is duplicated.
+
+
+ See "Cloning an Effect" in MSDN:
+ http://msdn.microsoft.com/en-us/library/windows/desktop/ff476138(v=vs.85).aspx
+
+ The cloned effect.
+
+
+
+ The current MonoGame Effect file format versions
+ used to detect old packaged content.
+
+
+ We should avoid supporting old versions for very long if at all
+ as users should be rebuilding content when packaging their game.
+
+
+
+
+ The MonoGame Effect file format header identifier ("MGFX").
+
+
+
+
+ The common effect fog rendering parameters.
+
+
+
+
+ The floating point fog color.
+
+
+
+
+ Used to toggle the rendering of fog.
+
+
+
+
+ The world space distance from the camera at which fogging is fully applied.
+
+
+ FogEnd should be greater than FogStart. If FogEnd and FogStart
+ are the same value everything is fully fogged.
+
+
+
+
+ The world space distance from the camera at which fogging begins.
+
+
+ FogStart should be less than FogEnd. If FogEnd and FogStart are the
+ same value everything is fully fogged.
+
+
+
+
+ Creates a new AlphaTestEffect with default parameter settings.
+
+
+
+
+ Creates a new AlphaTestEffect by cloning parameter settings from an existing instance.
+
+
+
+
+ Creates a clone of the current AlphaTestEffect instance.
+
+
+
+
+ Looks up shortcut references to our effect parameters.
+
+
+
+
+ Lazily computes derived parameter values immediately before applying the effect.
+
+
+
+
+ Gets or sets the world matrix.
+
+
+
+
+ Gets or sets the view matrix.
+
+
+
+
+ Gets or sets the projection matrix.
+
+
+
+
+ Gets or sets the material diffuse color (range 0 to 1).
+
+
+
+
+ Gets or sets the material alpha.
+
+
+
+
+ Gets or sets the fog enable flag.
+
+
+
+
+ Gets or sets the fog start distance.
+
+
+
+
+ Gets or sets the fog end distance.
+
+
+
+
+ Gets or sets the fog color.
+
+
+
+
+ Gets or sets the current texture.
+
+
+
+
+ Gets or sets whether vertex color is enabled.
+
+
+
+
+ Gets or sets the alpha compare function (default Greater).
+
+
+
+
+ Gets or sets the reference alpha value (default 0).
+
+
+
+
+ Built-in effect that supports optional texturing, vertex coloring, fog, and lighting.
+
+
+
+
+ The common effect light rendering parameters.
+
+
+
+
+ Initializes the lights to the standard key/fill/back lighting rig.
+
+
+
+
+ The floating point ambient light color.
+
+
+
+
+ Returns the first directional light.
+
+
+
+
+ Returns the second directional light.
+
+
+
+
+ Returns the third directional light.
+
+
+
+
+ Toggles the rendering of lighting.
+
+
+
+
+ Creates a new BasicEffect with default parameter settings.
+
+
+
+
+ Creates a new BasicEffect by cloning parameter settings from an existing instance.
+
+
+
+
+ Creates a clone of the current BasicEffect instance.
+
+
+
+
+
+
+
+ Looks up shortcut references to our effect parameters.
+
+
+
+
+ Lazily computes derived parameter values immediately before applying the effect.
+
+
+
+
+ Gets or sets the world matrix.
+
+
+
+
+ Gets or sets the view matrix.
+
+
+
+
+ Gets or sets the projection matrix.
+
+
+
+
+ Gets or sets the material diffuse color (range 0 to 1).
+
+
+
+
+ Gets or sets the material emissive color (range 0 to 1).
+
+
+
+
+ Gets or sets the material specular color (range 0 to 1).
+
+
+
+
+ Gets or sets the material specular power.
+
+
+
+
+ Gets or sets the material alpha.
+
+
+
+
+
+
+
+ Gets or sets the per-pixel lighting prefer flag.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets or sets whether texturing is enabled.
+
+
+
+
+ Gets or sets the current texture.
+
+
+
+
+ Gets or sets whether vertex color is enabled.
+
+
+
+
+ Built-in effect that supports two-layer multitexturing.
+
+
+
+
+ Creates a new DualTextureEffect with default parameter settings.
+
+
+
+
+ Creates a new DualTextureEffect by cloning parameter settings from an existing instance.
+
+
+
+
+ Creates a clone of the current DualTextureEffect instance.
+
+
+
+
+ Looks up shortcut references to our effect parameters.
+
+
+
+
+ Lazily computes derived parameter values immediately before applying the effect.
+
+
+
+
+ Gets or sets the world matrix.
+
+
+
+
+ Gets or sets the view matrix.
+
+
+
+
+ Gets or sets the projection matrix.
+
+
+
+
+ Gets or sets the material diffuse color (range 0 to 1).
+
+
+
+
+ Gets or sets the material alpha.
+
+
+
+
+ Gets or sets the fog enable flag.
+
+
+
+
+ Gets or sets the fog start distance.
+
+
+
+
+ Gets or sets the fog end distance.
+
+
+
+
+ Gets or sets the fog color.
+
+
+
+
+ Gets or sets the current base texture.
+
+
+
+
+ Gets or sets the current overlay texture.
+
+
+
+
+ Gets or sets whether vertex color is enabled.
+
+
+
+
+ Track which effect parameters need to be recomputed during the next OnApply.
+
+
+
+
+ Helper code shared between the various built-in effects.
+
+
+
+
+ Sets up the standard key/fill/back lighting rig.
+
+
+
+
+ Lazily recomputes the world+view+projection matrix and
+ fog vector based on the current effect parameter settings.
+
+
+
+
+ Sets a vector which can be dotted with the object space vertex position to compute fog amount.
+
+
+
+
+ Lazily recomputes the world inverse transpose matrix and
+ eye position based on the current effect parameter settings.
+
+
+
+
+ Sets the diffuse/emissive/alpha material color parameters.
+
+
+
+
+ Defines classes for effect parameters and shader constants.
+
+
+
+
+ Scalar class type.
+
+
+
+
+ Vector class type.
+
+
+
+
+ Matrix class type.
+
+
+
+
+ Class type for textures, shaders or strings.
+
+
+
+
+ Structure class type.
+
+
+
+
+ The next state key used when an effect parameter
+ is updated by any of the 'set' methods.
+
+
+
+
+ The current state key which is used to detect
+ if the parameter value has been changed.
+
+
+
+
+ Property referenced by the DebuggerDisplayAttribute.
+
+
+
+
+ Defines types for effect parameters and shader constants.
+
+
+
+
+ Pointer to void type.
+
+
+
+
+ Boolean type. Any non-zero will be true; false otherwise.
+
+
+
+
+ 32-bit integer type.
+
+
+
+
+ Float type.
+
+
+
+
+ String type.
+
+
+
+
+ Any texture type.
+
+
+
+
+ 1D-texture type.
+
+
+
+
+ 2D-texture type.
+
+
+
+
+ 3D-texture type.
+
+
+
+
+ Cubic texture type.
+
+
+
+
+ Internal helper for accessing the bytecode for stock effects.
+
+
+
+
+ Built-in effect that supports environment mapping.
+
+
+
+
+ Creates a new EnvironmentMapEffect with default parameter settings.
+
+
+
+
+ Creates a new EnvironmentMapEffect by cloning parameter settings from an existing instance.
+
+
+
+
+ Creates a clone of the current EnvironmentMapEffect instance.
+
+
+
+
+ Sets up the standard key/fill/back lighting rig.
+
+
+
+
+ Looks up shortcut references to our effect parameters.
+
+
+
+
+ Lazily computes derived parameter values immediately before applying the effect.
+
+
+
+
+ Gets or sets the world matrix.
+
+
+
+
+ Gets or sets the view matrix.
+
+
+
+
+ Gets or sets the projection matrix.
+
+
+
+
+ Gets or sets the material diffuse color (range 0 to 1).
+
+
+
+
+ Gets or sets the material emissive color (range 0 to 1).
+
+
+
+
+ Gets or sets the material alpha.
+
+
+
+
+ Gets or sets the ambient light color (range 0 to 1).
+
+
+
+
+ Gets the first directional light.
+
+
+
+
+ Gets the second directional light.
+
+
+
+
+ Gets the third directional light.
+
+
+
+
+ Gets or sets the fog enable flag.
+
+
+
+
+ Gets or sets the fog start distance.
+
+
+
+
+ Gets or sets the fog end distance.
+
+
+
+
+ Gets or sets the fog color.
+
+
+
+
+ Gets or sets the current texture.
+
+
+
+
+ Gets or sets the current environment map texture.
+
+
+
+
+ Gets or sets the amount of the environment map RGB that will be blended over
+ the base texture. Range 0 to 1, default 1. If set to zero, the RGB channels
+ of the environment map will completely ignored (but the environment map alpha
+ may still be visible if EnvironmentMapSpecular is greater than zero).
+
+
+
+
+ Gets or sets the amount of the environment map alpha channel that will
+ be added to the base texture. Range 0 to 1, default 0. This can be used
+ to implement cheap specular lighting, by encoding one or more specular
+ highlight patterns into the environment map alpha channel, then setting
+ EnvironmentMapSpecular to the desired specular light color.
+
+
+
+
+ Gets or sets the Fresnel factor used for the environment map blending.
+ Higher values make the environment map only visible around the silhouette
+ edges of the object, while lower values make it visible everywhere.
+ Setting this property to 0 disables Fresnel entirely, making the
+ environment map equally visible regardless of view angle. The default is
+ 1. Fresnel only affects the environment map RGB (the intensity of which is
+ controlled by EnvironmentMapAmount). The alpha contribution (controlled by
+ EnvironmentMapSpecular) is not affected by the Fresnel setting.
+
+
+
+
+ This effect requires lighting, so we explicitly implement
+ IEffectLights.LightingEnabled, and do not allow turning it off.
+
+
+
+
+ Built-in effect for rendering skinned character models.
+
+
+
+
+ Sets an array of skinning bone transform matrices.
+
+
+
+
+ Gets a copy of the current skinning bone transform matrices.
+
+
+
+
+ Creates a new SkinnedEffect with default parameter settings.
+
+
+
+
+ Creates a new SkinnedEffect by cloning parameter settings from an existing instance.
+
+
+
+
+ Creates a clone of the current SkinnedEffect instance.
+
+
+
+
+ Sets up the standard key/fill/back lighting rig.
+
+
+
+
+ Looks up shortcut references to our effect parameters.
+
+
+
+
+ Lazily computes derived parameter values immediately before applying the effect.
+
+
+
+
+ Gets or sets the world matrix.
+
+
+
+
+ Gets or sets the view matrix.
+
+
+
+
+ Gets or sets the projection matrix.
+
+
+
+
+ Gets or sets the material diffuse color (range 0 to 1).
+
+
+
+
+ Gets or sets the material emissive color (range 0 to 1).
+
+
+
+
+ Gets or sets the material specular color (range 0 to 1).
+
+
+
+
+ Gets or sets the material specular power.
+
+
+
+
+ Gets or sets the material alpha.
+
+
+
+
+ Gets or sets the per-pixel lighting prefer flag.
+
+
+
+
+ Gets or sets the ambient light color (range 0 to 1).
+
+
+
+
+ Gets the first directional light.
+
+
+
+
+ Gets the second directional light.
+
+
+
+
+ Gets the third directional light.
+
+
+
+
+ Gets or sets the fog enable flag.
+
+
+
+
+ Gets or sets the fog start distance.
+
+
+
+
+ Gets or sets the fog end distance.
+
+
+
+
+ Gets or sets the fog color.
+
+
+
+
+ Gets or sets the current texture.
+
+
+
+
+ Gets or sets the number of skinning weights to evaluate for each vertex (1, 2, or 4).
+
+
+
+
+ This effect requires lighting, so we explicitly implement
+ IEffectLights.LightingEnabled, and do not allow turning it off.
+
+
+
+
+ The default effect used by SpriteBatch.
+
+
+
+
+ Creates a new SpriteEffect.
+
+
+
+
+ Creates a new SpriteEffect by cloning parameter settings from an existing instance.
+
+
+
+
+ Creates a clone of the current SpriteEffect instance.
+
+
+
+
+ Looks up shortcut references to our effect parameters.
+
+
+
+
+ Lazily computes derived parameter values immediately before applying the effect.
+
+
+
+
+ Used to request creation of the reference graphics device,
+ or the default hardware accelerated device (when set to false).
+
+
+ This only works on DirectX platforms where a reference graphics
+ device is available and must be defined before the graphics device
+ is created. It defaults to false.
+
+
+
+
+ Used to request creation of a specific kind of driver.
+
+
+ These values only work on DirectX platforms and must be defined before the graphics device
+ is created. by default.
+
+
+
+
+ Gets a indicating whether
+ has a
+ Width:Height ratio corresponding to a widescreen .
+ Common widescreen modes include 16:9, 16:10 and 2:1.
+
+
+
+
+ Defines the driver type for graphics adapter. Usable only on DirectX platforms for now.
+
+
+
+
+ Hardware device been used for rendering. Maximum speed and performance.
+
+
+
+
+ Emulates the hardware device on CPU. Slowly, only for testing.
+
+
+
+
+ Useful when acceleration does not work.
+
+
+
+
+ Provides information about the capabilities of the
+ current graphics device. A very useful thread for investigating GL extenion names
+ http://stackoverflow.com/questions/3881197/opengl-es-2-0-extensions-on-android-devices
+
+
+
+
+ Whether the device fully supports non power-of-two textures, including
+ mip maps and wrap modes other than CLAMP_TO_EDGE
+
+
+
+
+ Whether the device supports anisotropic texture filtering
+
+
+
+
+ Gets the support for DXT1
+
+
+
+
+ Gets the support for S3TC (DXT1, DXT3, DXT5)
+
+
+
+
+ Gets the support for PVRTC
+
+
+
+
+ Gets the support for ETC1
+
+
+
+
+ Gets the support for ATITC
+
+
+
+
+ True, if sRGB is supported. On Direct3D platforms, this is always true
.
+ On OpenGL platforms, it is true
if both framebuffer sRGB
+ and texture sRGB are supported.
+
+
+
+
+ True, if GL_ARB_framebuffer_object is supported; false otherwise.
+
+
+
+
+ True, if GL_EXT_framebuffer_object is supported; false otherwise.
+
+
+
+
+ Gets the max texture anisotropy. This value typically lies
+ between 0 and 16, where 0 means anisotropic filtering is not
+ supported.
+
+
+
+
+ The active vertex shader.
+
+
+
+
+ The active pixel shader.
+
+
+
+
+ The cache of effects from unique byte streams.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The graphics adapter.
+ The graphics profile.
+ The presentation options.
+
+ is .
+
+
+
+
+ Trigger the DeviceResetting event
+ Currently internal to allow the various platforms to send the event at the appropriate time.
+
+
+
+
+ Trigger the DeviceReset event to allow games to be notified of a device reset.
+ Currently internal to allow the various platforms to send the event at the appropriate time.
+
+
+
+
+ Draw geometry by indexing into the vertex buffer.
+
+ The type of primitives in the index buffer.
+ Used to offset the vertex range indexed from the vertex buffer.
+ This is unused and remains here only for XNA API compatibility.
+ This is unused and remains here only for XNA API compatibility.
+ The index within the index buffer to start drawing from.
+ The number of primitives to render from the index buffer.
+ Note that minVertexIndex and numVertices are unused in MonoGame and will be ignored.
+
+
+
+ Draw geometry by indexing into the vertex buffer.
+
+ The type of primitives in the index buffer.
+ Used to offset the vertex range indexed from the vertex buffer.
+ The index within the index buffer to start drawing from.
+ The number of primitives to render from the index buffer.
+
+
+
+ Draw primitives of the specified type from the data in an array of vertices without indexing.
+
+ The type of the vertices.
+ The type of primitives to draw with the vertices.
+ An array of vertices to draw.
+ The index in the array of the first vertex that should be rendered.
+ The number of primitives to draw.
+ The will be found by getting
+ from an instance of and cached for subsequent calls.
+
+
+
+ Draw primitives of the specified type from the data in the given array of vertices without indexing.
+
+ The type of the vertices.
+ The type of primitives to draw with the vertices.
+ An array of vertices to draw.
+ The index in the array of the first vertex that should be rendered.
+ The number of primitives to draw.
+ The layout of the vertices.
+
+
+
+ Draw primitives of the specified type from the currently bound vertexbuffers without indexing.
+
+ The type of primitives to draw.
+ Index of the vertex to start at.
+ The number of primitives to draw.
+
+
+
+ Draw primitives of the specified type by indexing into the given array of vertices with 16-bit indices.
+
+ The type of the vertices.
+ The type of primitives to draw with the vertices.
+ An array of vertices to draw.
+ The index in the array of the first vertex to draw.
+ The index in the array of indices of the first index to use
+ The number of primitives to draw.
+ The number of vertices to draw.
+ The index data.
+ The will be found by getting
+ from an instance of and cached for subsequent calls.
+ All indices in the vertex buffer are interpreted relative to the specified .
+ For example a value of zero in the array of indices points to the vertex at index
+ in the array of vertices.
+
+
+
+ Draw primitives of the specified type by indexing into the given array of vertices with 16-bit indices.
+
+ The type of the vertices.
+ The type of primitives to draw with the vertices.
+ An array of vertices to draw.
+ The index in the array of the first vertex to draw.
+ The index in the array of indices of the first index to use
+ The number of primitives to draw.
+ The number of vertices to draw.
+ The index data.
+ The layout of the vertices.
+ All indices in the vertex buffer are interpreted relative to the specified .
+ For example a value of zero in the array of indices points to the vertex at index
+ in the array of vertices.
+
+
+
+ Draw primitives of the specified type by indexing into the given array of vertices with 32-bit indices.
+
+ The type of the vertices.
+ The type of primitives to draw with the vertices.
+ An array of vertices to draw.
+ The index in the array of the first vertex to draw.
+ The index in the array of indices of the first index to use
+ The number of primitives to draw.
+ The number of vertices to draw.
+ The index data.
+ The will be found by getting
+ from an instance of and cached for subsequent calls.
+ All indices in the vertex buffer are interpreted relative to the specified .
+ For example a value of zero in the array of indices points to the vertex at index
+ in the array of vertices.
+
+
+
+ Draw primitives of the specified type by indexing into the given array of vertices with 32-bit indices.
+
+ The type of the vertices.
+ The type of primitives to draw with the vertices.
+ An array of vertices to draw.
+ The index in the array of the first vertex to draw.
+ The index in the array of indices of the first index to use
+ The number of primitives to draw.
+ The number of vertices to draw.
+ The index data.
+ The layout of the vertices.
+ All indices in the vertex buffer are interpreted relative to the specified .
+ For example value of zero in the array of indices points to the vertex at index
+ in the array of vertices.
+
+
+
+ Draw instanced geometry from the bound vertex buffers and index buffer.
+
+ The type of primitives in the index buffer.
+ Used to offset the vertex range indexed from the vertex buffer.
+ This is unused and remains here only for XNA API compatibility.
+ This is unused and remains here only for XNA API compatibility.
+ The index within the index buffer to start drawing from.
+ The number of primitives in a single instance.
+ The number of instances to render.
+ Note that minVertexIndex and numVertices are unused in MonoGame and will be ignored.
+
+
+
+ Draw instanced geometry from the bound vertex buffers and index buffer.
+
+ The type of primitives in the index buffer.
+ Used to offset the vertex range indexed from the vertex buffer.
+ The index within the index buffer to start drawing from.
+ The number of primitives in a single instance.
+ The number of instances to render.
+ Draw geometry with data from multiple bound vertex streams at different frequencies.
+
+
+
+ Adds a dispose action to the list of pending dispose actions. These are executed at the end of each call to Present().
+ This allows GL resources to be disposed from other threads, such as the finalizer.
+
+ The action to execute for the dispose.
+
+
+
+ Activates the Current Vertex/Pixel shader pair into a program.
+
+
+
+
+ The rendering information for debugging and profiling.
+ The metrics are reset every frame after draw within .
+
+
+
+
+ The color used as blend factor when alpha blending.
+
+
+ When only changing BlendFactor, use this rather than to
+ only update BlendFactor so the whole BlendState does not have to be updated.
+
+
+
+
+ Describes the status of the .
+
+
+
+
+ The device is normal.
+
+
+
+
+ The device has been lost.
+
+
+
+
+ The device has not been reset.
+
+
+
+
+ Defines a set of graphic capabilities.
+
+
+
+
+ Use a limited set of graphic features and capabilities, allowing the game to support the widest variety of devices.
+
+
+
+
+ Use the largest available set of graphic features and capabilities to target devices, that have more enhanced graphic capabilities.
+
+
+
+
+ Represents a render target.
+
+
+
+
+ Gets the width of the render target in pixels
+
+ The width of the render target in pixels.
+
+
+
+ Gets the height of the render target in pixels
+
+ The height of the render target in pixels.
+
+
+
+ Gets the usage mode of the render target.
+
+ The usage mode of the render target.
+
+
+
+ Represents a set of bones associated with a model.
+
+
+
+
+ Finds a bone with a given name if it exists in the collection.
+
+ The name of the bone to find.
+ The bone named boneName, if found.
+ true if the bone was found
+
+
+
+ Returns a ModelMeshCollection.Enumerator that can iterate through a ModelMeshCollection.
+
+
+
+
+
+ Retrieves a ModelBone from the collection, given the name of the bone.
+
+ The name of the bone to retrieve.
+
+
+
+ Provides the ability to iterate through the bones in an ModelMeshCollection.
+
+
+
+
+ Advances the enumerator to the next element of the ModelMeshCollection.
+
+
+
+
+ Immediately releases the unmanaged resources used by this object.
+
+
+
+
+ Gets the current element in the ModelMeshCollection.
+
+
+
+
+ Transform of this node from the root of the model not from the parent
+
+
+
+
+ A basic 3D model with per mesh parent bones.
+
+
+
+
+ Constructs a model.
+
+ A valid reference to .
+ The collection of bones.
+ The collection of meshes.
+
+ is null.
+
+
+ is null.
+
+
+ is null.
+
+
+
+
+ Draws the model meshes.
+
+ The world transform.
+ The view transform.
+ The projection transform.
+
+
+
+ Copies bone transforms relative to all parent bones of the each bone from this model to a given array.
+
+ The array receiving the transformed bones.
+
+
+
+ Copies bone transforms relative to bone from a given array to this model.
+
+ The array of prepared bone transform data.
+
+ is null.
+
+
+ is invalid.
+
+
+
+
+ Copies bone transforms relative to bone from this model to a given array.
+
+ The array receiving the transformed bones.
+
+ is null.
+
+
+ is invalid.
+
+
+
+
+ A collection of objects which describe how each mesh in the
+ mesh collection for this model relates to its parent mesh.
+
+
+
+
+ A collection of objects which compose the model. Each
+ in a model may be moved independently and may be composed of multiple materials
+ identified as objects.
+
+
+
+
+ Root bone for this model.
+
+
+
+
+ Custom attached object.
+
+ Skinning data is example of attached object for model.
+
+
+
+
+
+ Represents a collection of ModelMesh objects.
+
+
+
+
+ Finds a mesh with a given name if it exists in the collection.
+
+ The name of the mesh to find.
+ The mesh named meshName, if found.
+ true if a mesh was found
+
+
+
+ Returns a ModelMeshCollection.Enumerator that can iterate through a ModelMeshCollection.
+
+
+
+
+
+ Retrieves a ModelMesh from the collection, given the name of the mesh.
+
+ The name of the mesh to retrieve.
+
+
+
+ Provides the ability to iterate through the bones in an ModelMeshCollection.
+
+
+
+
+ Advances the enumerator to the next element of the ModelMeshCollection.
+
+
+
+
+ Immediately releases the unmanaged resources used by this object.
+
+
+
+
+ Gets the current element in the ModelMeshCollection.
+
+
+
+
+ Packed vector type containing a single 8 bit normalized W values that is ranging from 0 to 1.
+
+
+
+
+ Creates a new instance of Alpha8.
+
+ The alpha component
+
+
+
+ Gets the packed vector in float format.
+
+ The packed vector in Vector3 format
+
+
+
+ Sets the packed vector from a Vector4.
+
+ Vector containing the components.
+
+
+
+ Gets the packed vector in Vector4 format.
+
+ The packed vector in Vector4 format
+
+
+
+ Compares an object with the packed vector.
+
+ The object to compare.
+ True if the object is equal to the packed vector.
+
+
+
+ Compares another Alpha8 packed vector with the packed vector.
+
+ The Alpha8 packed vector to compare.
+ True if the packed vectors are equal.
+
+
+
+ Gets a string representation of the packed vector.
+
+ A string representation of the packed vector.
+
+
+
+ Gets a hash code of the packed vector.
+
+ The hash code for the packed vector.
+
+
+
+ Gets and sets the packed value.
+
+
+
+
+ Packed vector type containing unsigned normalized values ranging from 0 to 1. The x and z components use 5 bits, and the y component uses 6 bits.
+
+
+
+
+ Creates a new instance of Bgr565.
+
+ The x component
+ The y component
+ The z component
+
+
+
+ Creates a new instance of Bgr565.
+
+ Vector containing the components for the packed vector.
+
+
+
+ Gets the packed vector in Vector3 format.
+
+ The packed vector in Vector3 format
+
+
+
+ Sets the packed vector from a Vector4.
+
+ Vector containing the components.
+
+
+
+ Gets the packed vector in Vector4 format.
+
+ The packed vector in Vector4 format
+
+
+
+ Compares an object with the packed vector.
+
+ The object to compare.
+ true if the object is equal to the packed vector.
+
+
+
+ Compares another Bgr565 packed vector with the packed vector.
+
+ The Bgr565 packed vector to compare.
+ true if the packed vectors are equal.
+
+
+
+ Gets a string representation of the packed vector.
+
+ A string representation of the packed vector.
+
+
+
+ Gets a hash code of the packed vector.
+
+ The hash code for the packed vector.
+
+
+
+ Gets and sets the packed value.
+
+
+
+
+ Packed vector type containing unsigned normalized values, ranging from 0 to 1, using 4 bits each for x, y, z, and w.
+
+
+
+
+ Creates a new instance of Bgra4444.
+
+ The x component
+ The y component
+ The z component
+ The w component
+
+
+
+ Creates a new instance of Bgra4444.
+
+ Vector containing the components for the packed vector.
+
+
+
+ Gets the packed vector in Vector4 format.
+
+ The packed vector in Vector4 format
+
+
+
+ Sets the packed vector from a Vector4.
+
+ Vector containing the components.
+
+
+
+ Compares an object with the packed vector.
+
+ The object to compare.
+ true if the object is equal to the packed vector.
+
+
+
+ Compares another Bgra4444 packed vector with the packed vector.
+
+ The Bgra4444 packed vector to compare.
+ true if the packed vectors are equal.
+
+
+
+ Gets a string representation of the packed vector.
+
+ A string representation of the packed vector.
+
+
+
+ Gets a hash code of the packed vector.
+
+ The hash code for the packed vector.
+
+
+
+ Gets and sets the packed value.
+
+
+
+
+ Packed vector type containing unsigned normalized values ranging from 0 to 1.
+ The x , y and z components use 5 bits, and the w component uses 1 bit.
+
+
+
+
+ Creates a new instance of Bgra5551.
+
+ The x component
+ The y component
+ The z component
+ The w component
+
+
+
+ Creates a new instance of Bgra5551.
+
+
+ Vector containing the components for the packed vector.
+
+
+
+
+ Gets the packed vector in Vector4 format.
+
+ The packed vector in Vector4 format
+
+
+
+ Sets the packed vector from a Vector4.
+
+ Vector containing the components.
+
+
+
+ Compares an object with the packed vector.
+
+ The object to compare.
+ True if the object is equal to the packed vector.
+
+
+
+ Compares another Bgra5551 packed vector with the packed vector.
+
+ The Bgra5551 packed vector to compare.
+ True if the packed vectors are equal.
+
+
+
+ Gets a string representation of the packed vector.
+
+ A string representation of the packed vector.
+
+
+
+ Gets a hash code of the packed vector.
+
+ The hash code for the packed vector.
+
+
+
+ Gets and sets the packed value.
+
+
+
+
+ Packed vector type containing four 8-bit unsigned integer values, ranging from 0 to 255.
+
+
+
+
+ Initializes a new instance of the Byte4 class.
+
+ A vector containing the initial values for the components of the Byte4 structure.
+
+
+
+ Initializes a new instance of the Byte4 class.
+
+ Initial value for the x component.
+ Initial value for the y component.
+ Initial value for the z component.
+ Initial value for the w component.
+
+
+
+ Compares the current instance of a class to another instance to determine whether they are different.
+
+ The object to the left of the equality operator.
+ The object to the right of the equality operator.
+ true if the objects are different; false otherwise.
+
+
+
+ Compares the current instance of a class to another instance to determine whether they are the same.
+
+ The object to the left of the equality operator.
+ The object to the right of the equality operator.
+ true if the objects are the same; false otherwise.
+
+
+
+ Returns a value that indicates whether the current instance is equal to a specified object.
+
+ The object with which to make the comparison.
+ true if the current instance is equal to the specified object; false otherwise.
+
+
+
+ Returns a value that indicates whether the current instance is equal to a specified object.
+
+ The object with which to make the comparison.
+ true if the current instance is equal to the specified object; false otherwise.
+
+
+
+ Gets the hash code for the current instance.
+
+ Hash code for the instance.
+
+
+
+ Returns a string representation of the current instance.
+
+ String that represents the object.
+
+
+
+ Packs a vector into a uint.
+
+ The vector containing the values to pack.
+ The ulong containing the packed values.
+
+
+
+ Sets the packed representation from a Vector4.
+
+ The vector to create the packed representation from.
+
+
+
+ Expands the packed representation into a Vector4.
+
+ The expanded vector.
+
+
+
+ Directly gets or sets the packed representation of the value.
+
+ The packed representation of the value.
+
+
+
+ Packed vector type containing four 16-bit floating-point values.
+
+
+
+
+ Initializes a new instance of the HalfVector4 structure.
+
+ Initial value for the x component.
+ Initial value for the y component.
+ Initial value for the z component.
+ Initial value for the q component.
+
+
+
+ Initializes a new instance of the HalfVector4 structure.
+
+ A vector containing the initial values for the components of the HalfVector4 structure.
+
+
+
+ Sets the packed representation from a Vector4.
+
+ The vector to create the packed representation from.
+
+
+
+ Packs a vector into a ulong.
+
+ The vector containing the values to pack.
+ The ulong containing the packed values.
+
+
+
+ Expands the packed representation into a Vector4.
+
+ The expanded vector.
+
+
+
+ Returns a string representation of the current instance.
+
+ String that represents the object.
+
+
+
+ Gets the hash code for the current instance.
+
+ Hash code for the instance.
+
+
+
+ Returns a value that indicates whether the current instance is equal to a specified object.
+
+ The object with which to make the comparison.
+ true if the current instance is equal to the specified object; false otherwise.
+
+
+
+ Returns a value that indicates whether the current instance is equal to a specified object.
+
+ The object with which to make the comparison.
+ true if the current instance is equal to the specified object; false otherwise.
+
+
+
+ Compares the current instance of a class to another instance to determine whether they are the same.
+
+ The object to the left of the equality operator.
+ The object to the right of the equality operator.
+ true if the objects are the same; false otherwise.
+
+
+
+ Compares the current instance of a class to another instance to determine whether they are different.
+
+ The object to the left of the equality operator.
+ The object to the right of the equality operator.
+ true if the objects are different; false otherwise.
+
+
+
+ Directly gets or sets the packed representation of the value.
+
+ The packed representation of the value.
+
+
+
+ Packed vector type containing two 16-bit unsigned normalized values ranging from 0 to 1.
+
+
+
+
+ Creates a new instance of Rg32.
+
+ The x component
+ The y component
+
+
+
+ Creates a new instance of Rg32.
+
+
+ Vector containing the components for the packed vector.
+
+
+
+
+ Gets the packed vector in Vector2 format.
+
+ The packed vector in Vector2 format
+
+
+
+ Sets the packed vector from a Vector4.
+
+ Vector containing the components.
+
+
+
+ Gets the packed vector in Vector4 format.
+
+ The packed vector in Vector4 format
+
+
+
+ Compares an object with the packed vector.
+
+ The object to compare.
+ True if the object is equal to the packed vector.
+
+
+
+ Compares another Rg32 packed vector with the packed vector.
+
+ The Rg32 packed vector to compare.
+ True if the packed vectors are equal.
+
+
+
+ Gets a string representation of the packed vector.
+
+ A string representation of the packed vector.
+
+
+
+ Gets a hash code of the packed vector.
+
+ The hash code for the packed vector.
+
+
+
+ Gets and sets the packed value.
+
+
+
+
+ Packed vector type containing four 16-bit unsigned normalized values ranging from 0 to 1.
+
+
+
+
+ Creates a new instance of Rgba64.
+
+ The x component
+ The y component
+ The z component
+ The w component
+
+
+
+ Creates a new instance of Rgba64.
+
+
+ Vector containing the components for the packed vector.
+
+
+
+
+ Gets the packed vector in Vector4 format.
+
+ The packed vector in Vector4 format
+
+
+
+ Sets the packed vector from a Vector4.
+
+ Vector containing the components.
+
+
+
+ Compares an object with the packed vector.
+
+ The object to compare.
+ True if the object is equal to the packed vector.
+
+
+
+ Compares another Rgba64 packed vector with the packed vector.
+
+ The Rgba64 packed vector to compare.
+ True if the packed vectors are equal.
+
+
+
+ Gets a string representation of the packed vector.
+
+ A string representation of the packed vector.
+
+
+
+ Gets a hash code of the packed vector.
+
+ The hash code for the packed vector.
+
+
+
+ Gets and sets the packed value.
+
+
+
+
+ Packed vector type containing unsigned normalized values ranging from 0 to 1.
+ The x, y and z components use 10 bits, and the w component uses 2 bits.
+
+
+
+
+ Creates a new instance of Rgba1010102.
+
+ The x component
+ The y component
+ The z component
+ The w component
+
+
+
+ Creates a new instance of Rgba1010102.
+
+
+ Vector containing the components for the packed vector.
+
+
+
+
+ Gets the packed vector in Vector4 format.
+
+ The packed vector in Vector4 format
+
+
+
+ Sets the packed vector from a Vector4.
+
+ Vector containing the components.
+
+
+
+ Compares an object with the packed vector.
+
+ The object to compare.
+ True if the object is equal to the packed vector.
+
+
+
+ Compares another Rgba1010102 packed vector with the packed vector.
+
+ The Rgba1010102 packed vector to compare.
+ True if the packed vectors are equal.
+
+
+
+ Gets a string representation of the packed vector.
+
+ A string representation of the packed vector.
+
+
+
+ Gets a hash code of the packed vector.
+
+ The hash code for the packed vector.
+
+
+
+ Gets and sets the packed value.
+
+
+
+
+ Packed vector type containing four 16-bit signed integer values.
+
+
+
+
+ Initializes a new instance of the Short4 class.
+
+ A vector containing the initial values for the components of the Short4 structure.
+
+
+
+ Initializes a new instance of the Short4 class.
+
+ Initial value for the x component.
+ Initial value for the y component.
+ Initial value for the z component.
+ Initial value for the w component.
+
+
+
+ Compares the current instance of a class to another instance to determine whether they are different.
+
+ The object to the left of the equality operator.
+ The object to the right of the equality operator.
+ true if the objects are different; false otherwise.
+
+
+
+ Compares the current instance of a class to another instance to determine whether they are the same.
+
+ The object to the left of the equality operator.
+ The object to the right of the equality operator.
+ true if the objects are the same; false otherwise.
+
+
+
+ Returns a value that indicates whether the current instance is equal to a specified object.
+
+ The object with which to make the comparison.
+ true if the current instance is equal to the specified object; false otherwise.
+
+
+
+ Returns a value that indicates whether the current instance is equal to a specified object.
+
+ The object with which to make the comparison.
+ true if the current instance is equal to the specified object; false otherwise.
+
+
+
+ Gets the hash code for the current instance.
+
+ Hash code for the instance.
+
+
+
+ Returns a string representation of the current instance.
+
+ String that represents the object.
+
+
+
+ Packs a vector into a ulong.
+
+ The vector containing the values to pack.
+ The ulong containing the packed values.
+
+
+
+ Sets the packed representation from a Vector4.
+
+ The vector to create the packed representation from.
+
+
+
+ Expands the packed representation into a Vector4.
+
+ The expanded vector.
+
+
+
+ Directly gets or sets the packed representation of the value.
+
+ The packed representation of the value.
+
+
+
+ Defines how updates the game window.
+
+
+
+
+ Equivalent to .
+
+
+
+
+ The driver waits for the vertical retrace period, before updating window client area. Present operations are not affected more frequently than the screen refresh rate.
+
+
+
+
+ The driver waits for the vertical retrace period, before updating window client area. Present operations are not affected more frequently than every second screen refresh.
+
+
+
+
+ The driver updates the window client area immediately. Present operations might be affected immediately. There is no limit for framerate.
+
+
+
+
+ Gets a unique identifier of this texture for sorting purposes.
+
+
+ For example, this value is used by when drawing with .
+ The value is an implementation detail and may change between application launches or MonoGame versions.
+ It is only guaranteed to stay consistent during application lifetime.
+
+
+
+
+ Creates a new texture of the given size
+
+
+
+
+
+
+
+ Creates a new texture of a given size with a surface format and optional mipmaps
+
+
+
+
+
+
+
+
+
+ Creates a new texture array of a given size with a surface format and optional mipmaps.
+ Throws ArgumentException if the current GraphicsDevice can't work with texture arrays
+
+
+
+
+
+
+
+
+
+
+ Creates a new texture of a given size with a surface format and optional mipmaps.
+
+
+
+
+
+
+
+
+
+
+ Changes the pixels of the texture
+ Throws ArgumentNullException if data is null
+ Throws ArgumentException if arraySlice is greater than 0, and the GraphicsDevice does not support texture arrays
+
+
+ Layer of the texture to modify
+ Index inside the texture array
+ Area to modify
+ New data for the texture
+ Start position of data
+
+
+
+
+ Changes the pixels of the texture
+
+
+ Layer of the texture to modify
+ Area to modify
+ New data for the texture
+ Start position of data
+
+
+
+
+ Changes the texture's pixels
+
+
+ New data for the texture
+ Start position of data
+
+
+
+
+ Changes the texture's pixels
+
+ New data for the texture
+
+
+
+
+ Retrieves the contents of the texture
+ Throws ArgumentException if data is null, data.length is too short or
+ if arraySlice is greater than 0 and the GraphicsDevice doesn't support texture arrays
+
+
+ Layer of the texture
+ Index inside the texture array
+ Area of the texture to retrieve
+ Destination array for the data
+ Starting index of data where to write the pixel data
+ Number of pixels to read
+
+
+
+ Retrieves the contents of the texture
+ Throws ArgumentException if data is null, data.length is too short or
+ if arraySlice is greater than 0 and the GraphicsDevice doesn't support texture arrays
+
+
+ Layer of the texture
+ Area of the texture
+ Destination array for the texture data
+ First position in data where to write the pixel data
+ Number of pixels to read
+
+
+
+ Retrieves the contents of the texture
+ Throws ArgumentException if data is null, data.length is too short or
+ if arraySlice is greater than 0 and the GraphicsDevice doesn't support texture arrays
+
+
+ Destination array for the texture data
+ First position in data where to write the pixel data
+ Number of pixels to read
+
+
+
+ Retrieves the contents of the texture
+ Throws ArgumentException if data is null, data.length is too short or
+ if arraySlice is greater than 0 and the GraphicsDevice doesn't support texture arrays
+
+
+ Destination array for the texture data
+
+
+
+ Creates a Texture2D from a stream, supported formats bmp, gif, jpg, png, tif and dds (only for simple textures).
+ May work with other formats, but will not work with tga files.
+
+
+
+
+
+
+
+ Converts the texture to a JPG image
+
+ Destination for the image
+
+
+
+
+
+ Converts the texture to a PNG image
+
+ Destination for the image
+
+
+
+
+
+ Gets the dimensions of the texture
+
+
+
+
+ Allows child class to specify the surface type, eg: a swap chain.
+
+
+
+
+ Represents a texture cube that can be used as a render target.
+
+
+
+
+ Gets a copy of cube texture data specifying a cubemap face.
+
+
+ The cube map face.
+ The data.
+
+
+
+ Gets the width and height of the cube map face in pixels.
+
+ The width and height of a cube map face in pixels.
+
+
+
+ Initializes a new instance of the class.
+
+ The graphics device.
+ The width and height of a texture cube face in pixels.
+ to generate a full mipmap chain; otherwise .
+ The preferred format of the surface.
+ The preferred format of the depth-stencil buffer.
+
+
+
+ Initializes a new instance of the class.
+
+ The graphics device.
+ The width and height of a texture cube face in pixels.
+ to generate a full mipmap chain; otherwise .
+ The preferred format of the surface.
+ The preferred format of the depth-stencil buffer.
+ The preferred number of multisample locations.
+ The usage mode of the render target.
+
+
+
+ Gets the depth-stencil buffer format of this render target.
+
+ The format of the depth-stencil buffer.
+
+
+
+ Gets the number of multisample locations.
+
+ The number of multisample locations.
+
+
+
+ Gets the usage mode of this render target.
+
+ The usage mode of the render target.
+
+
+
+
+
+
+
+
+
+ Defines if the previous content in a render target is preserved when it set on the graphics device.
+
+
+
+
+ The render target content will not be preserved.
+
+
+
+
+ The render target content will be preserved even if it is slow or requires extra memory.
+
+
+
+
+ The render target content might be preserved if the platform can do so without a penalty in performance or memory usage.
+
+
+
+
+ The newly created resource object.
+
+
+
+
+ The name of the destroyed resource.
+
+
+
+
+ The resource manager tag of the destroyed resource.
+
+
+
+
+ Mark all the sampler slots as dirty.
+
+
+
+
+ Defines how vertex or index buffer data will be flushed during a SetData operation.
+
+
+
+
+ The SetData can overwrite the portions of existing data.
+
+
+
+
+ The SetData will discard the entire buffer. A pointer to a new memory area is returned and rendering from the previous area do not stall.
+
+
+
+
+ The SetData operation will not overwrite existing data. This allows the driver to return immediately from a SetData operation and continue rendering.
+
+
+
+
+ A hash value which can be used to compare constant buffers.
+
+
+
+
+ Returns the platform specific shader profile identifier.
+
+
+
+
+ A hash value which can be used to compare shaders.
+
+
+
+
+ This class is used to Cache the links between Vertex/Pixel Shaders and Constant Buffers.
+ It will be responsible for linking the programs under OpenGL if they have not been linked
+ before. If an existing link exists it will be resused.
+
+
+
+
+ Clear the program cache releasing all shader programs.
+
+
+
+
+ Helper class for drawing text strings and sprites in one or more optimized batches.
+
+
+
+
+ Constructs a .
+
+ The , which will be used for sprite rendering.
+ Thrown when is null.
+
+
+
+ Begins a new sprite and text batch with the specified render state.
+
+ The drawing order for sprite and text drawing. by default.
+ State of the blending. Uses if null.
+ State of the sampler. Uses if null.
+ State of the depth-stencil buffer. Uses if null.
+ State of the rasterization. Uses if null.
+ A custom to override the default sprite effect. Uses default sprite effect if null.
+ An optional matrix used to transform the sprite geometry. Uses if null.
+ Thrown if is called next time without previous .
+ This method uses optional parameters.
+ The Begin should be called before drawing commands, and you cannot call it again before subsequent .
+
+
+
+ Flushes all batched text and sprites to the screen.
+
+ This command should be called after and drawing commands.
+
+
+
+ Submit a sprite for drawing in the current batch.
+
+ A texture.
+ The drawing location on screen or null if is used.
+ The drawing bounds on screen or null if is used.
+ An optional region on the texture which will be rendered. If null - draws full texture.
+ An optional center of rotation. Uses if null.
+ An optional rotation of this sprite. 0 by default.
+ An optional scale vector. Uses if null.
+ An optional color mask. Uses if null.
+ The optional drawing modificators. by default.
+ An optional depth of the layer of this sprite. 0 by default.
+ Throwns if both and been used.
+ This overload uses optional parameters. This overload requires only one of and been used.
+
+
+
+ Submit a sprite for drawing in the current batch.
+
+ A texture.
+ The drawing location on screen.
+ An optional region on the texture which will be rendered. If null - draws full texture.
+ A color mask.
+ A rotation of this sprite.
+ Center of the rotation. 0,0 by default.
+ A scaling of this sprite.
+ Modificators for drawing. Can be combined.
+ A depth of the layer of this sprite.
+
+
+
+ Submit a sprite for drawing in the current batch.
+
+ A texture.
+ The drawing location on screen.
+ An optional region on the texture which will be rendered. If null - draws full texture.
+ A color mask.
+ A rotation of this sprite.
+ Center of the rotation. 0,0 by default.
+ A scaling of this sprite.
+ Modificators for drawing. Can be combined.
+ A depth of the layer of this sprite.
+
+
+
+ Submit a sprite for drawing in the current batch.
+
+ A texture.
+ The drawing bounds on screen.
+ An optional region on the texture which will be rendered. If null - draws full texture.
+ A color mask.
+ A rotation of this sprite.
+ Center of the rotation. 0,0 by default.
+ Modificators for drawing. Can be combined.
+ A depth of the layer of this sprite.
+
+
+
+ Submit a sprite for drawing in the current batch.
+
+ A texture.
+ The drawing location on screen.
+ An optional region on the texture which will be rendered. If null - draws full texture.
+ A color mask.
+
+
+
+ Submit a sprite for drawing in the current batch.
+
+ A texture.
+ The drawing bounds on screen.
+ An optional region on the texture which will be rendered. If null - draws full texture.
+ A color mask.
+
+
+
+ Submit a sprite for drawing in the current batch.
+
+ A texture.
+ The drawing location on screen.
+ A color mask.
+
+
+
+ Submit a sprite for drawing in the current batch.
+
+ A texture.
+ The drawing bounds on screen.
+ A color mask.
+
+
+
+ Submit a text string of sprites for drawing in the current batch.
+
+ A font.
+ The text which will be drawn.
+ The drawing location on screen.
+ A color mask.
+
+
+
+ Submit a text string of sprites for drawing in the current batch.
+
+ A font.
+ The text which will be drawn.
+ The drawing location on screen.
+ A color mask.
+ A rotation of this string.
+ Center of the rotation. 0,0 by default.
+ A scaling of this string.
+ Modificators for drawing. Can be combined.
+ A depth of the layer of this string.
+
+
+
+ Submit a text string of sprites for drawing in the current batch.
+
+ A font.
+ The text which will be drawn.
+ The drawing location on screen.
+ A color mask.
+ A rotation of this string.
+ Center of the rotation. 0,0 by default.
+ A scaling of this string.
+ Modificators for drawing. Can be combined.
+ A depth of the layer of this string.
+
+
+
+ Submit a text string of sprites for drawing in the current batch.
+
+ A font.
+ The text which will be drawn.
+ The drawing location on screen.
+ A color mask.
+
+
+
+ Submit a text string of sprites for drawing in the current batch.
+
+ A font.
+ The text which will be drawn.
+ The drawing location on screen.
+ A color mask.
+ A rotation of this string.
+ Center of the rotation. 0,0 by default.
+ A scaling of this string.
+ Modificators for drawing. Can be combined.
+ A depth of the layer of this string.
+
+
+
+ Submit a text string of sprites for drawing in the current batch.
+
+ A font.
+ The text which will be drawn.
+ The drawing location on screen.
+ A color mask.
+ A rotation of this string.
+ Center of the rotation. 0,0 by default.
+ A scaling of this string.
+ Modificators for drawing. Can be combined.
+ A depth of the layer of this string.
+
+
+
+ Immediately releases the unmanaged resources used by this object.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ This class handles the queueing of batch items into the GPU by creating the triangle tesselations
+ that are used to draw the sprite textures. This class supports int.MaxValue number of sprites to be
+ batched and will process them into short.MaxValue groups (strided by 6 for the number of vertices
+ sent to the GPU).
+
+
+
+
+ Initialization size for the batch item list and queue.
+
+
+
+
+ The maximum number of batch items that can be processed per iteration
+
+
+
+
+ Initialization size for the vertex array, in batch units.
+
+
+
+
+ The list of batch items to process.
+
+
+
+
+ Index pointer to the next available SpriteBatchItem in _batchItemList.
+
+
+
+
+ The target graphics device.
+
+
+
+
+ Vertex index array. The values in this array never change.
+
+
+
+
+ Reuse a previously allocated SpriteBatchItem from the item pool.
+ if there is none available grow the pool and initialize new items.
+
+
+
+
+
+ Resize and recreate the missing indices for the index and vertex position color buffers.
+
+
+
+
+
+ Sorts the batch items and then groups batch drawing into maximal allowed batch sets that do not
+ overflow the 16 bit array indices for vertices.
+
+ The type of depth sorting desired for the rendering.
+ The custom effect to apply to the drawn geometry
+
+
+
+ Sends the triangle list to the graphics device. Here is where the actual drawing starts.
+
+ Start index of vertices to draw. Not used except to compute the count of vertices to draw.
+ End index of vertices to draw. Not used except to compute the count of vertices to draw.
+ The custom effect to apply to the geometry
+ The texture to draw.
+
+
+
+ Defines sprite visual options for mirroring.
+
+
+
+
+ No options specified.
+
+
+
+
+ Render the sprite reversed along the X axis.
+
+
+
+
+ Render the sprite reversed along the Y axis.
+
+
+
+
+ Returns a copy of the dictionary containing the glyphs in this SpriteFont.
+
+ A new Dictionary containing all of the glyphs inthis SpriteFont
+ Can be used to calculate character bounds when implementing custom SpriteFont rendering.
+
+
+
+ Returns the size of a string when rendered in this font.
+
+ The text to measure.
+ The size, in pixels, of 'text' when rendered in
+ this font.
+
+
+
+ Returns the size of the contents of a StringBuilder when
+ rendered in this font.
+
+ The text to measure.
+ The size, in pixels, of 'text' when rendered in
+ this font.
+
+
+
+ Gets the texture that this SpriteFont draws from.
+
+ Can be used to implement custom rendering of a SpriteFont
+
+
+
+ Gets a collection of the characters in the font.
+
+
+
+
+ Gets or sets the character that will be substituted when a
+ given character is not included in the font.
+
+
+
+
+ Gets or sets the line spacing (the distance from baseline
+ to baseline) of the font.
+
+
+
+
+ Gets or sets the spacing (tracking) between characters in
+ the font.
+
+
+
+
+ Struct that defines the spacing, Kerning, and bounds of a character.
+
+ Provides the data necessary to implement custom SpriteFont rendering.
+
+
+
+ The char associated with this glyph.
+
+
+
+
+ Rectangle in the font texture where this letter exists.
+
+
+
+
+ Cropping applied to the BoundsInTexture to calculate the bounds of the actual character.
+
+
+
+
+ The amount of space between the left side ofthe character and its first pixel in the X dimention.
+
+
+
+
+ The amount of space between the right side of the character and its last pixel in the X dimention.
+
+
+
+
+ Width of the character before kerning is applied.
+
+
+
+
+ Width of the character before kerning is applied.
+
+
+
+
+ Defines sprite sort rendering options.
+
+
+
+
+ All sprites are drawing when invokes, in order of draw call sequence. Depth is ignored.
+
+
+
+
+ Each sprite is drawing at individual draw call, instead of . Depth is ignored.
+
+
+
+
+ Same as , except sprites are sorted by texture prior to drawing. Depth is ignored.
+
+
+
+
+ Same as , except sprites are sorted by depth in back-to-front order prior to drawing.
+
+
+
+
+ Same as , except sprites are sorted by depth in front-to-back order prior to drawing.
+
+
+
+
+ Defines a blend mode.
+
+
+
+
+ Each component of the color is multiplied by {1, 1, 1, 1}.
+
+
+
+
+ Each component of the color is multiplied by {0, 0, 0, 0}.
+
+
+
+
+ Each component of the color is multiplied by the source color.
+ {Rs, Gs, Bs, As}, where Rs, Gs, Bs, As are color source values.
+
+
+
+
+ Each component of the color is multiplied by the inverse of the source color.
+ {1 − Rs, 1 − Gs, 1 − Bs, 1 − As}, where Rs, Gs, Bs, As are color source values.
+
+
+
+
+ Each component of the color is multiplied by the alpha value of the source.
+ {As, As, As, As}, where As is the source alpha value.
+
+
+
+
+ Each component of the color is multiplied by the inverse of the alpha value of the source.
+ {1 − As, 1 − As, 1 − As, 1 − As}, where As is the source alpha value.
+
+
+
+
+ Each component color is multiplied by the destination color.
+ {Rd, Gd, Bd, Ad}, where Rd, Gd, Bd, Ad are color destination values.
+
+
+
+
+ Each component of the color is multiplied by the inversed destination color.
+ {1 − Rd, 1 − Gd, 1 − Bd, 1 − Ad}, where Rd, Gd, Bd, Ad are color destination values.
+
+
+
+
+ Each component of the color is multiplied by the alpha value of the destination.
+ {Ad, Ad, Ad, Ad}, where Ad is the destination alpha value.
+
+
+
+
+ Each component of the color is multiplied by the inversed alpha value of the destination.
+ {1 − Ad, 1 − Ad, 1 − Ad, 1 − Ad}, where Ad is the destination alpha value.
+
+
+
+
+ Each component of the color is multiplied by a constant in the .
+
+
+
+
+ Each component of the color is multiplied by a inversed constant in the .
+
+
+
+
+ Each component of the color is multiplied by either the alpha of the source color, or the inverse of the alpha of the source color, whichever is greater.
+ {f, f, f, 1}, where f = min(As, 1 − As), where As is the source alpha value.
+
+
+
+
+ Defines a function for color blending.
+
+
+
+
+ The function will adds destination to the source. (srcColor * srcBlend) + (destColor * destBlend)
+
+
+
+
+ The function will subtracts destination from source. (srcColor * srcBlend) − (destColor * destBlend)
+
+
+
+
+ The function will subtracts source from destination. (destColor * destBlend) - (srcColor * srcBlend)
+
+
+
+
+ The function will extracts minimum of the source and destination. min((srcColor * srcBlend),(destColor * destBlend))
+
+
+
+
+ The function will extracts maximum of the source and destination. max((srcColor * srcBlend),(destColor * destBlend))
+
+
+
+
+ Returns the target specific blend state.
+
+ The 0 to 3 target blend state index.
+ A target blend state.
+
+
+
+ The color used as blend factor when alpha blending.
+
+
+ is set to this value when this
+ is bound to a GraphicsDevice.
+
+
+
+
+ Enables use of the per-target blend states.
+
+
+
+
+ The comparison function used for depth, stencil, and alpha tests.
+
+
+
+
+ Always passes the test.
+
+
+
+
+ Never passes the test.
+
+
+
+
+ Passes the test when the new pixel value is less than current pixel value.
+
+
+
+
+ Passes the test when the new pixel value is less than or equal to current pixel value.
+
+
+
+
+ Passes the test when the new pixel value is equal to current pixel value.
+
+
+
+
+ Passes the test when the new pixel value is greater than or equal to current pixel value.
+
+
+
+
+ Passes the test when the new pixel value is greater than current pixel value.
+
+
+
+
+ Passes the test when the new pixel value does not equal to current pixel value.
+
+
+
+
+ Defines a culling mode for faces in rasterization process.
+
+
+
+
+ Do not cull faces.
+
+
+
+
+ Cull faces with clockwise order.
+
+
+
+
+ Cull faces with counter clockwise order.
+
+
+
+
+ Defines formats for depth-stencil buffer.
+
+
+
+
+ Depth-stencil buffer will not be created.
+
+
+
+
+ 16-bit depth buffer.
+
+
+
+
+ 24-bit depth buffer. Equivalent of for DirectX platforms.
+
+
+
+
+ 32-bit depth-stencil buffer. Where 24-bit depth and 8-bit for stencil used.
+
+
+
+
+ Defines options for filling the primitive.
+
+
+
+
+ Draw solid faces for each primitive.
+
+
+
+
+ Draw lines for each primitive.
+
+
+
+
+ When using comparison sampling, also set to .
+
+
+
+
+ Defines stencil buffer operations.
+
+
+
+
+ Does not update the stencil buffer entry.
+
+
+
+
+ Sets the stencil buffer entry to 0.
+
+
+
+
+ Replaces the stencil buffer entry with a reference value.
+
+
+
+
+ Increments the stencil buffer entry, wrapping to 0 if the new value exceeds the maximum value.
+
+
+
+
+ Decrements the stencil buffer entry, wrapping to the maximum value if the new value is less than 0.
+
+
+
+
+ Increments the stencil buffer entry, clamping to the maximum value.
+
+
+
+
+ Decrements the stencil buffer entry, clamping to 0.
+
+
+
+
+ Inverts the bits in the stencil buffer entry.
+
+
+
+
+ Defines modes for addressing texels using texture coordinates that are outside of the range of 0.0 to 1.0.
+
+
+
+
+ Texels outside range will form the tile at every integer junction.
+
+
+
+
+ Texels outside range will be set to color of 0.0 or 1.0 texel.
+
+
+
+
+ Same as but tiles will also flipped at every integer junction.
+
+
+
+
+ Texels outside range will be set to the border color.
+
+
+
+
+ Defines filtering types for texture sampler.
+
+
+
+
+ Use linear filtering.
+
+
+
+
+ Use point filtering.
+
+
+
+
+ Use anisotropic filtering.
+
+
+
+
+ Use linear filtering to shrink or expand, and point filtering between mipmap levels (mip).
+
+
+
+
+ Use point filtering to shrink (minify) or expand (magnify), and linear filtering between mipmap levels.
+
+
+
+
+ Use linear filtering to shrink, point filtering to expand, and linear filtering between mipmap levels.
+
+
+
+
+ Use linear filtering to shrink, point filtering to expand, and point filtering between mipmap levels.
+
+
+
+
+ Use point filtering to shrink, linear filtering to expand, and linear filtering between mipmap levels.
+
+
+
+
+ Use point filtering to shrink, linear filtering to expand, and point filtering between mipmap levels.
+
+
+
+
+ Filtering modes for texture samplers.
+
+
+
+
+ Defines types of surface formats.
+
+
+
+
+ Unsigned 32-bit ARGB pixel format for store 8 bits per channel.
+
+
+
+
+ Unsigned 16-bit BGR pixel format for store 5 bits for blue, 6 bits for green, and 5 bits for red.
+
+
+
+
+ Unsigned 16-bit BGRA pixel format where 5 bits reserved for each color and last bit is reserved for alpha.
+
+
+
+
+ Unsigned 16-bit BGRA pixel format for store 4 bits per channel.
+
+
+
+
+ DXT1. Texture format with compression. Surface dimensions must be a multiple 4.
+
+
+
+
+ DXT3. Texture format with compression. Surface dimensions must be a multiple 4.
+
+
+
+
+ DXT5. Texture format with compression. Surface dimensions must be a multiple 4.
+
+
+
+
+ Signed 16-bit bump-map format for store 8 bits for u and v data.
+
+
+
+
+ Signed 16-bit bump-map format for store 8 bits per channel.
+
+
+
+
+ Unsigned 32-bit RGBA pixel format for store 10 bits for each color and 2 bits for alpha.
+
+
+
+
+ Unsigned 32-bit RG pixel format using 16 bits per channel.
+
+
+
+
+ Unsigned 64-bit RGBA pixel format using 16 bits per channel.
+
+
+
+
+ Unsigned A 8-bit format for store 8 bits to alpha channel.
+
+
+
+
+ IEEE 32-bit R float format for store 32 bits to red channel.
+
+
+
+
+ IEEE 64-bit RG float format for store 32 bits per channel.
+
+
+
+
+ IEEE 128-bit RGBA float format for store 32 bits per channel.
+
+
+
+
+ Float 16-bit R format for store 16 bits to red channel.
+
+
+
+
+ Float 32-bit RG format for store 16 bits per channel.
+
+
+
+
+ Float 64-bit ARGB format for store 16 bits per channel.
+
+
+
+
+ Float pixel format for high dynamic range data.
+
+
+
+
+ For compatibility with WPF D3DImage.
+
+
+
+
+ For compatibility with WPF D3DImage.
+
+
+
+
+ Unsigned 32-bit RGBA sRGB pixel format that supports 8 bits per channel.
+
+
+
+
+ Unsigned 32-bit sRGB pixel format that supports 8 bits per channel. 8 bits are unused.
+
+
+
+
+ Unsigned 32-bit sRGB pixel format that supports 8 bits per channel.
+
+
+
+
+ DXT1. sRGB texture format with compression. Surface dimensions must be a multiple of 4.
+
+
+
+
+ DXT3. sRGB texture format with compression. Surface dimensions must be a multiple of 4.
+
+
+
+
+ DXT5. sRGB texture format with compression. Surface dimensions must be a multiple of 4.
+
+
+
+
+ PowerVR texture compression format (iOS and Android).
+
+
+
+
+ PowerVR texture compression format (iOS and Android).
+
+
+
+
+ PowerVR texture compression format (iOS and Android).
+
+
+
+
+ PowerVR texture compression format (iOS and Android).
+
+
+
+
+ Ericcson Texture Compression (Android)
+
+
+
+
+ DXT1 version where 1-bit alpha is used.
+
+
+
+
+ ATC/ATITC compression (Android)
+
+
+
+
+ ATC/ATITC compression (Android)
+
+
+
+
+ Gets a copy of 3D texture data, specifying a mipmap level, source box, start index, and number of elements.
+
+ The type of the elements in the array.
+ Mipmap level.
+ Position of the left side of the box on the x-axis.
+ Position of the top of the box on the y-axis.
+ Position of the right side of the box on the x-axis.
+ Position of the bottom of the box on the y-axis.
+ Position of the front of the box on the z-axis.
+ Position of the back of the box on the z-axis.
+ Array of data.
+ Index of the first element to get.
+ Number of elements to get.
+
+
+
+ Gets a copy of 3D texture data, specifying a start index and number of elements.
+
+ The type of the elements in the array.
+ Array of data.
+ Index of the first element to get.
+ Number of elements to get.
+
+
+
+ Gets a copy of 3D texture data.
+
+ The type of the elements in the array.
+ Array of data.
+
+
+
+ Marks all texture slots as dirty.
+
+
+
+
+ A usage hint for optimizing memory placement of graphics buffers.
+
+
+
+
+ No special usage.
+
+
+
+
+ The buffer will not be readable and will be optimized for rendering and writing.
+
+
+
+
+ Gets the relevant IndexElementSize enum value for the given type.
+
+ The graphics device.
+ The type to use for the index buffer
+ The IndexElementSize enum value that matches the type
+
+
+
+ The GraphicsDevice is resetting, so GPU resources must be recreated.
+
+
+
+
+ If the IBO does not exist, create it.
+
+
+
+
+ Special offset used internally by GraphicsDevice.DrawUserXXX() methods.
+
+
+
+
+ The GraphicsDevice is resetting, so GPU resources must be recreated.
+
+
+
+
+
+ Sets the vertex buffer data, specifying the index at which to start copying from the source data array,
+ the number of elements to copy from the source data array,
+ and how far apart elements from the source data array should be when they are copied into the vertex buffer.
+
+ Type of elements in the data array.
+ Offset in bytes from the beginning of the vertex buffer to the start of the copied data.
+ Data array.
+ Index at which to start copying from .
+ Must be within the array bounds.
+ Number of elements to copy from .
+ The combination of and
+ must be within the array bounds.
+ Specifies how far apart, in bytes, elements from should be when
+ they are copied into the vertex buffer.
+ In almost all cases this should be sizeof(T), to create a tightly-packed vertex buffer.
+ If you specify sizeof(T), elements from will be copied into the
+ vertex buffer with no padding between each element.
+ If you specify a value greater than sizeof(T), elements from will be copied
+ into the vertex buffer with padding between each element.
+ If you specify 0 for this parameter, it will be treated as if you had specified sizeof(T).
+ With the exception of 0, you must specify a value greater than or equal to sizeof(T).
+
+ If T is VertexPositionTexture, but you want to set only the position component of the vertex data,
+ you would call this method as follows:
+
+ Vector3[] positions = new Vector3[numVertices];
+ vertexBuffer.SetData(0, positions, 0, numVertices, vertexBuffer.VertexDeclaration.VertexStride);
+
+
+ Continuing from the previous example, if you want to set only the texture coordinate component of the vertex data,
+ you would call this method as follows (note the use of :
+
+ Vector2[] texCoords = new Vector2[numVertices];
+ vertexBuffer.SetData(12, texCoords, 0, numVertices, vertexBuffer.VertexDeclaration.VertexStride);
+
+
+
+ If you provide a byte[] in the parameter, then you should almost certainly
+ set to 1, to avoid leaving any padding between the byte values
+ when they are copied into the vertex buffer.
+
+
+
+
+ Sets the vertex buffer data, specifying the index at which to start copying from the source data array,
+ and the number of elements to copy from the source data array. This is the same as calling
+ with offsetInBytes equal to 0,
+ and vertexStride equal to sizeof(T).
+
+ Type of elements in the data array.
+ Data array.
+ Index at which to start copying from .
+ Must be within the array bounds.
+ Number of elements to copy from .
+ The combination of and
+ must be within the array bounds.
+
+
+
+ Sets the vertex buffer data. This is the same as calling
+ with offsetInBytes and startIndex equal to 0, elementCount equal to data.Length,
+ and vertexStride equal to sizeof(T).
+
+ Type of elements in the data array.
+ Data array.
+
+
+
+ If the VBO does not exist, create it.
+
+
+
+
+ Special offset used internally by GraphicsDevice.DrawUserXXX() methods.
+
+
+
+
+ Defines size for index in and .
+
+
+
+
+ 16-bit short/ushort value been used.
+
+
+
+
+ 32-bit int/uint value been used.
+
+
+
+
+ Defines how vertex data is ordered.
+
+
+
+
+ Renders the specified vertices as a sequence of isolated triangles. Each group of three vertices defines a separate triangle. Back-face culling is affected by the current winding-order render state.
+
+
+
+
+ Renders the vertices as a triangle strip. The back-face culling flag is flipped automatically on even-numbered triangles.
+
+
+
+
+ Renders the vertices as a list of isolated straight line segments; the count may be any positive integer.
+
+
+
+
+ Renders the vertices as a single polyline; the count may be any positive integer.
+
+
+
+
+ Defines how a vertex buffer is bound to the graphics device for rendering.
+
+
+
+
+ Creates an instance of .
+
+ The vertex buffer to bind.
+
+
+
+ Creates an instance of .
+
+ The vertex buffer to bind.
+
+ The index of the first vertex in the vertex buffer to use.
+
+
+
+
+ Creates an instance of VertexBufferBinding.
+
+ The vertex buffer to bind.
+
+ The index of the first vertex in the vertex buffer to use.
+
+
+ The number of instances to draw using the same per-instance data before advancing in the
+ buffer by one element. This value must be 0 for an element that contains per-vertex data
+ and greater than 0 for per-instance data.
+
+
+ is .
+
+
+ or is invalid.
+
+
+
+
+ Gets the vertex buffer.
+
+ The vertex buffer.
+
+
+
+ Gets the index of the first vertex in the vertex buffer to use.
+
+ The index of the first vertex in the vertex buffer to use.
+
+
+
+ Gets the number of instances to draw using the same per-instance data before advancing
+ in the buffer by one element.
+
+
+ The number of instances to draw using the same per-instance data before advancing in the
+ buffer by one element. This value must be 0 for an element that contains per-vertex
+ data and greater than 0 for per-instance data.
+
+
+
+
+ Stores the vertex buffers to be bound to the input assembler stage.
+
+
+
+
+ Stores the vertex layout (input elements) for the input assembler stage.
+
+
+ In the DirectX version the input layouts are cached in a dictionary. The
+ is used as the key in the dictionary and therefore needs to
+ implement . Two instance are
+ considered equal if the vertex layouts are structurally identical.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The maximum number of vertex buffer slots.
+
+
+
+ Initializes a new instance of the class.
+
+ The array for storing vertex declarations.
+ The array for storing instance frequencies.
+ The number of used slots.
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The object to compare with the current object.
+
+ if the specified is equal to this instance;
+ otherwise, .
+
+
+
+
+ Determines whether the specified is equal to this
+ instance.
+
+ The object to compare with the current object.
+
+ if the specified is equal to this
+ instance; otherwise, .
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data
+ structures like a hash table.
+
+
+
+
+ Compares two instances to determine whether they are the
+ same.
+
+ The first instance.
+ The second instance.
+
+ if the and are
+ the same; otherwise, .
+
+
+
+
+ Compares two instances to determine whether they are
+ different.
+
+ The first instance.
+ The second instance.
+
+ if the and are
+ the different; otherwise, .
+
+
+
+
+ Gets or sets the number of used input slots.
+
+ The number of used input slots.
+
+
+
+ Initializes a new instance of the class.
+
+ The maximum number of vertex buffer slots.
+
+
+
+ Clears the vertex buffer slots.
+
+
+ if the input layout was changed; otherwise,
+ .
+
+
+
+
+ Binds the specified vertex buffer to the first input slot.
+
+ The vertex buffer.
+
+ The offset (in vertices) from the beginning of the vertex buffer to the first vertex to
+ use.
+
+
+ if the input layout was changed; otherwise,
+ .
+
+
+
+
+ Binds the the specified vertex buffers to the input slots.
+
+ The vertex buffer bindings.
+
+ if the input layout was changed; otherwise,
+ .
+
+
+
+
+ Gets vertex buffer bound to the specified input slots.
+
+ The vertex buffer binding.
+
+
+
+ Gets vertex buffers bound to the input slots.
+
+ The vertex buffer bindings.
+
+
+
+ Helper class which ensures we only lookup a vertex
+ declaration for a particular type once.
+
+ A vertex structure which implements IVertexType.
+
+
+
+ Defines per-vertex data of a vertex buffer.
+
+
+ implements and can be used as
+ a key in a dictionary. Two vertex declarations are considered equal if the vertices are
+ structurally equivalent, i.e. the vertex elements and the vertex stride are identical. (The
+ properties and are
+ ignored in and !)
+
+
+
+
+ Initializes a new instance of the class.
+
+ The vertex elements.
+
+ is or empty.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The size of a vertex (including padding) in bytes.
+ The vertex elements.
+
+ is or empty.
+
+
+
+
+ Returns the VertexDeclaration for Type.
+
+ A value type which implements the IVertexType interface.
+ The VertexDeclaration.
+
+ Prefer to use VertexDeclarationCache when the declaration lookup
+ can be performed with a templated type.
+
+
+
+
+ Gets a copy of the vertex elements.
+
+ A copy of the vertex elements.
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The object to compare with the current object.
+
+ if the specified is equal to this instance;
+ otherwise, .
+
+
+
+
+ Determines whether the specified is equal to this
+ instance.
+
+ The object to compare with the current object.
+
+ if the specified is equal to this
+ instance; otherwise, .
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data
+ structures like a hash table.
+
+
+
+
+ Compares two instances to determine whether they are the
+ same.
+
+ The first instance.
+ The second instance.
+
+ if the and are
+ the same; otherwise, .
+
+
+
+
+ Compares two instances to determine whether they are
+ different.
+
+ The first instance.
+ The second instance.
+
+ if the and are
+ the different; otherwise, .
+
+
+
+
+ Gets the internal vertex elements array.
+
+ The internal vertex elements array.
+
+
+
+ Gets the size of a vertex (including padding) in bytes.
+
+ The size of a vertex (including padding) in bytes.
+
+
+
+ Vertex attribute information for a particular shader/vertex declaration combination.
+
+
+
+
+ Defines a single element in a vertex.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The offset in bytes from the beginning of the stream to the vertex element.
+ The element format.
+ The HLSL semantic of the element in the vertex shader input-signature.
+ The semantic index, which is required if the semantic is used for more than one vertex element.
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data
+ structures like a hash table.
+
+
+
+
+ Returns a that represents this instance.
+
+ A that represents this instance.
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The object to compare with the current object.
+
+ if the specified is equal to this instance;
+ otherwise, .
+
+
+
+
+ Determines whether the specified is equal to this
+ instance.
+
+ The object to compare with the current object.
+
+ if the specified is equal to this
+ instance; otherwise, .
+
+
+
+
+ Compares two instances to determine whether they are the
+ same.
+
+ The first instance.
+ The second instance.
+
+ if the and are
+ the same; otherwise, .
+
+
+
+
+ Compares two instances to determine whether they are
+ different.
+
+ The first instance.
+ The second instance.
+
+ if the and are
+ the different; otherwise, .
+
+
+
+
+ Gets or sets the offset in bytes from the beginning of the stream to the vertex element.
+
+ The offset in bytes.
+
+
+
+ Gets or sets the data format.
+
+ The data format.
+
+
+
+ Gets or sets the HLSL semantic of the element in the vertex shader input.
+
+ The HLSL semantic of the element in the vertex shader input.
+
+
+
+ Gets or sets the semantic index.
+
+
+ The semantic index, which is required if the semantic is used for more than one vertex
+ element.
+
+
+ Usage indices in a vertex declaration usually start with 0. When multiple vertex buffers
+ are bound to the input assembler stage (see ),
+ MonoGame internally adjusts the usage indices based on the order in which the vertex
+ buffers are bound.
+
+
+
+
+ Defines vertex element formats.
+
+
+
+
+ Single 32-bit floating point number.
+
+
+
+
+ Two component 32-bit floating point number.
+
+
+
+
+ Three component 32-bit floating point number.
+
+
+
+
+ Four component 32-bit floating point number.
+
+
+
+
+ Four component, packed unsigned byte, mapped to 0 to 1 range.
+
+
+
+
+ Four component unsigned byte.
+
+
+
+
+ Two component signed 16-bit integer.
+
+
+
+
+ Four component signed 16-bit integer.
+
+
+
+
+ Normalized, two component signed 16-bit integer.
+
+
+
+
+ Normalized, four component signed 16-bit integer.
+
+
+
+
+ Two component 16-bit floating point number.
+
+
+
+
+ Four component 16-bit floating point number.
+
+
+
+
+ Defines usage for vertex elements.
+
+
+
+
+ Position data.
+
+
+
+
+ Color data.
+
+
+
+
+ Texture coordinate data or can be used for user-defined data.
+
+
+
+
+ Normal data.
+
+
+
+
+ Binormal data.
+
+
+
+
+ Tangent data.
+
+
+
+
+ Blending indices data.
+
+
+
+
+ Blending weight data.
+
+
+
+
+ Depth data.
+
+
+
+
+ Fog data.
+
+
+
+
+ Point size data. Usable for drawing point sprites.
+
+
+
+
+ Sampler data for specifies the displacement value to look up.
+
+
+
+
+ Single, positive float value, specifies a tessellation factor used in the tessellation unit to control the rate of tessellation.
+
+
+
+
+ Describes the view bounds for render-target surface.
+
+
+
+
+ Constructs a viewport from the given values. The will be 0.0 and will be 1.0.
+
+ The x coordinate of the upper-left corner of the view bounds in pixels.
+ The y coordinate of the upper-left corner of the view bounds in pixels.
+ The width of the view bounds in pixels.
+ The height of the view bounds in pixels.
+
+
+
+ Constructs a viewport from the given values.
+
+ The x coordinate of the upper-left corner of the view bounds in pixels.
+ The y coordinate of the upper-left corner of the view bounds in pixels.
+ The width of the view bounds in pixels.
+ The height of the view bounds in pixels.
+ The lower limit of depth.
+ The upper limit of depth.
+
+
+
+ Creates a new instance of struct.
+
+ A that defines the location and size of the in a render target.
+
+
+
+ Projects a from world space into screen space.
+
+ The to project.
+ The projection .
+ The view .
+ The world .
+
+
+
+
+ Unprojects a from screen space into world space.
+
+ The to unproject.
+ The projection .
+ The view .
+ The world .
+
+
+
+
+ Returns a representation of this in the format:
+ {X:[] Y:[] Width:[] Height:[] MinDepth:[] MaxDepth:[]}
+
+ A representation of this .
+
+
+
+ The height of the bounds in pixels.
+
+
+
+
+ The upper limit of depth of this viewport.
+
+
+
+
+ The lower limit of depth of this viewport.
+
+
+
+
+ The width of the bounds in pixels.
+
+
+
+
+ The y coordinate of the beginning of this viewport.
+
+
+
+
+ The x coordinate of the beginning of this viewport.
+
+
+
+
+ Gets the aspect ratio of this , which is width / height.
+
+
+
+
+ Gets or sets a boundary of this .
+
+
+
+
+ Returns the subset of the viewport that is guaranteed to be visible on a lower quality display.
+
+
+
+
+ Defines the buttons on gamepad.
+
+
+
+
+ Directional pad up.
+
+
+
+
+ Directional pad down.
+
+
+
+
+ Directional pad left.
+
+
+
+
+ Directional pad right.
+
+
+
+
+ START button.
+
+
+
+
+ BACK button.
+
+
+
+
+ Left stick button (pressing the left stick).
+
+
+
+
+ Right stick button (pressing the right stick).
+
+
+
+
+ Left bumper (shoulder) button.
+
+
+
+
+ Right bumper (shoulder) button.
+
+
+
+
+ Big button.
+
+
+
+
+ A button.
+
+
+
+
+ B button.
+
+
+
+
+ X button.
+
+
+
+
+ Y button.
+
+
+
+
+ Left stick is towards the left.
+
+
+
+
+ Right trigger.
+
+
+
+
+ Left trigger.
+
+
+
+
+ Right stick is towards up.
+
+
+
+
+ Right stick is towards down.
+
+
+
+
+ Right stick is towards the right.
+
+
+
+
+ Right stick is towards the left.
+
+
+
+
+ Left stick is towards up.
+
+
+
+
+ Left stick is towards down.
+
+
+
+
+ Left stick is towards the right.
+
+
+
+
+ Defines a button state for buttons of mouse, gamepad or joystick.
+
+
+
+
+ The button is released.
+
+
+
+
+ The button is pressed.
+
+
+
+
+ Supports querying the game controllers and setting the vibration motors.
+
+
+
+
+ Returns the capabilites of the connected controller.
+
+ Player index for the controller you want to query.
+ The capabilites of the controller.
+
+
+
+ Returns the capabilites of the connected controller.
+
+ Index for the controller you want to query.
+ The capabilites of the controller.
+
+
+
+ Gets the current state of a game pad controller with an independent axes dead zone.
+
+ Player index for the controller you want to query.
+ The state of the controller.
+
+
+
+ Gets the current state of a game pad controller with an independent axes dead zone.
+
+ Index for the controller you want to query.
+ The state of the controller.
+
+
+
+ Gets the current state of a game pad controller, using a specified dead zone
+ on analog stick positions.
+
+ Player index for the controller you want to query.
+ Enumerated value that specifies what dead zone type to use.
+ The state of the controller.
+
+
+
+ Gets the current state of a game pad controller, using a specified dead zone
+ on analog stick positions.
+
+ Index for the controller you want to query.
+ Enumerated value that specifies what dead zone type to use.
+ The state of the controller.
+
+
+
+ Sets the vibration motor speeds on the controller device if supported.
+
+ Player index that identifies the controller to set.
+ The speed of the left motor, between 0.0 and 1.0. This motor is a low-frequency motor.
+ The speed of the right motor, between 0.0 and 1.0. This motor is a high-frequency motor.
+ Returns true if the vibration motors were set.
+
+
+
+ Sets the vibration motor speeds on the controller device if supported.
+
+ Index for the controller you want to query.
+ The speed of the left motor, between 0.0 and 1.0. This motor is a low-frequency motor.
+ The speed of the right motor, between 0.0 and 1.0. This motor is a high-frequency motor.
+ Returns true if the vibration motors were set.
+
+
+
+ The maximum number of game pads supported on this system. Attempting to
+ access a gamepad index higher than this number will result in an
+ being thrown by the API.
+
+
+
+
+ Determines whether two specified instances of are equal.
+
+ The first object to compare.
+ The second object to compare.
+ true if and are equal; otherwise, false.
+
+
+
+ Determines whether two specified instances of are not equal.
+
+ The first object to compare.
+ The second object to compare.
+ true if and are not equal; otherwise, false.
+
+
+
+ Returns a value indicating whether this instance is equal to a specified object.
+
+ An object to compare to this instance.
+ true if is a and has the same value as this instance; otherwise, false.
+
+
+
+ Determines whether two specified instances of are equal.
+
+ The first object to compare.
+ The second object to compare.
+ true if and are equal; otherwise, false.
+
+
+
+ Determines whether two specified instances of are not equal.
+
+ The first object to compare.
+ The second object to compare.
+ true if and are not equal; otherwise, false.
+
+
+
+ Returns a value indicating whether this instance is equal to a specified object.
+
+ An object to compare to this instance.
+ true if is a and has the same value as this instance; otherwise, false.
+
+
+
+ The default initialized gamepad state.
+
+
+
+
+ Gets the button mask along with 'virtual buttons' like LeftThumbstickLeft.
+
+
+
+
+ Determines whether two specified instances of are equal.
+
+ The first object to compare.
+ The second object to compare.
+ true if and are equal; otherwise, false.
+
+
+
+ Determines whether two specified instances of are not equal.
+
+ The first object to compare.
+ The second object to compare.
+ true if and are not equal; otherwise, false.
+
+
+
+ Returns a value indicating whether this instance is equal to a specified object.
+
+ An object to compare to this instance.
+ true if is a and has the same value as this instance; otherwise, false.
+
+
+
+ Determines whether two specified instances of are equal.
+
+ The first object to compare.
+ The second object to compare.
+ true if and are equal; otherwise, false.
+
+
+
+ Determines whether two specified instances of are not equal.
+
+ The first object to compare.
+ The second object to compare.
+ true if and are not equal; otherwise, false.
+
+
+
+ Returns a value indicating whether this instance is equal to a specified object.
+
+ An object to compare to this instance.
+ true if is a and has the same value as this instance; otherwise, false.
+
+
+
+ Defines a type of gamepad.
+
+
+
+
+ Unknown.
+
+
+
+
+ GamePad is the XBOX controller.
+
+
+
+
+ GamePad is a wheel.
+
+
+
+
+ GamePad is an arcade stick.
+
+
+
+
+ GamePad is a flight stick.
+
+
+
+
+ GamePad is a dance pad.
+
+
+
+
+ GamePad is a guitar.
+
+
+
+
+ GamePad is an alternate guitar.
+
+
+
+
+ GamePad is a drum kit.
+
+
+
+
+ GamePad is a big button pad.
+
+
+
+
+ Allows interaction with joysticks. Unlike the number of Buttons/Axes/DPads is not limited.
+
+
+
+
+ Gets the capabilites of the joystick.
+
+ Index of the joystick you want to access.
+ The capabilites of the joystick.
+
+
+
+ Gets the current state of the joystick.
+
+ Index of the joystick you want to access.
+ The state of the joystick.
+
+
+
+ Describes joystick capabilities.
+
+
+
+
+ Gets a value indicating whether the joystick is connected.
+
+ true if the joystick is connected; otherwise, false.
+
+
+
+ Gets the unique identifier of the joystick.
+
+ String representing the unique identifier of the joystick.
+
+
+
+ Gets the axis count.
+
+ The number of axes that the joystick possesses.
+
+
+
+ Gets the button count.
+
+ The number of buttons that the joystick possesses.
+
+
+
+ Gets the hat count.
+
+ The number of hats/dpads that the joystick possesses.
+
+
+
+ Describes joystick hat state.
+
+
+
+
+ Gets if joysticks hat "down" is pressed.
+
+ if the button is pressed otherwise, .
+
+
+
+ Gets if joysticks hat "left" is pressed.
+
+ if the button is pressed otherwise, .
+
+
+
+ Gets if joysticks hat "right" is pressed.
+
+ if the button is pressed otherwise, .
+
+
+
+ Gets if joysticks hat "up" is pressed.
+
+ if the button is pressed otherwise, .
+
+
+
+ Describes current joystick state.
+
+
+
+
+ Gets a value indicating whether the joystick is connected.
+
+ true if the joystick is connected; otherwise, false.
+
+
+
+ Gets the joystick axis values.
+
+ An array list of floats that indicate axis values.
+
+
+
+ Gets the joystick button values.
+
+ An array list of ButtonState that indicate button values.
+
+
+
+ Gets the joystick hat values.
+
+ An array list of that indicate hat values.
+
+
+
+ Displays the keyboard input interface asynchronously.
+
+ Title of the dialog box.
+ Description of the dialog box.
+ Default text displayed in the input area.
+ If password mode is enabled, the characters entered are not displayed.
+ Text entered by the player. Null if back was used.
+ Thrown when the message box is already visible
+
+
+ var name = await KeyboardInput.Show("Name", "What's your name?", "Player");
+
+
+
+
+
+ Hides the keyboard input interface and returns the parameter as the result of
+
+ Result to return
+ Thrown when the keyboard input is not visible
+
+
+ var nameTask = KeyboardInput.Show("Name", "What's your name?", "Player");
+ KeyboardInput.Cancel("John Doe");
+ var name = await nameTask;
+
+
+
+
+
+ Holds the state of keystrokes by a keyboard.
+
+
+
+
+ Initializes a new instance of the class.
+
+ List of keys to be flagged as pressed on initialization.
+ Caps Lock state.
+ Num Lock state.
+
+
+
+ Initializes a new instance of the class.
+
+ List of keys to be flagged as pressed on initialization.
+
+
+
+ Gets whether given key is currently being pressed.
+
+ The key to query.
+ true if the key is pressed; false otherwise.
+
+
+
+ Gets whether given key is currently being not pressed.
+
+ The key to query.
+ true if the key is not pressed; false otherwise.
+
+
+
+ Returns an array of values holding keys that are currently being pressed.
+
+ The keys that are currently being pressed.
+
+
+
+ Gets the hash code for instance.
+
+ Hash code of the object.
+
+
+
+ Compares whether two instances are equal.
+
+ instance to the left of the equality operator.
+ instance to the right of the equality operator.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether two instances are not equal.
+
+ instance to the left of the inequality operator.
+ instance to the right of the inequality operator.
+ true if the instances are different; false otherwise.
+
+
+
+ Compares whether current instance is equal to specified object.
+
+ The to compare.
+ true if the provided instance is same with current; false otherwise.
+
+
+
+ Gets the current state of the Caps Lock key.
+
+
+
+
+ Gets the current state of the Num Lock key.
+
+
+
+
+ Returns the state of a specified key.
+
+ The key to query.
+ The state of the key.
+
+
+
+ Defines the keys on a keyboard.
+
+
+
+
+ Reserved.
+
+
+
+
+ BACKSPACE key.
+
+
+
+
+ TAB key.
+
+
+
+
+ ENTER key.
+
+
+
+
+ CAPS LOCK key.
+
+
+
+
+ ESC key.
+
+
+
+
+ SPACEBAR key.
+
+
+
+
+ PAGE UP key.
+
+
+
+
+ PAGE DOWN key.
+
+
+
+
+ END key.
+
+
+
+
+ HOME key.
+
+
+
+
+ LEFT ARROW key.
+
+
+
+
+ UP ARROW key.
+
+
+
+
+ RIGHT ARROW key.
+
+
+
+
+ DOWN ARROW key.
+
+
+
+
+ SELECT key.
+
+
+
+
+ PRINT key.
+
+
+
+
+ EXECUTE key.
+
+
+
+
+ PRINT SCREEN key.
+
+
+
+
+ INS key.
+
+
+
+
+ DEL key.
+
+
+
+
+ HELP key.
+
+
+
+
+ Used for miscellaneous characters; it can vary by keyboard.
+
+
+
+
+ Used for miscellaneous characters; it can vary by keyboard.
+
+
+
+
+ Used for miscellaneous characters; it can vary by keyboard.
+
+
+
+
+ Used for miscellaneous characters; it can vary by keyboard.
+
+
+
+
+ Used for miscellaneous characters; it can vary by keyboard.
+
+
+
+
+ Used for miscellaneous characters; it can vary by keyboard.
+
+
+
+
+ Used for miscellaneous characters; it can vary by keyboard.
+
+
+
+
+ Used for miscellaneous characters; it can vary by keyboard.
+
+
+
+
+ Used for miscellaneous characters; it can vary by keyboard.
+
+
+
+
+ Used for miscellaneous characters; it can vary by keyboard.
+
+
+
+
+ A key.
+
+
+
+
+ B key.
+
+
+
+
+ C key.
+
+
+
+
+ D key.
+
+
+
+
+ E key.
+
+
+
+
+ F key.
+
+
+
+
+ G key.
+
+
+
+
+ H key.
+
+
+
+
+ I key.
+
+
+
+
+ J key.
+
+
+
+
+ K key.
+
+
+
+
+ L key.
+
+
+
+
+ M key.
+
+
+
+
+ N key.
+
+
+
+
+ O key.
+
+
+
+
+ P key.
+
+
+
+
+ Q key.
+
+
+
+
+ R key.
+
+
+
+
+ S key.
+
+
+
+
+ T key.
+
+
+
+
+ U key.
+
+
+
+
+ V key.
+
+
+
+
+ W key.
+
+
+
+
+ X key.
+
+
+
+
+ Y key.
+
+
+
+
+ Z key.
+
+
+
+
+ Left Windows key.
+
+
+
+
+ Right Windows key.
+
+
+
+
+ Applications key.
+
+
+
+
+ Computer Sleep key.
+
+
+
+
+ Numeric keypad 0 key.
+
+
+
+
+ Numeric keypad 1 key.
+
+
+
+
+ Numeric keypad 2 key.
+
+
+
+
+ Numeric keypad 3 key.
+
+
+
+
+ Numeric keypad 4 key.
+
+
+
+
+ Numeric keypad 5 key.
+
+
+
+
+ Numeric keypad 6 key.
+
+
+
+
+ Numeric keypad 7 key.
+
+
+
+
+ Numeric keypad 8 key.
+
+
+
+
+ Numeric keypad 9 key.
+
+
+
+
+ Multiply key.
+
+
+
+
+ Add key.
+
+
+
+
+ Separator key.
+
+
+
+
+ Subtract key.
+
+
+
+
+ Decimal key.
+
+
+
+
+ Divide key.
+
+
+
+
+ F1 key.
+
+
+
+
+ F2 key.
+
+
+
+
+ F3 key.
+
+
+
+
+ F4 key.
+
+
+
+
+ F5 key.
+
+
+
+
+ F6 key.
+
+
+
+
+ F7 key.
+
+
+
+
+ F8 key.
+
+
+
+
+ F9 key.
+
+
+
+
+ F10 key.
+
+
+
+
+ F11 key.
+
+
+
+
+ F12 key.
+
+
+
+
+ F13 key.
+
+
+
+
+ F14 key.
+
+
+
+
+ F15 key.
+
+
+
+
+ F16 key.
+
+
+
+
+ F17 key.
+
+
+
+
+ F18 key.
+
+
+
+
+ F19 key.
+
+
+
+
+ F20 key.
+
+
+
+
+ F21 key.
+
+
+
+
+ F22 key.
+
+
+
+
+ F23 key.
+
+
+
+
+ F24 key.
+
+
+
+
+ NUM LOCK key.
+
+
+
+
+ SCROLL LOCK key.
+
+
+
+
+ Left SHIFT key.
+
+
+
+
+ Right SHIFT key.
+
+
+
+
+ Left CONTROL key.
+
+
+
+
+ Right CONTROL key.
+
+
+
+
+ Left ALT key.
+
+
+
+
+ Right ALT key.
+
+
+
+
+ Browser Back key.
+
+
+
+
+ Browser Forward key.
+
+
+
+
+ Browser Refresh key.
+
+
+
+
+ Browser Stop key.
+
+
+
+
+ Browser Search key.
+
+
+
+
+ Browser Favorites key.
+
+
+
+
+ Browser Start and Home key.
+
+
+
+
+ Volume Mute key.
+
+
+
+
+ Volume Down key.
+
+
+
+
+ Volume Up key.
+
+
+
+
+ Next Track key.
+
+
+
+
+ Previous Track key.
+
+
+
+
+ Stop Media key.
+
+
+
+
+ Play/Pause Media key.
+
+
+
+
+ Start Mail key.
+
+
+
+
+ Select Media key.
+
+
+
+
+ Start Application 1 key.
+
+
+
+
+ Start Application 2 key.
+
+
+
+
+ The OEM Semicolon key on a US standard keyboard.
+
+
+
+
+ For any country/region, the '+' key.
+
+
+
+
+ For any country/region, the ',' key.
+
+
+
+
+ For any country/region, the '-' key.
+
+
+
+
+ For any country/region, the '.' key.
+
+
+
+
+ The OEM question mark key on a US standard keyboard.
+
+
+
+
+ The OEM tilde key on a US standard keyboard.
+
+
+
+
+ The OEM open bracket key on a US standard keyboard.
+
+
+
+
+ The OEM pipe key on a US standard keyboard.
+
+
+
+
+ The OEM close bracket key on a US standard keyboard.
+
+
+
+
+ The OEM singled/double quote key on a US standard keyboard.
+
+
+
+
+ Used for miscellaneous characters; it can vary by keyboard.
+
+
+
+
+ The OEM angle bracket or backslash key on the RT 102 key keyboard.
+
+
+
+
+ IME PROCESS key.
+
+
+
+
+ Attn key.
+
+
+
+
+ CrSel key.
+
+
+
+
+ ExSel key.
+
+
+
+
+ Erase EOF key.
+
+
+
+
+ Play key.
+
+
+
+
+ Zoom key.
+
+
+
+
+ PA1 key.
+
+
+
+
+ CLEAR key.
+
+
+
+
+ Green ChatPad key.
+
+
+
+
+ Orange ChatPad key.
+
+
+
+
+ PAUSE key.
+
+
+
+
+ IME Convert key.
+
+
+
+
+ IME NoConvert key.
+
+
+
+
+ Kana key on Japanese keyboards.
+
+
+
+
+ Kanji key on Japanese keyboards.
+
+
+
+
+ OEM Auto key.
+
+
+
+
+ OEM Copy key.
+
+
+
+
+ OEM Enlarge Window key.
+
+
+
+
+ Identifies the state of a keyboard key.
+
+
+
+
+ Key is released.
+
+
+
+
+ Key is pressed.
+
+
+
+
+ Displays the message box interface asynchronously.
+
+ Title of the message box.
+ Description of the message box.
+ Captions of the message box buttons. Up to three supported.
+ Index of button selected by the player. Null if back was used.
+ Thrown when the message box is already visible
+
+
+ var color = await MessageBox.Show("Color", "What's your favorite color?", new[] { "Red", "Green", "Blue" });
+
+
+
+
+
+ Hides the message box interface and returns the parameter as the result of
+
+ Result to return
+ Thrown when the message box is not visible
+
+
+ var colorTask = MessageBox.Show("Color", "What's your favorite color?", new[] { "Red", "Green", "Blue" });
+ MessageBox.Cancel(0);
+ var color = await colorTask;
+
+
+
+
+
+ Allows reading position and button click information from mouse.
+
+
+
+
+ This API is an extension to XNA.
+ Gets mouse state information that includes position and button
+ presses for the provided window
+
+ Current state of the mouse.
+
+
+
+ Gets mouse state information that includes position and button presses
+ for the primary window
+
+ Current state of the mouse.
+
+
+
+ Sets mouse cursor's relative position to game-window.
+
+ Relative horizontal position of the cursor.
+ Relative vertical position of the cursor.
+
+
+
+ Sets the cursor image to the specified MouseCursor.
+
+ Mouse cursor to use for the cursor image.
+
+
+
+ Gets or sets the window handle for current mouse processing.
+
+
+
+
+ Describes a mouse cursor.
+
+
+
+
+ Creates a mouse cursor from the specified texture.
+
+ Texture to use as the cursor image.
+ X cordinate of the image that will be used for mouse position.
+ Y cordinate of the image that will be used for mouse position.
+
+
+
+ Gets the default arrow cursor.
+
+
+
+
+ Gets the cursor that appears when the mouse is over text editing regions.
+
+
+
+
+ Gets the waiting cursor that appears while the application/system is busy.
+
+
+
+
+ Gets the crosshair ("+") cursor.
+
+
+
+
+ Gets the cross between Arrow and Wait cursors.
+
+
+
+
+ Gets the northwest/southeast ("\") cursor.
+
+
+
+
+ Gets the northeast/southwest ("/") cursor.
+
+
+
+
+ Gets the horizontal west/east ("-") cursor.
+
+
+
+
+ Gets the vertical north/south ("|") cursor.
+
+
+
+
+ Gets the size all cursor which points in all directions.
+
+
+
+
+ Gets the cursor that points that something is invalid, usually a cross.
+
+
+
+
+ Gets the hand cursor, usually used for web links.
+
+
+
+
+ Represents a mouse state with cursor position and button press information.
+
+
+
+
+ Initializes a new instance of the MouseState.
+
+ Horizontal position of the mouse in relation to the window.
+ Vertical position of the mouse in relation to the window.
+ Mouse scroll wheel's value.
+ Left mouse button's state.
+ Middle mouse button's state.
+ Right mouse button's state.
+ XBUTTON1's state.
+ XBUTTON2's state.
+ Normally should be used to get mouse current state. The constructor is provided for simulating mouse input.
+
+
+
+ Compares whether two MouseState instances are equal.
+
+ MouseState instance on the left of the equal sign.
+ MouseState instance on the right of the equal sign.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether two MouseState instances are not equal.
+
+ MouseState instance on the left of the equal sign.
+ MouseState instance on the right of the equal sign.
+ true if the objects are not equal; false otherwise.
+
+
+
+ Compares whether current instance is equal to specified object.
+
+ The MouseState to compare.
+
+
+
+
+ Gets the hash code for MouseState instance.
+
+ Hash code of the object.
+
+
+
+ Gets horizontal position of the cursor in relation to the window.
+
+
+
+
+ Gets vertical position of the cursor in relation to the window.
+
+
+
+
+ Gets cursor position.
+
+
+
+
+ Gets state of the left mouse button.
+
+
+
+
+ Gets state of the middle mouse button.
+
+
+
+
+ Gets state of the right mouse button.
+
+
+
+
+ Returns cumulative scroll wheel value since the game start.
+
+
+
+
+ Gets state of the XButton1.
+
+
+
+
+ Gets state of the XButton2.
+
+
+
+
+ Represents data from a multi-touch gesture over a span of time.
+
+
+
+
+ Initializes a new .
+
+
+
+
+
+
+
+
+
+
+ Gets the type of the gesture.
+
+
+
+
+ Gets the starting time for this multi-touch gesture sample.
+
+
+
+
+ Gets the position of the first touch-point in the gesture sample.
+
+
+
+
+ Gets the position of the second touch-point in the gesture sample.
+
+
+
+
+ Gets the delta information for the first touch-point in the gesture sample.
+
+
+
+
+ Gets the delta information for the second touch-point in the gesture sample.
+
+
+
+
+ Enumuration of values that represent different gestures that can be processed by .
+
+
+
+
+ No gestures.
+
+
+
+
+ The user touched a single point.
+
+
+
+
+ States completion of a drag gesture(VerticalDrag, HorizontalDrag, or FreeDrag).
+
+ No position or delta information is available for this sample.
+
+
+
+ States that a touch was combined with a quick swipe.
+
+ Flicks does not contain position information. The velocity of it can be read from
+
+
+
+ The use touched a point and then performed a free-form drag.
+
+
+
+
+ The use touched a single point for approximately one second.
+
+ As this is a single event, it will not be contionusly fired while the user is holding the touch-point.
+
+
+
+ The user touched the screen and performed either left to right or right to left drag gesture.
+
+
+
+
+ The user either converged or diverged two touch-points on the screen which is like a two-finger drag.
+
+ When this gesture-type is enabled and two fingers are down, it takes precedence over drag gestures.
+
+
+
+ An in-progress pinch operation was completed.
+
+ No position or delta information is available for this sample.
+
+
+
+ The user tapped the device twice which is always preceded by a Tap gesture.
+
+ If the time between two touchs are long enough, insted two seperate single Tap gestures will be generated.
+
+
+
+ The user touched the screen and performed either top to bottom or bottom to top drag gesture.
+
+
+
+
+ Provides state information for a touch screen enabled device.
+
+
+
+
+ Initializes a new instance of the with a pre-determined set of touch locations.
+
+ Array of items to initialize with.
+
+
+
+ Returns specified by ID.
+
+
+
+
+
+
+
+ Returns the index of the first occurrence of specified item in the collection.
+
+ to query.
+
+
+
+
+ Inserts a item into the indicated position.
+
+ The position to insert into.
+ The item to insert.
+
+
+
+ Removes the item at specified index.
+
+ Index of the item that will be removed from collection.
+
+
+
+ Adds a to the collection.
+
+ The item to be added.
+
+
+
+ Clears all the items in collection.
+
+
+
+
+ Returns true if specified item exists in the collection, false otherwise./>
+
+ The item to query for.
+ Returns true if queried item is found, false otherwise.
+
+
+
+ Copies the collection to specified array starting from the given index.
+
+ The array to copy items.
+ The starting index of the copy operation.
+
+
+
+ Removes the specified item from the collection.
+
+ The item to remove.
+
+
+
+
+ Returns an enumerator for the .
+
+ Enumerable list of objects.
+
+
+
+ Returns an enumerator for the .
+
+ Enumerable list of objects.
+
+
+
+ Returns an enumerator for the .
+
+ Enumerable list of objects.
+
+
+
+ States if a touch screen is available.
+
+
+
+
+ States if touch collection is read only.
+
+
+
+
+ Gets or sets the item at the specified index of the collection.
+
+ Position of the item.
+
+
+
+
+ Returns the number of items that exist in the collection.
+
+
+
+
+ Provides the ability to iterate through the TouchLocations in an TouchCollection.
+
+
+
+
+ Advances the enumerator to the next element of the TouchCollection.
+
+
+
+
+ Immediately releases the unmanaged resources used by this object.
+
+
+
+
+ Gets the current element in the TouchCollection.
+
+
+
+
+ Attributes
+
+
+
+
+ True if this touch was pressed and released on the same frame.
+ In this case we will keep it around for the user to get by GetState that frame.
+ However if they do not call GetState that frame, this touch will be forgotten.
+
+
+
+
+ Helper for assigning an invalid touch location.
+
+
+
+
+ Returns a copy of the touch with the state changed to moved.
+
+ The new touch location.
+
+
+
+ Updates the touch location using the new event.
+
+ The next event for this touch location.
+
+
+
+ Holds the possible state information for a touch location..
+
+
+
+
+ This touch location position is invalid.
+
+ Typically, you will encounter this state when a new touch location attempts to get the previous state of itself.
+
+
+
+ This touch location position was updated or pressed at the same position.
+
+
+
+
+ This touch location position is new.
+
+
+
+
+ This touch location position was released.
+
+
+
+
+ Allows retrieval of information from Touch Panel device.
+
+
+
+
+ Gets the current state of the touch panel.
+
+
+
+
+
+ Returns the next available gesture on touch panel device.
+
+
+
+
+
+ The window handle of the touch panel. Purely for Xna compatibility.
+
+
+
+
+ Gets or sets the display height of the touch panel.
+
+
+
+
+ Gets or sets the display orientation of the touch panel.
+
+
+
+
+ Gets or sets the display width of the touch panel.
+
+
+
+
+ Gets or sets enabled gestures.
+
+
+
+
+ Returns true if a touch gesture is available.
+
+
+
+
+ Allows retrieval of capabilities information from touch panel device.
+
+
+
+
+ Returns true if a device is available for use.
+
+
+
+
+ Returns the maximum number of touch locations tracked by the touch panel device.
+
+
+
+
+ The reserved touchId for all mouse touch points.
+
+
+
+
+ Maximum distance a touch location can wiggle and
+ not be considered to have moved.
+
+
+
+
+ The current touch state.
+
+
+
+
+ The current gesture state.
+
+
+
+
+ The positional scale to apply to touch input.
+
+
+
+
+ The current size of the display.
+
+
+
+
+ The next touch location identifier.
+ The value 1 is reserved for the mouse touch point.
+
+
+
+
+ The mapping between platform specific touch ids
+ and the touch ids we assign to touch locations.
+
+
+
+
+ Returns capabilities of touch panel device.
+
+
+
+
+
+ Age all the touches, so any that were Pressed become Moved, and any that were Released are removed
+
+
+
+
+ Apply the given new touch to the state. If it is a Pressed it will be added as a new touch, otherwise we update the existing touch it matches
+
+
+
+
+ This will release all touch locations. It should only be
+ called on platforms where touch state is reset all at once.
+
+
+
+
+ Returns the next available gesture on touch panel device.
+
+
+
+
+
+ The pinch touch locations.
+
+
+
+
+ If true the pinch touch locations are valid and
+ a pinch gesture has begun.
+
+
+
+
+ Used to disable emitting of tap gestures.
+
+
+
+
+ Used to disable emitting of hold gestures.
+
+
+
+
+ The current timestamp that we use for setting the timestamp of new TouchLocations
+
+
+
+
+ The window handle of the touch panel. Purely for Xna compatibility.
+
+
+
+
+ Gets or sets the display height of the touch panel.
+
+
+
+
+ Gets or sets the display orientation of the touch panel.
+
+
+
+
+ Gets or sets the display width of the touch panel.
+
+
+
+
+ Gets or sets enabled gestures.
+
+
+
+
+ Returns true if a touch gesture is available.
+
+
+
+
+ Immediately releases the unmanaged resources used by this object.
+
+
+
+
+ Returns a String representation of this Album.
+
+
+
+
+ Gets the hash code for this instance.
+
+
+
+
+ Gets the duration of the Album.
+
+
+
+
+ Gets the Genre of the Album.
+
+
+
+
+ Gets a value indicating whether the Album has associated album art.
+
+
+
+
+ Gets a value indicating whether the object is disposed.
+
+
+
+
+ Gets the name of the Album.
+
+
+
+
+ Gets a SongCollection that contains the songs on the album.
+
+
+
+
+ Immediately releases the unmanaged resources used by this object.
+
+
+
+
+ Gets the number of Album objects in the AlbumCollection.
+
+
+
+
+ Gets a value indicating whether the object is disposed.
+
+
+
+
+ Gets the Album at the specified index in the AlbumCollection.
+
+ Index of the Album to get.
+
+
+
+ Immediately releases the unmanaged resources used by this object.
+
+
+
+
+ Returns a String representation of the Artist.
+
+
+
+
+ Gets the hash code for this instance.
+
+
+
+
+ Gets the AlbumCollection for the Artist.
+
+
+
+
+ Gets a value indicating whether the object is disposed.
+
+
+
+
+ Gets the name of the Artist.
+
+
+
+
+ Gets the SongCollection for the Artist.
+
+
+
+
+ Immediately releases the unmanaged resources used by this object.
+
+
+
+
+ Returns a String representation of the Genre.
+
+
+
+
+ Gets the hash code for this instance.
+
+
+
+
+ Gets the AlbumCollection for the Genre.
+
+
+
+
+ Gets a value indicating whether the object is disposed.
+
+
+
+
+ Gets the name of the Genre.
+
+
+
+
+ Gets the SongCollection for the Genre.
+
+
+
+
+ Load the contents of MediaLibrary. This blocking call might take up to a few minutes depending on the platform and the size of the user's music library.
+
+ Callback that reports back the progress of the music library loading in percents (0-100).
+
+
+
+ Play clears the current playback queue, and then queues up the specified song for playback.
+ Playback starts immediately at the beginning of the song.
+
+
+
+
+ Play clears the current playback queue, and then queues up the specified song for playback.
+ Playback starts immediately at the given position of the song.
+
+
+
+
+ Set the event handler for "Finished Playing". Done this way to prevent multiple bindings.
+
+
+
+
+ Gets the Album on which the Song appears.
+
+
+
+
+ Gets the Artist of the Song.
+
+
+
+
+ Gets the Genre of the Song.
+
+
+
+
+ Type of sounds in a video
+
+
+
+
+ This video contains only music.
+
+
+
+
+ This video contains only dialog.
+
+
+
+
+ This video contains music and dialog.
+
+
+
+
+ Represents a video.
+
+
+ Represents a video.
+
+
+
+
+ I actually think this is a file PATH...
+
+
+
+
+ Gets the duration of the Video.
+
+
+
+
+ Gets the frame rate of this video.
+
+
+
+
+ Gets the height of this video, in pixels.
+
+
+
+
+ Gets the VideoSoundtrackType for this video.
+
+
+
+
+ Gets the width of this video, in pixels.
+
+
+
+
+ Retrieves a Texture2D containing the current frame of video being played.
+
+ The current frame of video.
+ Thrown if no video is set on the player
+ Thrown if the platform was unable to get a texture in a reasonable amount of time. Often the platform specific media code is running
+ in a different thread or process. Note: This may be a change from XNA behaviour
+
+
+
+ Pauses the currently playing video.
+
+
+
+
+ Plays a Video.
+
+ Video to play.
+
+
+
+ Resumes a paused video.
+
+
+
+
+ Stops playing a video.
+
+
+
+
+ Immediately releases the unmanaged resources used by this object.
+
+
+
+
+ Gets a value that indicates whether the object is disposed.
+
+
+
+
+ Gets a value that indicates whether the player is playing video in a loop.
+
+
+
+
+ Gets or sets the muted setting for the video player.
+
+
+
+
+ Gets the play position within the currently playing video.
+
+
+
+
+ Gets the media playback state, MediaState.
+
+
+
+
+ Gets the Video that is currently playing.
+
+
+
+
+ Video player volume, from 0.0f (silence) to 1.0f (full volume relative to the current device volume).
+
+
+
+
+ The exception that may be thrown during a call to Start() or Stop(). The Message field describes the reason for the exception and the ErrorId field contains the error code from the underlying native code implementation of the accelerometer framework.
+
+
+
+
+ Initializes a new instance of AccelerometerFailedException
+
+ The descriptive reason for the exception
+ The native error code that caused the exception
+
+
+
+ Provides data for Calibrate and events.
+
+
+
+
+ Initializes a new instance of the CalibrationEventArgs class.
+
+
+ Obtain a CalibrationEventArgs object by implementing a handler for the Compass.Calibrate event.
+
+
+
+
+ Derived classes override this method to dispose of managed and unmanaged resources.
+
+ True if unmanaged resources are to be disposed.
+
+
+
+ Compute a hash from a byte array.
+
+
+ Modified FNV Hash in C#
+ http://stackoverflow.com/a/468084
+
+
+
+
+ Compute a hash from the content of a stream and restore the position.
+
+
+ Modified FNV Hash in C#
+ http://stackoverflow.com/a/468084
+
+
+
+
+ Combines the filePath and relativeFile based on relativeFile being a file in the same location as filePath.
+ Relative directory operators (..) are also resolved
+
+ "A\B\C.txt","D.txt" becomes "A\B\D.txt"
+ "A\B\C.txt","..\D.txt" becomes "A\D.txt"
+ Path to the file we are starting from
+ Relative location of another file to resolve the path to
+
+
+
+ Returns true if the given type represents a non-object type that is not abstract.
+
+
+
+
+ Returns true if the get method of the given property exist and are public.
+ Note that we allow a getter-only property to be serialized (and deserialized),
+ *if* CanDeserializeIntoExistingObject is true for the property type.
+
+
+
+
+ Returns true if the given type can be assigned the given value
+
+
+
+
+ Returns true if the given type can be assigned a value with the given object type
+
+
+
+
+ Fallback handler for Marshal.SizeOf(type)
+
+
+
+
+ Generics handler for Marshal.SizeOf
+
+
+
+
+ Represents a Zlib stream for compression or decompression.
+
+
+
+
+ The ZlibStream is a Decorator on a . It adds ZLIB compression or decompression to any
+ stream.
+
+
+ Using this stream, applications can compress or decompress data via
+ stream Read() and Write() operations. Either compression or
+ decompression can occur through either reading or writing. The compression
+ format used is ZLIB, which is documented in IETF RFC 1950, "ZLIB Compressed
+ Data Format Specification version 3.3". This implementation of ZLIB always uses
+ DEFLATE as the compression method. (see IETF RFC 1951, "DEFLATE
+ Compressed Data Format Specification version 1.3.")
+
+
+ The ZLIB format allows for varying compression methods, window sizes, and dictionaries.
+ This implementation always uses the DEFLATE compression method, a preset dictionary,
+ and 15 window bits by default.
+
+
+
+ This class is similar to DeflateStream, except that it adds the
+ RFC1950 header and trailer bytes to a compressed stream when compressing, or expects
+ the RFC1950 header and trailer bytes when decompressing. It is also similar to the
+ .
+
+
+
+
+
+
+ Create a ZlibStream using the specified CompressionMode.
+
+
+
+
+ When mode is CompressionMode.Compress, the ZlibStream
+ will use the default compression level. The "captive" stream will be
+ closed when the ZlibStream is closed.
+
+
+
+
+
+ This example uses a ZlibStream to compress a file, and writes the
+ compressed data to another file.
+
+ using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
+ {
+ using (var raw = System.IO.File.Create(fileToCompress + ".zlib"))
+ {
+ using (Stream compressor = new ZlibStream(raw, CompressionMode.Compress))
+ {
+ byte[] buffer = new byte[WORKING_BUFFER_SIZE];
+ int n;
+ while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
+ {
+ compressor.Write(buffer, 0, n);
+ }
+ }
+ }
+ }
+
+
+ Using input As Stream = File.OpenRead(fileToCompress)
+ Using raw As FileStream = File.Create(fileToCompress & ".zlib")
+ Using compressor As Stream = New ZlibStream(raw, CompressionMode.Compress)
+ Dim buffer As Byte() = New Byte(4096) {}
+ Dim n As Integer = -1
+ Do While (n <> 0)
+ If (n > 0) Then
+ compressor.Write(buffer, 0, n)
+ End If
+ n = input.Read(buffer, 0, buffer.Length)
+ Loop
+ End Using
+ End Using
+ End Using
+
+
+
+ The stream which will be read or written.
+ Indicates whether the ZlibStream will compress or decompress.
+
+
+
+ Create a ZlibStream using the specified CompressionMode and
+ the specified CompressionLevel.
+
+
+
+
+
+ When mode is CompressionMode.Decompress, the level parameter is ignored.
+ The "captive" stream will be closed when the ZlibStream is closed.
+
+
+
+
+
+ This example uses a ZlibStream to compress data from a file, and writes the
+ compressed data to another file.
+
+
+ using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
+ {
+ using (var raw = System.IO.File.Create(fileToCompress + ".zlib"))
+ {
+ using (Stream compressor = new ZlibStream(raw,
+ CompressionMode.Compress,
+ CompressionLevel.BestCompression))
+ {
+ byte[] buffer = new byte[WORKING_BUFFER_SIZE];
+ int n;
+ while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
+ {
+ compressor.Write(buffer, 0, n);
+ }
+ }
+ }
+ }
+
+
+
+ Using input As Stream = File.OpenRead(fileToCompress)
+ Using raw As FileStream = File.Create(fileToCompress & ".zlib")
+ Using compressor As Stream = New ZlibStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression)
+ Dim buffer As Byte() = New Byte(4096) {}
+ Dim n As Integer = -1
+ Do While (n <> 0)
+ If (n > 0) Then
+ compressor.Write(buffer, 0, n)
+ End If
+ n = input.Read(buffer, 0, buffer.Length)
+ Loop
+ End Using
+ End Using
+ End Using
+
+
+
+ The stream to be read or written while deflating or inflating.
+ Indicates whether the ZlibStream will compress or decompress.
+ A tuning knob to trade speed for effectiveness.
+
+
+
+ Create a ZlibStream using the specified CompressionMode, and
+ explicitly specify whether the captive stream should be left open after
+ Deflation or Inflation.
+
+
+
+
+
+ When mode is CompressionMode.Compress, the ZlibStream will use
+ the default compression level.
+
+
+
+ This constructor allows the application to request that the captive stream
+ remain open after the deflation or inflation occurs. By default, after
+ Close() is called on the stream, the captive stream is also
+ closed. In some cases this is not desired, for example if the stream is a
+ that will be re-read after
+ compression. Specify true for the parameter to leave the stream
+ open.
+
+
+
+ See the other overloads of this constructor for example code.
+
+
+
+
+ The stream which will be read or written. This is called the
+ "captive" stream in other places in this documentation.
+ Indicates whether the ZlibStream will compress or decompress.
+ true if the application would like the stream to remain
+ open after inflation/deflation.
+
+
+
+ Create a ZlibStream using the specified CompressionMode
+ and the specified CompressionLevel, and explicitly specify
+ whether the stream should be left open after Deflation or Inflation.
+
+
+
+
+
+ This constructor allows the application to request that the captive
+ stream remain open after the deflation or inflation occurs. By
+ default, after Close() is called on the stream, the captive
+ stream is also closed. In some cases this is not desired, for example
+ if the stream is a that will be
+ re-read after compression. Specify true for the parameter to leave the stream open.
+
+
+
+ When mode is CompressionMode.Decompress, the level parameter is
+ ignored.
+
+
+
+
+
+
+ This example shows how to use a ZlibStream to compress the data from a file,
+ and store the result into another file. The filestream remains open to allow
+ additional data to be written to it.
+
+
+ using (var output = System.IO.File.Create(fileToCompress + ".zlib"))
+ {
+ using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
+ {
+ using (Stream compressor = new ZlibStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, true))
+ {
+ byte[] buffer = new byte[WORKING_BUFFER_SIZE];
+ int n;
+ while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
+ {
+ compressor.Write(buffer, 0, n);
+ }
+ }
+ }
+ // can write additional data to the output stream here
+ }
+
+
+ Using output As FileStream = File.Create(fileToCompress & ".zlib")
+ Using input As Stream = File.OpenRead(fileToCompress)
+ Using compressor As Stream = New ZlibStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, True)
+ Dim buffer As Byte() = New Byte(4096) {}
+ Dim n As Integer = -1
+ Do While (n <> 0)
+ If (n > 0) Then
+ compressor.Write(buffer, 0, n)
+ End If
+ n = input.Read(buffer, 0, buffer.Length)
+ Loop
+ End Using
+ End Using
+ ' can write additional data to the output stream here.
+ End Using
+
+
+
+ The stream which will be read or written.
+
+ Indicates whether the ZlibStream will compress or decompress.
+
+
+ true if the application would like the stream to remain open after
+ inflation/deflation.
+
+
+
+ A tuning knob to trade speed for effectiveness. This parameter is
+ effective only when mode is CompressionMode.Compress.
+
+
+
+
+ Dispose the stream.
+
+
+
+ This may or may not result in a Close() call on the captive
+ stream. See the constructors that have a leaveOpen parameter
+ for more information.
+
+
+ This method may be invoked in two distinct scenarios. If disposing
+ == true, the method has been called directly or indirectly by a
+ user's code, for example via the public Dispose() method. In this
+ case, both managed and unmanaged resources can be referenced and
+ disposed. If disposing == false, the method has been called by the
+ runtime from inside the object finalizer and this method should not
+ reference other objects; in that case only unmanaged resources must
+ be referenced or disposed.
+
+
+
+ indicates whether the Dispose method was invoked by user code.
+
+
+
+
+ Flush the stream.
+
+
+
+
+ Read data from the stream.
+
+
+
+
+
+ If you wish to use the ZlibStream to compress data while reading,
+ you can create a ZlibStream with CompressionMode.Compress,
+ providing an uncompressed data stream. Then call Read() on that
+ ZlibStream, and the data read will be compressed. If you wish to
+ use the ZlibStream to decompress data while reading, you can create
+ a ZlibStream with CompressionMode.Decompress, providing a
+ readable compressed data stream. Then call Read() on that
+ ZlibStream, and the data will be decompressed as it is read.
+
+
+
+ A ZlibStream can be used for Read() or Write(), but
+ not both.
+
+
+
+
+
+ The buffer into which the read data should be placed.
+
+
+ the offset within that data array to put the first byte read.
+
+ the number of bytes to read.
+
+ the number of bytes read
+
+
+
+ Calling this method always throws a .
+
+
+ The offset to seek to....
+ IF THIS METHOD ACTUALLY DID ANYTHING.
+
+
+ The reference specifying how to apply the offset.... IF
+ THIS METHOD ACTUALLY DID ANYTHING.
+
+
+ nothing. This method always throws.
+
+
+
+ Calling this method always throws a .
+
+
+ The new value for the stream length.... IF
+ THIS METHOD ACTUALLY DID ANYTHING.
+
+
+
+
+ Write data to the stream.
+
+
+
+
+
+ If you wish to use the ZlibStream to compress data while writing,
+ you can create a ZlibStream with CompressionMode.Compress,
+ and a writable output stream. Then call Write() on that
+ ZlibStream, providing uncompressed data as input. The data sent to
+ the output stream will be the compressed form of the data written. If you
+ wish to use the ZlibStream to decompress data while writing, you
+ can create a ZlibStream with CompressionMode.Decompress, and a
+ writable output stream. Then call Write() on that stream,
+ providing previously compressed data. The data sent to the output stream
+ will be the decompressed form of the data written.
+
+
+
+ A ZlibStream can be used for Read() or Write(), but not both.
+
+
+ The buffer holding data to write to the stream.
+ the offset within that data array to find the first byte to write.
+ the number of bytes to write.
+
+
+
+ Compress a string into a byte array using ZLIB.
+
+
+
+ Uncompress it with .
+
+
+
+
+
+
+
+ A string to compress. The string will first be encoded
+ using UTF8, then compressed.
+
+
+ The string in compressed form
+
+
+
+ Compress a byte array into a new byte array using ZLIB.
+
+
+
+ Uncompress it with .
+
+
+
+
+
+
+ A buffer to compress.
+
+
+ The data in compressed form
+
+
+
+ Uncompress a ZLIB-compressed byte array into a single string.
+
+
+
+
+
+
+ A buffer containing ZLIB-compressed data.
+
+
+ The uncompressed string
+
+
+
+ Uncompress a ZLIB-compressed byte array into a byte array.
+
+
+
+
+
+
+ A buffer containing ZLIB-compressed data.
+
+
+ The data in uncompressed form
+
+
+
+ This property sets the flush behavior on the stream.
+ Sorry, though, not sure exactly how to describe all the various settings.
+
+
+
+
+ The size of the working buffer for the compression codec.
+
+
+
+
+ The working buffer is used for all stream operations. The default size is
+ 1024 bytes. The minimum size is 128 bytes. You may get better performance
+ with a larger buffer. Then again, you might not. You would have to test
+ it.
+
+
+
+ Set this before the first call to Read() or Write() on the
+ stream. If you try to set it afterwards, it will throw.
+
+
+
+
+ Returns the total number of bytes input so far.
+
+
+ Returns the total number of bytes output so far.
+
+
+
+ Indicates whether the stream can be read.
+
+
+ The return value depends on whether the captive stream supports reading.
+
+
+
+
+ Indicates whether the stream supports Seek operations.
+
+
+ Always returns false.
+
+
+
+
+ Indicates whether the stream can be written.
+
+
+ The return value depends on whether the captive stream supports writing.
+
+
+
+
+ Reading this property always throws a .
+
+
+
+
+ The position of the stream pointer.
+
+
+
+ Setting this property always throws a . Reading will return the total bytes
+ written out, if used in writing, or the total bytes read in, if used in
+ reading. The count may refer to compressed bytes or uncompressed bytes,
+ depending on how you've used the stream.
+
+
+
+
+ A bunch of constants used in the Zlib interface.
+
+
+
+
+ The maximum number of window bits for the Deflate algorithm.
+
+
+
+
+ The default number of window bits for the Deflate algorithm.
+
+
+
+
+ indicates everything is A-OK
+
+
+
+
+ Indicates that the last operation reached the end of the stream.
+
+
+
+
+ The operation ended in need of a dictionary.
+
+
+
+
+ There was an error with the stream - not enough data, not open and readable, etc.
+
+
+
+
+ There was an error with the data - not enough data, bad data, etc.
+
+
+
+
+ There was an error with the working buffer.
+
+
+
+
+ The size of the working buffer used in the ZlibCodec class. Defaults to 8192 bytes.
+
+
+
+
+ The minimum size of the working buffer used in the ZlibCodec class. Currently it is 128 bytes.
+
+
+
+
+ Encoder and Decoder for ZLIB and DEFLATE (IETF RFC1950 and RFC1951).
+
+
+
+ This class compresses and decompresses data according to the Deflate algorithm
+ and optionally, the ZLIB format, as documented in RFC 1950 - ZLIB and RFC 1951 - DEFLATE.
+
+
+
+
+ The buffer from which data is taken.
+
+
+
+
+ An index into the InputBuffer array, indicating where to start reading.
+
+
+
+
+ The number of bytes available in the InputBuffer, starting at NextIn.
+
+
+ Generally you should set this to InputBuffer.Length before the first Inflate() or Deflate() call.
+ The class will update this number as calls to Inflate/Deflate are made.
+
+
+
+
+ Total number of bytes read so far, through all calls to Inflate()/Deflate().
+
+
+
+
+ Buffer to store output data.
+
+
+
+
+ An index into the OutputBuffer array, indicating where to start writing.
+
+
+
+
+ The number of bytes available in the OutputBuffer, starting at NextOut.
+
+
+ Generally you should set this to OutputBuffer.Length before the first Inflate() or Deflate() call.
+ The class will update this number as calls to Inflate/Deflate are made.
+
+
+
+
+ Total number of bytes written to the output so far, through all calls to Inflate()/Deflate().
+
+
+
+
+ used for diagnostics, when something goes wrong!
+
+
+
+
+ The compression level to use in this codec. Useful only in compression mode.
+
+
+
+
+ The number of Window Bits to use.
+
+
+ This gauges the size of the sliding window, and hence the
+ compression effectiveness as well as memory consumption. It's best to just leave this
+ setting alone if you don't know what it is. The maximum value is 15 bits, which implies
+ a 32k window.
+
+
+
+
+ The compression strategy to use.
+
+
+ This is only effective in compression. The theory offered by ZLIB is that different
+ strategies could potentially produce significant differences in compression behavior
+ for different data sets. Unfortunately I don't have any good recommendations for how
+ to set it differently. When I tested changing the strategy I got minimally different
+ compression performance. It's best to leave this property alone if you don't have a
+ good feel for it. Or, you may want to produce a test harness that runs through the
+ different strategy options and evaluates them on different file types. If you do that,
+ let me know your results.
+
+
+
+
+ Create a ZlibCodec.
+
+
+ If you use this default constructor, you will later have to explicitly call
+ InitializeInflate() or InitializeDeflate() before using the ZlibCodec to compress
+ or decompress.
+
+
+
+
+ Create a ZlibCodec that either compresses or decompresses.
+
+
+ Indicates whether the codec should compress (deflate) or decompress (inflate).
+
+
+
+
+ Initialize the inflation state.
+
+
+ It is not necessary to call this before using the ZlibCodec to inflate data;
+ It is implicitly called when you call the constructor.
+
+ Z_OK if everything goes well.
+
+
+
+ Initialize the inflation state with an explicit flag to
+ govern the handling of RFC1950 header bytes.
+
+
+
+ By default, the ZLIB header defined in RFC 1950 is expected. If
+ you want to read a zlib stream you should specify true for
+ expectRfc1950Header. If you have a deflate stream, you will want to specify
+ false. It is only necessary to invoke this initializer explicitly if you
+ want to specify false.
+
+
+ whether to expect an RFC1950 header byte
+ pair when reading the stream of data to be inflated.
+
+ Z_OK if everything goes well.
+
+
+
+ Initialize the ZlibCodec for inflation, with the specified number of window bits.
+
+ The number of window bits to use. If you need to ask what that is,
+ then you shouldn't be calling this initializer.
+ Z_OK if all goes well.
+
+
+
+ Initialize the inflation state with an explicit flag to govern the handling of
+ RFC1950 header bytes.
+
+
+
+ If you want to read a zlib stream you should specify true for
+ expectRfc1950Header. In this case, the library will expect to find a ZLIB
+ header, as defined in RFC
+ 1950, in the compressed stream. If you will be reading a DEFLATE or
+ GZIP stream, which does not have such a header, you will want to specify
+ false.
+
+
+ whether to expect an RFC1950 header byte pair when reading
+ the stream of data to be inflated.
+ The number of window bits to use. If you need to ask what that is,
+ then you shouldn't be calling this initializer.
+ Z_OK if everything goes well.
+
+
+
+ Inflate the data in the InputBuffer, placing the result in the OutputBuffer.
+
+
+ You must have set InputBuffer and OutputBuffer, NextIn and NextOut, and AvailableBytesIn and
+ AvailableBytesOut before calling this method.
+
+
+
+ private void InflateBuffer()
+ {
+ int bufferSize = 1024;
+ byte[] buffer = new byte[bufferSize];
+ ZlibCodec decompressor = new ZlibCodec();
+
+ Console.WriteLine("\n============================================");
+ Console.WriteLine("Size of Buffer to Inflate: {0} bytes.", CompressedBytes.Length);
+ MemoryStream ms = new MemoryStream(DecompressedBytes);
+
+ int rc = decompressor.InitializeInflate();
+
+ decompressor.InputBuffer = CompressedBytes;
+ decompressor.NextIn = 0;
+ decompressor.AvailableBytesIn = CompressedBytes.Length;
+
+ decompressor.OutputBuffer = buffer;
+
+ // pass 1: inflate
+ do
+ {
+ decompressor.NextOut = 0;
+ decompressor.AvailableBytesOut = buffer.Length;
+ rc = decompressor.Inflate(FlushType.None);
+
+ if (rc != ZlibConstants.Z_OK && rc != ZlibConstants.Z_STREAM_END)
+ throw new Exception("inflating: " + decompressor.Message);
+
+ ms.Write(decompressor.OutputBuffer, 0, buffer.Length - decompressor.AvailableBytesOut);
+ }
+ while (decompressor.AvailableBytesIn > 0 || decompressor.AvailableBytesOut == 0);
+
+ // pass 2: finish and flush
+ do
+ {
+ decompressor.NextOut = 0;
+ decompressor.AvailableBytesOut = buffer.Length;
+ rc = decompressor.Inflate(FlushType.Finish);
+
+ if (rc != ZlibConstants.Z_STREAM_END && rc != ZlibConstants.Z_OK)
+ throw new Exception("inflating: " + decompressor.Message);
+
+ if (buffer.Length - decompressor.AvailableBytesOut > 0)
+ ms.Write(buffer, 0, buffer.Length - decompressor.AvailableBytesOut);
+ }
+ while (decompressor.AvailableBytesIn > 0 || decompressor.AvailableBytesOut == 0);
+
+ decompressor.EndInflate();
+ }
+
+
+
+ The flush to use when inflating.
+ Z_OK if everything goes well.
+
+
+
+ Ends an inflation session.
+
+
+ Call this after successively calling Inflate(). This will cause all buffers to be flushed.
+ After calling this you cannot call Inflate() without a intervening call to one of the
+ InitializeInflate() overloads.
+
+ Z_OK if everything goes well.
+
+
+
+ I don't know what this does!
+
+ Z_OK if everything goes well.
+
+
+
+ Initialize the ZlibCodec for deflation operation.
+
+
+ The codec will use the MAX window bits and the default level of compression.
+
+
+
+ int bufferSize = 40000;
+ byte[] CompressedBytes = new byte[bufferSize];
+ byte[] DecompressedBytes = new byte[bufferSize];
+
+ ZlibCodec compressor = new ZlibCodec();
+
+ compressor.InitializeDeflate(CompressionLevel.Default);
+
+ compressor.InputBuffer = System.Text.ASCIIEncoding.ASCII.GetBytes(TextToCompress);
+ compressor.NextIn = 0;
+ compressor.AvailableBytesIn = compressor.InputBuffer.Length;
+
+ compressor.OutputBuffer = CompressedBytes;
+ compressor.NextOut = 0;
+ compressor.AvailableBytesOut = CompressedBytes.Length;
+
+ while (compressor.TotalBytesIn != TextToCompress.Length && compressor.TotalBytesOut < bufferSize)
+ {
+ compressor.Deflate(FlushType.None);
+ }
+
+ while (true)
+ {
+ int rc= compressor.Deflate(FlushType.Finish);
+ if (rc == ZlibConstants.Z_STREAM_END) break;
+ }
+
+ compressor.EndDeflate();
+
+
+
+ Z_OK if all goes well. You generally don't need to check the return code.
+
+
+
+ Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel.
+
+
+ The codec will use the maximum window bits (15) and the specified
+ CompressionLevel. It will emit a ZLIB stream as it compresses.
+
+ The compression level for the codec.
+ Z_OK if all goes well.
+
+
+
+ Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel,
+ and the explicit flag governing whether to emit an RFC1950 header byte pair.
+
+
+ The codec will use the maximum window bits (15) and the specified CompressionLevel.
+ If you want to generate a zlib stream, you should specify true for
+ wantRfc1950Header. In this case, the library will emit a ZLIB
+ header, as defined in RFC
+ 1950, in the compressed stream.
+
+ The compression level for the codec.
+ whether to emit an initial RFC1950 byte pair in the compressed stream.
+ Z_OK if all goes well.
+
+
+
+ Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel,
+ and the specified number of window bits.
+
+
+ The codec will use the specified number of window bits and the specified CompressionLevel.
+
+ The compression level for the codec.
+ the number of window bits to use. If you don't know what this means, don't use this method.
+ Z_OK if all goes well.
+
+
+
+ Initialize the ZlibCodec for deflation operation, using the specified
+ CompressionLevel, the specified number of window bits, and the explicit flag
+ governing whether to emit an RFC1950 header byte pair.
+
+
+ The compression level for the codec.
+ whether to emit an initial RFC1950 byte pair in the compressed stream.
+ the number of window bits to use. If you don't know what this means, don't use this method.
+ Z_OK if all goes well.
+
+
+
+ Deflate one batch of data.
+
+
+ You must have set InputBuffer and OutputBuffer before calling this method.
+
+
+
+ private void DeflateBuffer(CompressionLevel level)
+ {
+ int bufferSize = 1024;
+ byte[] buffer = new byte[bufferSize];
+ ZlibCodec compressor = new ZlibCodec();
+
+ Console.WriteLine("\n============================================");
+ Console.WriteLine("Size of Buffer to Deflate: {0} bytes.", UncompressedBytes.Length);
+ MemoryStream ms = new MemoryStream();
+
+ int rc = compressor.InitializeDeflate(level);
+
+ compressor.InputBuffer = UncompressedBytes;
+ compressor.NextIn = 0;
+ compressor.AvailableBytesIn = UncompressedBytes.Length;
+
+ compressor.OutputBuffer = buffer;
+
+ // pass 1: deflate
+ do
+ {
+ compressor.NextOut = 0;
+ compressor.AvailableBytesOut = buffer.Length;
+ rc = compressor.Deflate(FlushType.None);
+
+ if (rc != ZlibConstants.Z_OK && rc != ZlibConstants.Z_STREAM_END)
+ throw new Exception("deflating: " + compressor.Message);
+
+ ms.Write(compressor.OutputBuffer, 0, buffer.Length - compressor.AvailableBytesOut);
+ }
+ while (compressor.AvailableBytesIn > 0 || compressor.AvailableBytesOut == 0);
+
+ // pass 2: finish and flush
+ do
+ {
+ compressor.NextOut = 0;
+ compressor.AvailableBytesOut = buffer.Length;
+ rc = compressor.Deflate(FlushType.Finish);
+
+ if (rc != ZlibConstants.Z_STREAM_END && rc != ZlibConstants.Z_OK)
+ throw new Exception("deflating: " + compressor.Message);
+
+ if (buffer.Length - compressor.AvailableBytesOut > 0)
+ ms.Write(buffer, 0, buffer.Length - compressor.AvailableBytesOut);
+ }
+ while (compressor.AvailableBytesIn > 0 || compressor.AvailableBytesOut == 0);
+
+ compressor.EndDeflate();
+
+ ms.Seek(0, SeekOrigin.Begin);
+ CompressedBytes = new byte[compressor.TotalBytesOut];
+ ms.Read(CompressedBytes, 0, CompressedBytes.Length);
+ }
+
+
+ whether to flush all data as you deflate. Generally you will want to
+ use Z_NO_FLUSH here, in a series of calls to Deflate(), and then call EndDeflate() to
+ flush everything.
+
+ Z_OK if all goes well.
+
+
+
+ End a deflation session.
+
+
+ Call this after making a series of one or more calls to Deflate(). All buffers are flushed.
+
+ Z_OK if all goes well.
+
+
+
+ Reset a codec for another deflation session.
+
+
+ Call this to reset the deflation state. For example if a thread is deflating
+ non-consecutive blocks, you can call Reset() after the Deflate(Sync) of the first
+ block and before the next Deflate(None) of the second block.
+
+ Z_OK if all goes well.
+
+
+
+ Set the CompressionStrategy and CompressionLevel for a deflation session.
+
+ the level of compression to use.
+ the strategy to use for compression.
+ Z_OK if all goes well.
+
+
+
+ Set the dictionary to be used for either Inflation or Deflation.
+
+ The dictionary bytes to use.
+ Z_OK if all goes well.
+
+
+
+ The Adler32 checksum on the data transferred through the codec so far. You probably don't need to look at this.
+
+
+
+
+ Describes how to flush the current deflate operation.
+
+
+ The different FlushType values are useful when using a Deflate in a streaming application.
+
+
+
+ No flush at all.
+
+
+ Closes the current block, but doesn't flush it to
+ the output. Used internally only in hypothetical
+ scenarios. This was supposed to be removed by Zlib, but it is
+ still in use in some edge cases.
+
+
+
+
+ Use this during compression to specify that all pending output should be
+ flushed to the output buffer and the output should be aligned on a byte
+ boundary. You might use this in a streaming communication scenario, so that
+ the decompressor can get all input data available so far. When using this
+ with a ZlibCodec, AvailableBytesIn will be zero after the call if
+ enough output space has been provided before the call. Flushing will
+ degrade compression and so it should be used only when necessary.
+
+
+
+
+ Use this during compression to specify that all output should be flushed, as
+ with FlushType.Sync, but also, the compression state should be reset
+ so that decompression can restart from this point if previous compressed
+ data has been damaged or if random access is desired. Using
+ FlushType.Full too often can significantly degrade the compression.
+
+
+
+ Signals the end of the compression/decompression stream.
+
+
+
+ The compression level to be used when using a DeflateStream or ZlibStream with CompressionMode.Compress.
+
+
+
+
+ None means that the data will be simply stored, with no change at all.
+ If you are producing ZIPs for use on Mac OSX, be aware that archives produced with CompressionLevel.None
+ cannot be opened with the default zip reader. Use a different CompressionLevel.
+
+
+
+
+ Same as None.
+
+
+
+
+ The fastest but least effective compression.
+
+
+
+
+ A synonym for BestSpeed.
+
+
+
+
+ A little slower, but better, than level 1.
+
+
+
+
+ A little slower, but better, than level 2.
+
+
+
+
+ A little slower, but better, than level 3.
+
+
+
+
+ A little slower than level 4, but with better compression.
+
+
+
+
+ The default compression level, with a good balance of speed and compression efficiency.
+
+
+
+
+ A synonym for Default.
+
+
+
+
+ Pretty good compression!
+
+
+
+
+ Better compression than Level7!
+
+
+
+
+ The "best" compression, where best means greatest reduction in size of the input data stream.
+ This is also the slowest compression.
+
+
+
+
+ A synonym for BestCompression.
+
+
+
+
+ Describes options for how the compression algorithm is executed. Different strategies
+ work better on different sorts of data. The strategy parameter can affect the compression
+ ratio and the speed of compression but not the correctness of the compresssion.
+
+
+
+
+ The default strategy is probably the best for normal data.
+
+
+
+
+ The Filtered strategy is intended to be used most effectively with data produced by a
+ filter or predictor. By this definition, filtered data consists mostly of small
+ values with a somewhat random distribution. In this case, the compression algorithm
+ is tuned to compress them better. The effect of Filtered is to force more Huffman
+ coding and less string matching; it is a half-step between Default and HuffmanOnly.
+
+
+
+
+ Using HuffmanOnly will force the compressor to do Huffman encoding only, with no
+ string matching.
+
+
+
+
+ An enum to specify the direction of transcoding - whether to compress or decompress.
+
+
+
+
+ Used to specify that the stream should compress the data.
+
+
+
+
+ Used to specify that the stream should decompress the data.
+
+
+
+
+ A general purpose exception class for exceptions in the Zlib library.
+
+
+
+
+ The ZlibException class captures exception information generated
+ by the Zlib library.
+
+
+
+
+ This ctor collects a message attached to the exception.
+
+ the message for the exception.
+
+
+
+ Performs an unsigned bitwise right shift with the specified number
+
+ Number to operate on
+ Ammount of bits to shift
+ The resulting number from the shift operation
+
+
+
+ Reads a number of characters from the current source TextReader and writes
+ the data to the target array at the specified index.
+
+
+ The source TextReader to read from
+ Contains the array of characteres read from the source TextReader.
+ The starting index of the target array.
+ The maximum number of characters to read from the source TextReader.
+
+
+ The number of characters read. The number will be less than or equal to
+ count depending on the data available in the source TextReader. Returns -1
+ if the end of the stream is reached.
+
+
+
+
+ Computes an Adler-32 checksum.
+
+
+ The Adler checksum is similar to a CRC checksum, but faster to compute, though less
+ reliable. It is used in producing RFC1950 compressed streams. The Adler checksum
+ is a required part of the "ZLIB" standard. Applications will almost never need to
+ use this class directly.
+
+
+
+
+
+
+ Calculates the Adler32 checksum.
+
+
+
+ This is used within ZLIB. You probably don't need to use this directly.
+
+
+
+ To compute an Adler32 checksum on a byte array:
+
+ var adler = Adler.Adler32(0, null, 0, 0);
+ adler = Adler.Adler32(adler, buffer, index, length);
+
+
+
+
+
+ Map from a distance to a distance code.
+
+
+ No side effects. _dist_code[256] and _dist_code[257] are never used.
+
+
+
+
+ A class for compressing and decompressing GZIP streams.
+
+
+
+
+ The GZipStream is a Decorator on a
+ . It adds GZIP compression or decompression to any
+ stream.
+
+
+
+ Like the System.IO.Compression.GZipStream in the .NET Base Class Library, the
+ Ionic.Zlib.GZipStream can compress while writing, or decompress while
+ reading, but not vice versa. The compression method used is GZIP, which is
+ documented in IETF RFC
+ 1952, "GZIP file format specification version 4.3".
+
+
+ A GZipStream can be used to decompress data (through Read()) or
+ to compress data (through Write()), but not both.
+
+
+
+ If you wish to use the GZipStream to compress data, you must wrap it
+ around a write-able stream. As you call Write() on the GZipStream, the
+ data will be compressed into the GZIP format. If you want to decompress data,
+ you must wrap the GZipStream around a readable stream that contains an
+ IETF RFC 1952-compliant stream. The data will be decompressed as you call
+ Read() on the GZipStream.
+
+
+
+ Though the GZIP format allows data from multiple files to be concatenated
+ together, this stream handles only a single segment of GZIP format, typically
+ representing a single file.
+
+
+
+
+
+
+
+ The last modified time for the GZIP stream.
+
+
+
+ GZIP allows the storage of a last modified time with each GZIP entry.
+ When compressing data, you can set this before the first call to
+ Write(). When decompressing, you can retrieve this value any time
+ after the first call to Read().
+
+
+
+
+ Create a GZipStream using the specified CompressionMode.
+
+
+
+
+ When mode is CompressionMode.Compress, the GZipStream will use the
+ default compression level.
+
+
+
+ As noted in the class documentation, the CompressionMode (Compress
+ or Decompress) also establishes the "direction" of the stream. A
+ GZipStream with CompressionMode.Compress works only through
+ Write(). A GZipStream with
+ CompressionMode.Decompress works only through Read().
+
+
+
+
+
+ This example shows how to use a GZipStream to compress data.
+
+ using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
+ {
+ using (var raw = System.IO.File.Create(outputFile))
+ {
+ using (Stream compressor = new GZipStream(raw, CompressionMode.Compress))
+ {
+ byte[] buffer = new byte[WORKING_BUFFER_SIZE];
+ int n;
+ while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
+ {
+ compressor.Write(buffer, 0, n);
+ }
+ }
+ }
+ }
+
+
+ Dim outputFile As String = (fileToCompress & ".compressed")
+ Using input As Stream = File.OpenRead(fileToCompress)
+ Using raw As FileStream = File.Create(outputFile)
+ Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress)
+ Dim buffer As Byte() = New Byte(4096) {}
+ Dim n As Integer = -1
+ Do While (n <> 0)
+ If (n > 0) Then
+ compressor.Write(buffer, 0, n)
+ End If
+ n = input.Read(buffer, 0, buffer.Length)
+ Loop
+ End Using
+ End Using
+ End Using
+
+
+
+
+ This example shows how to use a GZipStream to uncompress a file.
+
+ private void GunZipFile(string filename)
+ {
+ if (!filename.EndsWith(".gz))
+ throw new ArgumentException("filename");
+ var DecompressedFile = filename.Substring(0,filename.Length-3);
+ byte[] working = new byte[WORKING_BUFFER_SIZE];
+ int n= 1;
+ using (System.IO.Stream input = System.IO.File.OpenRead(filename))
+ {
+ using (Stream decompressor= new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, true))
+ {
+ using (var output = System.IO.File.Create(DecompressedFile))
+ {
+ while (n !=0)
+ {
+ n= decompressor.Read(working, 0, working.Length);
+ if (n > 0)
+ {
+ output.Write(working, 0, n);
+ }
+ }
+ }
+ }
+ }
+ }
+
+
+
+ Private Sub GunZipFile(ByVal filename as String)
+ If Not (filename.EndsWith(".gz)) Then
+ Throw New ArgumentException("filename")
+ End If
+ Dim DecompressedFile as String = filename.Substring(0,filename.Length-3)
+ Dim working(WORKING_BUFFER_SIZE) as Byte
+ Dim n As Integer = 1
+ Using input As Stream = File.OpenRead(filename)
+ Using decompressor As Stream = new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, True)
+ Using output As Stream = File.Create(UncompressedFile)
+ Do
+ n= decompressor.Read(working, 0, working.Length)
+ If n > 0 Then
+ output.Write(working, 0, n)
+ End IF
+ Loop While (n > 0)
+ End Using
+ End Using
+ End Using
+ End Sub
+
+
+
+ The stream which will be read or written.
+ Indicates whether the GZipStream will compress or decompress.
+
+
+
+ Create a GZipStream using the specified CompressionMode and
+ the specified CompressionLevel.
+
+
+
+
+ The CompressionMode (Compress or Decompress) also establishes the
+ "direction" of the stream. A GZipStream with
+ CompressionMode.Compress works only through Write(). A
+ GZipStream with CompressionMode.Decompress works only
+ through Read().
+
+
+
+
+
+
+ This example shows how to use a GZipStream to compress a file into a .gz file.
+
+
+ using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
+ {
+ using (var raw = System.IO.File.Create(fileToCompress + ".gz"))
+ {
+ using (Stream compressor = new GZipStream(raw,
+ CompressionMode.Compress,
+ CompressionLevel.BestCompression))
+ {
+ byte[] buffer = new byte[WORKING_BUFFER_SIZE];
+ int n;
+ while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
+ {
+ compressor.Write(buffer, 0, n);
+ }
+ }
+ }
+ }
+
+
+
+ Using input As Stream = File.OpenRead(fileToCompress)
+ Using raw As FileStream = File.Create(fileToCompress & ".gz")
+ Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression)
+ Dim buffer As Byte() = New Byte(4096) {}
+ Dim n As Integer = -1
+ Do While (n <> 0)
+ If (n > 0) Then
+ compressor.Write(buffer, 0, n)
+ End If
+ n = input.Read(buffer, 0, buffer.Length)
+ Loop
+ End Using
+ End Using
+ End Using
+
+
+ The stream to be read or written while deflating or inflating.
+ Indicates whether the GZipStream will compress or decompress.
+ A tuning knob to trade speed for effectiveness.
+
+
+
+ Create a GZipStream using the specified CompressionMode, and
+ explicitly specify whether the stream should be left open after Deflation
+ or Inflation.
+
+
+
+
+ This constructor allows the application to request that the captive stream
+ remain open after the deflation or inflation occurs. By default, after
+ Close() is called on the stream, the captive stream is also
+ closed. In some cases this is not desired, for example if the stream is a
+ memory stream that will be re-read after compressed data has been written
+ to it. Specify true for the parameter to leave
+ the stream open.
+
+
+
+ The (Compress or Decompress) also
+ establishes the "direction" of the stream. A GZipStream with
+ CompressionMode.Compress works only through Write(). A GZipStream
+ with CompressionMode.Decompress works only through Read().
+
+
+
+ The GZipStream will use the default compression level. If you want
+ to specify the compression level, see .
+
+
+
+ See the other overloads of this constructor for example code.
+
+
+
+
+
+ The stream which will be read or written. This is called the "captive"
+ stream in other places in this documentation.
+
+
+ Indicates whether the GZipStream will compress or decompress.
+
+
+
+ true if the application would like the base stream to remain open after
+ inflation/deflation.
+
+
+
+
+ Create a GZipStream using the specified CompressionMode and the
+ specified CompressionLevel, and explicitly specify whether the
+ stream should be left open after Deflation or Inflation.
+
+
+
+
+
+ This constructor allows the application to request that the captive stream
+ remain open after the deflation or inflation occurs. By default, after
+ Close() is called on the stream, the captive stream is also
+ closed. In some cases this is not desired, for example if the stream is a
+ memory stream that will be re-read after compressed data has been written
+ to it. Specify true for the parameter to
+ leave the stream open.
+
+
+
+ As noted in the class documentation, the CompressionMode (Compress
+ or Decompress) also establishes the "direction" of the stream. A
+ GZipStream with CompressionMode.Compress works only through
+ Write(). A GZipStream with CompressionMode.Decompress works only
+ through Read().
+
+
+
+
+
+ This example shows how to use a GZipStream to compress data.
+
+ using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
+ {
+ using (var raw = System.IO.File.Create(outputFile))
+ {
+ using (Stream compressor = new GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, true))
+ {
+ byte[] buffer = new byte[WORKING_BUFFER_SIZE];
+ int n;
+ while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
+ {
+ compressor.Write(buffer, 0, n);
+ }
+ }
+ }
+ }
+
+
+ Dim outputFile As String = (fileToCompress & ".compressed")
+ Using input As Stream = File.OpenRead(fileToCompress)
+ Using raw As FileStream = File.Create(outputFile)
+ Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, True)
+ Dim buffer As Byte() = New Byte(4096) {}
+ Dim n As Integer = -1
+ Do While (n <> 0)
+ If (n > 0) Then
+ compressor.Write(buffer, 0, n)
+ End If
+ n = input.Read(buffer, 0, buffer.Length)
+ Loop
+ End Using
+ End Using
+ End Using
+
+
+ The stream which will be read or written.
+ Indicates whether the GZipStream will compress or decompress.
+ true if the application would like the stream to remain open after inflation/deflation.
+ A tuning knob to trade speed for effectiveness.
+
+
+
+ Dispose the stream.
+
+
+
+ This may or may not result in a Close() call on the captive
+ stream. See the constructors that have a leaveOpen parameter
+ for more information.
+
+
+ This method may be invoked in two distinct scenarios. If disposing
+ == true, the method has been called directly or indirectly by a
+ user's code, for example via the internal Dispose() method. In this
+ case, both managed and unmanaged resources can be referenced and
+ disposed. If disposing == false, the method has been called by the
+ runtime from inside the object finalizer and this method should not
+ reference other objects; in that case only unmanaged resources must
+ be referenced or disposed.
+
+
+
+ indicates whether the Dispose method was invoked by user code.
+
+
+
+
+ Flush the stream.
+
+
+
+
+ Read and decompress data from the source stream.
+
+
+
+ With a GZipStream, decompression is done through reading.
+
+
+
+
+ byte[] working = new byte[WORKING_BUFFER_SIZE];
+ using (System.IO.Stream input = System.IO.File.OpenRead(_CompressedFile))
+ {
+ using (Stream decompressor= new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, true))
+ {
+ using (var output = System.IO.File.Create(_DecompressedFile))
+ {
+ int n;
+ while ((n= decompressor.Read(working, 0, working.Length)) !=0)
+ {
+ output.Write(working, 0, n);
+ }
+ }
+ }
+ }
+
+
+ The buffer into which the decompressed data should be placed.
+ the offset within that data array to put the first byte read.
+ the number of bytes to read.
+ the number of bytes actually read
+
+
+
+ Calling this method always throws a .
+
+ irrelevant; it will always throw!
+ irrelevant; it will always throw!
+ irrelevant!
+
+
+
+ Calling this method always throws a .
+
+ irrelevant; this method will always throw!
+
+
+
+ Write data to the stream.
+
+
+
+
+ If you wish to use the GZipStream to compress data while writing,
+ you can create a GZipStream with CompressionMode.Compress, and a
+ writable output stream. Then call Write() on that GZipStream,
+ providing uncompressed data as input. The data sent to the output stream
+ will be the compressed form of the data written.
+
+
+
+ A GZipStream can be used for Read() or Write(), but not
+ both. Writing implies compression. Reading implies decompression.
+
+
+
+ The buffer holding data to write to the stream.
+ the offset within that data array to find the first byte to write.
+ the number of bytes to write.
+
+
+
+ Compress a string into a byte array using GZip.
+
+
+
+ Uncompress it with .
+
+
+
+
+
+
+ A string to compress. The string will first be encoded
+ using UTF8, then compressed.
+
+
+ The string in compressed form
+
+
+
+ Compress a byte array into a new byte array using GZip.
+
+
+
+ Uncompress it with .
+
+
+
+
+
+
+ A buffer to compress.
+
+
+ The data in compressed form
+
+
+
+ Uncompress a GZip'ed byte array into a single string.
+
+
+
+
+
+
+ A buffer containing GZIP-compressed data.
+
+
+ The uncompressed string
+
+
+
+ Uncompress a GZip'ed byte array into a byte array.
+
+
+
+
+
+
+ A buffer containing data that has been compressed with GZip.
+
+
+ The data in uncompressed form
+
+
+
+ The comment on the GZIP stream.
+
+
+
+
+ The GZIP format allows for each file to optionally have an associated
+ comment stored with the file. The comment is encoded with the ISO-8859-1
+ code page. To include a comment in a GZIP stream you create, set this
+ property before calling Write() for the first time on the
+ GZipStream.
+
+
+
+ When using GZipStream to decompress, you can retrieve this property
+ after the first call to Read(). If no comment has been set in the
+ GZIP bytestream, the Comment property will return null
+ (Nothing in VB).
+
+
+
+
+
+ The FileName for the GZIP stream.
+
+
+
+
+
+ The GZIP format optionally allows each file to have an associated
+ filename. When compressing data (through Write()), set this
+ FileName before calling Write() the first time on the GZipStream.
+ The actual filename is encoded into the GZIP bytestream with the
+ ISO-8859-1 code page, according to RFC 1952. It is the application's
+ responsibility to insure that the FileName can be encoded and decoded
+ correctly with this code page.
+
+
+
+ When decompressing (through Read()), you can retrieve this value
+ any time after the first Read(). In the case where there was no filename
+ encoded into the GZIP bytestream, the property will return null (Nothing
+ in VB).
+
+
+
+
+
+ The CRC on the GZIP stream.
+
+
+ This is used for internal error checking. You probably don't need to look at this property.
+
+
+
+
+ This property sets the flush behavior on the stream.
+
+
+
+
+ The size of the working buffer for the compression codec.
+
+
+
+
+ The working buffer is used for all stream operations. The default size is
+ 1024 bytes. The minimum size is 128 bytes. You may get better performance
+ with a larger buffer. Then again, you might not. You would have to test
+ it.
+
+
+
+ Set this before the first call to Read() or Write() on the
+ stream. If you try to set it afterwards, it will throw.
+
+
+
+
+ Returns the total number of bytes input so far.
+
+
+ Returns the total number of bytes output so far.
+
+
+
+ Indicates whether the stream can be read.
+
+
+ The return value depends on whether the captive stream supports reading.
+
+
+
+
+ Indicates whether the stream supports Seek operations.
+
+
+ Always returns false.
+
+
+
+
+ Indicates whether the stream can be written.
+
+
+ The return value depends on whether the captive stream supports writing.
+
+
+
+
+ Reading this property always throws a .
+
+
+
+
+ The position of the stream pointer.
+
+
+
+ Setting this property always throws a . Reading will return the total bytes
+ written out, if used in writing, or the total bytes read in, if used in
+ reading. The count may refer to compressed bytes or uncompressed bytes,
+ depending on how you've used the stream.
+
+
+
+
+ Computes a CRC-32. The CRC-32 algorithm is parameterized - you
+ can set the polynomial and enable or disable bit
+ reversal. This can be used for GZIP, BZip2, or ZIP.
+
+
+ This type is used internally by DotNetZip; it is generally not used
+ directly by applications wishing to create, read, or manipulate zip
+ archive files.
+
+
+
+
+ Returns the CRC32 for the specified stream.
+
+ The stream over which to calculate the CRC32
+ the CRC32 calculation
+
+
+
+ Returns the CRC32 for the specified stream, and writes the input into the
+ output stream.
+
+ The stream over which to calculate the CRC32
+ The stream into which to deflate the input
+ the CRC32 calculation
+
+
+
+ Get the CRC32 for the given (word,byte) combo. This is a
+ computation defined by PKzip for PKZIP 2.0 (weak) encryption.
+
+ The word to start with.
+ The byte to combine it with.
+ The CRC-ized result.
+
+
+
+ Update the value for the running CRC32 using the given block of bytes.
+ This is useful when using the CRC32() class in a Stream.
+
+ block of bytes to slurp
+ starting point in the block
+ how many bytes within the block to slurp
+
+
+
+ Process one byte in the CRC.
+
+ the byte to include into the CRC .
+
+
+
+ Process a run of N identical bytes into the CRC.
+
+
+
+ This method serves as an optimization for updating the CRC when a
+ run of identical bytes is found. Rather than passing in a buffer of
+ length n, containing all identical bytes b, this method accepts the
+ byte value and the length of the (virtual) buffer - the length of
+ the run.
+
+
+ the byte to include into the CRC.
+ the number of times that byte should be repeated.
+
+
+
+ Combines the given CRC32 value with the current running total.
+
+
+ This is useful when using a divide-and-conquer approach to
+ calculating a CRC. Multiple threads can each calculate a
+ CRC32 on a segment of the data, and then combine the
+ individual CRC32 values at the end.
+
+ the crc value to be combined with this one
+ the length of data the CRC value was calculated on
+
+
+
+ Create an instance of the CRC32 class using the default settings: no
+ bit reversal, and a polynomial of 0xEDB88320.
+
+
+
+
+ Create an instance of the CRC32 class, specifying whether to reverse
+ data bits or not.
+
+
+ specify true if the instance should reverse data bits.
+
+
+
+ In the CRC-32 used by BZip2, the bits are reversed. Therefore if you
+ want a CRC32 with compatibility with BZip2, you should pass true
+ here. In the CRC-32 used by GZIP and PKZIP, the bits are not
+ reversed; Therefore if you want a CRC32 with compatibility with
+ those, you should pass false.
+
+
+
+
+
+ Create an instance of the CRC32 class, specifying the polynomial and
+ whether to reverse data bits or not.
+
+
+ The polynomial to use for the CRC, expressed in the reversed (LSB)
+ format: the highest ordered bit in the polynomial value is the
+ coefficient of the 0th power; the second-highest order bit is the
+ coefficient of the 1 power, and so on. Expressed this way, the
+ polynomial for the CRC-32C used in IEEE 802.3, is 0xEDB88320.
+
+
+ specify true if the instance should reverse data bits.
+
+
+
+
+ In the CRC-32 used by BZip2, the bits are reversed. Therefore if you
+ want a CRC32 with compatibility with BZip2, you should pass true
+ here for the reverseBits parameter. In the CRC-32 used by
+ GZIP and PKZIP, the bits are not reversed; Therefore if you want a
+ CRC32 with compatibility with those, you should pass false for the
+ reverseBits parameter.
+
+
+
+
+
+ Reset the CRC-32 class - clear the CRC "remainder register."
+
+
+
+ Use this when employing a single instance of this class to compute
+ multiple, distinct CRCs on multiple, distinct data blocks.
+
+
+
+
+
+ Indicates the total number of bytes applied to the CRC.
+
+
+
+
+ Indicates the current CRC for all blocks slurped in.
+
+
+
+
+ A Stream that calculates a CRC32 (a checksum) on all bytes read,
+ or on all bytes written.
+
+
+
+
+ This class can be used to verify the CRC of a ZipEntry when
+ reading from a stream, or to calculate a CRC when writing to a
+ stream. The stream should be used to either read, or write, but
+ not both. If you intermix reads and writes, the results are not
+ defined.
+
+
+
+ This class is intended primarily for use internally by the
+ DotNetZip library.
+
+
+
+
+
+ The default constructor.
+
+
+
+ Instances returned from this constructor will leave the underlying
+ stream open upon Close(). The stream uses the default CRC32
+ algorithm, which implies a polynomial of 0xEDB88320.
+
+
+ The underlying stream
+
+
+
+ The constructor allows the caller to specify how to handle the
+ underlying stream at close.
+
+
+
+ The stream uses the default CRC32 algorithm, which implies a
+ polynomial of 0xEDB88320.
+
+
+ The underlying stream
+ true to leave the underlying stream
+ open upon close of the CrcCalculatorStream; false otherwise.
+
+
+
+ A constructor allowing the specification of the length of the stream
+ to read.
+
+
+
+ The stream uses the default CRC32 algorithm, which implies a
+ polynomial of 0xEDB88320.
+
+
+ Instances returned from this constructor will leave the underlying
+ stream open upon Close().
+
+
+ The underlying stream
+ The length of the stream to slurp
+
+
+
+ A constructor allowing the specification of the length of the stream
+ to read, as well as whether to keep the underlying stream open upon
+ Close().
+
+
+
+ The stream uses the default CRC32 algorithm, which implies a
+ polynomial of 0xEDB88320.
+
+
+ The underlying stream
+ The length of the stream to slurp
+ true to leave the underlying stream
+ open upon close of the CrcCalculatorStream; false otherwise.
+
+
+
+ A constructor allowing the specification of the length of the stream
+ to read, as well as whether to keep the underlying stream open upon
+ Close(), and the CRC32 instance to use.
+
+
+
+ The stream uses the specified CRC32 instance, which allows the
+ application to specify how the CRC gets calculated.
+
+
+ The underlying stream
+ The length of the stream to slurp
+ true to leave the underlying stream
+ open upon close of the CrcCalculatorStream; false otherwise.
+ the CRC32 instance to use to calculate the CRC32
+
+
+
+ Read from the stream
+
+ the buffer to read
+ the offset at which to start
+ the number of bytes to read
+ the number of bytes actually read
+
+
+
+ Write to the stream.
+
+ the buffer from which to write
+ the offset at which to start writing
+ the number of bytes to write
+
+
+
+ Flush the stream.
+
+
+
+
+ Seeking is not supported on this stream. This method always throws
+
+
+ N/A
+ N/A
+ N/A
+
+
+
+ This method always throws
+
+
+ N/A
+
+
+
+ Gets the total number of bytes run through the CRC32 calculator.
+
+
+
+ This is either the total number of bytes read, or the total number of
+ bytes written, depending on the direction of this stream.
+
+
+
+
+ Provides the current CRC for all blocks slurped in.
+
+
+
+ The running total of the CRC is kept as data is written or read
+ through the stream. read this property after all reads or writes to
+ get an accurate CRC for the entire stream.
+
+
+
+
+
+ Indicates whether the underlying stream will be left open when the
+ CrcCalculatorStream is Closed.
+
+
+
+ Set this at any point before calling .
+
+
+
+
+
+ Indicates whether the stream supports reading.
+
+
+
+
+ Indicates whether the stream supports seeking.
+
+
+
+ Always returns false.
+
+
+
+
+
+ Indicates whether the stream supports writing.
+
+
+
+
+ Returns the length of the underlying stream.
+
+
+
+
+ The getter for this property returns the total bytes read.
+ If you use the setter, it will throw
+ .
+
+
+
+
+ A custom encoding class that provides encoding capabilities for the
+ 'Western European (ISO)' encoding under Silverlight.
+ This class was generated by a tool. For more information, visit
+ http://www.hardcodet.net/2010/03/silverlight-text-encoding-class-generator
+
+
+
+
+ Encodes a set of characters from the specified character array into the specified byte array.
+
+
+ The actual number of bytes written into .
+
+ The character array containing the set of characters to encode.
+ The index of the first character to encode.
+ The number of characters to encode.
+ The byte array to contain the resulting sequence of bytes.
+ The index at which to start writing the resulting sequence of bytes.
+
+
+
+
+ Decodes a sequence of bytes from the specified byte array into the specified character array.
+
+
+ The actual number of characters written into .
+
+ The byte array containing the sequence of bytes to decode.
+ The index of the first byte to decode.
+ The number of bytes to decode.
+ The character array to contain the resulting set of characters.
+ The index at which to start writing the resulting set of characters.
+
+
+
+
+ Calculates the number of bytes produced by encoding a set of characters
+ from the specified character array.
+
+
+ The number of bytes produced by encoding the specified characters. This class
+ always returns the value of .
+
+
+
+
+ Calculates the number of characters produced by decoding a sequence
+ of bytes from the specified byte array.
+
+
+ The number of characters produced by decoding the specified sequence of bytes. This class
+ always returns the value of .
+
+
+
+
+ Calculates the maximum number of bytes produced by encoding the specified number of characters.
+
+
+ The maximum number of bytes produced by encoding the specified number of characters. This
+ class always returns the value of .
+
+ The number of characters to encode.
+
+
+
+
+ Calculates the maximum number of characters produced by decoding the specified number of bytes.
+
+
+ The maximum number of characters produced by decoding the specified number of bytes. This class
+ always returns the value of .
+
+ The number of bytes to decode.
+
+
+
+ This table contains characters in an array. The index within the
+ array corresponds to the encoding's mapping of bytes to characters
+ (e.g. if a byte value of 5 is used to encode the character 'x', this
+ character will be stored at the array index 5.
+
+
+
+
+ This dictionary is used to resolve byte values for a given character.
+
+
+
+
+ Gets the name registered with the
+ Internet Assigned Numbers Authority (IANA) for the current encoding.
+
+
+ The IANA name for the current .
+
+
+
+
+ A character that can be set in order to make the encoding class
+ more fault tolerant. If this property is set, the encoding class will
+ use this property instead of throwing an exception if an unsupported
+ byte value is being passed for decoding.
+
+
+
+
+ A byte value that corresponds to the .
+ It is used in encoding scenarios in case an unsupported character is
+ being passed for encoding.
+
+
+
+
+ Gets the number of characters that are supported by this encoding.
+ This property returns a maximum value of 256, as the encoding class
+ only supports single byte encodings (1 byte == 256 possible values).
+
+
+
+
+ Length of Data field
+
+
+
+
+ CRC of both Type and Data fields, but not Length field
+
+
+
+
+ Build CRC lookup table for performance (once-off)
+
+
+
+
+ Applies all PNG filters to the given scanline and returns the filtered scanline that is deemed
+ to be most compressible, using lowest total variation as proxy for compressibility.
+
+
+
+
+
+
+
+
+ Calculates the total variation of given byte array. Total variation is the sum of the absolute values of
+ neighbour differences.
+
+
+
+
+
+
+ Get a buffer that is at least as big as size.
+
+
+
+
+ Return the given buffer to the pool.
+
+
+
+
+
+ Properties that change from how XNA works by default
+
+
+
+
+ Because the Kindle Fire devices default orientation is fliped by 180 degrees from all the other android devices
+ on the market we need to do some special processing to make sure that LandscapeLeft is the correct way round.
+ This list contains all the Build.Model strings of the effected devices, it should be added to if and when
+ more devices exhibit the same issues.
+
+
+
+
+ Get the absolute orientation of the device, accounting for platform differences.
+
+
+
+
+
+ OnCreate called when the activity is launched from cold or after the app
+ has been killed due to a higher priority app needing the memory
+
+
+ Saved instance state.
+
+
+
+
+ In Xna, setting SupportedOrientations = DisplayOrientation.Default (which is the default value)
+ has the effect of setting SupportedOrientations to landscape only or portrait only, based on the
+ aspect ratio of PreferredBackBufferWidth / PreferredBackBufferHeight
+
+
+
+
+
+ Updates the screen orientation. Filters out requests for unsupported orientations.
+
+
+
+
+ Our override of OpenTK.AndroidGameView. Provides Touch and Key Input handling.
+
+
+
+
+ Provides Android applications access to the device’s accelerometer sensor.
+
+
+
+
+ Creates a new instance of the Accelerometer object.
+
+
+
+
+ Initializes the platform resources required for the accelerometer sensor.
+
+
+
+
+ Starts data acquisition from the accelerometer.
+
+
+
+
+ Stops data acquisition from the accelerometer.
+
+
+
+
+ Gets or sets whether the device on which the application is running supports the accelerometer sensor.
+
+
+
+
+ Gets the current state of the accelerometer. The value is a member of the SensorState enumeration.
+
+
+
+
+ Provides Android applications access to the device’s compass sensor.
+
+
+
+
+ Creates a new instance of the Compass object.
+
+
+
+
+ Initializes the platform resources required for the compass sensor.
+
+
+
+
+ Starts data acquisition from the compass.
+
+
+
+
+ Stops data acquisition from the accelerometer.
+
+
+
+
+ Gets whether the device on which the application is running supports the compass sensor.
+
+
+
+
+ Gets the current state of the compass. The value is a member of the SensorState enumeration.
+
+
+
+
+ Manages touch events for Android. Maps new presses to new touch Ids as per Xna WP7 incrementing touch Id behaviour.
+ This is required as Android reports touch IDs of 0 to 5, which leads to incorrect handling of touch events.
+ Motivation and discussion: http://monogame.codeplex.com/discussions/382252
+
+
+
+
+ Interface for a class that handles resuming after a device lost event.
+ In particular, this allows the game to draw something to the screen whilst
+ graphics content is reloaded - a potentially lengthy operation.
+
+
+
+
+ Called at the start of the resume process. Textures should always be reloaded here.
+ If using a ContentManager, it should be disposed and recreated.
+
+
+
+
+ Called whilst the game is resuming. Draw something to the screen here.
+
+
+
+
+ Constructor. SensorDelay.Ui is passed to the base class as this orientation listener
+ is just used for flipping the screen orientation, therefore high frequency data is not required.
+
+
+
+
+ A default implementation of IResumeManager. Loads a user specified
+ image file (eg png) and draws it the middle of the screen.
+
+ Example usage in Game.Initialise():
+
+ #if ANDROID
+ this.Window.SetResumer(new ResumeManager(this.Services,
+ spriteBatch,
+ "UI/ResumingTexture",
+ 1.0f, 0.01f));
+ #endif
+
+
+
+
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/OpenTK-1.0.pdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/OpenTK-1.0.pdb
new file mode 100644
index 0000000..da830a3
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/OpenTK-1.0.pdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/System.ComponentModel.Composition.pdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/System.ComponentModel.Composition.pdb
new file mode 100644
index 0000000..42981da
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/System.ComponentModel.Composition.pdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/System.Core.pdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/System.Core.pdb
new file mode 100644
index 0000000..e016c49
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/System.Core.pdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/System.Net.Http.pdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/System.Net.Http.pdb
new file mode 100644
index 0000000..d45e958
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/System.Net.Http.pdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/System.Runtime.Serialization.pdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/System.Runtime.Serialization.pdb
new file mode 100644
index 0000000..9db6baf
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/System.Runtime.Serialization.pdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/System.ServiceModel.Internals.pdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/System.ServiceModel.Internals.pdb
new file mode 100644
index 0000000..82964fa
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/System.ServiceModel.Internals.pdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/System.Xml.Linq.pdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/System.Xml.Linq.pdb
new file mode 100644
index 0000000..3b5075f
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/System.Xml.Linq.pdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/System.Xml.pdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/System.Xml.pdb
new file mode 100644
index 0000000..aa7b2c5
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/System.Xml.pdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/System.pdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/System.pdb
new file mode 100644
index 0000000..d85743d
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/System.pdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/WatercolorGames.Pong-Signed.apk b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/WatercolorGames.Pong-Signed.apk
new file mode 100644
index 0000000..ac5e1a9
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/WatercolorGames.Pong-Signed.apk differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/WatercolorGames.Pong.apk b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/WatercolorGames.Pong.apk
new file mode 100644
index 0000000..2aec543
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/WatercolorGames.Pong.apk differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/WatercolorGames.Pong.dll b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/WatercolorGames.Pong.dll
new file mode 100644
index 0000000..9968590
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/WatercolorGames.Pong.dll differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/WatercolorGames.Pong.dll.mdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/WatercolorGames.Pong.dll.mdb
new file mode 100644
index 0000000..a82d749
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/WatercolorGames.Pong.dll.mdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/WatercolorGames.Pong.pdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/WatercolorGames.Pong.pdb
new file mode 100644
index 0000000..0837d6b
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/WatercolorGames.Pong.pdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/mscorlib.pdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/mscorlib.pdb
new file mode 100644
index 0000000..9cb2b57
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Debug/mscorlib.pdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Release/Mono.Android.pdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/Mono.Android.pdb
new file mode 100644
index 0000000..620957b
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/Mono.Android.pdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Release/Mono.Security.pdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/Mono.Security.pdb
new file mode 100644
index 0000000..dfc9716
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/Mono.Security.pdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Release/MonoGame.Framework.dll b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/MonoGame.Framework.dll
new file mode 100644
index 0000000..c99c020
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/MonoGame.Framework.dll differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Release/MonoGame.Framework.xml b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/MonoGame.Framework.xml
new file mode 100644
index 0000000..77307f7
--- /dev/null
+++ b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/MonoGame.Framework.xml
@@ -0,0 +1,16862 @@
+
+
+
+ MonoGame.Framework
+
+
+
+
+ Create a bounding box from the given list of points.
+
+ The list of Vector3 instances defining the point cloud to bound
+ A bounding box that encapsulates the given point cloud.
+ Thrown if the given list has no points.
+
+
+
+ Defines a viewing frustum for intersection operations.
+
+
+
+
+ The number of planes in the frustum.
+
+
+
+
+ The number of corner points in the frustum.
+
+
+
+
+ Constructs the frustum by extracting the view planes from a matrix.
+
+ Combined matrix which usually is (View * Projection).
+
+
+
+ Compares whether two instances are equal.
+
+ instance on the left of the equal sign.
+ instance on the right of the equal sign.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether two instances are not equal.
+
+ instance on the left of the not equal sign.
+ instance on the right of the not equal sign.
+ true if the instances are not equal; false otherwise.
+
+
+
+ Containment test between this and specified .
+
+ A for testing.
+ Result of testing for containment between this and specified .
+
+
+
+ Containment test between this and specified .
+
+ A for testing.
+ Result of testing for containment between this and specified as an output parameter.
+
+
+
+ Containment test between this and specified .
+
+ A for testing.
+ Result of testing for containment between this and specified .
+
+
+
+ Containment test between this and specified .
+
+ A for testing.
+ Result of testing for containment between this and specified .
+
+
+
+ Containment test between this and specified .
+
+ A for testing.
+ Result of testing for containment between this and specified as an output parameter.
+
+
+
+ Containment test between this and specified .
+
+ A for testing.
+ Result of testing for containment between this and specified .
+
+
+
+ Containment test between this and specified .
+
+ A for testing.
+ Result of testing for containment between this and specified as an output parameter.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Returns a copy of internal corners array.
+
+ The array of corners.
+
+
+
+ Returns a copy of internal corners array.
+
+ The array which values will be replaced to corner values of this instance. It must have size of .
+
+
+
+ Gets the hash code of this .
+
+ Hash code of this .
+
+
+
+ Gets whether or not a specified intersects with this .
+
+ A for intersection test.
+ true if specified intersects with this ; false otherwise.
+
+
+
+ Gets whether or not a specified intersects with this .
+
+ A for intersection test.
+ true if specified intersects with this ; false otherwise as an output parameter.
+
+
+
+ Gets whether or not a specified intersects with this .
+
+ An other for intersection test.
+ true if other intersects with this ; false otherwise.
+
+
+
+ Gets whether or not a specified intersects with this .
+
+ A for intersection test.
+ true if specified intersects with this ; false otherwise.
+
+
+
+ Gets whether or not a specified intersects with this .
+
+ A for intersection test.
+ true if specified intersects with this ; false otherwise as an output parameter.
+
+
+
+ Gets type of intersection between specified and this .
+
+ A for intersection test.
+ A plane intersection type.
+
+
+
+ Gets type of intersection between specified and this .
+
+ A for intersection test.
+ A plane intersection type as an output parameter.
+
+
+
+ Gets the distance of intersection of and this or null if no intersection happens.
+
+ A for intersection test.
+ Distance at which ray intersects with this or null if no intersection happens.
+
+
+
+ Gets the distance of intersection of and this or null if no intersection happens.
+
+ A for intersection test.
+ Distance at which ray intersects with this or null if no intersection happens as an output parameter.
+
+
+
+ Returns a representation of this in the format:
+ {Near:[nearPlane] Far:[farPlane] Left:[leftPlane] Right:[rightPlane] Top:[topPlane] Bottom:[bottomPlane]}
+
+ representation of this .
+
+
+
+ Gets or sets the of the frustum.
+
+
+
+
+ Gets the near plane of the frustum.
+
+
+
+
+ Gets the far plane of the frustum.
+
+
+
+
+ Gets the left plane of the frustum.
+
+
+
+
+ Gets the right plane of the frustum.
+
+
+
+
+ Gets the top plane of the frustum.
+
+
+
+
+ Gets the bottom plane of the frustum.
+
+
+
+
+ Describes a sphere in 3D-space for bounding operations.
+
+
+
+
+ The sphere center.
+
+
+
+
+ The sphere radius.
+
+
+
+
+ Constructs a bounding sphere with the specified center and radius.
+
+ The sphere center.
+ The sphere radius.
+
+
+
+ Test if a bounding box is fully inside, outside, or just intersecting the sphere.
+
+ The box for testing.
+ The containment type.
+
+
+
+ Test if a bounding box is fully inside, outside, or just intersecting the sphere.
+
+ The box for testing.
+ The containment type as an output parameter.
+
+
+
+ Test if a frustum is fully inside, outside, or just intersecting the sphere.
+
+ The frustum for testing.
+ The containment type.
+
+
+
+ Test if a frustum is fully inside, outside, or just intersecting the sphere.
+
+ The frustum for testing.
+ The containment type as an output parameter.
+
+
+
+ Test if a sphere is fully inside, outside, or just intersecting the sphere.
+
+ The other sphere for testing.
+ The containment type.
+
+
+
+ Test if a sphere is fully inside, outside, or just intersecting the sphere.
+
+ The other sphere for testing.
+ The containment type as an output parameter.
+
+
+
+ Test if a point is fully inside, outside, or just intersecting the sphere.
+
+ The vector in 3D-space for testing.
+ The containment type.
+
+
+
+ Test if a point is fully inside, outside, or just intersecting the sphere.
+
+ The vector in 3D-space for testing.
+ The containment type as an output parameter.
+
+
+
+ Creates the smallest that can contain a specified .
+
+ The box to create the sphere from.
+ The new .
+
+
+
+ Creates the smallest that can contain a specified .
+
+ The box to create the sphere from.
+ The new as an output parameter.
+
+
+
+ Creates the smallest that can contain a specified .
+
+ The frustum to create the sphere from.
+ The new .
+
+
+
+ Creates the smallest that can contain a specified list of points in 3D-space.
+
+ List of point to create the sphere from.
+ The new .
+
+
+
+ Creates the smallest that can contain two spheres.
+
+ First sphere.
+ Second sphere.
+ The new .
+
+
+
+ Creates the smallest that can contain two spheres.
+
+ First sphere.
+ Second sphere.
+ The new as an output parameter.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Gets the hash code of this .
+
+ Hash code of this .
+
+
+
+ Gets whether or not a specified intersects with this sphere.
+
+ The box for testing.
+ true if intersects with this sphere; false otherwise.
+
+
+
+ Gets whether or not a specified intersects with this sphere.
+
+ The box for testing.
+ true if intersects with this sphere; false otherwise. As an output parameter.
+
+
+
+ Gets whether or not the other intersects with this sphere.
+
+ The other sphere for testing.
+ true if other intersects with this sphere; false otherwise.
+
+
+
+ Gets whether or not the other intersects with this sphere.
+
+ The other sphere for testing.
+ true if other intersects with this sphere; false otherwise. As an output parameter.
+
+
+
+ Gets whether or not a specified intersects with this sphere.
+
+ The plane for testing.
+ Type of intersection.
+
+
+
+ Gets whether or not a specified intersects with this sphere.
+
+ The plane for testing.
+ Type of intersection as an output parameter.
+
+
+
+ Gets whether or not a specified intersects with this sphere.
+
+ The ray for testing.
+ Distance of ray intersection or null if there is no intersection.
+
+
+
+ Gets whether or not a specified intersects with this sphere.
+
+ The ray for testing.
+ Distance of ray intersection or null if there is no intersection as an output parameter.
+
+
+
+ Returns a representation of this in the format:
+ {Center:[] Radius:[]}
+
+ A representation of this .
+
+
+
+ Creates a new that contains a transformation of translation and scale from this sphere by the specified .
+
+ The transformation .
+ Transformed .
+
+
+
+ Creates a new that contains a transformation of translation and scale from this sphere by the specified .
+
+ The transformation .
+ Transformed as an output parameter.
+
+
+
+ Compares whether two instances are equal.
+
+ instance on the left of the equal sign.
+ instance on the right of the equal sign.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether two instances are not equal.
+
+ instance on the left of the not equal sign.
+ instance on the right of the not equal sign.
+ true if the instances are not equal; false otherwise.
+
+
+
+ Describes a 32-bit packed color.
+
+
+
+
+ Constructs an RGBA color from a packed value.
+ The value is a 32-bit unsigned integer, with R in the least significant octet.
+
+ The packed value.
+
+
+
+ Constructs an RGBA color from the XYZW unit length components of a vector.
+
+ A representing color.
+
+
+
+ Constructs an RGBA color from the XYZ unit length components of a vector. Alpha value will be opaque.
+
+ A representing color.
+
+
+
+ Constructs an RGBA color from a and an alpha value.
+
+ A for RGB values of new instance.
+ The alpha component value from 0 to 255.
+
+
+
+ Constructs an RGBA color from color and alpha value.
+
+ A for RGB values of new instance.
+ Alpha component value from 0.0f to 1.0f.
+
+
+
+ Constructs an RGBA color from scalars representing red, green and blue values. Alpha value will be opaque.
+
+ Red component value from 0.0f to 1.0f.
+ Green component value from 0.0f to 1.0f.
+ Blue component value from 0.0f to 1.0f.
+
+
+
+ Constructs an RGBA color from scalars representing red, green, blue and alpha values.
+
+ Red component value from 0.0f to 1.0f.
+ Green component value from 0.0f to 1.0f.
+ Blue component value from 0.0f to 1.0f.
+ Alpha component value from 0.0f to 1.0f.
+
+
+
+ Constructs an RGBA color from scalars representing red, green and blue values. Alpha value will be opaque.
+
+ Red component value from 0 to 255.
+ Green component value from 0 to 255.
+ Blue component value from 0 to 255.
+
+
+
+ Constructs an RGBA color from scalars representing red, green, blue and alpha values.
+
+ Red component value from 0 to 255.
+ Green component value from 0 to 255.
+ Blue component value from 0 to 255.
+ Alpha component value from 0 to 255.
+
+
+
+ Constructs an RGBA color from scalars representing red, green, blue and alpha values.
+
+
+ This overload sets the values directly without clamping, and may therefore be faster than the other overloads.
+
+
+
+
+
+
+
+
+ Compares whether two instances are equal.
+
+ instance on the left of the equal sign.
+ instance on the right of the equal sign.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether two instances are not equal.
+
+ instance on the left of the not equal sign.
+ instance on the right of the not equal sign.
+ true if the instances are not equal; false otherwise.
+
+
+
+ Gets the hash code of this .
+
+ Hash code of this .
+
+
+
+ Compares whether current instance is equal to specified object.
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Performs linear interpolation of .
+
+ Source .
+ Destination .
+ Interpolation factor.
+ Interpolated .
+
+
+
+ should be used instead of this function.
+
+ Interpolated .
+
+
+
+ Multiply by value.
+
+ Source .
+ Multiplicator.
+ Multiplication result.
+
+
+
+ Multiply by value.
+
+ Source .
+ Multiplicator.
+ Multiplication result.
+
+
+
+ Gets a representation for this object.
+
+ A representation for this object.
+
+
+
+ Gets a representation for this object.
+
+ A representation for this object.
+
+
+
+ Returns a representation of this in the format:
+ {R:[red] G:[green] B:[blue] A:[alpha]}
+
+ representation of this .
+
+
+
+ Translate a non-premultipled alpha to a that contains premultiplied alpha.
+
+ A representing color.
+ A which contains premultiplied alpha data.
+
+
+
+ Translate a non-premultipled alpha to a that contains premultiplied alpha.
+
+ Red component value.
+ Green component value.
+ Blue component value.
+ Alpha component value.
+ A which contains premultiplied alpha data.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Gets or sets the blue component.
+
+
+
+
+ Gets or sets the green component.
+
+
+
+
+ Gets or sets the red component.
+
+
+
+
+ Gets or sets the alpha component.
+
+
+
+
+ TransparentBlack color (R:0,G:0,B:0,A:0).
+
+
+
+
+ Transparent color (R:0,G:0,B:0,A:0).
+
+
+
+
+ AliceBlue color (R:240,G:248,B:255,A:255).
+
+
+
+
+ AntiqueWhite color (R:250,G:235,B:215,A:255).
+
+
+
+
+ Aqua color (R:0,G:255,B:255,A:255).
+
+
+
+
+ Aquamarine color (R:127,G:255,B:212,A:255).
+
+
+
+
+ Azure color (R:240,G:255,B:255,A:255).
+
+
+
+
+ Beige color (R:245,G:245,B:220,A:255).
+
+
+
+
+ Bisque color (R:255,G:228,B:196,A:255).
+
+
+
+
+ Black color (R:0,G:0,B:0,A:255).
+
+
+
+
+ BlanchedAlmond color (R:255,G:235,B:205,A:255).
+
+
+
+
+ Blue color (R:0,G:0,B:255,A:255).
+
+
+
+
+ BlueViolet color (R:138,G:43,B:226,A:255).
+
+
+
+
+ Brown color (R:165,G:42,B:42,A:255).
+
+
+
+
+ BurlyWood color (R:222,G:184,B:135,A:255).
+
+
+
+
+ CadetBlue color (R:95,G:158,B:160,A:255).
+
+
+
+
+ Chartreuse color (R:127,G:255,B:0,A:255).
+
+
+
+
+ Chocolate color (R:210,G:105,B:30,A:255).
+
+
+
+
+ Coral color (R:255,G:127,B:80,A:255).
+
+
+
+
+ CornflowerBlue color (R:100,G:149,B:237,A:255).
+
+
+
+
+ Cornsilk color (R:255,G:248,B:220,A:255).
+
+
+
+
+ Crimson color (R:220,G:20,B:60,A:255).
+
+
+
+
+ Cyan color (R:0,G:255,B:255,A:255).
+
+
+
+
+ DarkBlue color (R:0,G:0,B:139,A:255).
+
+
+
+
+ DarkCyan color (R:0,G:139,B:139,A:255).
+
+
+
+
+ DarkGoldenrod color (R:184,G:134,B:11,A:255).
+
+
+
+
+ DarkGray color (R:169,G:169,B:169,A:255).
+
+
+
+
+ DarkGreen color (R:0,G:100,B:0,A:255).
+
+
+
+
+ DarkKhaki color (R:189,G:183,B:107,A:255).
+
+
+
+
+ DarkMagenta color (R:139,G:0,B:139,A:255).
+
+
+
+
+ DarkOliveGreen color (R:85,G:107,B:47,A:255).
+
+
+
+
+ DarkOrange color (R:255,G:140,B:0,A:255).
+
+
+
+
+ DarkOrchid color (R:153,G:50,B:204,A:255).
+
+
+
+
+ DarkRed color (R:139,G:0,B:0,A:255).
+
+
+
+
+ DarkSalmon color (R:233,G:150,B:122,A:255).
+
+
+
+
+ DarkSeaGreen color (R:143,G:188,B:139,A:255).
+
+
+
+
+ DarkSlateBlue color (R:72,G:61,B:139,A:255).
+
+
+
+
+ DarkSlateGray color (R:47,G:79,B:79,A:255).
+
+
+
+
+ DarkTurquoise color (R:0,G:206,B:209,A:255).
+
+
+
+
+ DarkViolet color (R:148,G:0,B:211,A:255).
+
+
+
+
+ DeepPink color (R:255,G:20,B:147,A:255).
+
+
+
+
+ DeepSkyBlue color (R:0,G:191,B:255,A:255).
+
+
+
+
+ DimGray color (R:105,G:105,B:105,A:255).
+
+
+
+
+ DodgerBlue color (R:30,G:144,B:255,A:255).
+
+
+
+
+ Firebrick color (R:178,G:34,B:34,A:255).
+
+
+
+
+ FloralWhite color (R:255,G:250,B:240,A:255).
+
+
+
+
+ ForestGreen color (R:34,G:139,B:34,A:255).
+
+
+
+
+ Fuchsia color (R:255,G:0,B:255,A:255).
+
+
+
+
+ Gainsboro color (R:220,G:220,B:220,A:255).
+
+
+
+
+ GhostWhite color (R:248,G:248,B:255,A:255).
+
+
+
+
+ Gold color (R:255,G:215,B:0,A:255).
+
+
+
+
+ Goldenrod color (R:218,G:165,B:32,A:255).
+
+
+
+
+ Gray color (R:128,G:128,B:128,A:255).
+
+
+
+
+ Green color (R:0,G:128,B:0,A:255).
+
+
+
+
+ GreenYellow color (R:173,G:255,B:47,A:255).
+
+
+
+
+ Honeydew color (R:240,G:255,B:240,A:255).
+
+
+
+
+ HotPink color (R:255,G:105,B:180,A:255).
+
+
+
+
+ IndianRed color (R:205,G:92,B:92,A:255).
+
+
+
+
+ Indigo color (R:75,G:0,B:130,A:255).
+
+
+
+
+ Ivory color (R:255,G:255,B:240,A:255).
+
+
+
+
+ Khaki color (R:240,G:230,B:140,A:255).
+
+
+
+
+ Lavender color (R:230,G:230,B:250,A:255).
+
+
+
+
+ LavenderBlush color (R:255,G:240,B:245,A:255).
+
+
+
+
+ LawnGreen color (R:124,G:252,B:0,A:255).
+
+
+
+
+ LemonChiffon color (R:255,G:250,B:205,A:255).
+
+
+
+
+ LightBlue color (R:173,G:216,B:230,A:255).
+
+
+
+
+ LightCoral color (R:240,G:128,B:128,A:255).
+
+
+
+
+ LightCyan color (R:224,G:255,B:255,A:255).
+
+
+
+
+ LightGoldenrodYellow color (R:250,G:250,B:210,A:255).
+
+
+
+
+ LightGray color (R:211,G:211,B:211,A:255).
+
+
+
+
+ LightGreen color (R:144,G:238,B:144,A:255).
+
+
+
+
+ LightPink color (R:255,G:182,B:193,A:255).
+
+
+
+
+ LightSalmon color (R:255,G:160,B:122,A:255).
+
+
+
+
+ LightSeaGreen color (R:32,G:178,B:170,A:255).
+
+
+
+
+ LightSkyBlue color (R:135,G:206,B:250,A:255).
+
+
+
+
+ LightSlateGray color (R:119,G:136,B:153,A:255).
+
+
+
+
+ LightSteelBlue color (R:176,G:196,B:222,A:255).
+
+
+
+
+ LightYellow color (R:255,G:255,B:224,A:255).
+
+
+
+
+ Lime color (R:0,G:255,B:0,A:255).
+
+
+
+
+ LimeGreen color (R:50,G:205,B:50,A:255).
+
+
+
+
+ Linen color (R:250,G:240,B:230,A:255).
+
+
+
+
+ Magenta color (R:255,G:0,B:255,A:255).
+
+
+
+
+ Maroon color (R:128,G:0,B:0,A:255).
+
+
+
+
+ MediumAquamarine color (R:102,G:205,B:170,A:255).
+
+
+
+
+ MediumBlue color (R:0,G:0,B:205,A:255).
+
+
+
+
+ MediumOrchid color (R:186,G:85,B:211,A:255).
+
+
+
+
+ MediumPurple color (R:147,G:112,B:219,A:255).
+
+
+
+
+ MediumSeaGreen color (R:60,G:179,B:113,A:255).
+
+
+
+
+ MediumSlateBlue color (R:123,G:104,B:238,A:255).
+
+
+
+
+ MediumSpringGreen color (R:0,G:250,B:154,A:255).
+
+
+
+
+ MediumTurquoise color (R:72,G:209,B:204,A:255).
+
+
+
+
+ MediumVioletRed color (R:199,G:21,B:133,A:255).
+
+
+
+
+ MidnightBlue color (R:25,G:25,B:112,A:255).
+
+
+
+
+ MintCream color (R:245,G:255,B:250,A:255).
+
+
+
+
+ MistyRose color (R:255,G:228,B:225,A:255).
+
+
+
+
+ Moccasin color (R:255,G:228,B:181,A:255).
+
+
+
+
+ MonoGame orange theme color (R:231,G:60,B:0,A:255).
+
+
+
+
+ NavajoWhite color (R:255,G:222,B:173,A:255).
+
+
+
+
+ Navy color (R:0,G:0,B:128,A:255).
+
+
+
+
+ OldLace color (R:253,G:245,B:230,A:255).
+
+
+
+
+ Olive color (R:128,G:128,B:0,A:255).
+
+
+
+
+ OliveDrab color (R:107,G:142,B:35,A:255).
+
+
+
+
+ Orange color (R:255,G:165,B:0,A:255).
+
+
+
+
+ OrangeRed color (R:255,G:69,B:0,A:255).
+
+
+
+
+ Orchid color (R:218,G:112,B:214,A:255).
+
+
+
+
+ PaleGoldenrod color (R:238,G:232,B:170,A:255).
+
+
+
+
+ PaleGreen color (R:152,G:251,B:152,A:255).
+
+
+
+
+ PaleTurquoise color (R:175,G:238,B:238,A:255).
+
+
+
+
+ PaleVioletRed color (R:219,G:112,B:147,A:255).
+
+
+
+
+ PapayaWhip color (R:255,G:239,B:213,A:255).
+
+
+
+
+ PeachPuff color (R:255,G:218,B:185,A:255).
+
+
+
+
+ Peru color (R:205,G:133,B:63,A:255).
+
+
+
+
+ Pink color (R:255,G:192,B:203,A:255).
+
+
+
+
+ Plum color (R:221,G:160,B:221,A:255).
+
+
+
+
+ PowderBlue color (R:176,G:224,B:230,A:255).
+
+
+
+
+ Purple color (R:128,G:0,B:128,A:255).
+
+
+
+
+ Red color (R:255,G:0,B:0,A:255).
+
+
+
+
+ RosyBrown color (R:188,G:143,B:143,A:255).
+
+
+
+
+ RoyalBlue color (R:65,G:105,B:225,A:255).
+
+
+
+
+ SaddleBrown color (R:139,G:69,B:19,A:255).
+
+
+
+
+ Salmon color (R:250,G:128,B:114,A:255).
+
+
+
+
+ SandyBrown color (R:244,G:164,B:96,A:255).
+
+
+
+
+ SeaGreen color (R:46,G:139,B:87,A:255).
+
+
+
+
+ SeaShell color (R:255,G:245,B:238,A:255).
+
+
+
+
+ Sienna color (R:160,G:82,B:45,A:255).
+
+
+
+
+ Silver color (R:192,G:192,B:192,A:255).
+
+
+
+
+ SkyBlue color (R:135,G:206,B:235,A:255).
+
+
+
+
+ SlateBlue color (R:106,G:90,B:205,A:255).
+
+
+
+
+ SlateGray color (R:112,G:128,B:144,A:255).
+
+
+
+
+ Snow color (R:255,G:250,B:250,A:255).
+
+
+
+
+ SpringGreen color (R:0,G:255,B:127,A:255).
+
+
+
+
+ SteelBlue color (R:70,G:130,B:180,A:255).
+
+
+
+
+ Tan color (R:210,G:180,B:140,A:255).
+
+
+
+
+ Teal color (R:0,G:128,B:128,A:255).
+
+
+
+
+ Thistle color (R:216,G:191,B:216,A:255).
+
+
+
+
+ Tomato color (R:255,G:99,B:71,A:255).
+
+
+
+
+ Turquoise color (R:64,G:224,B:208,A:255).
+
+
+
+
+ Violet color (R:238,G:130,B:238,A:255).
+
+
+
+
+ Wheat color (R:245,G:222,B:179,A:255).
+
+
+
+
+ White color (R:255,G:255,B:255,A:255).
+
+
+
+
+ WhiteSmoke color (R:245,G:245,B:245,A:255).
+
+
+
+
+ Yellow color (R:255,G:255,B:0,A:255).
+
+
+
+
+ YellowGreen color (R:154,G:205,B:50,A:255).
+
+
+
+
+ Gets or sets packed value of this .
+
+
+
+
+ Defines how the bounding volumes intersects or contain one another.
+
+
+
+
+ Indicates that there is no overlap between two bounding volumes.
+
+
+
+
+ Indicates that one bounding volume completely contains another volume.
+
+
+
+
+ Indicates that bounding volumes partially overlap one another.
+
+
+
+
+ Defines the continuity of keys on a .
+
+
+
+
+ Interpolation can be used between this key and the next.
+
+
+
+
+ Interpolation cannot be used. A position between the two points returns this point.
+
+
+
+
+ Contains a collection of points in 2D space and provides methods for evaluating features of the curve they define.
+
+
+
+
+ Constructs a curve.
+
+
+
+
+ Creates a copy of this curve.
+
+ A copy of this curve.
+
+
+
+ Evaluate the value at a position of this .
+
+ The position on this .
+ Value at the position on this .
+
+
+
+ Computes tangents for all keys in the collection.
+
+ The tangent type for both in and out.
+
+
+
+ Computes tangents for all keys in the collection.
+
+ The tangent in-type. for more details.
+ The tangent out-type. for more details.
+
+
+
+ Computes tangent for the specific key in the collection.
+
+ The index of a key in the collection.
+ The tangent type for both in and out.
+
+
+
+ Computes tangent for the specific key in the collection.
+
+ The index of key in the collection.
+ The tangent in-type. for more details.
+ The tangent out-type. for more details.
+
+
+
+ Returns true if this curve is constant (has zero or one points); false otherwise.
+
+
+
+
+ Defines how to handle weighting values that are less than the first control point in the curve.
+
+
+
+
+ Defines how to handle weighting values that are greater than the last control point in the curve.
+
+
+
+
+ The collection of curve keys.
+
+
+
+
+ The collection of the elements and a part of the class.
+
+
+
+
+ Creates a new instance of class.
+
+
+
+
+ Adds a key to this collection.
+
+ New key for the collection.
+ Throws if is null.
+ The new key would be added respectively to a position of that key and the position of other keys.
+
+
+
+ Removes all keys from this collection.
+
+
+
+
+ Creates a copy of this collection.
+
+ A copy of this collection.
+
+
+
+ Determines whether this collection contains a specific key.
+
+ The key to locate in this collection.
+ true if the key is found; false otherwise.
+
+
+
+ Copies the keys of this collection to an array, starting at the array index provided.
+
+ Destination array where elements will be copied.
+ The zero-based index in the array to start copying from.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+ An enumerator for the .
+
+
+
+ Finds element in the collection and returns its index.
+
+ Element for the search.
+ Index of the element; or -1 if item is not found.
+
+
+
+ Removes element at the specified index.
+
+ The index which element will be removed.
+
+
+
+ Removes specific element.
+
+ The element
+ true if item is successfully removed; false otherwise. This method also returns false if item was not found.
+
+
+
+ Indexer.
+
+ The index of key in this collection.
+ at position.
+
+
+
+ Returns the count of keys in this collection.
+
+
+
+
+ Returns false because it is not a read-only collection.
+
+
+
+
+ Key point on the .
+
+
+
+
+ Creates a new instance of class with position: 0 and value: 0.
+
+
+
+
+ Creates a new instance of class.
+
+ Position on the curve.
+ Value of the control point.
+
+
+
+ Creates a new instance of class.
+
+ Position on the curve.
+ Value of the control point.
+ Tangent approaching point from the previous point on the curve.
+ Tangent leaving point toward next point on the curve.
+
+
+
+ Creates a new instance of class.
+
+ Position on the curve.
+ Value of the control point.
+ Tangent approaching point from the previous point on the curve.
+ Tangent leaving point toward next point on the curve.
+ Indicates whether the curve is discrete or continuous.
+
+
+
+
+ Compares whether two instances are not equal.
+
+ instance on the left of the not equal sign.
+ instance on the right of the not equal sign.
+ true if the instances are not equal; false otherwise.
+
+
+
+ Compares whether two instances are equal.
+
+ instance on the left of the equal sign.
+ instance on the right of the equal sign.
+ true if the instances are equal; false otherwise.
+
+
+
+ Creates a copy of this key.
+
+ A copy of this key.
+
+
+
+ Gets or sets the indicator whether the segment between this point and the next point on the curve is discrete or continuous.
+
+
+
+
+ Gets a position of the key on the curve.
+
+
+
+
+ Gets or sets a tangent when approaching this point from the previous point on the curve.
+
+
+
+
+ Gets or sets a tangent when leaving this point to the next point on the curve.
+
+
+
+
+ Gets a value of this point.
+
+
+
+
+ Defines how the value is determined for position before first point or after the end point on the .
+
+
+
+
+ The value of will be evaluated as first point for positions before the beginning and end point for positions after the end.
+
+
+
+
+ The positions will wrap around from the end to beginning of the for determined the value.
+
+
+
+
+ The positions will wrap around from the end to beginning of the .
+ The value will be offset by the difference between the values of first and end multiplied by the wrap amount.
+ If the position is before the beginning of the the difference will be subtracted from its value; otherwise the difference will be added.
+
+
+
+
+ The value at the end of the act as an offset from the same side of the toward the opposite side.
+
+
+
+
+ The linear interpolation will be performed for determined the value.
+
+
+
+
+ Defines the different tangent types to be calculated for points in a .
+
+
+
+
+ The tangent which always has a value equal to zero.
+
+
+
+
+ The tangent which contains a difference between current tangent value and the tangent value from the previous .
+
+
+
+
+ The smoouth tangent which contains the inflection between and by taking into account the values of both neighbors of the .
+
+
+
+
+ Defines the orientation of the display.
+
+
+
+
+ The default orientation.
+
+
+
+
+ The display is rotated counterclockwise into a landscape orientation. Width is greater than height.
+
+
+
+
+ The display is rotated clockwise into a landscape orientation. Width is greater than height.
+
+
+
+
+ The display is rotated as portrait, where height is greater than width.
+
+
+
+
+ The display is rotated as inverted portrait, where height is greater than width.
+
+
+
+
+ Unknown display orientation.
+
+
+
+
+ Shuts down the component.
+
+
+
+
+ Shuts down the component.
+
+
+
+
+ Helper class for processing internal framework events.
+
+
+ If you use class, is called automatically.
+ Otherwise you must call it as part of your game loop.
+
+
+
+
+ Processes framework events.
+
+
+
+
+ Removes every from this .
+ Triggers once for each removed.
+
+
+
+
+ Event that is triggered when a is added
+ to this .
+
+
+
+
+ Event that is triggered when a is removed
+ from this .
+
+
+
+
+ The maximum amount of time we will frameskip over and only perform Update calls with no Draw calls.
+ MonoGame extension.
+
+
+
+
+ The SortingFilteringCollection class provides efficient, reusable
+ sorting and filtering based on a configurable sort comparer, filter
+ predicate, and associate change events.
+
+
+
+
+ Raises the AsyncRunLoopEnded event. This method must be called by
+ derived classes when the asynchronous run loop they start has
+ stopped running.
+
+
+
+
+ Gives derived classes an opportunity to do work before any
+ components are initialized. Note that the base implementation sets
+ IsActive to true, so derived classes should either call the base
+ implementation or set IsActive to true by their own means.
+
+
+
+
+ Gives derived classes an opportunity to do work just before the
+ run loop is begun. Implementations may also return false to prevent
+ the run loop from starting.
+
+
+
+
+
+ When implemented in a derived, ends the active run loop.
+
+
+
+
+ When implemented in a derived, starts the run loop and blocks
+ until it has ended.
+
+
+
+
+ When implemented in a derived, starts the run loop and returns
+ immediately.
+
+
+
+
+ Gives derived classes an opportunity to do work just before Update
+ is called for all IUpdatable components. Returning false from this
+ method will result in this round of Update calls being skipped.
+
+
+
+
+
+
+ Gives derived classes an opportunity to do work just before Draw
+ is called for all IDrawable components. Returning false from this
+ method will result in this round of Draw calls being skipped.
+
+
+
+
+
+
+ When implemented in a derived class, causes the game to enter
+ full-screen mode.
+
+
+
+
+ When implemented in a derived class, causes the game to exit
+ full-screen mode.
+
+
+
+
+ Gives derived classes an opportunity to modify
+ Game.TargetElapsedTime before it is set.
+
+ The proposed new value of TargetElapsedTime.
+ The new value of TargetElapsedTime that will be set.
+
+
+
+ Starts a device transition (windowed to full screen or vice versa).
+
+
+ Specifies whether the device will be in full-screen mode upon completion of the change.
+
+
+
+
+ Completes a device transition.
+
+
+ Screen device name.
+
+
+ The new width of the game's client window.
+
+
+ The new height of the game's client window.
+
+
+
+
+ Gives derived classes an opportunity to take action after
+ Game.TargetElapsedTime has been set.
+
+
+
+
+ MSDN: Use this method if your game is recovering from a slow-running state, and ElapsedGameTime is too large to be useful.
+ Frame timing is generally handled by the Game class, but some platforms still handle it elsewhere. Once all platforms
+ rely on the Game class's functionality, this method and any overrides should be removed.
+
+
+
+
+ Used by the GraphicsDeviceManager to update the platform window
+ after the graphics device has changed the presentation.
+
+
+
+
+ Performs application-defined tasks associated with freeing,
+ releasing, or resetting unmanaged resources.
+
+
+
+
+ Log the specified Message.
+
+
+
+
+
+
+
+ When implemented in a derived class, reports the default
+ GameRunBehavior for this platform.
+
+
+
+
+ Gets the Game instance that owns this GamePlatform instance.
+
+
+
+
+ Defines how should be runned.
+
+
+
+
+ The game loop will be runned asynchronous.
+
+
+
+
+ The game loop will be runned synchronous.
+
+
+
+
+ Gets or sets a bool that enables usage of Alt+F4 for window closing on desktop platforms. Value is true by default.
+
+
+
+
+ Gets or sets the title of the game window.
+
+
+ For Windows 8 and Windows 10 UWP this has no effect. For these platforms the title should be
+ set by using the DisplayName property found in the app manifest file.
+
+
+
+
+ Determines whether the border of the window is visible. Currently only supported on the WinDX and WinGL/Linux platforms.
+
+
+ Thrown when trying to use this property on a platform other than the WinDX and WinGL/Linux platforms.
+
+
+
+
+ Used by the platform code to control the graphics device.
+
+
+
+
+ Called at the start of rendering a frame.
+
+ Returns true if the frame should be rendered.
+
+
+
+ Called to create the graphics device.
+
+ Does nothing if the graphics device is already created.
+
+
+
+ Called after rendering to present the frame to the screen.
+
+
+
+
+ Contains commonly used precalculated values and mathematical operations.
+
+
+
+
+ Represents the mathematical constant e(2.71828175).
+
+
+
+
+ Represents the log base ten of e(0.4342945).
+
+
+
+
+ Represents the log base two of e(1.442695).
+
+
+
+
+ Represents the value of pi(3.14159274).
+
+
+
+
+ Represents the value of pi divided by two(1.57079637).
+
+
+
+
+ Represents the value of pi divided by four(0.7853982).
+
+
+
+
+ Represents the value of pi times two(6.28318548).
+
+
+
+
+ Returns the Cartesian coordinate for one axis of a point that is defined by a given triangle and two normalized barycentric (areal) coordinates.
+
+ The coordinate on one axis of vertex 1 of the defining triangle.
+ The coordinate on the same axis of vertex 2 of the defining triangle.
+ The coordinate on the same axis of vertex 3 of the defining triangle.
+ The normalized barycentric (areal) coordinate b2, equal to the weighting factor for vertex 2, the coordinate of which is specified in value2.
+ The normalized barycentric (areal) coordinate b3, equal to the weighting factor for vertex 3, the coordinate of which is specified in value3.
+ Cartesian coordinate of the specified point with respect to the axis being used.
+
+
+
+ Performs a Catmull-Rom interpolation using the specified positions.
+
+ The first position in the interpolation.
+ The second position in the interpolation.
+ The third position in the interpolation.
+ The fourth position in the interpolation.
+ Weighting factor.
+ A position that is the result of the Catmull-Rom interpolation.
+
+
+
+ Restricts a value to be within a specified range.
+
+ The value to clamp.
+ The minimum value. If value is less than min, min will be returned.
+ The maximum value. If value is greater than max, max will be returned.
+ The clamped value.
+
+
+
+ Restricts a value to be within a specified range.
+
+ The value to clamp.
+ The minimum value. If value is less than min, min will be returned.
+ The maximum value. If value is greater than max, max will be returned.
+ The clamped value.
+
+
+
+ Calculates the absolute value of the difference of two values.
+
+ Source value.
+ Source value.
+ Distance between the two values.
+
+
+
+ Performs a Hermite spline interpolation.
+
+ Source position.
+ Source tangent.
+ Source position.
+ Source tangent.
+ Weighting factor.
+ The result of the Hermite spline interpolation.
+
+
+
+ Linearly interpolates between two values.
+
+ Source value.
+ Destination value.
+ Value between 0 and 1 indicating the weight of value2.
+ Interpolated value.
+ This method performs the linear interpolation based on the following formula:
+ value1 + (value2 - value1) * amount
.
+ Passing amount a value of 0 will cause value1 to be returned, a value of 1 will cause value2 to be returned.
+ See for a less efficient version with more precision around edge cases.
+
+
+
+
+ Linearly interpolates between two values.
+ This method is a less efficient, more precise version of .
+ See remarks for more info.
+
+ Source value.
+ Destination value.
+ Value between 0 and 1 indicating the weight of value2.
+ Interpolated value.
+ This method performs the linear interpolation based on the following formula:
+ ((1 - amount) * value1) + (value2 * amount)
.
+ Passing amount a value of 0 will cause value1 to be returned, a value of 1 will cause value2 to be returned.
+ This method does not have the floating point precision issue that has.
+ i.e. If there is a big gap between value1 and value2 in magnitude (e.g. value1=10000000000000000, value2=1),
+ right at the edge of the interpolation range (amount=1), will return 0 (whereas it should return 1).
+ This also holds for value1=10^17, value2=10; value1=10^18,value2=10^2... so on.
+ For an in depth explanation of the issue, see below references:
+ Relevant Wikipedia Article: https://en.wikipedia.org/wiki/Linear_interpolation#Programming_language_support
+ Relevant StackOverflow Answer: http://stackoverflow.com/questions/4353525/floating-point-linear-interpolation#answer-23716956
+
+
+
+
+ Returns the greater of two values.
+
+ Source value.
+ Source value.
+ The greater value.
+
+
+
+ Returns the greater of two values.
+
+ Source value.
+ Source value.
+ The greater value.
+
+
+
+ Returns the lesser of two values.
+
+ Source value.
+ Source value.
+ The lesser value.
+
+
+
+ Returns the lesser of two values.
+
+ Source value.
+ Source value.
+ The lesser value.
+
+
+
+ Interpolates between two values using a cubic equation.
+
+ Source value.
+ Source value.
+ Weighting value.
+ Interpolated value.
+
+
+
+ Converts radians to degrees.
+
+ The angle in radians.
+ The angle in degrees.
+
+ This method uses double precission internally,
+ though it returns single float
+ Factor = 180 / pi
+
+
+
+
+ Converts degrees to radians.
+
+ The angle in degrees.
+ The angle in radians.
+
+ This method uses double precission internally,
+ though it returns single float
+ Factor = pi / 180
+
+
+
+
+ Reduces a given angle to a value between π and -π.
+
+ The angle to reduce, in radians.
+ The new angle, in radians.
+
+
+
+ Determines if value is powered by two.
+
+ A value.
+ true if value is powered by two; otherwise false.
+
+
+
+ Represents the right-handed 4x4 floating point matrix, which can store translation, scale and rotation information.
+
+
+
+
+ Constructs a matrix.
+
+ A first row and first column value.
+ A first row and second column value.
+ A first row and third column value.
+ A first row and fourth column value.
+ A second row and first column value.
+ A second row and second column value.
+ A second row and third column value.
+ A second row and fourth column value.
+ A third row and first column value.
+ A third row and second column value.
+ A third row and third column value.
+ A third row and fourth column value.
+ A fourth row and first column value.
+ A fourth row and second column value.
+ A fourth row and third column value.
+ A fourth row and fourth column value.
+
+
+
+ Constructs a matrix.
+
+ A first row of the created matrix.
+ A second row of the created matrix.
+ A third row of the created matrix.
+ A fourth row of the created matrix.
+
+
+
+ A first row and first column value.
+
+
+
+
+ A first row and second column value.
+
+
+
+
+ A first row and third column value.
+
+
+
+
+ A first row and fourth column value.
+
+
+
+
+ A second row and first column value.
+
+
+
+
+ A second row and second column value.
+
+
+
+
+ A second row and third column value.
+
+
+
+
+ A second row and fourth column value.
+
+
+
+
+ A third row and first column value.
+
+
+
+
+ A third row and second column value.
+
+
+
+
+ A third row and third column value.
+
+
+
+
+ A third row and fourth column value.
+
+
+
+
+ A fourth row and first column value.
+
+
+
+
+ A fourth row and second column value.
+
+
+
+
+ A fourth row and third column value.
+
+
+
+
+ A fourth row and fourth column value.
+
+
+
+
+ Creates a new which contains sum of two matrixes.
+
+ The first matrix to add.
+ The second matrix to add.
+ The result of the matrix addition.
+
+
+
+ Creates a new which contains sum of two matrixes.
+
+ The first matrix to add.
+ The second matrix to add.
+ The result of the matrix addition as an output parameter.
+
+
+
+ Creates a new for spherical billboarding that rotates around specified object position.
+
+ Position of billboard object. It will rotate around that vector.
+ The camera position.
+ The camera up vector.
+ Optional camera forward vector.
+ The for spherical billboarding.
+
+
+
+ Creates a new for spherical billboarding that rotates around specified object position.
+
+ Position of billboard object. It will rotate around that vector.
+ The camera position.
+ The camera up vector.
+ Optional camera forward vector.
+ The for spherical billboarding as an output parameter.
+
+
+
+ Creates a new for cylindrical billboarding that rotates around specified axis.
+
+ Object position the billboard will rotate around.
+ Camera position.
+ Axis of billboard for rotation.
+ Optional camera forward vector.
+ Optional object forward vector.
+ The for cylindrical billboarding.
+
+
+
+ Creates a new for cylindrical billboarding that rotates around specified axis.
+
+ Object position the billboard will rotate around.
+ Camera position.
+ Axis of billboard for rotation.
+ Optional camera forward vector.
+ Optional object forward vector.
+ The for cylindrical billboarding as an output parameter.
+
+
+
+ Creates a new which contains the rotation moment around specified axis.
+
+ The axis of rotation.
+ The angle of rotation in radians.
+ The rotation .
+
+
+
+ Creates a new which contains the rotation moment around specified axis.
+
+ The axis of rotation.
+ The angle of rotation in radians.
+ The rotation as an output parameter.
+
+
+
+ Creates a new rotation from a .
+
+ of rotation moment.
+ The rotation .
+
+
+
+ Creates a new rotation from a .
+
+ of rotation moment.
+ The rotation as an output parameter.
+
+
+
+ Creates a new rotation from the specified yaw, pitch and roll values.
+
+ The yaw rotation value in radians.
+ The pitch rotation value in radians.
+ The roll rotation value in radians.
+ The rotation .
+ For more information about yaw, pitch and roll visit http://en.wikipedia.org/wiki/Euler_angles.
+
+
+
+
+ Creates a new rotation from the specified yaw, pitch and roll values.
+
+ The yaw rotation value in radians.
+ The pitch rotation value in radians.
+ The roll rotation value in radians.
+ The rotation as an output parameter.
+ For more information about yaw, pitch and roll visit http://en.wikipedia.org/wiki/Euler_angles.
+
+
+
+
+ Creates a new viewing .
+
+ Position of the camera.
+ Lookup vector of the camera.
+ The direction of the upper edge of the camera.
+ The viewing .
+
+
+
+ Creates a new viewing .
+
+ Position of the camera.
+ Lookup vector of the camera.
+ The direction of the upper edge of the camera.
+ The viewing as an output parameter.
+
+
+
+ Creates a new projection for orthographic view.
+
+ Width of the viewing volume.
+ Height of the viewing volume.
+ Depth of the near plane.
+ Depth of the far plane.
+ The new projection for orthographic view.
+
+
+
+ Creates a new projection for orthographic view.
+
+ Width of the viewing volume.
+ Height of the viewing volume.
+ Depth of the near plane.
+ Depth of the far plane.
+ The new projection for orthographic view as an output parameter.
+
+
+
+ Creates a new projection for customized orthographic view.
+
+ Lower x-value at the near plane.
+ Upper x-value at the near plane.
+ Lower y-coordinate at the near plane.
+ Upper y-value at the near plane.
+ Depth of the near plane.
+ Depth of the far plane.
+ The new projection for customized orthographic view.
+
+
+
+ Creates a new projection for customized orthographic view.
+
+ The viewing volume.
+ Depth of the near plane.
+ Depth of the far plane.
+ The new projection for customized orthographic view.
+
+
+
+ Creates a new projection for customized orthographic view.
+
+ Lower x-value at the near plane.
+ Upper x-value at the near plane.
+ Lower y-coordinate at the near plane.
+ Upper y-value at the near plane.
+ Depth of the near plane.
+ Depth of the far plane.
+ The new projection for customized orthographic view as an output parameter.
+
+
+
+ Creates a new projection for perspective view.
+
+ Width of the viewing volume.
+ Height of the viewing volume.
+ Distance to the near plane.
+ Distance to the far plane.
+ The new projection for perspective view.
+
+
+
+ Creates a new projection for perspective view.
+
+ Width of the viewing volume.
+ Height of the viewing volume.
+ Distance to the near plane.
+ Distance to the far plane.
+ The new projection for perspective view as an output parameter.
+
+
+
+ Creates a new projection for perspective view with field of view.
+
+ Field of view in the y direction in radians.
+ Width divided by height of the viewing volume.
+ Distance to the near plane.
+ Distance to the far plane.
+ The new projection for perspective view with FOV.
+
+
+
+ Creates a new projection for perspective view with field of view.
+
+ Field of view in the y direction in radians.
+ Width divided by height of the viewing volume.
+ Distance of the near plane.
+ Distance of the far plane.
+ The new projection for perspective view with FOV as an output parameter.
+
+
+
+ Creates a new projection for customized perspective view.
+
+ Lower x-value at the near plane.
+ Upper x-value at the near plane.
+ Lower y-coordinate at the near plane.
+ Upper y-value at the near plane.
+ Distance to the near plane.
+ Distance to the far plane.
+ The new for customized perspective view.
+
+
+
+ Creates a new projection for customized perspective view.
+
+ The viewing volume.
+ Distance to the near plane.
+ Distance to the far plane.
+ The new for customized perspective view.
+
+
+
+ Creates a new projection for customized perspective view.
+
+ Lower x-value at the near plane.
+ Upper x-value at the near plane.
+ Lower y-coordinate at the near plane.
+ Upper y-value at the near plane.
+ Distance to the near plane.
+ Distance to the far plane.
+ The new for customized perspective view as an output parameter.
+
+
+
+ Creates a new rotation around X axis.
+
+ Angle in radians.
+ The rotation around X axis.
+
+
+
+ Creates a new rotation around X axis.
+
+ Angle in radians.
+ The rotation around X axis as an output parameter.
+
+
+
+ Creates a new rotation around Y axis.
+
+ Angle in radians.
+ The rotation around Y axis.
+
+
+
+ Creates a new rotation around Y axis.
+
+ Angle in radians.
+ The rotation around Y axis as an output parameter.
+
+
+
+ Creates a new rotation around Z axis.
+
+ Angle in radians.
+ The rotation around Z axis.
+
+
+
+ Creates a new rotation around Z axis.
+
+ Angle in radians.
+ The rotation around Z axis as an output parameter.
+
+
+
+ Creates a new scaling .
+
+ Scale value for all three axises.
+ The scaling .
+
+
+
+ Creates a new scaling .
+
+ Scale value for all three axises.
+ The scaling as an output parameter.
+
+
+
+ Creates a new scaling .
+
+ Scale value for X axis.
+ Scale value for Y axis.
+ Scale value for Z axis.
+ The scaling .
+
+
+
+ Creates a new scaling .
+
+ Scale value for X axis.
+ Scale value for Y axis.
+ Scale value for Z axis.
+ The scaling as an output parameter.
+
+
+
+ Creates a new scaling .
+
+ representing x,y and z scale values.
+ The scaling .
+
+
+
+ Creates a new scaling .
+
+ representing x,y and z scale values.
+ The scaling as an output parameter.
+
+
+
+ Creates a new that flattens geometry into a specified as if casting a shadow from a specified light source.
+
+ A vector specifying the direction from which the light that will cast the shadow is coming.
+ The plane onto which the new matrix should flatten geometry so as to cast a shadow.
+ A that can be used to flatten geometry onto the specified plane from the specified direction.
+
+
+
+ Creates a new that flattens geometry into a specified as if casting a shadow from a specified light source.
+
+ A vector specifying the direction from which the light that will cast the shadow is coming.
+ The plane onto which the new matrix should flatten geometry so as to cast a shadow.
+ A that can be used to flatten geometry onto the specified plane from the specified direction as an output parameter.
+
+
+
+ Creates a new translation .
+
+ X coordinate of translation.
+ Y coordinate of translation.
+ Z coordinate of translation.
+ The translation .
+
+
+
+ Creates a new translation .
+
+ X,Y and Z coordinates of translation.
+ The translation as an output parameter.
+
+
+
+ Creates a new translation .
+
+ X,Y and Z coordinates of translation.
+ The translation .
+
+
+
+ Creates a new translation .
+
+ X coordinate of translation.
+ Y coordinate of translation.
+ Z coordinate of translation.
+ The translation as an output parameter.
+
+
+
+ Creates a new reflection .
+
+ The plane that used for reflection calculation.
+ The reflection .
+
+
+
+ Creates a new reflection .
+
+ The plane that used for reflection calculation.
+ The reflection as an output parameter.
+
+
+
+ Creates a new world .
+
+ The position vector.
+ The forward direction vector.
+ The upward direction vector. Usually .
+ The world .
+
+
+
+ Creates a new world .
+
+ The position vector.
+ The forward direction vector.
+ The upward direction vector. Usually .
+ The world as an output parameter.
+
+
+
+ Decomposes this matrix to translation, rotation and scale elements. Returns true if matrix can be decomposed; false otherwise.
+
+ Scale vector as an output parameter.
+ Rotation quaternion as an output parameter.
+ Translation vector as an output parameter.
+ true if matrix can be decomposed; false otherwise.
+
+
+
+ Returns a determinant of this .
+
+ Determinant of this
+ See more about determinant here - http://en.wikipedia.org/wiki/Determinant.
+
+
+
+
+ Divides the elements of a by the elements of another matrix.
+
+ Source .
+ Divisor .
+ The result of dividing the matrix.
+
+
+
+ Divides the elements of a by the elements of another matrix.
+
+ Source .
+ Divisor .
+ The result of dividing the matrix as an output parameter.
+
+
+
+ Divides the elements of a by a scalar.
+
+ Source .
+ Divisor scalar.
+ The result of dividing a matrix by a scalar.
+
+
+
+ Divides the elements of a by a scalar.
+
+ Source .
+ Divisor scalar.
+ The result of dividing a matrix by a scalar as an output parameter.
+
+
+
+ Compares whether current instance is equal to specified without any tolerance.
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether current instance is equal to specified without any tolerance.
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Gets the hash code of this .
+
+ Hash code of this .
+
+
+
+ Creates a new which contains inversion of the specified matrix.
+
+ Source .
+ The inverted matrix.
+
+
+
+ Creates a new which contains inversion of the specified matrix.
+
+ Source .
+ The inverted matrix as output parameter.
+
+
+
+ Creates a new that contains linear interpolation of the values in specified matrixes.
+
+ The first .
+ The second .
+ Weighting value(between 0.0 and 1.0).
+ >The result of linear interpolation of the specified matrixes.
+
+
+
+ Creates a new that contains linear interpolation of the values in specified matrixes.
+
+ The first .
+ The second .
+ Weighting value(between 0.0 and 1.0).
+ The result of linear interpolation of the specified matrixes as an output parameter.
+
+
+
+ Creates a new that contains a multiplication of two matrix.
+
+ Source .
+ Source .
+ Result of the matrix multiplication.
+
+
+
+ Creates a new that contains a multiplication of two matrix.
+
+ Source .
+ Source .
+ Result of the matrix multiplication as an output parameter.
+
+
+
+ Creates a new that contains a multiplication of and a scalar.
+
+ Source .
+ Scalar value.
+ Result of the matrix multiplication with a scalar.
+
+
+
+ Creates a new that contains a multiplication of and a scalar.
+
+ Source .
+ Scalar value.
+ Result of the matrix multiplication with a scalar as an output parameter.
+
+
+
+ Copy the values of specified to the float array.
+
+ The source .
+ The array which matrix values will be stored.
+
+ Required for OpenGL 2.0 projection matrix stuff.
+
+
+
+
+ Returns a matrix with the all values negated.
+
+ Source .
+ Result of the matrix negation.
+
+
+
+ Returns a matrix with the all values negated.
+
+ Source .
+ Result of the matrix negation as an output parameter.
+
+
+
+ Adds two matrixes.
+
+ Source on the left of the add sign.
+ Source on the right of the add sign.
+ Sum of the matrixes.
+
+
+
+ Divides the elements of a by the elements of another .
+
+ Source on the left of the div sign.
+ Divisor on the right of the div sign.
+ The result of dividing the matrixes.
+
+
+
+ Divides the elements of a by a scalar.
+
+ Source on the left of the div sign.
+ Divisor scalar on the right of the div sign.
+ The result of dividing a matrix by a scalar.
+
+
+
+ Compares whether two instances are equal without any tolerance.
+
+ Source on the left of the equal sign.
+ Source on the right of the equal sign.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether two instances are not equal without any tolerance.
+
+ Source on the left of the not equal sign.
+ Source on the right of the not equal sign.
+ true if the instances are not equal; false otherwise.
+
+
+
+ Multiplies two matrixes.
+
+ Source on the left of the mul sign.
+ Source on the right of the mul sign.
+ Result of the matrix multiplication.
+
+ Using matrix multiplication algorithm - see http://en.wikipedia.org/wiki/Matrix_multiplication.
+
+
+
+
+ Multiplies the elements of matrix by a scalar.
+
+ Source on the left of the mul sign.
+ Scalar value on the right of the mul sign.
+ Result of the matrix multiplication with a scalar.
+
+
+
+ Subtracts the values of one from another .
+
+ Source on the left of the sub sign.
+ Source on the right of the sub sign.
+ Result of the matrix subtraction.
+
+
+
+ Inverts values in the specified .
+
+ Source on the right of the sub sign.
+ Result of the inversion.
+
+
+
+ Creates a new that contains subtraction of one matrix from another.
+
+ The first .
+ The second .
+ The result of the matrix subtraction.
+
+
+
+ Creates a new that contains subtraction of one matrix from another.
+
+ The first .
+ The second .
+ The result of the matrix subtraction as an output parameter.
+
+
+
+ Returns a representation of this in the format:
+ {M11:[] M12:[] M13:[] M14:[]}
+ {M21:[] M12:[] M13:[] M14:[]}
+ {M31:[] M32:[] M33:[] M34:[]}
+ {M41:[] M42:[] M43:[] M44:[]}
+
+ A representation of this .
+
+
+
+ Swap the matrix rows and columns.
+
+ The matrix for transposing operation.
+ The new which contains the transposing result.
+
+
+
+ Swap the matrix rows and columns.
+
+ The matrix for transposing operation.
+ The new which contains the transposing result as an output parameter.
+
+
+
+ Helper method for using the Laplace expansion theorem using two rows expansions to calculate major and
+ minor determinants of a 4x4 matrix. This method is used for inverting a matrix.
+
+
+
+
+ The backward vector formed from the third row M31, M32, M33 elements.
+
+
+
+
+ The down vector formed from the second row -M21, -M22, -M23 elements.
+
+
+
+
+ The forward vector formed from the third row -M31, -M32, -M33 elements.
+
+
+
+
+ Returns the identity matrix.
+
+
+
+
+ The left vector formed from the first row -M11, -M12, -M13 elements.
+
+
+
+
+ The right vector formed from the first row M11, M12, M13 elements.
+
+
+
+
+ Rotation stored in this matrix.
+
+
+
+
+ Position stored in this matrix.
+
+
+
+
+ Scale stored in this matrix.
+
+
+
+
+ The upper vector formed from the second row M21, M22, M23 elements.
+
+
+
+
+ Provides functionality to handle input from keyboards, mice, gamepads, etc.
+
+
+
+
+ Support for playing sound effects and XACT audio.
+
+
+
+
+ The runtime support for loading content pipeline content.
+
+
+
+
+ Returns a value indicating what side (positive/negative) of a plane a point is
+
+ The point to check with
+ The plane to check against
+ Greater than zero if on the positive side, less than zero if on the negative size, 0 otherwise
+
+
+
+ Returns the perpendicular distance from a point to a plane
+
+ The point to check
+ The place to check
+ The perpendicular distance from the point to the plane
+
+
+
+ Transforms a normalized plane by a matrix.
+
+ The normalized plane to transform.
+ The transformation matrix.
+ The transformed plane.
+
+
+
+ Transforms a normalized plane by a matrix.
+
+ The normalized plane to transform.
+ The transformation matrix.
+ The transformed plane.
+
+
+
+ Transforms a normalized plane by a quaternion rotation.
+
+ The normalized plane to transform.
+ The quaternion rotation.
+ The transformed plane.
+
+
+
+ Transforms a normalized plane by a quaternion rotation.
+
+ The normalized plane to transform.
+ The quaternion rotation.
+ The transformed plane.
+
+
+
+ Defines the intersection between a and a bounding volume.
+
+
+
+
+ There is no intersection, the bounding volume is in the negative half space of the plane.
+
+
+
+
+ There is no intersection, the bounding volume is in the positive half space of the plane.
+
+
+
+
+ The plane is intersected.
+
+
+
+
+ Defines the index of player for various MonoGame components.
+
+
+
+
+ The first player index.
+
+
+
+
+ The second player index.
+
+
+
+
+ The third player index.
+
+
+
+
+ The fourth player index.
+
+
+
+
+ Describes a 2D-point.
+
+
+
+
+ The x coordinate of this .
+
+
+
+
+ The y coordinate of this .
+
+
+
+
+ Constructs a point with X and Y from two values.
+
+ The x coordinate in 2d-space.
+ The y coordinate in 2d-space.
+
+
+
+ Constructs a point with X and Y set to the same value.
+
+ The x and y coordinates in 2d-space.
+
+
+
+ Adds two points.
+
+ Source on the left of the add sign.
+ Source on the right of the add sign.
+ Sum of the points.
+
+
+
+ Subtracts a from a .
+
+ Source on the left of the sub sign.
+ Source on the right of the sub sign.
+ Result of the subtraction.
+
+
+
+ Multiplies the components of two points by each other.
+
+ Source on the left of the mul sign.
+ Source on the right of the mul sign.
+ Result of the multiplication.
+
+
+
+ Divides the components of a by the components of another .
+
+ Source on the left of the div sign.
+ Divisor on the right of the div sign.
+ The result of dividing the points.
+
+
+
+ Compares whether two instances are equal.
+
+ instance on the left of the equal sign.
+ instance on the right of the equal sign.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether two instances are not equal.
+
+ instance on the left of the not equal sign.
+ instance on the right of the not equal sign.
+ true if the instances are not equal; false otherwise.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Gets the hash code of this .
+
+ Hash code of this .
+
+
+
+ Returns a representation of this in the format:
+ {X:[] Y:[]}
+
+ representation of this .
+
+
+
+ Gets a representation for this object.
+
+ A representation for this object.
+
+
+
+ Returns a with coordinates 0, 0.
+
+
+
+
+ The arguments to the event.
+
+
+
+
+ Create a new instance of the event.
+
+ The default settings to be used in device creation.
+
+
+
+ The default settings that will be used in device creation.
+
+
+
+
+ Interface used to add an object to be loaded on the primary thread
+
+
+
+
+ Static class that is called before every draw to load resources that need to finish loading on the primary thread
+
+
+
+
+ Loops through list and loads the item. If successful, it is removed from the list.
+
+
+
+
+ An efficient mathematical representation for three dimensional rotations.
+
+
+
+
+ The x coordinate of this .
+
+
+
+
+ The y coordinate of this .
+
+
+
+
+ The z coordinate of this .
+
+
+
+
+ The rotation component of this .
+
+
+
+
+ Constructs a quaternion with X, Y, Z and W from four values.
+
+ The x coordinate in 3d-space.
+ The y coordinate in 3d-space.
+ The z coordinate in 3d-space.
+ The rotation component.
+
+
+
+ Constructs a quaternion with X, Y, Z from and rotation component from a scalar.
+
+ The x, y, z coordinates in 3d-space.
+ The rotation component.
+
+
+
+ Constructs a quaternion from .
+
+ The x, y, z coordinates in 3d-space and the rotation component.
+
+
+
+ Creates a new that contains the sum of two quaternions.
+
+ Source .
+ Source .
+ The result of the quaternion addition.
+
+
+
+ Creates a new that contains the sum of two quaternions.
+
+ Source .
+ Source .
+ The result of the quaternion addition as an output parameter.
+
+
+
+ Creates a new that contains concatenation between two quaternion.
+
+ The first to concatenate.
+ The second to concatenate.
+ The result of rotation of followed by rotation.
+
+
+
+ Creates a new that contains concatenation between two quaternion.
+
+ The first to concatenate.
+ The second to concatenate.
+ The result of rotation of followed by rotation as an output parameter.
+
+
+
+ Transforms this quaternion into its conjugated version.
+
+
+
+
+ Creates a new that contains conjugated version of the specified quaternion.
+
+ The quaternion which values will be used to create the conjugated version.
+ The conjugate version of the specified quaternion.
+
+
+
+ Creates a new that contains conjugated version of the specified quaternion.
+
+ The quaternion which values will be used to create the conjugated version.
+ The conjugated version of the specified quaternion as an output parameter.
+
+
+
+ Creates a new from the specified axis and angle.
+
+ The axis of rotation.
+ The angle in radians.
+ The new quaternion builded from axis and angle.
+
+
+
+ Creates a new from the specified axis and angle.
+
+ The axis of rotation.
+ The angle in radians.
+ The new quaternion builded from axis and angle as an output parameter.
+
+
+
+ Creates a new from the specified .
+
+ The rotation matrix.
+ A quaternion composed from the rotation part of the matrix.
+
+
+
+ Creates a new from the specified .
+
+ The rotation matrix.
+ A quaternion composed from the rotation part of the matrix as an output parameter.
+
+
+
+ Creates a new from the specified yaw, pitch and roll angles.
+
+ Yaw around the y axis in radians.
+ Pitch around the x axis in radians.
+ Roll around the z axis in radians.
+ A new quaternion from the concatenated yaw, pitch, and roll angles.
+
+
+
+ Creates a new from the specified yaw, pitch and roll angles.
+
+ Yaw around the y axis in radians.
+ Pitch around the x axis in radians.
+ Roll around the z axis in radians.
+ A new quaternion from the concatenated yaw, pitch, and roll angles as an output parameter.
+
+
+
+ Divides a by the other .
+
+ Source .
+ Divisor .
+ The result of dividing the quaternions.
+
+
+
+ Divides a by the other .
+
+ Source .
+ Divisor .
+ The result of dividing the quaternions as an output parameter.
+
+
+
+ Returns a dot product of two quaternions.
+
+ The first quaternion.
+ The second quaternion.
+ The dot product of two quaternions.
+
+
+
+ Returns a dot product of two quaternions.
+
+ The first quaternion.
+ The second quaternion.
+ The dot product of two quaternions as an output parameter.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Gets the hash code of this .
+
+ Hash code of this .
+
+
+
+ Returns the inverse quaternion which represents the opposite rotation.
+
+ Source .
+ The inverse quaternion.
+
+
+
+ Returns the inverse quaternion which represents the opposite rotation.
+
+ Source .
+ The inverse quaternion as an output parameter.
+
+
+
+ Returns the magnitude of the quaternion components.
+
+ The magnitude of the quaternion components.
+
+
+
+ Returns the squared magnitude of the quaternion components.
+
+ The squared magnitude of the quaternion components.
+
+
+
+ Performs a linear blend between two quaternions.
+
+ Source .
+ Source .
+ The blend amount where 0 returns and 1 .
+ The result of linear blending between two quaternions.
+
+
+
+ Performs a linear blend between two quaternions.
+
+ Source .
+ Source .
+ The blend amount where 0 returns and 1 .
+ The result of linear blending between two quaternions as an output parameter.
+
+
+
+ Performs a spherical linear blend between two quaternions.
+
+ Source .
+ Source .
+ The blend amount where 0 returns and 1 .
+ The result of spherical linear blending between two quaternions.
+
+
+
+ Performs a spherical linear blend between two quaternions.
+
+ Source .
+ Source .
+ The blend amount where 0 returns and 1 .
+ The result of spherical linear blending between two quaternions as an output parameter.
+
+
+
+ Creates a new that contains subtraction of one from another.
+
+ Source .
+ Source .
+ The result of the quaternion subtraction.
+
+
+
+ Creates a new that contains subtraction of one from another.
+
+ Source .
+ Source .
+ The result of the quaternion subtraction as an output parameter.
+
+
+
+ Creates a new that contains a multiplication of two quaternions.
+
+ Source .
+ Source .
+ The result of the quaternion multiplication.
+
+
+
+ Creates a new that contains a multiplication of and a scalar.
+
+ Source .
+ Scalar value.
+ The result of the quaternion multiplication with a scalar.
+
+
+
+ Creates a new that contains a multiplication of and a scalar.
+
+ Source .
+ Scalar value.
+ The result of the quaternion multiplication with a scalar as an output parameter.
+
+
+
+ Creates a new that contains a multiplication of two quaternions.
+
+ Source .
+ Source .
+ The result of the quaternion multiplication as an output parameter.
+
+
+
+ Flips the sign of the all the quaternion components.
+
+ Source .
+ The result of the quaternion negation.
+
+
+
+ Flips the sign of the all the quaternion components.
+
+ Source .
+ The result of the quaternion negation as an output parameter.
+
+
+
+ Scales the quaternion magnitude to unit length.
+
+
+
+
+ Scales the quaternion magnitude to unit length.
+
+ Source .
+ The unit length quaternion.
+
+
+
+ Scales the quaternion magnitude to unit length.
+
+ Source .
+ The unit length quaternion an output parameter.
+
+
+
+ Returns a representation of this in the format:
+ {X:[] Y:[] Z:[] W:[]}
+
+ A representation of this .
+
+
+
+ Gets a representation for this object.
+
+ A representation for this object.
+
+
+
+ Adds two quaternions.
+
+ Source on the left of the add sign.
+ Source on the right of the add sign.
+ Sum of the vectors.
+
+
+
+ Divides a by the other .
+
+ Source on the left of the div sign.
+ Divisor on the right of the div sign.
+ The result of dividing the quaternions.
+
+
+
+ Compares whether two instances are equal.
+
+ instance on the left of the equal sign.
+ instance on the right of the equal sign.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether two instances are not equal.
+
+ instance on the left of the not equal sign.
+ instance on the right of the not equal sign.
+ true if the instances are not equal; false otherwise.
+
+
+
+ Multiplies two quaternions.
+
+ Source on the left of the mul sign.
+ Source on the right of the mul sign.
+ Result of the quaternions multiplication.
+
+
+
+ Multiplies the components of quaternion by a scalar.
+
+ Source on the left of the mul sign.
+ Scalar value on the right of the mul sign.
+ Result of the quaternion multiplication with a scalar.
+
+
+
+ Subtracts a from a .
+
+ Source on the left of the sub sign.
+ Source on the right of the sub sign.
+ Result of the quaternion subtraction.
+
+
+
+ Flips the sign of the all the quaternion components.
+
+ Source on the right of the sub sign.
+ The result of the quaternion negation.
+
+
+
+ Returns a quaternion representing no rotation.
+
+
+
+
+ Describes a 2D-rectangle.
+
+
+
+
+ The x coordinate of the top-left corner of this .
+
+
+
+
+ The y coordinate of the top-left corner of this .
+
+
+
+
+ The width of this .
+
+
+
+
+ The height of this .
+
+
+
+
+ Creates a new instance of struct, with the specified
+ position, width, and height.
+
+ The x coordinate of the top-left corner of the created .
+ The y coordinate of the top-left corner of the created .
+ The width of the created .
+ The height of the created .
+
+
+
+ Creates a new instance of struct, with the specified
+ location and size.
+
+ The x and y coordinates of the top-left corner of the created .
+ The width and height of the created .
+
+
+
+ Compares whether two instances are equal.
+
+ instance on the left of the equal sign.
+ instance on the right of the equal sign.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether two instances are not equal.
+
+ instance on the left of the not equal sign.
+ instance on the right of the not equal sign.
+ true if the instances are not equal; false otherwise.
+
+
+
+ Gets whether or not the provided coordinates lie within the bounds of this .
+
+ The x coordinate of the point to check for containment.
+ The y coordinate of the point to check for containment.
+ true if the provided coordinates lie inside this ; false otherwise.
+
+
+
+ Gets whether or not the provided coordinates lie within the bounds of this .
+
+ The x coordinate of the point to check for containment.
+ The y coordinate of the point to check for containment.
+ true if the provided coordinates lie inside this ; false otherwise.
+
+
+
+ Gets whether or not the provided lies within the bounds of this .
+
+ The coordinates to check for inclusion in this .
+ true if the provided lies inside this ; false otherwise.
+
+
+
+ Gets whether or not the provided lies within the bounds of this .
+
+ The coordinates to check for inclusion in this .
+ true if the provided lies inside this ; false otherwise. As an output parameter.
+
+
+
+ Gets whether or not the provided lies within the bounds of this .
+
+ The coordinates to check for inclusion in this .
+ true if the provided lies inside this ; false otherwise.
+
+
+
+ Gets whether or not the provided lies within the bounds of this .
+
+ The coordinates to check for inclusion in this .
+ true if the provided lies inside this ; false otherwise. As an output parameter.
+
+
+
+ Gets whether or not the provided lies within the bounds of this .
+
+ The to check for inclusion in this .
+ true if the provided 's bounds lie entirely inside this ; false otherwise.
+
+
+
+ Gets whether or not the provided lies within the bounds of this .
+
+ The to check for inclusion in this .
+ true if the provided 's bounds lie entirely inside this ; false otherwise. As an output parameter.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Gets the hash code of this .
+
+ Hash code of this .
+
+
+
+ Adjusts the edges of this by specified horizontal and vertical amounts.
+
+ Value to adjust the left and right edges.
+ Value to adjust the top and bottom edges.
+
+
+
+ Adjusts the edges of this by specified horizontal and vertical amounts.
+
+ Value to adjust the left and right edges.
+ Value to adjust the top and bottom edges.
+
+
+
+ Gets whether or not the other intersects with this rectangle.
+
+ The other rectangle for testing.
+ true if other intersects with this rectangle; false otherwise.
+
+
+
+ Gets whether or not the other intersects with this rectangle.
+
+ The other rectangle for testing.
+ true if other intersects with this rectangle; false otherwise. As an output parameter.
+
+
+
+ Creates a new that contains overlapping region of two other rectangles.
+
+ The first .
+ The second .
+ Overlapping region of the two rectangles.
+
+
+
+ Creates a new that contains overlapping region of two other rectangles.
+
+ The first .
+ The second .
+ Overlapping region of the two rectangles as an output parameter.
+
+
+
+ Changes the of this .
+
+ The x coordinate to add to this .
+ The y coordinate to add to this .
+
+
+
+ Changes the of this .
+
+ The x coordinate to add to this .
+ The y coordinate to add to this .
+
+
+
+ Changes the of this .
+
+ The x and y components to add to this .
+
+
+
+ Changes the of this .
+
+ The x and y components to add to this .
+
+
+
+ Returns a representation of this in the format:
+ {X:[] Y:[] Width:[] Height:[]}
+
+ representation of this .
+
+
+
+ Creates a new that completely contains two other rectangles.
+
+ The first .
+ The second .
+ The union of the two rectangles.
+
+
+
+ Creates a new that completely contains two other rectangles.
+
+ The first .
+ The second .
+ The union of the two rectangles as an output parameter.
+
+
+
+ Returns a with X=0, Y=0, Width=0, Height=0.
+
+
+
+
+ Returns the x coordinate of the left edge of this .
+
+
+
+
+ Returns the x coordinate of the right edge of this .
+
+
+
+
+ Returns the y coordinate of the top edge of this .
+
+
+
+
+ Returns the y coordinate of the bottom edge of this .
+
+
+
+
+ Whether or not this has a and
+ of 0, and a of (0, 0).
+
+
+
+
+ The top-left coordinates of this .
+
+
+
+
+ The width-height coordinates of this .
+
+
+
+
+ A located in the center of this .
+
+
+ If or is an odd number,
+ the center point will be rounded down.
+
+
+
+
+ Checks if the code is currently running on the UI thread.
+
+ true if the code is currently running on the UI thread.
+
+
+
+ Throws an exception if the code is not currently running on the UI thread.
+
+ Thrown if the code is not currently running on the UI thread.
+
+
+
+ Runs the given action on the UI thread and blocks the current thread while the action is running.
+ If the current thread is the UI thread, the action will run immediately.
+
+ The action to be run on the UI thread
+
+
+
+ Runs all pending actions. Must be called from the UI thread.
+
+
+
+
+ Returns an open stream to an exsiting file in the title storage area.
+
+ The filepath relative to the title storage area.
+ A open stream or null if the file is not found.
+
+
+
+ Describes a 2D-vector.
+
+
+
+
+ The x coordinate of this .
+
+
+
+
+ The y coordinate of this .
+
+
+
+
+ Constructs a 2d vector with X and Y from two values.
+
+ The x coordinate in 2d-space.
+ The y coordinate in 2d-space.
+
+
+
+ Constructs a 2d vector with X and Y set to the same value.
+
+ The x and y coordinates in 2d-space.
+
+
+
+ Inverts values in the specified .
+
+ Source on the right of the sub sign.
+ Result of the inversion.
+
+
+
+ Adds two vectors.
+
+ Source on the left of the add sign.
+ Source on the right of the add sign.
+ Sum of the vectors.
+
+
+
+ Subtracts a from a .
+
+ Source on the left of the sub sign.
+ Source on the right of the sub sign.
+ Result of the vector subtraction.
+
+
+
+ Multiplies the components of two vectors by each other.
+
+ Source on the left of the mul sign.
+ Source on the right of the mul sign.
+ Result of the vector multiplication.
+
+
+
+ Multiplies the components of vector by a scalar.
+
+ Source on the left of the mul sign.
+ Scalar value on the right of the mul sign.
+ Result of the vector multiplication with a scalar.
+
+
+
+ Multiplies the components of vector by a scalar.
+
+ Scalar value on the left of the mul sign.
+ Source on the right of the mul sign.
+ Result of the vector multiplication with a scalar.
+
+
+
+ Divides the components of a by the components of another .
+
+ Source on the left of the div sign.
+ Divisor on the right of the div sign.
+ The result of dividing the vectors.
+
+
+
+ Divides the components of a by a scalar.
+
+ Source on the left of the div sign.
+ Divisor scalar on the right of the div sign.
+ The result of dividing a vector by a scalar.
+
+
+
+ Compares whether two instances are equal.
+
+ instance on the left of the equal sign.
+ instance on the right of the equal sign.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether two instances are not equal.
+
+ instance on the left of the not equal sign.
+ instance on the right of the not equal sign.
+ true if the instances are not equal; false otherwise.
+
+
+
+ Performs vector addition on and .
+
+ The first vector to add.
+ The second vector to add.
+ The result of the vector addition.
+
+
+
+ Performs vector addition on and
+ , storing the result of the
+ addition in .
+
+ The first vector to add.
+ The second vector to add.
+ The result of the vector addition.
+
+
+
+ Creates a new that contains the cartesian coordinates of a vector specified in barycentric coordinates and relative to 2d-triangle.
+
+ The first vector of 2d-triangle.
+ The second vector of 2d-triangle.
+ The third vector of 2d-triangle.
+ Barycentric scalar b2 which represents a weighting factor towards second vector of 2d-triangle.
+ Barycentric scalar b3 which represents a weighting factor towards third vector of 2d-triangle.
+ The cartesian translation of barycentric coordinates.
+
+
+
+ Creates a new that contains the cartesian coordinates of a vector specified in barycentric coordinates and relative to 2d-triangle.
+
+ The first vector of 2d-triangle.
+ The second vector of 2d-triangle.
+ The third vector of 2d-triangle.
+ Barycentric scalar b2 which represents a weighting factor towards second vector of 2d-triangle.
+ Barycentric scalar b3 which represents a weighting factor towards third vector of 2d-triangle.
+ The cartesian translation of barycentric coordinates as an output parameter.
+
+
+
+ Creates a new that contains CatmullRom interpolation of the specified vectors.
+
+ The first vector in interpolation.
+ The second vector in interpolation.
+ The third vector in interpolation.
+ The fourth vector in interpolation.
+ Weighting factor.
+ The result of CatmullRom interpolation.
+
+
+
+ Creates a new that contains CatmullRom interpolation of the specified vectors.
+
+ The first vector in interpolation.
+ The second vector in interpolation.
+ The third vector in interpolation.
+ The fourth vector in interpolation.
+ Weighting factor.
+ The result of CatmullRom interpolation as an output parameter.
+
+
+
+ Clamps the specified value within a range.
+
+ The value to clamp.
+ The min value.
+ The max value.
+ The clamped value.
+
+
+
+ Clamps the specified value within a range.
+
+ The value to clamp.
+ The min value.
+ The max value.
+ The clamped value as an output parameter.
+
+
+
+ Returns the distance between two vectors.
+
+ The first vector.
+ The second vector.
+ The distance between two vectors.
+
+
+
+ Returns the distance between two vectors.
+
+ The first vector.
+ The second vector.
+ The distance between two vectors as an output parameter.
+
+
+
+ Returns the squared distance between two vectors.
+
+ The first vector.
+ The second vector.
+ The squared distance between two vectors.
+
+
+
+ Returns the squared distance between two vectors.
+
+ The first vector.
+ The second vector.
+ The squared distance between two vectors as an output parameter.
+
+
+
+ Divides the components of a by the components of another .
+
+ Source .
+ Divisor .
+ The result of dividing the vectors.
+
+
+
+ Divides the components of a by the components of another .
+
+ Source .
+ Divisor .
+ The result of dividing the vectors as an output parameter.
+
+
+
+ Divides the components of a by a scalar.
+
+ Source .
+ Divisor scalar.
+ The result of dividing a vector by a scalar.
+
+
+
+ Divides the components of a by a scalar.
+
+ Source .
+ Divisor scalar.
+ The result of dividing a vector by a scalar as an output parameter.
+
+
+
+ Returns a dot product of two vectors.
+
+ The first vector.
+ The second vector.
+ The dot product of two vectors.
+
+
+
+ Returns a dot product of two vectors.
+
+ The first vector.
+ The second vector.
+ The dot product of two vectors as an output parameter.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Gets the hash code of this .
+
+ Hash code of this .
+
+
+
+ Creates a new that contains hermite spline interpolation.
+
+ The first position vector.
+ The first tangent vector.
+ The second position vector.
+ The second tangent vector.
+ Weighting factor.
+ The hermite spline interpolation vector.
+
+
+
+ Creates a new that contains hermite spline interpolation.
+
+ The first position vector.
+ The first tangent vector.
+ The second position vector.
+ The second tangent vector.
+ Weighting factor.
+ The hermite spline interpolation vector as an output parameter.
+
+
+
+ Returns the length of this .
+
+ The length of this .
+
+
+
+ Returns the squared length of this .
+
+ The squared length of this .
+
+
+
+ Creates a new that contains linear interpolation of the specified vectors.
+
+ The first vector.
+ The second vector.
+ Weighting value(between 0.0 and 1.0).
+ The result of linear interpolation of the specified vectors.
+
+
+
+ Creates a new that contains linear interpolation of the specified vectors.
+
+ The first vector.
+ The second vector.
+ Weighting value(between 0.0 and 1.0).
+ The result of linear interpolation of the specified vectors as an output parameter.
+
+
+
+ Creates a new that contains linear interpolation of the specified vectors.
+ Uses on MathHelper for the interpolation.
+ Less efficient but more precise compared to .
+ See remarks section of on MathHelper for more info.
+
+ The first vector.
+ The second vector.
+ Weighting value(between 0.0 and 1.0).
+ The result of linear interpolation of the specified vectors.
+
+
+
+ Creates a new that contains linear interpolation of the specified vectors.
+ Uses on MathHelper for the interpolation.
+ Less efficient but more precise compared to .
+ See remarks section of on MathHelper for more info.
+
+ The first vector.
+ The second vector.
+ Weighting value(between 0.0 and 1.0).
+ The result of linear interpolation of the specified vectors as an output parameter.
+
+
+
+ Creates a new that contains a maximal values from the two vectors.
+
+ The first vector.
+ The second vector.
+ The with maximal values from the two vectors.
+
+
+
+ Creates a new that contains a maximal values from the two vectors.
+
+ The first vector.
+ The second vector.
+ The with maximal values from the two vectors as an output parameter.
+
+
+
+ Creates a new that contains a minimal values from the two vectors.
+
+ The first vector.
+ The second vector.
+ The with minimal values from the two vectors.
+
+
+
+ Creates a new that contains a minimal values from the two vectors.
+
+ The first vector.
+ The second vector.
+ The with minimal values from the two vectors as an output parameter.
+
+
+
+ Creates a new that contains a multiplication of two vectors.
+
+ Source .
+ Source .
+ The result of the vector multiplication.
+
+
+
+ Creates a new that contains a multiplication of two vectors.
+
+ Source .
+ Source .
+ The result of the vector multiplication as an output parameter.
+
+
+
+ Creates a new that contains a multiplication of and a scalar.
+
+ Source .
+ Scalar value.
+ The result of the vector multiplication with a scalar.
+
+
+
+ Creates a new that contains a multiplication of and a scalar.
+
+ Source .
+ Scalar value.
+ The result of the multiplication with a scalar as an output parameter.
+
+
+
+ Creates a new that contains the specified vector inversion.
+
+ Source .
+ The result of the vector inversion.
+
+
+
+ Creates a new that contains the specified vector inversion.
+
+ Source .
+ The result of the vector inversion as an output parameter.
+
+
+
+ Turns this to a unit vector with the same direction.
+
+
+
+
+ Creates a new that contains a normalized values from another vector.
+
+ Source .
+ Unit vector.
+
+
+
+ Creates a new that contains a normalized values from another vector.
+
+ Source .
+ Unit vector as an output parameter.
+
+
+
+ Creates a new that contains reflect vector of the given vector and normal.
+
+ Source .
+ Reflection normal.
+ Reflected vector.
+
+
+
+ Creates a new that contains reflect vector of the given vector and normal.
+
+ Source .
+ Reflection normal.
+ Reflected vector as an output parameter.
+
+
+
+ Creates a new that contains cubic interpolation of the specified vectors.
+
+ Source .
+ Source .
+ Weighting value.
+ Cubic interpolation of the specified vectors.
+
+
+
+ Creates a new that contains cubic interpolation of the specified vectors.
+
+ Source .
+ Source .
+ Weighting value.
+ Cubic interpolation of the specified vectors as an output parameter.
+
+
+
+ Creates a new that contains subtraction of on from a another.
+
+ Source .
+ Source .
+ The result of the vector subtraction.
+
+
+
+ Creates a new that contains subtraction of on from a another.
+
+ Source .
+ Source .
+ The result of the vector subtraction as an output parameter.
+
+
+
+ Returns a representation of this in the format:
+ {X:[] Y:[]}
+
+ A representation of this .
+
+
+
+ Gets a representation for this object.
+
+ A representation for this object.
+
+
+
+ Creates a new that contains a transformation of 2d-vector by the specified .
+
+ Source .
+ The transformation .
+ Transformed .
+
+
+
+ Creates a new that contains a transformation of 2d-vector by the specified .
+
+ Source .
+ The transformation .
+ Transformed as an output parameter.
+
+
+
+ Creates a new that contains a transformation of 2d-vector by the specified , representing the rotation.
+
+ Source .
+ The which contains rotation transformation.
+ Transformed .
+
+
+
+ Creates a new that contains a transformation of 2d-vector by the specified , representing the rotation.
+
+ Source .
+ The which contains rotation transformation.
+ Transformed as an output parameter.
+
+
+
+ Apply transformation on vectors within array of by the specified and places the results in an another array.
+
+ Source array.
+ The starting index of transformation in the source array.
+ The transformation .
+ Destination array.
+ The starting index in the destination array, where the first should be written.
+ The number of vectors to be transformed.
+
+
+
+ Apply transformation on vectors within array of by the specified and places the results in an another array.
+
+ Source array.
+ The starting index of transformation in the source array.
+ The which contains rotation transformation.
+ Destination array.
+ The starting index in the destination array, where the first should be written.
+ The number of vectors to be transformed.
+
+
+
+ Apply transformation on all vectors within array of by the specified and places the results in an another array.
+
+ Source array.
+ The transformation .
+ Destination array.
+
+
+
+ Apply transformation on all vectors within array of by the specified and places the results in an another array.
+
+ Source array.
+ The which contains rotation transformation.
+ Destination array.
+
+
+
+ Creates a new that contains a transformation of the specified normal by the specified .
+
+ Source which represents a normal vector.
+ The transformation .
+ Transformed normal.
+
+
+
+ Creates a new that contains a transformation of the specified normal by the specified .
+
+ Source which represents a normal vector.
+ The transformation .
+ Transformed normal as an output parameter.
+
+
+
+ Apply transformation on normals within array of by the specified and places the results in an another array.
+
+ Source array.
+ The starting index of transformation in the source array.
+ The transformation .
+ Destination array.
+ The starting index in the destination array, where the first should be written.
+ The number of normals to be transformed.
+
+
+
+ Apply transformation on all normals within array of by the specified and places the results in an another array.
+
+ Source array.
+ The transformation .
+ Destination array.
+
+
+
+ Returns a with components 0, 0.
+
+
+
+
+ Returns a with components 1, 1.
+
+
+
+
+ Returns a with components 1, 0.
+
+
+
+
+ Returns a with components 0, 1.
+
+
+
+
+ Describes a 3D-vector.
+
+
+
+
+ The x coordinate of this .
+
+
+
+
+ The y coordinate of this .
+
+
+
+
+ The z coordinate of this .
+
+
+
+
+ Constructs a 3d vector with X, Y and Z from three values.
+
+ The x coordinate in 3d-space.
+ The y coordinate in 3d-space.
+ The z coordinate in 3d-space.
+
+
+
+ Constructs a 3d vector with X, Y and Z set to the same value.
+
+ The x, y and z coordinates in 3d-space.
+
+
+
+ Constructs a 3d vector with X, Y from and Z from a scalar.
+
+ The x and y coordinates in 3d-space.
+ The z coordinate in 3d-space.
+
+
+
+ Performs vector addition on and .
+
+ The first vector to add.
+ The second vector to add.
+ The result of the vector addition.
+
+
+
+ Performs vector addition on and
+ , storing the result of the
+ addition in .
+
+ The first vector to add.
+ The second vector to add.
+ The result of the vector addition.
+
+
+
+ Creates a new that contains the cartesian coordinates of a vector specified in barycentric coordinates and relative to 3d-triangle.
+
+ The first vector of 3d-triangle.
+ The second vector of 3d-triangle.
+ The third vector of 3d-triangle.
+ Barycentric scalar b2 which represents a weighting factor towards second vector of 3d-triangle.
+ Barycentric scalar b3 which represents a weighting factor towards third vector of 3d-triangle.
+ The cartesian translation of barycentric coordinates.
+
+
+
+ Creates a new that contains the cartesian coordinates of a vector specified in barycentric coordinates and relative to 3d-triangle.
+
+ The first vector of 3d-triangle.
+ The second vector of 3d-triangle.
+ The third vector of 3d-triangle.
+ Barycentric scalar b2 which represents a weighting factor towards second vector of 3d-triangle.
+ Barycentric scalar b3 which represents a weighting factor towards third vector of 3d-triangle.
+ The cartesian translation of barycentric coordinates as an output parameter.
+
+
+
+ Creates a new that contains CatmullRom interpolation of the specified vectors.
+
+ The first vector in interpolation.
+ The second vector in interpolation.
+ The third vector in interpolation.
+ The fourth vector in interpolation.
+ Weighting factor.
+ The result of CatmullRom interpolation.
+
+
+
+ Creates a new that contains CatmullRom interpolation of the specified vectors.
+
+ The first vector in interpolation.
+ The second vector in interpolation.
+ The third vector in interpolation.
+ The fourth vector in interpolation.
+ Weighting factor.
+ The result of CatmullRom interpolation as an output parameter.
+
+
+
+ Clamps the specified value within a range.
+
+ The value to clamp.
+ The min value.
+ The max value.
+ The clamped value.
+
+
+
+ Clamps the specified value within a range.
+
+ The value to clamp.
+ The min value.
+ The max value.
+ The clamped value as an output parameter.
+
+
+
+ Computes the cross product of two vectors.
+
+ The first vector.
+ The second vector.
+ The cross product of two vectors.
+
+
+
+ Computes the cross product of two vectors.
+
+ The first vector.
+ The second vector.
+ The cross product of two vectors as an output parameter.
+
+
+
+ Returns the distance between two vectors.
+
+ The first vector.
+ The second vector.
+ The distance between two vectors.
+
+
+
+ Returns the distance between two vectors.
+
+ The first vector.
+ The second vector.
+ The distance between two vectors as an output parameter.
+
+
+
+ Returns the squared distance between two vectors.
+
+ The first vector.
+ The second vector.
+ The squared distance between two vectors.
+
+
+
+ Returns the squared distance between two vectors.
+
+ The first vector.
+ The second vector.
+ The squared distance between two vectors as an output parameter.
+
+
+
+ Divides the components of a by the components of another .
+
+ Source .
+ Divisor .
+ The result of dividing the vectors.
+
+
+
+ Divides the components of a by a scalar.
+
+ Source .
+ Divisor scalar.
+ The result of dividing a vector by a scalar.
+
+
+
+ Divides the components of a by a scalar.
+
+ Source .
+ Divisor scalar.
+ The result of dividing a vector by a scalar as an output parameter.
+
+
+
+ Divides the components of a by the components of another .
+
+ Source .
+ Divisor .
+ The result of dividing the vectors as an output parameter.
+
+
+
+ Returns a dot product of two vectors.
+
+ The first vector.
+ The second vector.
+ The dot product of two vectors.
+
+
+
+ Returns a dot product of two vectors.
+
+ The first vector.
+ The second vector.
+ The dot product of two vectors as an output parameter.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Gets the hash code of this .
+
+ Hash code of this .
+
+
+
+ Creates a new that contains hermite spline interpolation.
+
+ The first position vector.
+ The first tangent vector.
+ The second position vector.
+ The second tangent vector.
+ Weighting factor.
+ The hermite spline interpolation vector.
+
+
+
+ Creates a new that contains hermite spline interpolation.
+
+ The first position vector.
+ The first tangent vector.
+ The second position vector.
+ The second tangent vector.
+ Weighting factor.
+ The hermite spline interpolation vector as an output parameter.
+
+
+
+ Returns the length of this .
+
+ The length of this .
+
+
+
+ Returns the squared length of this .
+
+ The squared length of this .
+
+
+
+ Creates a new that contains linear interpolation of the specified vectors.
+
+ The first vector.
+ The second vector.
+ Weighting value(between 0.0 and 1.0).
+ The result of linear interpolation of the specified vectors.
+
+
+
+ Creates a new that contains linear interpolation of the specified vectors.
+
+ The first vector.
+ The second vector.
+ Weighting value(between 0.0 and 1.0).
+ The result of linear interpolation of the specified vectors as an output parameter.
+
+
+
+ Creates a new that contains linear interpolation of the specified vectors.
+ Uses on MathHelper for the interpolation.
+ Less efficient but more precise compared to .
+ See remarks section of on MathHelper for more info.
+
+ The first vector.
+ The second vector.
+ Weighting value(between 0.0 and 1.0).
+ The result of linear interpolation of the specified vectors.
+
+
+
+ Creates a new that contains linear interpolation of the specified vectors.
+ Uses on MathHelper for the interpolation.
+ Less efficient but more precise compared to .
+ See remarks section of on MathHelper for more info.
+
+ The first vector.
+ The second vector.
+ Weighting value(between 0.0 and 1.0).
+ The result of linear interpolation of the specified vectors as an output parameter.
+
+
+
+ Creates a new that contains a maximal values from the two vectors.
+
+ The first vector.
+ The second vector.
+ The with maximal values from the two vectors.
+
+
+
+ Creates a new that contains a maximal values from the two vectors.
+
+ The first vector.
+ The second vector.
+ The with maximal values from the two vectors as an output parameter.
+
+
+
+ Creates a new that contains a minimal values from the two vectors.
+
+ The first vector.
+ The second vector.
+ The with minimal values from the two vectors.
+
+
+
+ Creates a new that contains a minimal values from the two vectors.
+
+ The first vector.
+ The second vector.
+ The with minimal values from the two vectors as an output parameter.
+
+
+
+ Creates a new that contains a multiplication of two vectors.
+
+ Source .
+ Source .
+ The result of the vector multiplication.
+
+
+
+ Creates a new that contains a multiplication of and a scalar.
+
+ Source .
+ Scalar value.
+ The result of the vector multiplication with a scalar.
+
+
+
+ Creates a new that contains a multiplication of and a scalar.
+
+ Source .
+ Scalar value.
+ The result of the multiplication with a scalar as an output parameter.
+
+
+
+ Creates a new that contains a multiplication of two vectors.
+
+ Source .
+ Source .
+ The result of the vector multiplication as an output parameter.
+
+
+
+ Creates a new that contains the specified vector inversion.
+
+ Source .
+ The result of the vector inversion.
+
+
+
+ Creates a new that contains the specified vector inversion.
+
+ Source .
+ The result of the vector inversion as an output parameter.
+
+
+
+ Turns this to a unit vector with the same direction.
+
+
+
+
+ Creates a new that contains a normalized values from another vector.
+
+ Source .
+ Unit vector.
+
+
+
+ Creates a new that contains a normalized values from another vector.
+
+ Source .
+ Unit vector as an output parameter.
+
+
+
+ Creates a new that contains reflect vector of the given vector and normal.
+
+ Source .
+ Reflection normal.
+ Reflected vector.
+
+
+
+ Creates a new that contains reflect vector of the given vector and normal.
+
+ Source .
+ Reflection normal.
+ Reflected vector as an output parameter.
+
+
+
+ Creates a new that contains cubic interpolation of the specified vectors.
+
+ Source .
+ Source .
+ Weighting value.
+ Cubic interpolation of the specified vectors.
+
+
+
+ Creates a new that contains cubic interpolation of the specified vectors.
+
+ Source .
+ Source .
+ Weighting value.
+ Cubic interpolation of the specified vectors as an output parameter.
+
+
+
+ Creates a new that contains subtraction of on from a another.
+
+ Source .
+ Source .
+ The result of the vector subtraction.
+
+
+
+ Creates a new that contains subtraction of on from a another.
+
+ Source .
+ Source .
+ The result of the vector subtraction as an output parameter.
+
+
+
+ Returns a representation of this in the format:
+ {X:[] Y:[] Z:[]}
+
+ A representation of this .
+
+
+
+ Creates a new that contains a transformation of 3d-vector by the specified .
+
+ Source .
+ The transformation .
+ Transformed .
+
+
+
+ Creates a new that contains a transformation of 3d-vector by the specified .
+
+ Source .
+ The transformation .
+ Transformed as an output parameter.
+
+
+
+ Creates a new that contains a transformation of 3d-vector by the specified , representing the rotation.
+
+ Source .
+ The which contains rotation transformation.
+ Transformed .
+
+
+
+ Creates a new that contains a transformation of 3d-vector by the specified , representing the rotation.
+
+ Source .
+ The which contains rotation transformation.
+ Transformed as an output parameter.
+
+
+
+ Apply transformation on vectors within array of by the specified and places the results in an another array.
+
+ Source array.
+ The starting index of transformation in the source array.
+ The transformation .
+ Destination array.
+ The starting index in the destination array, where the first should be written.
+ The number of vectors to be transformed.
+
+
+
+ Apply transformation on vectors within array of by the specified and places the results in an another array.
+
+ Source array.
+ The starting index of transformation in the source array.
+ The which contains rotation transformation.
+ Destination array.
+ The starting index in the destination array, where the first should be written.
+ The number of vectors to be transformed.
+
+
+
+ Apply transformation on all vectors within array of by the specified and places the results in an another array.
+
+ Source array.
+ The transformation .
+ Destination array.
+
+
+
+ Apply transformation on all vectors within array of by the specified and places the results in an another array.
+
+ Source array.
+ The which contains rotation transformation.
+ Destination array.
+
+
+
+ Creates a new that contains a transformation of the specified normal by the specified .
+
+ Source which represents a normal vector.
+ The transformation .
+ Transformed normal.
+
+
+
+ Creates a new that contains a transformation of the specified normal by the specified .
+
+ Source which represents a normal vector.
+ The transformation .
+ Transformed normal as an output parameter.
+
+
+
+ Apply transformation on normals within array of by the specified and places the results in an another array.
+
+ Source array.
+ The starting index of transformation in the source array.
+ The transformation .
+ Destination array.
+ The starting index in the destination array, where the first should be written.
+ The number of normals to be transformed.
+
+
+
+ Apply transformation on all normals within array of by the specified and places the results in an another array.
+
+ Source array.
+ The transformation .
+ Destination array.
+
+
+
+ Compares whether two instances are equal.
+
+ instance on the left of the equal sign.
+ instance on the right of the equal sign.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether two instances are not equal.
+
+ instance on the left of the not equal sign.
+ instance on the right of the not equal sign.
+ true if the instances are not equal; false otherwise.
+
+
+
+ Adds two vectors.
+
+ Source on the left of the add sign.
+ Source on the right of the add sign.
+ Sum of the vectors.
+
+
+
+ Inverts values in the specified .
+
+ Source on the right of the sub sign.
+ Result of the inversion.
+
+
+
+ Subtracts a from a .
+
+ Source on the left of the sub sign.
+ Source on the right of the sub sign.
+ Result of the vector subtraction.
+
+
+
+ Multiplies the components of two vectors by each other.
+
+ Source on the left of the mul sign.
+ Source on the right of the mul sign.
+ Result of the vector multiplication.
+
+
+
+ Multiplies the components of vector by a scalar.
+
+ Source on the left of the mul sign.
+ Scalar value on the right of the mul sign.
+ Result of the vector multiplication with a scalar.
+
+
+
+ Multiplies the components of vector by a scalar.
+
+ Scalar value on the left of the mul sign.
+ Source on the right of the mul sign.
+ Result of the vector multiplication with a scalar.
+
+
+
+ Divides the components of a by the components of another .
+
+ Source on the left of the div sign.
+ Divisor on the right of the div sign.
+ The result of dividing the vectors.
+
+
+
+ Divides the components of a by a scalar.
+
+ Source on the left of the div sign.
+ Divisor scalar on the right of the div sign.
+ The result of dividing a vector by a scalar.
+
+
+
+ Returns a with components 0, 0, 0.
+
+
+
+
+ Returns a with components 1, 1, 1.
+
+
+
+
+ Returns a with components 1, 0, 0.
+
+
+
+
+ Returns a with components 0, 1, 0.
+
+
+
+
+ Returns a with components 0, 0, 1.
+
+
+
+
+ Returns a with components 0, 1, 0.
+
+
+
+
+ Returns a with components 0, -1, 0.
+
+
+
+
+ Returns a with components 1, 0, 0.
+
+
+
+
+ Returns a with components -1, 0, 0.
+
+
+
+
+ Returns a with components 0, 0, -1.
+
+
+
+
+ Returns a with components 0, 0, 1.
+
+
+
+
+ Describes a 4D-vector.
+
+
+
+
+ The x coordinate of this .
+
+
+
+
+ The y coordinate of this .
+
+
+
+
+ The z coordinate of this .
+
+
+
+
+ The w coordinate of this .
+
+
+
+
+ Constructs a 3d vector with X, Y, Z and W from four values.
+
+ The x coordinate in 4d-space.
+ The y coordinate in 4d-space.
+ The z coordinate in 4d-space.
+ The w coordinate in 4d-space.
+
+
+
+ Constructs a 3d vector with X and Z from and Z and W from the scalars.
+
+ The x and y coordinates in 4d-space.
+ The z coordinate in 4d-space.
+ The w coordinate in 4d-space.
+
+
+
+ Constructs a 3d vector with X, Y, Z from and W from a scalar.
+
+ The x, y and z coordinates in 4d-space.
+ The w coordinate in 4d-space.
+
+
+
+ Constructs a 4d vector with X, Y, Z and W set to the same value.
+
+ The x, y, z and w coordinates in 4d-space.
+
+
+
+ Performs vector addition on and .
+
+ The first vector to add.
+ The second vector to add.
+ The result of the vector addition.
+
+
+
+ Performs vector addition on and
+ , storing the result of the
+ addition in .
+
+ The first vector to add.
+ The second vector to add.
+ The result of the vector addition.
+
+
+
+ Creates a new that contains the cartesian coordinates of a vector specified in barycentric coordinates and relative to 4d-triangle.
+
+ The first vector of 4d-triangle.
+ The second vector of 4d-triangle.
+ The third vector of 4d-triangle.
+ Barycentric scalar b2 which represents a weighting factor towards second vector of 4d-triangle.
+ Barycentric scalar b3 which represents a weighting factor towards third vector of 4d-triangle.
+ The cartesian translation of barycentric coordinates.
+
+
+
+ Creates a new that contains the cartesian coordinates of a vector specified in barycentric coordinates and relative to 4d-triangle.
+
+ The first vector of 4d-triangle.
+ The second vector of 4d-triangle.
+ The third vector of 4d-triangle.
+ Barycentric scalar b2 which represents a weighting factor towards second vector of 4d-triangle.
+ Barycentric scalar b3 which represents a weighting factor towards third vector of 4d-triangle.
+ The cartesian translation of barycentric coordinates as an output parameter.
+
+
+
+ Creates a new that contains CatmullRom interpolation of the specified vectors.
+
+ The first vector in interpolation.
+ The second vector in interpolation.
+ The third vector in interpolation.
+ The fourth vector in interpolation.
+ Weighting factor.
+ The result of CatmullRom interpolation.
+
+
+
+ Creates a new that contains CatmullRom interpolation of the specified vectors.
+
+ The first vector in interpolation.
+ The second vector in interpolation.
+ The third vector in interpolation.
+ The fourth vector in interpolation.
+ Weighting factor.
+ The result of CatmullRom interpolation as an output parameter.
+
+
+
+ Clamps the specified value within a range.
+
+ The value to clamp.
+ The min value.
+ The max value.
+ The clamped value.
+
+
+
+ Clamps the specified value within a range.
+
+ The value to clamp.
+ The min value.
+ The max value.
+ The clamped value as an output parameter.
+
+
+
+ Returns the distance between two vectors.
+
+ The first vector.
+ The second vector.
+ The distance between two vectors.
+
+
+
+ Returns the distance between two vectors.
+
+ The first vector.
+ The second vector.
+ The distance between two vectors as an output parameter.
+
+
+
+ Returns the squared distance between two vectors.
+
+ The first vector.
+ The second vector.
+ The squared distance between two vectors.
+
+
+
+ Returns the squared distance between two vectors.
+
+ The first vector.
+ The second vector.
+ The squared distance between two vectors as an output parameter.
+
+
+
+ Divides the components of a by the components of another .
+
+ Source .
+ Divisor .
+ The result of dividing the vectors.
+
+
+
+ Divides the components of a by a scalar.
+
+ Source .
+ Divisor scalar.
+ The result of dividing a vector by a scalar.
+
+
+
+ Divides the components of a by a scalar.
+
+ Source .
+ Divisor scalar.
+ The result of dividing a vector by a scalar as an output parameter.
+
+
+
+ Divides the components of a by the components of another .
+
+ Source .
+ Divisor .
+ The result of dividing the vectors as an output parameter.
+
+
+
+ Returns a dot product of two vectors.
+
+ The first vector.
+ The second vector.
+ The dot product of two vectors.
+
+
+
+ Returns a dot product of two vectors.
+
+ The first vector.
+ The second vector.
+ The dot product of two vectors as an output parameter.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether current instance is equal to specified .
+
+ The to compare.
+ true if the instances are equal; false otherwise.
+
+
+
+ Gets the hash code of this .
+
+ Hash code of this .
+
+
+
+ Creates a new that contains hermite spline interpolation.
+
+ The first position vector.
+ The first tangent vector.
+ The second position vector.
+ The second tangent vector.
+ Weighting factor.
+ The hermite spline interpolation vector.
+
+
+
+ Creates a new that contains hermite spline interpolation.
+
+ The first position vector.
+ The first tangent vector.
+ The second position vector.
+ The second tangent vector.
+ Weighting factor.
+ The hermite spline interpolation vector as an output parameter.
+
+
+
+ Returns the length of this .
+
+ The length of this .
+
+
+
+ Returns the squared length of this .
+
+ The squared length of this .
+
+
+
+ Creates a new that contains linear interpolation of the specified vectors.
+
+ The first vector.
+ The second vector.
+ Weighting value(between 0.0 and 1.0).
+ The result of linear interpolation of the specified vectors.
+
+
+
+ Creates a new that contains linear interpolation of the specified vectors.
+
+ The first vector.
+ The second vector.
+ Weighting value(between 0.0 and 1.0).
+ The result of linear interpolation of the specified vectors as an output parameter.
+
+
+
+ Creates a new that contains linear interpolation of the specified vectors.
+ Uses on MathHelper for the interpolation.
+ Less efficient but more precise compared to .
+ See remarks section of on MathHelper for more info.
+
+ The first vector.
+ The second vector.
+ Weighting value(between 0.0 and 1.0).
+ The result of linear interpolation of the specified vectors.
+
+
+
+ Creates a new that contains linear interpolation of the specified vectors.
+ Uses on MathHelper for the interpolation.
+ Less efficient but more precise compared to .
+ See remarks section of on MathHelper for more info.
+
+ The first vector.
+ The second vector.
+ Weighting value(between 0.0 and 1.0).
+ The result of linear interpolation of the specified vectors as an output parameter.
+
+
+
+ Creates a new that contains a maximal values from the two vectors.
+
+ The first vector.
+ The second vector.
+ The with maximal values from the two vectors.
+
+
+
+ Creates a new that contains a maximal values from the two vectors.
+
+ The first vector.
+ The second vector.
+ The with maximal values from the two vectors as an output parameter.
+
+
+
+ Creates a new that contains a minimal values from the two vectors.
+
+ The first vector.
+ The second vector.
+ The with minimal values from the two vectors.
+
+
+
+ Creates a new that contains a minimal values from the two vectors.
+
+ The first vector.
+ The second vector.
+ The with minimal values from the two vectors as an output parameter.
+
+
+
+ Creates a new that contains a multiplication of two vectors.
+
+ Source .
+ Source .
+ The result of the vector multiplication.
+
+
+
+ Creates a new that contains a multiplication of and a scalar.
+
+ Source .
+ Scalar value.
+ The result of the vector multiplication with a scalar.
+
+
+
+ Creates a new that contains a multiplication of and a scalar.
+
+ Source .
+ Scalar value.
+ The result of the multiplication with a scalar as an output parameter.
+
+
+
+ Creates a new that contains a multiplication of two vectors.
+
+ Source .
+ Source .
+ The result of the vector multiplication as an output parameter.
+
+
+
+ Creates a new that contains the specified vector inversion.
+
+ Source .
+ The result of the vector inversion.
+
+
+
+ Creates a new that contains the specified vector inversion.
+
+ Source .
+ The result of the vector inversion as an output parameter.
+
+
+
+ Turns this to a unit vector with the same direction.
+
+
+
+
+ Creates a new that contains a normalized values from another vector.
+
+ Source .
+ Unit vector.
+
+
+
+ Creates a new that contains a normalized values from another vector.
+
+ Source .
+ Unit vector as an output parameter.
+
+
+
+ Creates a new that contains cubic interpolation of the specified vectors.
+
+ Source .
+ Source .
+ Weighting value.
+ Cubic interpolation of the specified vectors.
+
+
+
+ Creates a new that contains cubic interpolation of the specified vectors.
+
+ Source .
+ Source .
+ Weighting value.
+ Cubic interpolation of the specified vectors as an output parameter.
+
+
+
+ Creates a new that contains subtraction of on from a another.
+
+ Source .
+ Source .
+ The result of the vector subtraction.
+
+
+
+ Creates a new that contains subtraction of on from a another.
+
+ Source .
+ Source .
+ The result of the vector subtraction as an output parameter.
+
+
+
+ Creates a new that contains a transformation of 2d-vector by the specified .
+
+ Source .
+ The transformation .
+ Transformed .
+
+
+
+ Creates a new that contains a transformation of 2d-vector by the specified .
+
+ Source .
+ The which contains rotation transformation.
+ Transformed .
+
+
+
+ Creates a new that contains a transformation of 3d-vector by the specified .
+
+ Source .
+ The transformation .
+ Transformed .
+
+
+
+ Creates a new that contains a transformation of 3d-vector by the specified .
+
+ Source .
+ The which contains rotation transformation.
+ Transformed .
+
+
+
+ Creates a new that contains a transformation of 4d-vector by the specified .
+
+ Source .
+ The transformation .
+ Transformed .
+
+
+
+ Creates a new that contains a transformation of 4d-vector by the specified .
+
+ Source .
+ The which contains rotation transformation.
+ Transformed .
+
+
+
+ Creates a new that contains a transformation of 2d-vector by the specified .
+
+ Source .
+ The transformation .
+ Transformed as an output parameter.
+
+
+
+ Creates a new that contains a transformation of 2d-vector by the specified .
+
+ Source .
+ The which contains rotation transformation.
+ Transformed as an output parameter.
+
+
+
+ Creates a new that contains a transformation of 3d-vector by the specified .
+
+ Source .
+ The transformation .
+ Transformed as an output parameter.
+
+
+
+ Creates a new that contains a transformation of 3d-vector by the specified .
+
+ Source .
+ The which contains rotation transformation.
+ Transformed as an output parameter.
+
+
+
+ Creates a new that contains a transformation of 4d-vector by the specified .
+
+ Source .
+ The transformation .
+ Transformed as an output parameter.
+
+
+
+ Creates a new that contains a transformation of 4d-vector by the specified .
+
+ Source .
+ The which contains rotation transformation.
+ Transformed as an output parameter.
+
+
+
+ Apply transformation on vectors within array of by the specified and places the results in an another array.
+
+ Source array.
+ The starting index of transformation in the source array.
+ The transformation .
+ Destination array.
+ The starting index in the destination array, where the first should be written.
+ The number of vectors to be transformed.
+
+
+
+ Apply transformation on vectors within array of by the specified and places the results in an another array.
+
+ Source array.
+ The starting index of transformation in the source array.
+ The which contains rotation transformation.
+ Destination array.
+ The starting index in the destination array, where the first should be written.
+ The number of vectors to be transformed.
+
+
+
+ Apply transformation on all vectors within array of by the specified and places the results in an another array.
+
+ Source array.
+ The transformation .
+ Destination array.
+
+
+
+ Apply transformation on all vectors within array of by the specified and places the results in an another array.
+
+ Source array.
+ The which contains rotation transformation.
+ Destination array.
+
+
+
+ Returns a representation of this in the format:
+ {X:[] Y:[] Z:[] W:[]}
+
+ A representation of this .
+
+
+
+ Inverts values in the specified .
+
+ Source on the right of the sub sign.
+ Result of the inversion.
+
+
+
+ Compares whether two instances are equal.
+
+ instance on the left of the equal sign.
+ instance on the right of the equal sign.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether two instances are not equal.
+
+ instance on the left of the not equal sign.
+ instance on the right of the not equal sign.
+ true if the instances are not equal; false otherwise.
+
+
+
+ Adds two vectors.
+
+ Source on the left of the add sign.
+ Source on the right of the add sign.
+ Sum of the vectors.
+
+
+
+ Subtracts a from a .
+
+ Source on the left of the sub sign.
+ Source on the right of the sub sign.
+ Result of the vector subtraction.
+
+
+
+ Multiplies the components of two vectors by each other.
+
+ Source on the left of the mul sign.
+ Source on the right of the mul sign.
+ Result of the vector multiplication.
+
+
+
+ Multiplies the components of vector by a scalar.
+
+ Source on the left of the mul sign.
+ Scalar value on the right of the mul sign.
+ Result of the vector multiplication with a scalar.
+
+
+
+ Multiplies the components of vector by a scalar.
+
+ Scalar value on the left of the mul sign.
+ Source on the right of the mul sign.
+ Result of the vector multiplication with a scalar.
+
+
+
+ Divides the components of a by the components of another .
+
+ Source on the left of the div sign.
+ Divisor on the right of the div sign.
+ The result of dividing the vectors.
+
+
+
+ Divides the components of a by a scalar.
+
+ Source on the left of the div sign.
+ Divisor scalar on the right of the div sign.
+ The result of dividing a vector by a scalar.
+
+
+
+ Returns a with components 0, 0, 0, 0.
+
+
+
+
+ Returns a with components 1, 1, 1, 1.
+
+
+
+
+ Returns a with components 1, 0, 0, 0.
+
+
+
+
+ Returns a with components 0, 1, 0, 0.
+
+
+
+
+ Returns a with components 0, 0, 1, 0.
+
+
+
+
+ Returns a with components 0, 0, 0, 1.
+
+
+
+
+ Represents how many channels are used in the audio data.
+
+
+
+ Single channel.
+
+
+ Two channels.
+
+
+
+ Represents a 3D audio emitter. Used to simulate 3D audio effects.
+
+
+
+ Initializes a new AudioEmitter instance.
+
+
+ Gets or sets a scale applied to the Doppler effect between the AudioEmitter and an AudioListener.
+
+ Defaults to 1.0
+ A value of 1.0 leaves the Doppler effect unmodified.
+
+
+
+ Gets or sets the emitter's forward vector.
+
+ Defaults to Vector3.Forward. (new Vector3(0, 0, -1))
+ Used with AudioListener.Velocity to calculate Doppler values.
+ The Forward and Up values must be orthonormal.
+
+
+
+ Gets or sets the position of this emitter.
+
+
+ Gets or sets the emitter's Up vector.
+
+ Defaults to Vector3.Up. (new Vector3(0, -1, 1)).
+ The Up and Forward vectors must be orthonormal.
+
+
+
+ Gets or sets the emitter's velocity vector.
+
+ Defaults to Vector3.Zero.
+ This value is only used when calculating Doppler values.
+
+
+
+
+ Represents a 3D audio listener. Used when simulating 3D Audio.
+
+
+
+ Gets or sets the listener's forward vector.
+
+ Defaults to Vector3.Forward. (new Vector3(0, 0, -1))
+ Used with AudioListener.Velocity and AudioEmitter.Velocity to calculate Doppler values.
+ The Forward and Up vectors must be orthonormal.
+
+
+
+ Gets or sets the listener's position.
+
+ Defaults to Vector3.Zero.
+
+
+
+
+ Gets or sets the listener's up vector..
+
+
+ Defaults to Vector3.Up (New Vector3(0, -1, 0)).
+ Used with AudioListener.Velocity and AudioEmitter.Velocity to calculate Doppler values.
+ The values of the Forward and Up vectors must be orthonormal.
+
+
+
+ Gets or sets the listener's velocity vector.
+
+ Defaults to Vector3.Zero.
+ Scaled by DopplerScale to calculate the Doppler effect value applied to a Cue.
+ This value is only used to calculate Doppler values.
+
+
+
+
+ A for which the audio buffer is provided by the game at run time.
+
+
+
+ Represents a single instance of a playing, paused, or stopped sound.
+
+ SoundEffectInstances are created through SoundEffect.CreateInstance() and used internally by SoundEffect.Play()
+
+
+
+
+ Releases unmanaged resources and performs other cleanup operations before the
+ is reclaimed by garbage collection.
+
+
+
+ Applies 3D positioning to the SoundEffectInstance using a single listener.
+ Data about the listener.
+ Data about the source of emission.
+
+
+ Applies 3D positioning to the SoundEffectInstance using multiple listeners.
+ Data about each listener.
+ Data about the source of emission.
+
+
+ Pauses playback of a SoundEffectInstance.
+ Paused instances can be resumed with SoundEffectInstance.Play() or SoundEffectInstance.Resume().
+
+
+ Plays or resumes a SoundEffectInstance.
+ Throws an exception if more sounds are playing than the platform allows.
+
+
+ Resumes playback for a SoundEffectInstance.
+ Only has effect on a SoundEffectInstance in a paused state.
+
+
+ Immediately stops playing a SoundEffectInstance.
+
+
+ Stops playing a SoundEffectInstance, either immediately or as authored.
+ Determined whether the sound stops immediately, or after playing its release phase and/or transitions.
+ Stopping a sound with the immediate argument set to false will allow it to play any release phases, such as fade, before coming to a stop.
+
+
+ Releases the resources held by this .
+
+
+
+ Releases the resources held by this .
+
+ If set to true, Dispose was called explicitly.
+ If the disposing parameter is true, the Dispose method was called explicitly. This
+ means that managed objects referenced by this instance should be disposed or released as
+ required. If the disposing parameter is false, Dispose was called by the finalizer and
+ no managed objects should be touched because we do not know if they are still valid or
+ not at that time. Unmanaged resources should always be released.
+
+
+
+ Creates a standalone SoundEffectInstance from given wavedata.
+
+
+
+
+ Gets the OpenAL sound controller, constructs the sound buffer, and sets up the event delegates for
+ the reserved and recycled events.
+
+
+
+
+ Converts the XNA [-1, 1] pitch range to OpenAL pitch (0, INF) or Android SoundPool playback rate [0.5, 2].
+ The pitch of the sound in the Microsoft XNA range.
+
+
+
+ Enables or Disables whether the SoundEffectInstance should repeat after playback.
+ This value has no effect on an already playing sound.
+
+
+ Gets or sets the pan, or speaker balance..
+ Pan value ranging from -1.0 (left speaker) to 0.0 (centered), 1.0 (right speaker). Values outside of this range will throw an exception.
+
+
+ Gets or sets the pitch adjustment.
+ Pitch adjustment, ranging from -1.0 (down an octave) to 0.0 (no change) to 1.0 (up an octave). Values outside of this range will throw an Exception.
+
+
+ Gets or sets the volume of the SoundEffectInstance.
+ Volume, ranging from 0.0 (silence) to 1.0 (full volume). Volume during playback is scaled by SoundEffect.MasterVolume.
+
+ This is the volume relative to SoundEffect.MasterVolume. Before playback, this Volume property is multiplied by SoundEffect.MasterVolume when determining the final mix volume.
+
+
+
+ Gets the SoundEffectInstance's current playback state.
+
+
+ Indicates whether the object is disposed.
+
+
+ Sample rate, in Hertz (Hz).
+ Number of channels (mono or stereo).
+
+
+
+ Returns the duration of an audio buffer of the specified size, based on the settings of this instance.
+
+ Size of the buffer, in bytes.
+ The playback length of the buffer.
+
+
+
+ Returns the size, in bytes, of a buffer of the specified duration, based on the settings of this instance.
+
+ The playback length of the buffer.
+ The data size of the buffer, in bytes.
+
+
+
+ Plays or resumes the DynamicSoundEffectInstance.
+
+
+
+
+ Pauses playback of the DynamicSoundEffectInstance.
+
+
+
+
+ Resumes playback of the DynamicSoundEffectInstance.
+
+
+
+
+ Immediately stops playing the DynamicSoundEffectInstance.
+
+
+ Calling this also releases all queued buffers.
+
+
+
+
+ Stops playing the DynamicSoundEffectInstance.
+ If the parameter is false, this call has no effect.
+
+
+ Calling this also releases all queued buffers.
+
+ When set to false, this call has no effect.
+
+
+
+ Queues an audio buffer for playback.
+
+
+ The buffer length must conform to alignment requirements for the audio format.
+
+ The buffer containing PCM audio data.
+
+
+
+ Queues an audio buffer for playback.
+
+
+ The buffer length must conform to alignment requirements for the audio format.
+
+ The buffer containing PCM audio data.
+ The starting position of audio data.
+ The amount of bytes to use.
+
+
+
+ This value has no effect on DynamicSoundEffectInstance.
+ It may not be set.
+
+
+
+
+ Returns the number of audio buffers queued for playback.
+
+
+
+
+ The event that occurs when the number of queued audio buffers is less than or equal to 2.
+
+
+ This event may occur when is called or during playback when a buffer is completed.
+
+
+
+
+ Handles the buffer events of all DynamicSoundEffectInstance instances.
+
+
+
+
+ Updates buffer queues of the currently playing instances.
+
+
+ XNA posts events always on the main thread.
+
+
+
+
+ The exception thrown when the system attempts to play more SoundEffectInstances than allotted.
+
+
+ Most platforms have a hard limit on how many sounds can be played simultaneously. This exception is thrown when that limit is exceeded.
+
+
+
+ A bunch of magical numbers that predict the sample data from the
+ MSADPCM wavedata. Do not attempt to understand at all costs!
+
+
+ Splits the MSADPCM samples from each byte block.
+ @param block An MSADPCM sample byte
+ @param nibbleBlock we copy the parsed shorts into here
+
+
+ Calculates PCM samples based on previous samples and a nibble input.
+ @param nibble A parsed MSADPCM sample we got from getNibbleBlock
+ @param predictor The predictor we get from the MSADPCM block's preamble
+ @param sample_1 The first sample we use to predict the next sample
+ @param sample_2 The second sample we use to predict the next sample
+ @param delta Used to calculate the final sample
+ @return The calculated PCM sample
+
+
+ Decodes MSADPCM data to signed 16-bit PCM data.
+ @param Source A BinaryReader containing the headerless MSADPCM data
+ @param numChannels The number of channels (WAVEFORMATEX nChannels)
+ @param blockAlign The ADPCM block size (WAVEFORMATEX nBlockAlign)
+ @return A byte array containing the raw 16-bit PCM wavedata
+
+ NOTE: The original MSADPCMToPCM class returns as a short[] array!
+
+
+
+ The exception thrown when no audio hardware is present, or driver issues are detected.
+
+
+
+ A message describing the error.
+
+
+ A message describing the error.
+ The exception that is the underlying cause of the current exception. If not null, the current exception is raised in a try/catch block that handled the innerException.
+
+
+
+ Sets up the hardware resources used by the controller.
+
+
+
+
+ Open the sound device, sets up an audio context, and makes the new context
+ the current context. Note that this method will stop the playback of
+ music that was running prior to the game start. If any error occurs, then
+ the state of the controller is reset.
+
+ True if the sound controller was setup, and false if not.
+
+
+
+ Checks the error state of the OpenAL driver. If a value that is not AlcError.NoError
+ is returned, then the operation message and the error code is output to the console.
+
+ the operation message
+ true if an error occurs, and false if not.
+
+
+
+ Destroys the AL context and closes the device, when they exist.
+
+
+
+
+ Dispose of the OpenALSoundCOntroller.
+
+
+
+
+ Dispose of the OpenALSoundCOntroller.
+
+ If true, the managed resources are to be disposed.
+
+
+
+ Reserves a sound buffer and return its identifier. If there are no available sources
+ or the controller was not able to setup the hardware then an
+ is thrown.
+
+ The source number of the reserved sound buffer.
+
+
+
+ Checks if the AL controller was initialized properly. If there was an
+ exception thrown during the OpenAL init, then that exception is thrown
+ inside of NoAudioHardwareException.
+
+ True if the controller was initialized, false if not.
+
+
+ Represents a loaded sound resource.
+
+ A SoundEffect represents the buffer used to hold audio data and metadata. SoundEffectInstances are used to play from SoundEffects. Multiple SoundEffectInstance objects can be created and played from the same SoundEffect object.
+ The only limit on the number of loaded SoundEffects is restricted by available memory. When a SoundEffect is disposed, all SoundEffectInstances created from it will become invalid.
+ SoundEffect.Play() can be used for 'fire and forget' sounds. If advanced playback controls like volume or pitch is required, use SoundEffect.CreateInstance().
+
+
+
+
+ Create a sound effect.
+
+ The buffer with the sound data.
+ The sound data sample rate in hertz.
+ The number of channels in the sound data.
+ This only supports uncompressed 16bit PCM wav data.
+
+
+
+ Create a sound effect.
+
+ The buffer with the sound data.
+ The offset to the start of the sound data in bytes.
+ The length of the sound data in bytes.
+ The sound data sample rate in hertz.
+ The number of channels in the sound data.
+ The position where the sound should begin looping in samples.
+ The duration of the sound data loop in samples.
+ This only supports uncompressed 16bit PCM wav data.
+
+
+
+ Releases unmanaged resources and performs other cleanup operations before the
+ is reclaimed by garbage collection.
+
+
+
+
+ Creates a new SoundEffectInstance for this SoundEffect.
+
+ A new SoundEffectInstance for this SoundEffect.
+ Creating a SoundEffectInstance before calling SoundEffectInstance.Play() allows you to access advanced playback features, such as volume, pitch, and 3D positioning.
+
+
+
+ Creates a new SoundEffect object based on the specified data stream.
+
+ A stream containing the PCM wave data.
+ A new SoundEffect object.
+ The stream must point to the head of a valid PCM wave file in the RIFF bitstream format.
+
+
+
+ Returns the duration for 16bit PCM audio.
+
+ The length of the audio data in bytes.
+ Sample rate, in Hertz (Hz). Must be between 8000 Hz and 48000 Hz
+ Number of channels in the audio data.
+ The duration of the audio data.
+
+
+
+ Returns the data size in bytes for 16bit PCM audio.
+
+ The total duration of the audio data.
+ Sample rate, in Hertz (Hz), of audio data. Must be between 8,000 and 48,000 Hz.
+ Number of channels in the audio data.
+ The size in bytes of a single sample of audio data.
+
+
+ Gets an internal SoundEffectInstance and plays it.
+ True if a SoundEffectInstance was successfully played, false if not.
+
+ Play returns false if more SoundEffectInstances are currently playing then the platform allows.
+ To loop a sound or apply 3D effects, call SoundEffect.CreateInstance() and SoundEffectInstance.Play() instead.
+ SoundEffectInstances used by SoundEffect.Play() are pooled internally.
+
+
+
+ Gets an internal SoundEffectInstance and plays it with the specified volume, pitch, and panning.
+ True if a SoundEffectInstance was successfully created and played, false if not.
+ Volume, ranging from 0.0 (silence) to 1.0 (full volume). Volume during playback is scaled by SoundEffect.MasterVolume.
+ Pitch adjustment, ranging from -1.0 (down an octave) to 0.0 (no change) to 1.0 (up an octave).
+ Panning, ranging from -1.0 (left speaker) to 0.0 (centered), 1.0 (right speaker).
+
+ Play returns false if more SoundEffectInstances are currently playing then the platform allows.
+ To apply looping or simulate 3D audio, call SoundEffect.CreateInstance() and SoundEffectInstance.Play() instead.
+ SoundEffectInstances used by SoundEffect.Play() are pooled internally.
+
+
+
+
+ Returns a sound effect instance from the pool or null if none are available.
+
+
+
+ Releases the resources held by this .
+
+
+
+ Releases the resources held by this .
+
+ If set to true, Dispose was called explicitly.
+ If the disposing parameter is true, the Dispose method was called explicitly. This
+ means that managed objects referenced by this instance should be disposed or released as
+ required. If the disposing parameter is false, Dispose was called by the finalizer and
+ no managed objects should be touched because we do not know if they are still valid or
+ not at that time. Unmanaged resources should always be released.
+
+
+ Gets the duration of the SoundEffect.
+
+
+ Gets or sets the asset name of the SoundEffect.
+
+
+
+ Gets or sets the master volume scale applied to all SoundEffectInstances.
+
+
+ Each SoundEffectInstance has its own Volume property that is independent to SoundEffect.MasterVolume. During playback SoundEffectInstance.Volume is multiplied by SoundEffect.MasterVolume.
+ This property is used to adjust the volume on all current and newly created SoundEffectInstances. The volume of an individual SoundEffectInstance can be adjusted on its own.
+
+
+
+
+ Gets or sets the scale of distance calculations.
+
+
+ DistanceScale defaults to 1.0 and must be greater than 0.0.
+ Higher values reduce the rate of falloff between the sound and listener.
+
+
+
+
+ Gets or sets the scale of Doppler calculations applied to sounds.
+
+
+ DopplerScale defaults to 1.0 and must be greater or equal to 0.0
+ Affects the relative velocity of emitters and listeners.
+ Higher values more dramatically shift the pitch for the given relative velocity of the emitter and listener.
+
+
+
+ Returns the speed of sound used when calculating the Doppler effect..
+
+ Defaults to 343.5. Value is measured in meters per second.
+ Has no effect on distance attenuation.
+
+
+
+ Indicates whether the object is disposed.
+
+
+
+ Add the specified instance to the pool if it is a pooled instance and removes it from the
+ list of playing instances.
+
+ The SoundEffectInstance
+
+
+
+ Adds the SoundEffectInstance to the list of playing instances.
+
+ The SoundEffectInstance to add to the playing list.
+
+
+
+ Returns a pooled SoundEffectInstance if one is available, or allocates a new
+ SoundEffectInstance if the pool is empty.
+
+ The SoundEffectInstance.
+
+
+
+ Iterates the list of playing instances, returning them to the pool if they
+ have stopped playing.
+
+
+
+
+ Iterates the list of playing instances, stop them and return them to the pool if they are instances of the given SoundEffect.
+
+ The SoundEffect
+
+
+
+ Gets a value indicating whether the platform has capacity for more sounds to be played at this time.
+
+ true if more sounds can be played; otherwise, false.
+
+
+ Described the playback state of a SoundEffectInstance.
+
+
+ The SoundEffectInstance is currently playing.
+
+
+ The SoundEffectInstance is currently paused.
+
+
+ The SoundEffectInstance is currently stopped.
+
+
+
+ Provides functionality for manipulating multiple sounds at a time.
+
+
+
+
+ Pauses all associated sounds.
+
+
+
+
+ Resumes all associated paused sounds.
+
+
+
+
+ Stops all associated sounds.
+
+
+
+
+ Determines whether two AudioCategory instances are equal.
+
+ First AudioCategory instance to compare.
+ Second AudioCategory instance to compare.
+ true if the objects are equal or false if they aren't.
+
+
+
+ Determines whether two AudioCategory instances are not equal.
+
+ First AudioCategory instance to compare.
+ Second AudioCategory instance to compare.
+ true if the objects are not equal or false if they are.
+
+
+
+ Determines whether two AudioCategory instances are equal.
+
+ AudioCategory to compare with this instance.
+ true if the objects are equal or false if they aren't
+
+
+
+ Determines whether two AudioCategory instances are equal.
+
+ Object to compare with this instance.
+ true if the objects are equal or false if they aren't.
+
+
+
+ Gets the hash code for this instance.
+
+ Hash code for this object.
+
+
+
+ Returns the name of this AudioCategory
+
+ Friendly name of the AudioCategory
+
+
+
+ Gets the category's friendly name.
+
+
+
+
+ Class used to create and manipulate code audio objects.
+
+
+
+
+ The current content version.
+
+
+
+ Path to a XACT settings file.
+
+
+ Path to a XACT settings file.
+ Determines how many milliseconds the engine will look ahead when determing when to transition to another sound.
+ A string that specifies the audio renderer to use.
+ For the best results, use a lookAheadTime of 250 milliseconds or greater.
+
+
+
+ Performs periodic work required by the audio engine.
+
+ Must be called at least once per frame.
+
+
+ Returns an audio category by name.
+ Friendly name of the category to get.
+ The AudioCategory with a matching name. Throws an exception if not found.
+
+
+ Gets the value of a global variable.
+ Friendly name of the variable.
+ float value of the queried variable.
+ A global variable has global scope. It can be accessed by all code within a project.
+
+
+ Sets the value of a global variable.
+ Friendly name of the variable.
+ Value of the global variable.
+
+
+
+ Disposes the AudioEngine.
+
+
+
+
+ This event is triggered when the AudioEngine is disposed.
+
+
+
+
+ Is true if the AudioEngine has been disposed.
+
+
+
+ Controls how Cue objects should cease playback when told to stop.
+
+
+ Stop normally, playing any pending release phases or transitions.
+
+
+ Immediately stops the cue, ignoring any pending release phases or transitions.
+
+
+ Manages the playback of a sound or set of sounds.
+
+ Cues are comprised of one or more sounds.
+ Cues also define specific properties such as pitch or volume.
+ Cues are referenced through SoundBank objects.
+
+
+
+ Pauses playback.
+
+
+ Requests playback of a prepared or preparing Cue.
+ Calling Play when the Cue already is playing can result in an InvalidOperationException.
+
+
+ Resumes playback of a paused Cue.
+
+
+ Stops playback of a Cue.
+ Specifies if the sound should play any pending release phases or transitions before stopping.
+
+
+
+ Sets the value of a cue-instance variable based on its friendly name.
+
+ Friendly name of the variable to set.
+ Value to assign to the variable.
+ The friendly name is a value set from the designer.
+
+
+ Gets a cue-instance variable value based on its friendly name.
+ Friendly name of the variable.
+ Value of the variable.
+
+ Cue-instance variables are useful when multiple instantiations of a single cue (and its associated sounds) are required (for example, a "car" cue where there may be more than one car at any given time). While a global variable allows multiple audio elements to be controlled in unison, a cue instance variable grants discrete control of each instance of a cue, even for each copy of the same cue.
+ The friendly name is a value set from the designer.
+
+
+
+ Updates the simulated 3D Audio settings calculated between an AudioEmitter and AudioListener.
+ The listener to calculate.
+ The emitter to calculate.
+
+ This must be called before Play().
+ Calling this method automatically converts the sound to monoaural and sets the speaker mix for any sound played by this cue to a value calculated with the listener's and emitter's positions. Any stereo information in the sound will be discarded.
+
+
+
+
+ Disposes the Cue.
+
+
+
+ Indicates whether or not the cue is currently paused.
+ IsPlaying and IsPaused both return true if a cue is paused while playing.
+
+
+ Indicates whether or not the cue is currently playing.
+ IsPlaying and IsPaused both return true if a cue is paused while playing.
+
+
+ Indicates whether or not the cue is currently stopped.
+
+
+ Gets the friendly name of the cue.
+ The friendly name is a value set from the designer.
+
+
+
+ This event is triggered when the Cue is disposed.
+
+
+
+
+ Is true if the Cue has been disposed.
+
+
+
+ Represents a collection of Cues.
+
+
+ AudioEngine that will be associated with this sound bank.
+ Path to a .xsb SoundBank file.
+
+
+
+ Returns a pooled Cue object.
+
+ Friendly name of the cue to get.
+ a unique Cue object from a pool.
+
+ Cue instances are unique, even when sharing the same name. This allows multiple instances to simultaneously play.
+
+
+
+
+ Plays a cue.
+
+ Name of the cue to play.
+
+
+
+ Plays a cue with static 3D positional information.
+
+
+ Commonly used for short lived effects. To dynamically change the 3D
+ positional information on a cue over time use and .
+ The name of the cue to play.
+ The listener state.
+ The cue emitter state.
+
+
+
+ Disposes the SoundBank.
+
+
+
+
+ Is true if the SoundBank has any live Cues in use.
+
+
+
+
+ This event is triggered when the SoundBank is disposed.
+
+
+
+
+ Is true if the SoundBank has been disposed.
+
+
+
+ Represents a collection of wave files.
+
+
+ Instance of the AudioEngine to associate this wave bank with.
+ Path to the .xwb file to load.
+ This constructor immediately loads all wave data into memory at once.
+
+
+ Instance of the AudioEngine to associate this wave bank with.
+ Path to the .xwb to stream from.
+ DVD sector-aligned offset within the wave bank data file.
+ Stream packet size, in sectors, to use for each stream. The minimum value is 2.
+
+ This constructor streams wave data as needed.
+ Note that packetsize is in sectors, which is 2048 bytes.
+ AudioEngine.Update() must be called at least once before using data from a streaming wave bank.
+
+
+
+
+ Disposes the WaveBank.
+
+
+
+
+
+
+
+
+
+
+
+
+ This event is triggered when the WaveBank is disposed.
+
+
+
+
+ Is true if the WaveBank has been disposed.
+
+
+
+
+ Set the combined volume scale from the parent objects.
+
+ The volume scale.
+
+
+
+ Set the volume for the clip.
+
+ The volume level.
+
+
+
+ Virtual property to allow a derived ContentManager to have it's assets reloaded
+
+
+
+
+ External reference reader, provided for compatibility with XNA Framework built content
+
+
+
+
+ Creates an instance of the attribute.
+
+
+
+
+ Returns the overriden XML element name or the default "Item".
+
+
+
+
+ Returns true if the default CollectionItemName value was overridden.
+
+
+
+
+ This is used to specify the XML element name to use for each item in a collection.
+
+
+
+
+ Creates an instance of the attribute.
+
+ The XML element name to use for each item in the collection.
+
+
+
+ The XML element name to use for each item in the collection.
+
+
+
+
+ This is used to specify the type to use when deserializing this object at runtime.
+
+
+
+
+ Creates an instance of the attribute.
+
+ The name of the type to use at runtime.
+
+
+
+ The name of the type to use at runtime.
+
+
+
+
+ This is used to specify the version when deserializing this object at runtime.
+
+
+
+
+ Creates an instance of the attribute.
+
+ The version passed to the type at runtime.
+
+
+
+ The version passed to the type at runtime.
+
+
+
+
+ Removes Version, Culture and PublicKeyToken from a type string.
+
+
+ Supports multiple generic types (e.g. Dictionary<TKey,TValue>) and nested generic types (e.g. List<List<int>>).
+
+
+ A
+
+
+ A
+
+
+
+
+ Adds the type creator.
+
+
+ Type string.
+
+
+ Create function.
+
+
+
+
+ Defines the buffers for clearing when calling operation.
+
+
+
+
+ Color buffer.
+
+
+
+
+ Depth buffer.
+
+
+
+
+ Stencil buffer.
+
+
+
+
+ Defines the color channels for render target blending operations.
+
+
+
+
+ No channels selected.
+
+
+
+
+ Red channel selected.
+
+
+
+
+ Green channel selected.
+
+
+
+
+ Blue channel selected.
+
+
+
+
+ Alpha channel selected.
+
+
+
+
+ All channels selected.
+
+
+
+
+ Defines the faces in a cube map for the class.
+
+
+
+
+ Positive X face in the cube map.
+
+
+
+
+ Negative X face in the cube map.
+
+
+
+
+ Positive Y face in the cube map.
+
+
+
+
+ Negative Y face in the cube map.
+
+
+
+
+ Positive Z face in the cube map.
+
+
+
+
+ Negative Z face in the cube map.
+
+
+
+
+ The settings used in creation of the graphics device.
+ See .
+
+
+
+
+ The graphics adapter on which the graphics device will be created.
+
+
+ This is only valid on desktop systems where multiple graphics
+ adapters are possible. Defaults to .
+
+
+
+
+ The requested graphics device feature set.
+
+
+
+
+ The settings that define how graphics will be presented to the display.
+
+
+
+
+ This method is used by MonoGame Android to adjust the game's drawn to area to fill
+ as much of the screen as possible whilst retaining the aspect ratio inferred from
+ aspectRatio = (PreferredBackBufferWidth / PreferredBackBufferHeight)
+
+ NOTE: this is a hack that should be removed if proper back buffer to screen scaling
+ is implemented. To disable it's effect, in the game's constructor use:
+
+ graphics.IsFullScreen = true;
+ graphics.PreferredBackBufferHeight = Window.ClientBounds.Height;
+ graphics.PreferredBackBufferWidth = Window.ClientBounds.Width;
+
+
+
+
+
+ Gets or sets the boolean which defines how window switches from windowed to fullscreen state.
+ "Hard" mode(true) is slow to switch, but more effecient for performance, while "soft" mode(false) is vice versa.
+ The default value is true.
+
+
+
+
+ A snapshot of rendering statistics from to be used for runtime debugging and profiling.
+
+
+
+
+ Returns the difference between two sets of metrics.
+
+ Source on the left of the sub sign.
+ Source on the right of the sub sign.
+ Difference between two sets of metrics.
+
+
+
+ Returns the combination of two sets of metrics.
+
+ Source on the left of the add sign.
+ Source on the right of the add sign.
+ Combination of two sets of metrics.
+
+
+
+ Number of times Clear was called.
+
+
+
+
+ Number of times Draw was called.
+
+
+
+
+ Number of times the pixel shader was changed on the GPU.
+
+
+
+
+ Number of rendered primitives.
+
+
+
+
+ Number of sprites and text characters rendered via .
+
+
+
+
+ Number of times a target was changed on the GPU.
+
+
+
+
+ Number of times a texture was changed on the GPU.
+
+
+
+
+ Number of times the vertex shader was changed on the GPU.
+
+
+
+
+ Built-in effect that supports alpha testing.
+
+
+
+
+ Called before the device is reset. Allows graphics resources to
+ invalidate their state so they can be recreated after the device reset.
+ Warning: This may be called after a call to Dispose() up until
+ the resource is garbage collected.
+
+
+
+
+ The method that derived classes should override to implement disposing of managed and native resources.
+
+ True if managed objects should be disposed.
+ Native resources should always be released regardless of the value of the disposing parameter.
+
+
+
+ Clone the source into this existing object.
+
+
+ Note this is not overloaded in derived classes on purpose. This is
+ only a reason this exists is for caching effects.
+
+ The source effect to clone from.
+
+
+
+ Returns a deep copy of the effect where immutable types
+ are shared and mutable data is duplicated.
+
+
+ See "Cloning an Effect" in MSDN:
+ http://msdn.microsoft.com/en-us/library/windows/desktop/ff476138(v=vs.85).aspx
+
+ The cloned effect.
+
+
+
+ The current MonoGame Effect file format versions
+ used to detect old packaged content.
+
+
+ We should avoid supporting old versions for very long if at all
+ as users should be rebuilding content when packaging their game.
+
+
+
+
+ The MonoGame Effect file format header identifier ("MGFX").
+
+
+
+
+ The common effect fog rendering parameters.
+
+
+
+
+ The floating point fog color.
+
+
+
+
+ Used to toggle the rendering of fog.
+
+
+
+
+ The world space distance from the camera at which fogging is fully applied.
+
+
+ FogEnd should be greater than FogStart. If FogEnd and FogStart
+ are the same value everything is fully fogged.
+
+
+
+
+ The world space distance from the camera at which fogging begins.
+
+
+ FogStart should be less than FogEnd. If FogEnd and FogStart are the
+ same value everything is fully fogged.
+
+
+
+
+ Creates a new AlphaTestEffect with default parameter settings.
+
+
+
+
+ Creates a new AlphaTestEffect by cloning parameter settings from an existing instance.
+
+
+
+
+ Creates a clone of the current AlphaTestEffect instance.
+
+
+
+
+ Looks up shortcut references to our effect parameters.
+
+
+
+
+ Lazily computes derived parameter values immediately before applying the effect.
+
+
+
+
+ Gets or sets the world matrix.
+
+
+
+
+ Gets or sets the view matrix.
+
+
+
+
+ Gets or sets the projection matrix.
+
+
+
+
+ Gets or sets the material diffuse color (range 0 to 1).
+
+
+
+
+ Gets or sets the material alpha.
+
+
+
+
+ Gets or sets the fog enable flag.
+
+
+
+
+ Gets or sets the fog start distance.
+
+
+
+
+ Gets or sets the fog end distance.
+
+
+
+
+ Gets or sets the fog color.
+
+
+
+
+ Gets or sets the current texture.
+
+
+
+
+ Gets or sets whether vertex color is enabled.
+
+
+
+
+ Gets or sets the alpha compare function (default Greater).
+
+
+
+
+ Gets or sets the reference alpha value (default 0).
+
+
+
+
+ Built-in effect that supports optional texturing, vertex coloring, fog, and lighting.
+
+
+
+
+ The common effect light rendering parameters.
+
+
+
+
+ Initializes the lights to the standard key/fill/back lighting rig.
+
+
+
+
+ The floating point ambient light color.
+
+
+
+
+ Returns the first directional light.
+
+
+
+
+ Returns the second directional light.
+
+
+
+
+ Returns the third directional light.
+
+
+
+
+ Toggles the rendering of lighting.
+
+
+
+
+ Creates a new BasicEffect with default parameter settings.
+
+
+
+
+ Creates a new BasicEffect by cloning parameter settings from an existing instance.
+
+
+
+
+ Creates a clone of the current BasicEffect instance.
+
+
+
+
+
+
+
+ Looks up shortcut references to our effect parameters.
+
+
+
+
+ Lazily computes derived parameter values immediately before applying the effect.
+
+
+
+
+ Gets or sets the world matrix.
+
+
+
+
+ Gets or sets the view matrix.
+
+
+
+
+ Gets or sets the projection matrix.
+
+
+
+
+ Gets or sets the material diffuse color (range 0 to 1).
+
+
+
+
+ Gets or sets the material emissive color (range 0 to 1).
+
+
+
+
+ Gets or sets the material specular color (range 0 to 1).
+
+
+
+
+ Gets or sets the material specular power.
+
+
+
+
+ Gets or sets the material alpha.
+
+
+
+
+
+
+
+ Gets or sets the per-pixel lighting prefer flag.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets or sets whether texturing is enabled.
+
+
+
+
+ Gets or sets the current texture.
+
+
+
+
+ Gets or sets whether vertex color is enabled.
+
+
+
+
+ Built-in effect that supports two-layer multitexturing.
+
+
+
+
+ Creates a new DualTextureEffect with default parameter settings.
+
+
+
+
+ Creates a new DualTextureEffect by cloning parameter settings from an existing instance.
+
+
+
+
+ Creates a clone of the current DualTextureEffect instance.
+
+
+
+
+ Looks up shortcut references to our effect parameters.
+
+
+
+
+ Lazily computes derived parameter values immediately before applying the effect.
+
+
+
+
+ Gets or sets the world matrix.
+
+
+
+
+ Gets or sets the view matrix.
+
+
+
+
+ Gets or sets the projection matrix.
+
+
+
+
+ Gets or sets the material diffuse color (range 0 to 1).
+
+
+
+
+ Gets or sets the material alpha.
+
+
+
+
+ Gets or sets the fog enable flag.
+
+
+
+
+ Gets or sets the fog start distance.
+
+
+
+
+ Gets or sets the fog end distance.
+
+
+
+
+ Gets or sets the fog color.
+
+
+
+
+ Gets or sets the current base texture.
+
+
+
+
+ Gets or sets the current overlay texture.
+
+
+
+
+ Gets or sets whether vertex color is enabled.
+
+
+
+
+ Track which effect parameters need to be recomputed during the next OnApply.
+
+
+
+
+ Helper code shared between the various built-in effects.
+
+
+
+
+ Sets up the standard key/fill/back lighting rig.
+
+
+
+
+ Lazily recomputes the world+view+projection matrix and
+ fog vector based on the current effect parameter settings.
+
+
+
+
+ Sets a vector which can be dotted with the object space vertex position to compute fog amount.
+
+
+
+
+ Lazily recomputes the world inverse transpose matrix and
+ eye position based on the current effect parameter settings.
+
+
+
+
+ Sets the diffuse/emissive/alpha material color parameters.
+
+
+
+
+ Defines classes for effect parameters and shader constants.
+
+
+
+
+ Scalar class type.
+
+
+
+
+ Vector class type.
+
+
+
+
+ Matrix class type.
+
+
+
+
+ Class type for textures, shaders or strings.
+
+
+
+
+ Structure class type.
+
+
+
+
+ The next state key used when an effect parameter
+ is updated by any of the 'set' methods.
+
+
+
+
+ The current state key which is used to detect
+ if the parameter value has been changed.
+
+
+
+
+ Property referenced by the DebuggerDisplayAttribute.
+
+
+
+
+ Defines types for effect parameters and shader constants.
+
+
+
+
+ Pointer to void type.
+
+
+
+
+ Boolean type. Any non-zero will be true; false otherwise.
+
+
+
+
+ 32-bit integer type.
+
+
+
+
+ Float type.
+
+
+
+
+ String type.
+
+
+
+
+ Any texture type.
+
+
+
+
+ 1D-texture type.
+
+
+
+
+ 2D-texture type.
+
+
+
+
+ 3D-texture type.
+
+
+
+
+ Cubic texture type.
+
+
+
+
+ Internal helper for accessing the bytecode for stock effects.
+
+
+
+
+ Built-in effect that supports environment mapping.
+
+
+
+
+ Creates a new EnvironmentMapEffect with default parameter settings.
+
+
+
+
+ Creates a new EnvironmentMapEffect by cloning parameter settings from an existing instance.
+
+
+
+
+ Creates a clone of the current EnvironmentMapEffect instance.
+
+
+
+
+ Sets up the standard key/fill/back lighting rig.
+
+
+
+
+ Looks up shortcut references to our effect parameters.
+
+
+
+
+ Lazily computes derived parameter values immediately before applying the effect.
+
+
+
+
+ Gets or sets the world matrix.
+
+
+
+
+ Gets or sets the view matrix.
+
+
+
+
+ Gets or sets the projection matrix.
+
+
+
+
+ Gets or sets the material diffuse color (range 0 to 1).
+
+
+
+
+ Gets or sets the material emissive color (range 0 to 1).
+
+
+
+
+ Gets or sets the material alpha.
+
+
+
+
+ Gets or sets the ambient light color (range 0 to 1).
+
+
+
+
+ Gets the first directional light.
+
+
+
+
+ Gets the second directional light.
+
+
+
+
+ Gets the third directional light.
+
+
+
+
+ Gets or sets the fog enable flag.
+
+
+
+
+ Gets or sets the fog start distance.
+
+
+
+
+ Gets or sets the fog end distance.
+
+
+
+
+ Gets or sets the fog color.
+
+
+
+
+ Gets or sets the current texture.
+
+
+
+
+ Gets or sets the current environment map texture.
+
+
+
+
+ Gets or sets the amount of the environment map RGB that will be blended over
+ the base texture. Range 0 to 1, default 1. If set to zero, the RGB channels
+ of the environment map will completely ignored (but the environment map alpha
+ may still be visible if EnvironmentMapSpecular is greater than zero).
+
+
+
+
+ Gets or sets the amount of the environment map alpha channel that will
+ be added to the base texture. Range 0 to 1, default 0. This can be used
+ to implement cheap specular lighting, by encoding one or more specular
+ highlight patterns into the environment map alpha channel, then setting
+ EnvironmentMapSpecular to the desired specular light color.
+
+
+
+
+ Gets or sets the Fresnel factor used for the environment map blending.
+ Higher values make the environment map only visible around the silhouette
+ edges of the object, while lower values make it visible everywhere.
+ Setting this property to 0 disables Fresnel entirely, making the
+ environment map equally visible regardless of view angle. The default is
+ 1. Fresnel only affects the environment map RGB (the intensity of which is
+ controlled by EnvironmentMapAmount). The alpha contribution (controlled by
+ EnvironmentMapSpecular) is not affected by the Fresnel setting.
+
+
+
+
+ This effect requires lighting, so we explicitly implement
+ IEffectLights.LightingEnabled, and do not allow turning it off.
+
+
+
+
+ Built-in effect for rendering skinned character models.
+
+
+
+
+ Sets an array of skinning bone transform matrices.
+
+
+
+
+ Gets a copy of the current skinning bone transform matrices.
+
+
+
+
+ Creates a new SkinnedEffect with default parameter settings.
+
+
+
+
+ Creates a new SkinnedEffect by cloning parameter settings from an existing instance.
+
+
+
+
+ Creates a clone of the current SkinnedEffect instance.
+
+
+
+
+ Sets up the standard key/fill/back lighting rig.
+
+
+
+
+ Looks up shortcut references to our effect parameters.
+
+
+
+
+ Lazily computes derived parameter values immediately before applying the effect.
+
+
+
+
+ Gets or sets the world matrix.
+
+
+
+
+ Gets or sets the view matrix.
+
+
+
+
+ Gets or sets the projection matrix.
+
+
+
+
+ Gets or sets the material diffuse color (range 0 to 1).
+
+
+
+
+ Gets or sets the material emissive color (range 0 to 1).
+
+
+
+
+ Gets or sets the material specular color (range 0 to 1).
+
+
+
+
+ Gets or sets the material specular power.
+
+
+
+
+ Gets or sets the material alpha.
+
+
+
+
+ Gets or sets the per-pixel lighting prefer flag.
+
+
+
+
+ Gets or sets the ambient light color (range 0 to 1).
+
+
+
+
+ Gets the first directional light.
+
+
+
+
+ Gets the second directional light.
+
+
+
+
+ Gets the third directional light.
+
+
+
+
+ Gets or sets the fog enable flag.
+
+
+
+
+ Gets or sets the fog start distance.
+
+
+
+
+ Gets or sets the fog end distance.
+
+
+
+
+ Gets or sets the fog color.
+
+
+
+
+ Gets or sets the current texture.
+
+
+
+
+ Gets or sets the number of skinning weights to evaluate for each vertex (1, 2, or 4).
+
+
+
+
+ This effect requires lighting, so we explicitly implement
+ IEffectLights.LightingEnabled, and do not allow turning it off.
+
+
+
+
+ The default effect used by SpriteBatch.
+
+
+
+
+ Creates a new SpriteEffect.
+
+
+
+
+ Creates a new SpriteEffect by cloning parameter settings from an existing instance.
+
+
+
+
+ Creates a clone of the current SpriteEffect instance.
+
+
+
+
+ Looks up shortcut references to our effect parameters.
+
+
+
+
+ Lazily computes derived parameter values immediately before applying the effect.
+
+
+
+
+ Used to request creation of the reference graphics device,
+ or the default hardware accelerated device (when set to false).
+
+
+ This only works on DirectX platforms where a reference graphics
+ device is available and must be defined before the graphics device
+ is created. It defaults to false.
+
+
+
+
+ Used to request creation of a specific kind of driver.
+
+
+ These values only work on DirectX platforms and must be defined before the graphics device
+ is created. by default.
+
+
+
+
+ Gets a indicating whether
+ has a
+ Width:Height ratio corresponding to a widescreen .
+ Common widescreen modes include 16:9, 16:10 and 2:1.
+
+
+
+
+ Defines the driver type for graphics adapter. Usable only on DirectX platforms for now.
+
+
+
+
+ Hardware device been used for rendering. Maximum speed and performance.
+
+
+
+
+ Emulates the hardware device on CPU. Slowly, only for testing.
+
+
+
+
+ Useful when acceleration does not work.
+
+
+
+
+ Provides information about the capabilities of the
+ current graphics device. A very useful thread for investigating GL extenion names
+ http://stackoverflow.com/questions/3881197/opengl-es-2-0-extensions-on-android-devices
+
+
+
+
+ Whether the device fully supports non power-of-two textures, including
+ mip maps and wrap modes other than CLAMP_TO_EDGE
+
+
+
+
+ Whether the device supports anisotropic texture filtering
+
+
+
+
+ Gets the support for DXT1
+
+
+
+
+ Gets the support for S3TC (DXT1, DXT3, DXT5)
+
+
+
+
+ Gets the support for PVRTC
+
+
+
+
+ Gets the support for ETC1
+
+
+
+
+ Gets the support for ATITC
+
+
+
+
+ True, if sRGB is supported. On Direct3D platforms, this is always true
.
+ On OpenGL platforms, it is true
if both framebuffer sRGB
+ and texture sRGB are supported.
+
+
+
+
+ True, if GL_ARB_framebuffer_object is supported; false otherwise.
+
+
+
+
+ True, if GL_EXT_framebuffer_object is supported; false otherwise.
+
+
+
+
+ Gets the max texture anisotropy. This value typically lies
+ between 0 and 16, where 0 means anisotropic filtering is not
+ supported.
+
+
+
+
+ The active vertex shader.
+
+
+
+
+ The active pixel shader.
+
+
+
+
+ The cache of effects from unique byte streams.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The graphics adapter.
+ The graphics profile.
+ The presentation options.
+
+ is .
+
+
+
+
+ Trigger the DeviceResetting event
+ Currently internal to allow the various platforms to send the event at the appropriate time.
+
+
+
+
+ Trigger the DeviceReset event to allow games to be notified of a device reset.
+ Currently internal to allow the various platforms to send the event at the appropriate time.
+
+
+
+
+ Draw geometry by indexing into the vertex buffer.
+
+ The type of primitives in the index buffer.
+ Used to offset the vertex range indexed from the vertex buffer.
+ This is unused and remains here only for XNA API compatibility.
+ This is unused and remains here only for XNA API compatibility.
+ The index within the index buffer to start drawing from.
+ The number of primitives to render from the index buffer.
+ Note that minVertexIndex and numVertices are unused in MonoGame and will be ignored.
+
+
+
+ Draw geometry by indexing into the vertex buffer.
+
+ The type of primitives in the index buffer.
+ Used to offset the vertex range indexed from the vertex buffer.
+ The index within the index buffer to start drawing from.
+ The number of primitives to render from the index buffer.
+
+
+
+ Draw primitives of the specified type from the data in an array of vertices without indexing.
+
+ The type of the vertices.
+ The type of primitives to draw with the vertices.
+ An array of vertices to draw.
+ The index in the array of the first vertex that should be rendered.
+ The number of primitives to draw.
+ The will be found by getting
+ from an instance of and cached for subsequent calls.
+
+
+
+ Draw primitives of the specified type from the data in the given array of vertices without indexing.
+
+ The type of the vertices.
+ The type of primitives to draw with the vertices.
+ An array of vertices to draw.
+ The index in the array of the first vertex that should be rendered.
+ The number of primitives to draw.
+ The layout of the vertices.
+
+
+
+ Draw primitives of the specified type from the currently bound vertexbuffers without indexing.
+
+ The type of primitives to draw.
+ Index of the vertex to start at.
+ The number of primitives to draw.
+
+
+
+ Draw primitives of the specified type by indexing into the given array of vertices with 16-bit indices.
+
+ The type of the vertices.
+ The type of primitives to draw with the vertices.
+ An array of vertices to draw.
+ The index in the array of the first vertex to draw.
+ The index in the array of indices of the first index to use
+ The number of primitives to draw.
+ The number of vertices to draw.
+ The index data.
+ The will be found by getting
+ from an instance of and cached for subsequent calls.
+ All indices in the vertex buffer are interpreted relative to the specified .
+ For example a value of zero in the array of indices points to the vertex at index
+ in the array of vertices.
+
+
+
+ Draw primitives of the specified type by indexing into the given array of vertices with 16-bit indices.
+
+ The type of the vertices.
+ The type of primitives to draw with the vertices.
+ An array of vertices to draw.
+ The index in the array of the first vertex to draw.
+ The index in the array of indices of the first index to use
+ The number of primitives to draw.
+ The number of vertices to draw.
+ The index data.
+ The layout of the vertices.
+ All indices in the vertex buffer are interpreted relative to the specified .
+ For example a value of zero in the array of indices points to the vertex at index
+ in the array of vertices.
+
+
+
+ Draw primitives of the specified type by indexing into the given array of vertices with 32-bit indices.
+
+ The type of the vertices.
+ The type of primitives to draw with the vertices.
+ An array of vertices to draw.
+ The index in the array of the first vertex to draw.
+ The index in the array of indices of the first index to use
+ The number of primitives to draw.
+ The number of vertices to draw.
+ The index data.
+ The will be found by getting
+ from an instance of and cached for subsequent calls.
+ All indices in the vertex buffer are interpreted relative to the specified .
+ For example a value of zero in the array of indices points to the vertex at index
+ in the array of vertices.
+
+
+
+ Draw primitives of the specified type by indexing into the given array of vertices with 32-bit indices.
+
+ The type of the vertices.
+ The type of primitives to draw with the vertices.
+ An array of vertices to draw.
+ The index in the array of the first vertex to draw.
+ The index in the array of indices of the first index to use
+ The number of primitives to draw.
+ The number of vertices to draw.
+ The index data.
+ The layout of the vertices.
+ All indices in the vertex buffer are interpreted relative to the specified .
+ For example value of zero in the array of indices points to the vertex at index
+ in the array of vertices.
+
+
+
+ Draw instanced geometry from the bound vertex buffers and index buffer.
+
+ The type of primitives in the index buffer.
+ Used to offset the vertex range indexed from the vertex buffer.
+ This is unused and remains here only for XNA API compatibility.
+ This is unused and remains here only for XNA API compatibility.
+ The index within the index buffer to start drawing from.
+ The number of primitives in a single instance.
+ The number of instances to render.
+ Note that minVertexIndex and numVertices are unused in MonoGame and will be ignored.
+
+
+
+ Draw instanced geometry from the bound vertex buffers and index buffer.
+
+ The type of primitives in the index buffer.
+ Used to offset the vertex range indexed from the vertex buffer.
+ The index within the index buffer to start drawing from.
+ The number of primitives in a single instance.
+ The number of instances to render.
+ Draw geometry with data from multiple bound vertex streams at different frequencies.
+
+
+
+ Adds a dispose action to the list of pending dispose actions. These are executed at the end of each call to Present().
+ This allows GL resources to be disposed from other threads, such as the finalizer.
+
+ The action to execute for the dispose.
+
+
+
+ Activates the Current Vertex/Pixel shader pair into a program.
+
+
+
+
+ The rendering information for debugging and profiling.
+ The metrics are reset every frame after draw within .
+
+
+
+
+ The color used as blend factor when alpha blending.
+
+
+ When only changing BlendFactor, use this rather than to
+ only update BlendFactor so the whole BlendState does not have to be updated.
+
+
+
+
+ Describes the status of the .
+
+
+
+
+ The device is normal.
+
+
+
+
+ The device has been lost.
+
+
+
+
+ The device has not been reset.
+
+
+
+
+ Defines a set of graphic capabilities.
+
+
+
+
+ Use a limited set of graphic features and capabilities, allowing the game to support the widest variety of devices.
+
+
+
+
+ Use the largest available set of graphic features and capabilities to target devices, that have more enhanced graphic capabilities.
+
+
+
+
+ Represents a render target.
+
+
+
+
+ Gets the width of the render target in pixels
+
+ The width of the render target in pixels.
+
+
+
+ Gets the height of the render target in pixels
+
+ The height of the render target in pixels.
+
+
+
+ Gets the usage mode of the render target.
+
+ The usage mode of the render target.
+
+
+
+ Represents a set of bones associated with a model.
+
+
+
+
+ Finds a bone with a given name if it exists in the collection.
+
+ The name of the bone to find.
+ The bone named boneName, if found.
+ true if the bone was found
+
+
+
+ Returns a ModelMeshCollection.Enumerator that can iterate through a ModelMeshCollection.
+
+
+
+
+
+ Retrieves a ModelBone from the collection, given the name of the bone.
+
+ The name of the bone to retrieve.
+
+
+
+ Provides the ability to iterate through the bones in an ModelMeshCollection.
+
+
+
+
+ Advances the enumerator to the next element of the ModelMeshCollection.
+
+
+
+
+ Immediately releases the unmanaged resources used by this object.
+
+
+
+
+ Gets the current element in the ModelMeshCollection.
+
+
+
+
+ Transform of this node from the root of the model not from the parent
+
+
+
+
+ A basic 3D model with per mesh parent bones.
+
+
+
+
+ Constructs a model.
+
+ A valid reference to .
+ The collection of bones.
+ The collection of meshes.
+
+ is null.
+
+
+ is null.
+
+
+ is null.
+
+
+
+
+ Draws the model meshes.
+
+ The world transform.
+ The view transform.
+ The projection transform.
+
+
+
+ Copies bone transforms relative to all parent bones of the each bone from this model to a given array.
+
+ The array receiving the transformed bones.
+
+
+
+ Copies bone transforms relative to bone from a given array to this model.
+
+ The array of prepared bone transform data.
+
+ is null.
+
+
+ is invalid.
+
+
+
+
+ Copies bone transforms relative to bone from this model to a given array.
+
+ The array receiving the transformed bones.
+
+ is null.
+
+
+ is invalid.
+
+
+
+
+ A collection of objects which describe how each mesh in the
+ mesh collection for this model relates to its parent mesh.
+
+
+
+
+ A collection of objects which compose the model. Each
+ in a model may be moved independently and may be composed of multiple materials
+ identified as objects.
+
+
+
+
+ Root bone for this model.
+
+
+
+
+ Custom attached object.
+
+ Skinning data is example of attached object for model.
+
+
+
+
+
+ Represents a collection of ModelMesh objects.
+
+
+
+
+ Finds a mesh with a given name if it exists in the collection.
+
+ The name of the mesh to find.
+ The mesh named meshName, if found.
+ true if a mesh was found
+
+
+
+ Returns a ModelMeshCollection.Enumerator that can iterate through a ModelMeshCollection.
+
+
+
+
+
+ Retrieves a ModelMesh from the collection, given the name of the mesh.
+
+ The name of the mesh to retrieve.
+
+
+
+ Provides the ability to iterate through the bones in an ModelMeshCollection.
+
+
+
+
+ Advances the enumerator to the next element of the ModelMeshCollection.
+
+
+
+
+ Immediately releases the unmanaged resources used by this object.
+
+
+
+
+ Gets the current element in the ModelMeshCollection.
+
+
+
+
+ Packed vector type containing a single 8 bit normalized W values that is ranging from 0 to 1.
+
+
+
+
+ Creates a new instance of Alpha8.
+
+ The alpha component
+
+
+
+ Gets the packed vector in float format.
+
+ The packed vector in Vector3 format
+
+
+
+ Sets the packed vector from a Vector4.
+
+ Vector containing the components.
+
+
+
+ Gets the packed vector in Vector4 format.
+
+ The packed vector in Vector4 format
+
+
+
+ Compares an object with the packed vector.
+
+ The object to compare.
+ True if the object is equal to the packed vector.
+
+
+
+ Compares another Alpha8 packed vector with the packed vector.
+
+ The Alpha8 packed vector to compare.
+ True if the packed vectors are equal.
+
+
+
+ Gets a string representation of the packed vector.
+
+ A string representation of the packed vector.
+
+
+
+ Gets a hash code of the packed vector.
+
+ The hash code for the packed vector.
+
+
+
+ Gets and sets the packed value.
+
+
+
+
+ Packed vector type containing unsigned normalized values ranging from 0 to 1. The x and z components use 5 bits, and the y component uses 6 bits.
+
+
+
+
+ Creates a new instance of Bgr565.
+
+ The x component
+ The y component
+ The z component
+
+
+
+ Creates a new instance of Bgr565.
+
+ Vector containing the components for the packed vector.
+
+
+
+ Gets the packed vector in Vector3 format.
+
+ The packed vector in Vector3 format
+
+
+
+ Sets the packed vector from a Vector4.
+
+ Vector containing the components.
+
+
+
+ Gets the packed vector in Vector4 format.
+
+ The packed vector in Vector4 format
+
+
+
+ Compares an object with the packed vector.
+
+ The object to compare.
+ true if the object is equal to the packed vector.
+
+
+
+ Compares another Bgr565 packed vector with the packed vector.
+
+ The Bgr565 packed vector to compare.
+ true if the packed vectors are equal.
+
+
+
+ Gets a string representation of the packed vector.
+
+ A string representation of the packed vector.
+
+
+
+ Gets a hash code of the packed vector.
+
+ The hash code for the packed vector.
+
+
+
+ Gets and sets the packed value.
+
+
+
+
+ Packed vector type containing unsigned normalized values, ranging from 0 to 1, using 4 bits each for x, y, z, and w.
+
+
+
+
+ Creates a new instance of Bgra4444.
+
+ The x component
+ The y component
+ The z component
+ The w component
+
+
+
+ Creates a new instance of Bgra4444.
+
+ Vector containing the components for the packed vector.
+
+
+
+ Gets the packed vector in Vector4 format.
+
+ The packed vector in Vector4 format
+
+
+
+ Sets the packed vector from a Vector4.
+
+ Vector containing the components.
+
+
+
+ Compares an object with the packed vector.
+
+ The object to compare.
+ true if the object is equal to the packed vector.
+
+
+
+ Compares another Bgra4444 packed vector with the packed vector.
+
+ The Bgra4444 packed vector to compare.
+ true if the packed vectors are equal.
+
+
+
+ Gets a string representation of the packed vector.
+
+ A string representation of the packed vector.
+
+
+
+ Gets a hash code of the packed vector.
+
+ The hash code for the packed vector.
+
+
+
+ Gets and sets the packed value.
+
+
+
+
+ Packed vector type containing unsigned normalized values ranging from 0 to 1.
+ The x , y and z components use 5 bits, and the w component uses 1 bit.
+
+
+
+
+ Creates a new instance of Bgra5551.
+
+ The x component
+ The y component
+ The z component
+ The w component
+
+
+
+ Creates a new instance of Bgra5551.
+
+
+ Vector containing the components for the packed vector.
+
+
+
+
+ Gets the packed vector in Vector4 format.
+
+ The packed vector in Vector4 format
+
+
+
+ Sets the packed vector from a Vector4.
+
+ Vector containing the components.
+
+
+
+ Compares an object with the packed vector.
+
+ The object to compare.
+ True if the object is equal to the packed vector.
+
+
+
+ Compares another Bgra5551 packed vector with the packed vector.
+
+ The Bgra5551 packed vector to compare.
+ True if the packed vectors are equal.
+
+
+
+ Gets a string representation of the packed vector.
+
+ A string representation of the packed vector.
+
+
+
+ Gets a hash code of the packed vector.
+
+ The hash code for the packed vector.
+
+
+
+ Gets and sets the packed value.
+
+
+
+
+ Packed vector type containing four 8-bit unsigned integer values, ranging from 0 to 255.
+
+
+
+
+ Initializes a new instance of the Byte4 class.
+
+ A vector containing the initial values for the components of the Byte4 structure.
+
+
+
+ Initializes a new instance of the Byte4 class.
+
+ Initial value for the x component.
+ Initial value for the y component.
+ Initial value for the z component.
+ Initial value for the w component.
+
+
+
+ Compares the current instance of a class to another instance to determine whether they are different.
+
+ The object to the left of the equality operator.
+ The object to the right of the equality operator.
+ true if the objects are different; false otherwise.
+
+
+
+ Compares the current instance of a class to another instance to determine whether they are the same.
+
+ The object to the left of the equality operator.
+ The object to the right of the equality operator.
+ true if the objects are the same; false otherwise.
+
+
+
+ Returns a value that indicates whether the current instance is equal to a specified object.
+
+ The object with which to make the comparison.
+ true if the current instance is equal to the specified object; false otherwise.
+
+
+
+ Returns a value that indicates whether the current instance is equal to a specified object.
+
+ The object with which to make the comparison.
+ true if the current instance is equal to the specified object; false otherwise.
+
+
+
+ Gets the hash code for the current instance.
+
+ Hash code for the instance.
+
+
+
+ Returns a string representation of the current instance.
+
+ String that represents the object.
+
+
+
+ Packs a vector into a uint.
+
+ The vector containing the values to pack.
+ The ulong containing the packed values.
+
+
+
+ Sets the packed representation from a Vector4.
+
+ The vector to create the packed representation from.
+
+
+
+ Expands the packed representation into a Vector4.
+
+ The expanded vector.
+
+
+
+ Directly gets or sets the packed representation of the value.
+
+ The packed representation of the value.
+
+
+
+ Packed vector type containing four 16-bit floating-point values.
+
+
+
+
+ Initializes a new instance of the HalfVector4 structure.
+
+ Initial value for the x component.
+ Initial value for the y component.
+ Initial value for the z component.
+ Initial value for the q component.
+
+
+
+ Initializes a new instance of the HalfVector4 structure.
+
+ A vector containing the initial values for the components of the HalfVector4 structure.
+
+
+
+ Sets the packed representation from a Vector4.
+
+ The vector to create the packed representation from.
+
+
+
+ Packs a vector into a ulong.
+
+ The vector containing the values to pack.
+ The ulong containing the packed values.
+
+
+
+ Expands the packed representation into a Vector4.
+
+ The expanded vector.
+
+
+
+ Returns a string representation of the current instance.
+
+ String that represents the object.
+
+
+
+ Gets the hash code for the current instance.
+
+ Hash code for the instance.
+
+
+
+ Returns a value that indicates whether the current instance is equal to a specified object.
+
+ The object with which to make the comparison.
+ true if the current instance is equal to the specified object; false otherwise.
+
+
+
+ Returns a value that indicates whether the current instance is equal to a specified object.
+
+ The object with which to make the comparison.
+ true if the current instance is equal to the specified object; false otherwise.
+
+
+
+ Compares the current instance of a class to another instance to determine whether they are the same.
+
+ The object to the left of the equality operator.
+ The object to the right of the equality operator.
+ true if the objects are the same; false otherwise.
+
+
+
+ Compares the current instance of a class to another instance to determine whether they are different.
+
+ The object to the left of the equality operator.
+ The object to the right of the equality operator.
+ true if the objects are different; false otherwise.
+
+
+
+ Directly gets or sets the packed representation of the value.
+
+ The packed representation of the value.
+
+
+
+ Packed vector type containing two 16-bit unsigned normalized values ranging from 0 to 1.
+
+
+
+
+ Creates a new instance of Rg32.
+
+ The x component
+ The y component
+
+
+
+ Creates a new instance of Rg32.
+
+
+ Vector containing the components for the packed vector.
+
+
+
+
+ Gets the packed vector in Vector2 format.
+
+ The packed vector in Vector2 format
+
+
+
+ Sets the packed vector from a Vector4.
+
+ Vector containing the components.
+
+
+
+ Gets the packed vector in Vector4 format.
+
+ The packed vector in Vector4 format
+
+
+
+ Compares an object with the packed vector.
+
+ The object to compare.
+ True if the object is equal to the packed vector.
+
+
+
+ Compares another Rg32 packed vector with the packed vector.
+
+ The Rg32 packed vector to compare.
+ True if the packed vectors are equal.
+
+
+
+ Gets a string representation of the packed vector.
+
+ A string representation of the packed vector.
+
+
+
+ Gets a hash code of the packed vector.
+
+ The hash code for the packed vector.
+
+
+
+ Gets and sets the packed value.
+
+
+
+
+ Packed vector type containing four 16-bit unsigned normalized values ranging from 0 to 1.
+
+
+
+
+ Creates a new instance of Rgba64.
+
+ The x component
+ The y component
+ The z component
+ The w component
+
+
+
+ Creates a new instance of Rgba64.
+
+
+ Vector containing the components for the packed vector.
+
+
+
+
+ Gets the packed vector in Vector4 format.
+
+ The packed vector in Vector4 format
+
+
+
+ Sets the packed vector from a Vector4.
+
+ Vector containing the components.
+
+
+
+ Compares an object with the packed vector.
+
+ The object to compare.
+ True if the object is equal to the packed vector.
+
+
+
+ Compares another Rgba64 packed vector with the packed vector.
+
+ The Rgba64 packed vector to compare.
+ True if the packed vectors are equal.
+
+
+
+ Gets a string representation of the packed vector.
+
+ A string representation of the packed vector.
+
+
+
+ Gets a hash code of the packed vector.
+
+ The hash code for the packed vector.
+
+
+
+ Gets and sets the packed value.
+
+
+
+
+ Packed vector type containing unsigned normalized values ranging from 0 to 1.
+ The x, y and z components use 10 bits, and the w component uses 2 bits.
+
+
+
+
+ Creates a new instance of Rgba1010102.
+
+ The x component
+ The y component
+ The z component
+ The w component
+
+
+
+ Creates a new instance of Rgba1010102.
+
+
+ Vector containing the components for the packed vector.
+
+
+
+
+ Gets the packed vector in Vector4 format.
+
+ The packed vector in Vector4 format
+
+
+
+ Sets the packed vector from a Vector4.
+
+ Vector containing the components.
+
+
+
+ Compares an object with the packed vector.
+
+ The object to compare.
+ True if the object is equal to the packed vector.
+
+
+
+ Compares another Rgba1010102 packed vector with the packed vector.
+
+ The Rgba1010102 packed vector to compare.
+ True if the packed vectors are equal.
+
+
+
+ Gets a string representation of the packed vector.
+
+ A string representation of the packed vector.
+
+
+
+ Gets a hash code of the packed vector.
+
+ The hash code for the packed vector.
+
+
+
+ Gets and sets the packed value.
+
+
+
+
+ Packed vector type containing four 16-bit signed integer values.
+
+
+
+
+ Initializes a new instance of the Short4 class.
+
+ A vector containing the initial values for the components of the Short4 structure.
+
+
+
+ Initializes a new instance of the Short4 class.
+
+ Initial value for the x component.
+ Initial value for the y component.
+ Initial value for the z component.
+ Initial value for the w component.
+
+
+
+ Compares the current instance of a class to another instance to determine whether they are different.
+
+ The object to the left of the equality operator.
+ The object to the right of the equality operator.
+ true if the objects are different; false otherwise.
+
+
+
+ Compares the current instance of a class to another instance to determine whether they are the same.
+
+ The object to the left of the equality operator.
+ The object to the right of the equality operator.
+ true if the objects are the same; false otherwise.
+
+
+
+ Returns a value that indicates whether the current instance is equal to a specified object.
+
+ The object with which to make the comparison.
+ true if the current instance is equal to the specified object; false otherwise.
+
+
+
+ Returns a value that indicates whether the current instance is equal to a specified object.
+
+ The object with which to make the comparison.
+ true if the current instance is equal to the specified object; false otherwise.
+
+
+
+ Gets the hash code for the current instance.
+
+ Hash code for the instance.
+
+
+
+ Returns a string representation of the current instance.
+
+ String that represents the object.
+
+
+
+ Packs a vector into a ulong.
+
+ The vector containing the values to pack.
+ The ulong containing the packed values.
+
+
+
+ Sets the packed representation from a Vector4.
+
+ The vector to create the packed representation from.
+
+
+
+ Expands the packed representation into a Vector4.
+
+ The expanded vector.
+
+
+
+ Directly gets or sets the packed representation of the value.
+
+ The packed representation of the value.
+
+
+
+ Defines how updates the game window.
+
+
+
+
+ Equivalent to .
+
+
+
+
+ The driver waits for the vertical retrace period, before updating window client area. Present operations are not affected more frequently than the screen refresh rate.
+
+
+
+
+ The driver waits for the vertical retrace period, before updating window client area. Present operations are not affected more frequently than every second screen refresh.
+
+
+
+
+ The driver updates the window client area immediately. Present operations might be affected immediately. There is no limit for framerate.
+
+
+
+
+ Gets a unique identifier of this texture for sorting purposes.
+
+
+ For example, this value is used by when drawing with .
+ The value is an implementation detail and may change between application launches or MonoGame versions.
+ It is only guaranteed to stay consistent during application lifetime.
+
+
+
+
+ Creates a new texture of the given size
+
+
+
+
+
+
+
+ Creates a new texture of a given size with a surface format and optional mipmaps
+
+
+
+
+
+
+
+
+
+ Creates a new texture array of a given size with a surface format and optional mipmaps.
+ Throws ArgumentException if the current GraphicsDevice can't work with texture arrays
+
+
+
+
+
+
+
+
+
+
+ Creates a new texture of a given size with a surface format and optional mipmaps.
+
+
+
+
+
+
+
+
+
+
+ Changes the pixels of the texture
+ Throws ArgumentNullException if data is null
+ Throws ArgumentException if arraySlice is greater than 0, and the GraphicsDevice does not support texture arrays
+
+
+ Layer of the texture to modify
+ Index inside the texture array
+ Area to modify
+ New data for the texture
+ Start position of data
+
+
+
+
+ Changes the pixels of the texture
+
+
+ Layer of the texture to modify
+ Area to modify
+ New data for the texture
+ Start position of data
+
+
+
+
+ Changes the texture's pixels
+
+
+ New data for the texture
+ Start position of data
+
+
+
+
+ Changes the texture's pixels
+
+ New data for the texture
+
+
+
+
+ Retrieves the contents of the texture
+ Throws ArgumentException if data is null, data.length is too short or
+ if arraySlice is greater than 0 and the GraphicsDevice doesn't support texture arrays
+
+
+ Layer of the texture
+ Index inside the texture array
+ Area of the texture to retrieve
+ Destination array for the data
+ Starting index of data where to write the pixel data
+ Number of pixels to read
+
+
+
+ Retrieves the contents of the texture
+ Throws ArgumentException if data is null, data.length is too short or
+ if arraySlice is greater than 0 and the GraphicsDevice doesn't support texture arrays
+
+
+ Layer of the texture
+ Area of the texture
+ Destination array for the texture data
+ First position in data where to write the pixel data
+ Number of pixels to read
+
+
+
+ Retrieves the contents of the texture
+ Throws ArgumentException if data is null, data.length is too short or
+ if arraySlice is greater than 0 and the GraphicsDevice doesn't support texture arrays
+
+
+ Destination array for the texture data
+ First position in data where to write the pixel data
+ Number of pixels to read
+
+
+
+ Retrieves the contents of the texture
+ Throws ArgumentException if data is null, data.length is too short or
+ if arraySlice is greater than 0 and the GraphicsDevice doesn't support texture arrays
+
+
+ Destination array for the texture data
+
+
+
+ Creates a Texture2D from a stream, supported formats bmp, gif, jpg, png, tif and dds (only for simple textures).
+ May work with other formats, but will not work with tga files.
+
+
+
+
+
+
+
+ Converts the texture to a JPG image
+
+ Destination for the image
+
+
+
+
+
+ Converts the texture to a PNG image
+
+ Destination for the image
+
+
+
+
+
+ Gets the dimensions of the texture
+
+
+
+
+ Allows child class to specify the surface type, eg: a swap chain.
+
+
+
+
+ Represents a texture cube that can be used as a render target.
+
+
+
+
+ Gets a copy of cube texture data specifying a cubemap face.
+
+
+ The cube map face.
+ The data.
+
+
+
+ Gets the width and height of the cube map face in pixels.
+
+ The width and height of a cube map face in pixels.
+
+
+
+ Initializes a new instance of the class.
+
+ The graphics device.
+ The width and height of a texture cube face in pixels.
+ to generate a full mipmap chain; otherwise .
+ The preferred format of the surface.
+ The preferred format of the depth-stencil buffer.
+
+
+
+ Initializes a new instance of the class.
+
+ The graphics device.
+ The width and height of a texture cube face in pixels.
+ to generate a full mipmap chain; otherwise .
+ The preferred format of the surface.
+ The preferred format of the depth-stencil buffer.
+ The preferred number of multisample locations.
+ The usage mode of the render target.
+
+
+
+ Gets the depth-stencil buffer format of this render target.
+
+ The format of the depth-stencil buffer.
+
+
+
+ Gets the number of multisample locations.
+
+ The number of multisample locations.
+
+
+
+ Gets the usage mode of this render target.
+
+ The usage mode of the render target.
+
+
+
+
+
+
+
+
+
+ Defines if the previous content in a render target is preserved when it set on the graphics device.
+
+
+
+
+ The render target content will not be preserved.
+
+
+
+
+ The render target content will be preserved even if it is slow or requires extra memory.
+
+
+
+
+ The render target content might be preserved if the platform can do so without a penalty in performance or memory usage.
+
+
+
+
+ The newly created resource object.
+
+
+
+
+ The name of the destroyed resource.
+
+
+
+
+ The resource manager tag of the destroyed resource.
+
+
+
+
+ Mark all the sampler slots as dirty.
+
+
+
+
+ Defines how vertex or index buffer data will be flushed during a SetData operation.
+
+
+
+
+ The SetData can overwrite the portions of existing data.
+
+
+
+
+ The SetData will discard the entire buffer. A pointer to a new memory area is returned and rendering from the previous area do not stall.
+
+
+
+
+ The SetData operation will not overwrite existing data. This allows the driver to return immediately from a SetData operation and continue rendering.
+
+
+
+
+ A hash value which can be used to compare constant buffers.
+
+
+
+
+ Returns the platform specific shader profile identifier.
+
+
+
+
+ A hash value which can be used to compare shaders.
+
+
+
+
+ This class is used to Cache the links between Vertex/Pixel Shaders and Constant Buffers.
+ It will be responsible for linking the programs under OpenGL if they have not been linked
+ before. If an existing link exists it will be resused.
+
+
+
+
+ Clear the program cache releasing all shader programs.
+
+
+
+
+ Helper class for drawing text strings and sprites in one or more optimized batches.
+
+
+
+
+ Constructs a .
+
+ The , which will be used for sprite rendering.
+ Thrown when is null.
+
+
+
+ Begins a new sprite and text batch with the specified render state.
+
+ The drawing order for sprite and text drawing. by default.
+ State of the blending. Uses if null.
+ State of the sampler. Uses if null.
+ State of the depth-stencil buffer. Uses if null.
+ State of the rasterization. Uses if null.
+ A custom to override the default sprite effect. Uses default sprite effect if null.
+ An optional matrix used to transform the sprite geometry. Uses if null.
+ Thrown if is called next time without previous .
+ This method uses optional parameters.
+ The Begin should be called before drawing commands, and you cannot call it again before subsequent .
+
+
+
+ Flushes all batched text and sprites to the screen.
+
+ This command should be called after and drawing commands.
+
+
+
+ Submit a sprite for drawing in the current batch.
+
+ A texture.
+ The drawing location on screen or null if is used.
+ The drawing bounds on screen or null if is used.
+ An optional region on the texture which will be rendered. If null - draws full texture.
+ An optional center of rotation. Uses if null.
+ An optional rotation of this sprite. 0 by default.
+ An optional scale vector. Uses if null.
+ An optional color mask. Uses if null.
+ The optional drawing modificators. by default.
+ An optional depth of the layer of this sprite. 0 by default.
+ Throwns if both and been used.
+ This overload uses optional parameters. This overload requires only one of and been used.
+
+
+
+ Submit a sprite for drawing in the current batch.
+
+ A texture.
+ The drawing location on screen.
+ An optional region on the texture which will be rendered. If null - draws full texture.
+ A color mask.
+ A rotation of this sprite.
+ Center of the rotation. 0,0 by default.
+ A scaling of this sprite.
+ Modificators for drawing. Can be combined.
+ A depth of the layer of this sprite.
+
+
+
+ Submit a sprite for drawing in the current batch.
+
+ A texture.
+ The drawing location on screen.
+ An optional region on the texture which will be rendered. If null - draws full texture.
+ A color mask.
+ A rotation of this sprite.
+ Center of the rotation. 0,0 by default.
+ A scaling of this sprite.
+ Modificators for drawing. Can be combined.
+ A depth of the layer of this sprite.
+
+
+
+ Submit a sprite for drawing in the current batch.
+
+ A texture.
+ The drawing bounds on screen.
+ An optional region on the texture which will be rendered. If null - draws full texture.
+ A color mask.
+ A rotation of this sprite.
+ Center of the rotation. 0,0 by default.
+ Modificators for drawing. Can be combined.
+ A depth of the layer of this sprite.
+
+
+
+ Submit a sprite for drawing in the current batch.
+
+ A texture.
+ The drawing location on screen.
+ An optional region on the texture which will be rendered. If null - draws full texture.
+ A color mask.
+
+
+
+ Submit a sprite for drawing in the current batch.
+
+ A texture.
+ The drawing bounds on screen.
+ An optional region on the texture which will be rendered. If null - draws full texture.
+ A color mask.
+
+
+
+ Submit a sprite for drawing in the current batch.
+
+ A texture.
+ The drawing location on screen.
+ A color mask.
+
+
+
+ Submit a sprite for drawing in the current batch.
+
+ A texture.
+ The drawing bounds on screen.
+ A color mask.
+
+
+
+ Submit a text string of sprites for drawing in the current batch.
+
+ A font.
+ The text which will be drawn.
+ The drawing location on screen.
+ A color mask.
+
+
+
+ Submit a text string of sprites for drawing in the current batch.
+
+ A font.
+ The text which will be drawn.
+ The drawing location on screen.
+ A color mask.
+ A rotation of this string.
+ Center of the rotation. 0,0 by default.
+ A scaling of this string.
+ Modificators for drawing. Can be combined.
+ A depth of the layer of this string.
+
+
+
+ Submit a text string of sprites for drawing in the current batch.
+
+ A font.
+ The text which will be drawn.
+ The drawing location on screen.
+ A color mask.
+ A rotation of this string.
+ Center of the rotation. 0,0 by default.
+ A scaling of this string.
+ Modificators for drawing. Can be combined.
+ A depth of the layer of this string.
+
+
+
+ Submit a text string of sprites for drawing in the current batch.
+
+ A font.
+ The text which will be drawn.
+ The drawing location on screen.
+ A color mask.
+
+
+
+ Submit a text string of sprites for drawing in the current batch.
+
+ A font.
+ The text which will be drawn.
+ The drawing location on screen.
+ A color mask.
+ A rotation of this string.
+ Center of the rotation. 0,0 by default.
+ A scaling of this string.
+ Modificators for drawing. Can be combined.
+ A depth of the layer of this string.
+
+
+
+ Submit a text string of sprites for drawing in the current batch.
+
+ A font.
+ The text which will be drawn.
+ The drawing location on screen.
+ A color mask.
+ A rotation of this string.
+ Center of the rotation. 0,0 by default.
+ A scaling of this string.
+ Modificators for drawing. Can be combined.
+ A depth of the layer of this string.
+
+
+
+ Immediately releases the unmanaged resources used by this object.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ This class handles the queueing of batch items into the GPU by creating the triangle tesselations
+ that are used to draw the sprite textures. This class supports int.MaxValue number of sprites to be
+ batched and will process them into short.MaxValue groups (strided by 6 for the number of vertices
+ sent to the GPU).
+
+
+
+
+ Initialization size for the batch item list and queue.
+
+
+
+
+ The maximum number of batch items that can be processed per iteration
+
+
+
+
+ Initialization size for the vertex array, in batch units.
+
+
+
+
+ The list of batch items to process.
+
+
+
+
+ Index pointer to the next available SpriteBatchItem in _batchItemList.
+
+
+
+
+ The target graphics device.
+
+
+
+
+ Vertex index array. The values in this array never change.
+
+
+
+
+ Reuse a previously allocated SpriteBatchItem from the item pool.
+ if there is none available grow the pool and initialize new items.
+
+
+
+
+
+ Resize and recreate the missing indices for the index and vertex position color buffers.
+
+
+
+
+
+ Sorts the batch items and then groups batch drawing into maximal allowed batch sets that do not
+ overflow the 16 bit array indices for vertices.
+
+ The type of depth sorting desired for the rendering.
+ The custom effect to apply to the drawn geometry
+
+
+
+ Sends the triangle list to the graphics device. Here is where the actual drawing starts.
+
+ Start index of vertices to draw. Not used except to compute the count of vertices to draw.
+ End index of vertices to draw. Not used except to compute the count of vertices to draw.
+ The custom effect to apply to the geometry
+ The texture to draw.
+
+
+
+ Defines sprite visual options for mirroring.
+
+
+
+
+ No options specified.
+
+
+
+
+ Render the sprite reversed along the X axis.
+
+
+
+
+ Render the sprite reversed along the Y axis.
+
+
+
+
+ Returns a copy of the dictionary containing the glyphs in this SpriteFont.
+
+ A new Dictionary containing all of the glyphs inthis SpriteFont
+ Can be used to calculate character bounds when implementing custom SpriteFont rendering.
+
+
+
+ Returns the size of a string when rendered in this font.
+
+ The text to measure.
+ The size, in pixels, of 'text' when rendered in
+ this font.
+
+
+
+ Returns the size of the contents of a StringBuilder when
+ rendered in this font.
+
+ The text to measure.
+ The size, in pixels, of 'text' when rendered in
+ this font.
+
+
+
+ Gets the texture that this SpriteFont draws from.
+
+ Can be used to implement custom rendering of a SpriteFont
+
+
+
+ Gets a collection of the characters in the font.
+
+
+
+
+ Gets or sets the character that will be substituted when a
+ given character is not included in the font.
+
+
+
+
+ Gets or sets the line spacing (the distance from baseline
+ to baseline) of the font.
+
+
+
+
+ Gets or sets the spacing (tracking) between characters in
+ the font.
+
+
+
+
+ Struct that defines the spacing, Kerning, and bounds of a character.
+
+ Provides the data necessary to implement custom SpriteFont rendering.
+
+
+
+ The char associated with this glyph.
+
+
+
+
+ Rectangle in the font texture where this letter exists.
+
+
+
+
+ Cropping applied to the BoundsInTexture to calculate the bounds of the actual character.
+
+
+
+
+ The amount of space between the left side ofthe character and its first pixel in the X dimention.
+
+
+
+
+ The amount of space between the right side of the character and its last pixel in the X dimention.
+
+
+
+
+ Width of the character before kerning is applied.
+
+
+
+
+ Width of the character before kerning is applied.
+
+
+
+
+ Defines sprite sort rendering options.
+
+
+
+
+ All sprites are drawing when invokes, in order of draw call sequence. Depth is ignored.
+
+
+
+
+ Each sprite is drawing at individual draw call, instead of . Depth is ignored.
+
+
+
+
+ Same as , except sprites are sorted by texture prior to drawing. Depth is ignored.
+
+
+
+
+ Same as , except sprites are sorted by depth in back-to-front order prior to drawing.
+
+
+
+
+ Same as , except sprites are sorted by depth in front-to-back order prior to drawing.
+
+
+
+
+ Defines a blend mode.
+
+
+
+
+ Each component of the color is multiplied by {1, 1, 1, 1}.
+
+
+
+
+ Each component of the color is multiplied by {0, 0, 0, 0}.
+
+
+
+
+ Each component of the color is multiplied by the source color.
+ {Rs, Gs, Bs, As}, where Rs, Gs, Bs, As are color source values.
+
+
+
+
+ Each component of the color is multiplied by the inverse of the source color.
+ {1 − Rs, 1 − Gs, 1 − Bs, 1 − As}, where Rs, Gs, Bs, As are color source values.
+
+
+
+
+ Each component of the color is multiplied by the alpha value of the source.
+ {As, As, As, As}, where As is the source alpha value.
+
+
+
+
+ Each component of the color is multiplied by the inverse of the alpha value of the source.
+ {1 − As, 1 − As, 1 − As, 1 − As}, where As is the source alpha value.
+
+
+
+
+ Each component color is multiplied by the destination color.
+ {Rd, Gd, Bd, Ad}, where Rd, Gd, Bd, Ad are color destination values.
+
+
+
+
+ Each component of the color is multiplied by the inversed destination color.
+ {1 − Rd, 1 − Gd, 1 − Bd, 1 − Ad}, where Rd, Gd, Bd, Ad are color destination values.
+
+
+
+
+ Each component of the color is multiplied by the alpha value of the destination.
+ {Ad, Ad, Ad, Ad}, where Ad is the destination alpha value.
+
+
+
+
+ Each component of the color is multiplied by the inversed alpha value of the destination.
+ {1 − Ad, 1 − Ad, 1 − Ad, 1 − Ad}, where Ad is the destination alpha value.
+
+
+
+
+ Each component of the color is multiplied by a constant in the .
+
+
+
+
+ Each component of the color is multiplied by a inversed constant in the .
+
+
+
+
+ Each component of the color is multiplied by either the alpha of the source color, or the inverse of the alpha of the source color, whichever is greater.
+ {f, f, f, 1}, where f = min(As, 1 − As), where As is the source alpha value.
+
+
+
+
+ Defines a function for color blending.
+
+
+
+
+ The function will adds destination to the source. (srcColor * srcBlend) + (destColor * destBlend)
+
+
+
+
+ The function will subtracts destination from source. (srcColor * srcBlend) − (destColor * destBlend)
+
+
+
+
+ The function will subtracts source from destination. (destColor * destBlend) - (srcColor * srcBlend)
+
+
+
+
+ The function will extracts minimum of the source and destination. min((srcColor * srcBlend),(destColor * destBlend))
+
+
+
+
+ The function will extracts maximum of the source and destination. max((srcColor * srcBlend),(destColor * destBlend))
+
+
+
+
+ Returns the target specific blend state.
+
+ The 0 to 3 target blend state index.
+ A target blend state.
+
+
+
+ The color used as blend factor when alpha blending.
+
+
+ is set to this value when this
+ is bound to a GraphicsDevice.
+
+
+
+
+ Enables use of the per-target blend states.
+
+
+
+
+ The comparison function used for depth, stencil, and alpha tests.
+
+
+
+
+ Always passes the test.
+
+
+
+
+ Never passes the test.
+
+
+
+
+ Passes the test when the new pixel value is less than current pixel value.
+
+
+
+
+ Passes the test when the new pixel value is less than or equal to current pixel value.
+
+
+
+
+ Passes the test when the new pixel value is equal to current pixel value.
+
+
+
+
+ Passes the test when the new pixel value is greater than or equal to current pixel value.
+
+
+
+
+ Passes the test when the new pixel value is greater than current pixel value.
+
+
+
+
+ Passes the test when the new pixel value does not equal to current pixel value.
+
+
+
+
+ Defines a culling mode for faces in rasterization process.
+
+
+
+
+ Do not cull faces.
+
+
+
+
+ Cull faces with clockwise order.
+
+
+
+
+ Cull faces with counter clockwise order.
+
+
+
+
+ Defines formats for depth-stencil buffer.
+
+
+
+
+ Depth-stencil buffer will not be created.
+
+
+
+
+ 16-bit depth buffer.
+
+
+
+
+ 24-bit depth buffer. Equivalent of for DirectX platforms.
+
+
+
+
+ 32-bit depth-stencil buffer. Where 24-bit depth and 8-bit for stencil used.
+
+
+
+
+ Defines options for filling the primitive.
+
+
+
+
+ Draw solid faces for each primitive.
+
+
+
+
+ Draw lines for each primitive.
+
+
+
+
+ When using comparison sampling, also set to .
+
+
+
+
+ Defines stencil buffer operations.
+
+
+
+
+ Does not update the stencil buffer entry.
+
+
+
+
+ Sets the stencil buffer entry to 0.
+
+
+
+
+ Replaces the stencil buffer entry with a reference value.
+
+
+
+
+ Increments the stencil buffer entry, wrapping to 0 if the new value exceeds the maximum value.
+
+
+
+
+ Decrements the stencil buffer entry, wrapping to the maximum value if the new value is less than 0.
+
+
+
+
+ Increments the stencil buffer entry, clamping to the maximum value.
+
+
+
+
+ Decrements the stencil buffer entry, clamping to 0.
+
+
+
+
+ Inverts the bits in the stencil buffer entry.
+
+
+
+
+ Defines modes for addressing texels using texture coordinates that are outside of the range of 0.0 to 1.0.
+
+
+
+
+ Texels outside range will form the tile at every integer junction.
+
+
+
+
+ Texels outside range will be set to color of 0.0 or 1.0 texel.
+
+
+
+
+ Same as but tiles will also flipped at every integer junction.
+
+
+
+
+ Texels outside range will be set to the border color.
+
+
+
+
+ Defines filtering types for texture sampler.
+
+
+
+
+ Use linear filtering.
+
+
+
+
+ Use point filtering.
+
+
+
+
+ Use anisotropic filtering.
+
+
+
+
+ Use linear filtering to shrink or expand, and point filtering between mipmap levels (mip).
+
+
+
+
+ Use point filtering to shrink (minify) or expand (magnify), and linear filtering between mipmap levels.
+
+
+
+
+ Use linear filtering to shrink, point filtering to expand, and linear filtering between mipmap levels.
+
+
+
+
+ Use linear filtering to shrink, point filtering to expand, and point filtering between mipmap levels.
+
+
+
+
+ Use point filtering to shrink, linear filtering to expand, and linear filtering between mipmap levels.
+
+
+
+
+ Use point filtering to shrink, linear filtering to expand, and point filtering between mipmap levels.
+
+
+
+
+ Filtering modes for texture samplers.
+
+
+
+
+ Defines types of surface formats.
+
+
+
+
+ Unsigned 32-bit ARGB pixel format for store 8 bits per channel.
+
+
+
+
+ Unsigned 16-bit BGR pixel format for store 5 bits for blue, 6 bits for green, and 5 bits for red.
+
+
+
+
+ Unsigned 16-bit BGRA pixel format where 5 bits reserved for each color and last bit is reserved for alpha.
+
+
+
+
+ Unsigned 16-bit BGRA pixel format for store 4 bits per channel.
+
+
+
+
+ DXT1. Texture format with compression. Surface dimensions must be a multiple 4.
+
+
+
+
+ DXT3. Texture format with compression. Surface dimensions must be a multiple 4.
+
+
+
+
+ DXT5. Texture format with compression. Surface dimensions must be a multiple 4.
+
+
+
+
+ Signed 16-bit bump-map format for store 8 bits for u and v data.
+
+
+
+
+ Signed 16-bit bump-map format for store 8 bits per channel.
+
+
+
+
+ Unsigned 32-bit RGBA pixel format for store 10 bits for each color and 2 bits for alpha.
+
+
+
+
+ Unsigned 32-bit RG pixel format using 16 bits per channel.
+
+
+
+
+ Unsigned 64-bit RGBA pixel format using 16 bits per channel.
+
+
+
+
+ Unsigned A 8-bit format for store 8 bits to alpha channel.
+
+
+
+
+ IEEE 32-bit R float format for store 32 bits to red channel.
+
+
+
+
+ IEEE 64-bit RG float format for store 32 bits per channel.
+
+
+
+
+ IEEE 128-bit RGBA float format for store 32 bits per channel.
+
+
+
+
+ Float 16-bit R format for store 16 bits to red channel.
+
+
+
+
+ Float 32-bit RG format for store 16 bits per channel.
+
+
+
+
+ Float 64-bit ARGB format for store 16 bits per channel.
+
+
+
+
+ Float pixel format for high dynamic range data.
+
+
+
+
+ For compatibility with WPF D3DImage.
+
+
+
+
+ For compatibility with WPF D3DImage.
+
+
+
+
+ Unsigned 32-bit RGBA sRGB pixel format that supports 8 bits per channel.
+
+
+
+
+ Unsigned 32-bit sRGB pixel format that supports 8 bits per channel. 8 bits are unused.
+
+
+
+
+ Unsigned 32-bit sRGB pixel format that supports 8 bits per channel.
+
+
+
+
+ DXT1. sRGB texture format with compression. Surface dimensions must be a multiple of 4.
+
+
+
+
+ DXT3. sRGB texture format with compression. Surface dimensions must be a multiple of 4.
+
+
+
+
+ DXT5. sRGB texture format with compression. Surface dimensions must be a multiple of 4.
+
+
+
+
+ PowerVR texture compression format (iOS and Android).
+
+
+
+
+ PowerVR texture compression format (iOS and Android).
+
+
+
+
+ PowerVR texture compression format (iOS and Android).
+
+
+
+
+ PowerVR texture compression format (iOS and Android).
+
+
+
+
+ Ericcson Texture Compression (Android)
+
+
+
+
+ DXT1 version where 1-bit alpha is used.
+
+
+
+
+ ATC/ATITC compression (Android)
+
+
+
+
+ ATC/ATITC compression (Android)
+
+
+
+
+ Gets a copy of 3D texture data, specifying a mipmap level, source box, start index, and number of elements.
+
+ The type of the elements in the array.
+ Mipmap level.
+ Position of the left side of the box on the x-axis.
+ Position of the top of the box on the y-axis.
+ Position of the right side of the box on the x-axis.
+ Position of the bottom of the box on the y-axis.
+ Position of the front of the box on the z-axis.
+ Position of the back of the box on the z-axis.
+ Array of data.
+ Index of the first element to get.
+ Number of elements to get.
+
+
+
+ Gets a copy of 3D texture data, specifying a start index and number of elements.
+
+ The type of the elements in the array.
+ Array of data.
+ Index of the first element to get.
+ Number of elements to get.
+
+
+
+ Gets a copy of 3D texture data.
+
+ The type of the elements in the array.
+ Array of data.
+
+
+
+ Marks all texture slots as dirty.
+
+
+
+
+ A usage hint for optimizing memory placement of graphics buffers.
+
+
+
+
+ No special usage.
+
+
+
+
+ The buffer will not be readable and will be optimized for rendering and writing.
+
+
+
+
+ Gets the relevant IndexElementSize enum value for the given type.
+
+ The graphics device.
+ The type to use for the index buffer
+ The IndexElementSize enum value that matches the type
+
+
+
+ The GraphicsDevice is resetting, so GPU resources must be recreated.
+
+
+
+
+ If the IBO does not exist, create it.
+
+
+
+
+ Special offset used internally by GraphicsDevice.DrawUserXXX() methods.
+
+
+
+
+ The GraphicsDevice is resetting, so GPU resources must be recreated.
+
+
+
+
+
+ Sets the vertex buffer data, specifying the index at which to start copying from the source data array,
+ the number of elements to copy from the source data array,
+ and how far apart elements from the source data array should be when they are copied into the vertex buffer.
+
+ Type of elements in the data array.
+ Offset in bytes from the beginning of the vertex buffer to the start of the copied data.
+ Data array.
+ Index at which to start copying from .
+ Must be within the array bounds.
+ Number of elements to copy from .
+ The combination of and
+ must be within the array bounds.
+ Specifies how far apart, in bytes, elements from should be when
+ they are copied into the vertex buffer.
+ In almost all cases this should be sizeof(T), to create a tightly-packed vertex buffer.
+ If you specify sizeof(T), elements from will be copied into the
+ vertex buffer with no padding between each element.
+ If you specify a value greater than sizeof(T), elements from will be copied
+ into the vertex buffer with padding between each element.
+ If you specify 0 for this parameter, it will be treated as if you had specified sizeof(T).
+ With the exception of 0, you must specify a value greater than or equal to sizeof(T).
+
+ If T is VertexPositionTexture, but you want to set only the position component of the vertex data,
+ you would call this method as follows:
+
+ Vector3[] positions = new Vector3[numVertices];
+ vertexBuffer.SetData(0, positions, 0, numVertices, vertexBuffer.VertexDeclaration.VertexStride);
+
+
+ Continuing from the previous example, if you want to set only the texture coordinate component of the vertex data,
+ you would call this method as follows (note the use of :
+
+ Vector2[] texCoords = new Vector2[numVertices];
+ vertexBuffer.SetData(12, texCoords, 0, numVertices, vertexBuffer.VertexDeclaration.VertexStride);
+
+
+
+ If you provide a byte[] in the parameter, then you should almost certainly
+ set to 1, to avoid leaving any padding between the byte values
+ when they are copied into the vertex buffer.
+
+
+
+
+ Sets the vertex buffer data, specifying the index at which to start copying from the source data array,
+ and the number of elements to copy from the source data array. This is the same as calling
+ with offsetInBytes equal to 0,
+ and vertexStride equal to sizeof(T).
+
+ Type of elements in the data array.
+ Data array.
+ Index at which to start copying from .
+ Must be within the array bounds.
+ Number of elements to copy from .
+ The combination of and
+ must be within the array bounds.
+
+
+
+ Sets the vertex buffer data. This is the same as calling
+ with offsetInBytes and startIndex equal to 0, elementCount equal to data.Length,
+ and vertexStride equal to sizeof(T).
+
+ Type of elements in the data array.
+ Data array.
+
+
+
+ If the VBO does not exist, create it.
+
+
+
+
+ Special offset used internally by GraphicsDevice.DrawUserXXX() methods.
+
+
+
+
+ Defines size for index in and .
+
+
+
+
+ 16-bit short/ushort value been used.
+
+
+
+
+ 32-bit int/uint value been used.
+
+
+
+
+ Defines how vertex data is ordered.
+
+
+
+
+ Renders the specified vertices as a sequence of isolated triangles. Each group of three vertices defines a separate triangle. Back-face culling is affected by the current winding-order render state.
+
+
+
+
+ Renders the vertices as a triangle strip. The back-face culling flag is flipped automatically on even-numbered triangles.
+
+
+
+
+ Renders the vertices as a list of isolated straight line segments; the count may be any positive integer.
+
+
+
+
+ Renders the vertices as a single polyline; the count may be any positive integer.
+
+
+
+
+ Defines how a vertex buffer is bound to the graphics device for rendering.
+
+
+
+
+ Creates an instance of .
+
+ The vertex buffer to bind.
+
+
+
+ Creates an instance of .
+
+ The vertex buffer to bind.
+
+ The index of the first vertex in the vertex buffer to use.
+
+
+
+
+ Creates an instance of VertexBufferBinding.
+
+ The vertex buffer to bind.
+
+ The index of the first vertex in the vertex buffer to use.
+
+
+ The number of instances to draw using the same per-instance data before advancing in the
+ buffer by one element. This value must be 0 for an element that contains per-vertex data
+ and greater than 0 for per-instance data.
+
+
+ is .
+
+
+ or is invalid.
+
+
+
+
+ Gets the vertex buffer.
+
+ The vertex buffer.
+
+
+
+ Gets the index of the first vertex in the vertex buffer to use.
+
+ The index of the first vertex in the vertex buffer to use.
+
+
+
+ Gets the number of instances to draw using the same per-instance data before advancing
+ in the buffer by one element.
+
+
+ The number of instances to draw using the same per-instance data before advancing in the
+ buffer by one element. This value must be 0 for an element that contains per-vertex
+ data and greater than 0 for per-instance data.
+
+
+
+
+ Stores the vertex buffers to be bound to the input assembler stage.
+
+
+
+
+ Stores the vertex layout (input elements) for the input assembler stage.
+
+
+ In the DirectX version the input layouts are cached in a dictionary. The
+ is used as the key in the dictionary and therefore needs to
+ implement . Two instance are
+ considered equal if the vertex layouts are structurally identical.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The maximum number of vertex buffer slots.
+
+
+
+ Initializes a new instance of the class.
+
+ The array for storing vertex declarations.
+ The array for storing instance frequencies.
+ The number of used slots.
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The object to compare with the current object.
+
+ if the specified is equal to this instance;
+ otherwise, .
+
+
+
+
+ Determines whether the specified is equal to this
+ instance.
+
+ The object to compare with the current object.
+
+ if the specified is equal to this
+ instance; otherwise, .
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data
+ structures like a hash table.
+
+
+
+
+ Compares two instances to determine whether they are the
+ same.
+
+ The first instance.
+ The second instance.
+
+ if the and are
+ the same; otherwise, .
+
+
+
+
+ Compares two instances to determine whether they are
+ different.
+
+ The first instance.
+ The second instance.
+
+ if the and are
+ the different; otherwise, .
+
+
+
+
+ Gets or sets the number of used input slots.
+
+ The number of used input slots.
+
+
+
+ Initializes a new instance of the class.
+
+ The maximum number of vertex buffer slots.
+
+
+
+ Clears the vertex buffer slots.
+
+
+ if the input layout was changed; otherwise,
+ .
+
+
+
+
+ Binds the specified vertex buffer to the first input slot.
+
+ The vertex buffer.
+
+ The offset (in vertices) from the beginning of the vertex buffer to the first vertex to
+ use.
+
+
+ if the input layout was changed; otherwise,
+ .
+
+
+
+
+ Binds the the specified vertex buffers to the input slots.
+
+ The vertex buffer bindings.
+
+ if the input layout was changed; otherwise,
+ .
+
+
+
+
+ Gets vertex buffer bound to the specified input slots.
+
+ The vertex buffer binding.
+
+
+
+ Gets vertex buffers bound to the input slots.
+
+ The vertex buffer bindings.
+
+
+
+ Helper class which ensures we only lookup a vertex
+ declaration for a particular type once.
+
+ A vertex structure which implements IVertexType.
+
+
+
+ Defines per-vertex data of a vertex buffer.
+
+
+ implements and can be used as
+ a key in a dictionary. Two vertex declarations are considered equal if the vertices are
+ structurally equivalent, i.e. the vertex elements and the vertex stride are identical. (The
+ properties and are
+ ignored in and !)
+
+
+
+
+ Initializes a new instance of the class.
+
+ The vertex elements.
+
+ is or empty.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The size of a vertex (including padding) in bytes.
+ The vertex elements.
+
+ is or empty.
+
+
+
+
+ Returns the VertexDeclaration for Type.
+
+ A value type which implements the IVertexType interface.
+ The VertexDeclaration.
+
+ Prefer to use VertexDeclarationCache when the declaration lookup
+ can be performed with a templated type.
+
+
+
+
+ Gets a copy of the vertex elements.
+
+ A copy of the vertex elements.
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The object to compare with the current object.
+
+ if the specified is equal to this instance;
+ otherwise, .
+
+
+
+
+ Determines whether the specified is equal to this
+ instance.
+
+ The object to compare with the current object.
+
+ if the specified is equal to this
+ instance; otherwise, .
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data
+ structures like a hash table.
+
+
+
+
+ Compares two instances to determine whether they are the
+ same.
+
+ The first instance.
+ The second instance.
+
+ if the and are
+ the same; otherwise, .
+
+
+
+
+ Compares two instances to determine whether they are
+ different.
+
+ The first instance.
+ The second instance.
+
+ if the and are
+ the different; otherwise, .
+
+
+
+
+ Gets the internal vertex elements array.
+
+ The internal vertex elements array.
+
+
+
+ Gets the size of a vertex (including padding) in bytes.
+
+ The size of a vertex (including padding) in bytes.
+
+
+
+ Vertex attribute information for a particular shader/vertex declaration combination.
+
+
+
+
+ Defines a single element in a vertex.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The offset in bytes from the beginning of the stream to the vertex element.
+ The element format.
+ The HLSL semantic of the element in the vertex shader input-signature.
+ The semantic index, which is required if the semantic is used for more than one vertex element.
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data
+ structures like a hash table.
+
+
+
+
+ Returns a that represents this instance.
+
+ A that represents this instance.
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The object to compare with the current object.
+
+ if the specified is equal to this instance;
+ otherwise, .
+
+
+
+
+ Determines whether the specified is equal to this
+ instance.
+
+ The object to compare with the current object.
+
+ if the specified is equal to this
+ instance; otherwise, .
+
+
+
+
+ Compares two instances to determine whether they are the
+ same.
+
+ The first instance.
+ The second instance.
+
+ if the and are
+ the same; otherwise, .
+
+
+
+
+ Compares two instances to determine whether they are
+ different.
+
+ The first instance.
+ The second instance.
+
+ if the and are
+ the different; otherwise, .
+
+
+
+
+ Gets or sets the offset in bytes from the beginning of the stream to the vertex element.
+
+ The offset in bytes.
+
+
+
+ Gets or sets the data format.
+
+ The data format.
+
+
+
+ Gets or sets the HLSL semantic of the element in the vertex shader input.
+
+ The HLSL semantic of the element in the vertex shader input.
+
+
+
+ Gets or sets the semantic index.
+
+
+ The semantic index, which is required if the semantic is used for more than one vertex
+ element.
+
+
+ Usage indices in a vertex declaration usually start with 0. When multiple vertex buffers
+ are bound to the input assembler stage (see ),
+ MonoGame internally adjusts the usage indices based on the order in which the vertex
+ buffers are bound.
+
+
+
+
+ Defines vertex element formats.
+
+
+
+
+ Single 32-bit floating point number.
+
+
+
+
+ Two component 32-bit floating point number.
+
+
+
+
+ Three component 32-bit floating point number.
+
+
+
+
+ Four component 32-bit floating point number.
+
+
+
+
+ Four component, packed unsigned byte, mapped to 0 to 1 range.
+
+
+
+
+ Four component unsigned byte.
+
+
+
+
+ Two component signed 16-bit integer.
+
+
+
+
+ Four component signed 16-bit integer.
+
+
+
+
+ Normalized, two component signed 16-bit integer.
+
+
+
+
+ Normalized, four component signed 16-bit integer.
+
+
+
+
+ Two component 16-bit floating point number.
+
+
+
+
+ Four component 16-bit floating point number.
+
+
+
+
+ Defines usage for vertex elements.
+
+
+
+
+ Position data.
+
+
+
+
+ Color data.
+
+
+
+
+ Texture coordinate data or can be used for user-defined data.
+
+
+
+
+ Normal data.
+
+
+
+
+ Binormal data.
+
+
+
+
+ Tangent data.
+
+
+
+
+ Blending indices data.
+
+
+
+
+ Blending weight data.
+
+
+
+
+ Depth data.
+
+
+
+
+ Fog data.
+
+
+
+
+ Point size data. Usable for drawing point sprites.
+
+
+
+
+ Sampler data for specifies the displacement value to look up.
+
+
+
+
+ Single, positive float value, specifies a tessellation factor used in the tessellation unit to control the rate of tessellation.
+
+
+
+
+ Describes the view bounds for render-target surface.
+
+
+
+
+ Constructs a viewport from the given values. The will be 0.0 and will be 1.0.
+
+ The x coordinate of the upper-left corner of the view bounds in pixels.
+ The y coordinate of the upper-left corner of the view bounds in pixels.
+ The width of the view bounds in pixels.
+ The height of the view bounds in pixels.
+
+
+
+ Constructs a viewport from the given values.
+
+ The x coordinate of the upper-left corner of the view bounds in pixels.
+ The y coordinate of the upper-left corner of the view bounds in pixels.
+ The width of the view bounds in pixels.
+ The height of the view bounds in pixels.
+ The lower limit of depth.
+ The upper limit of depth.
+
+
+
+ Creates a new instance of struct.
+
+ A that defines the location and size of the in a render target.
+
+
+
+ Projects a from world space into screen space.
+
+ The to project.
+ The projection .
+ The view .
+ The world .
+
+
+
+
+ Unprojects a from screen space into world space.
+
+ The to unproject.
+ The projection .
+ The view .
+ The world .
+
+
+
+
+ Returns a representation of this in the format:
+ {X:[] Y:[] Width:[] Height:[] MinDepth:[] MaxDepth:[]}
+
+ A representation of this .
+
+
+
+ The height of the bounds in pixels.
+
+
+
+
+ The upper limit of depth of this viewport.
+
+
+
+
+ The lower limit of depth of this viewport.
+
+
+
+
+ The width of the bounds in pixels.
+
+
+
+
+ The y coordinate of the beginning of this viewport.
+
+
+
+
+ The x coordinate of the beginning of this viewport.
+
+
+
+
+ Gets the aspect ratio of this , which is width / height.
+
+
+
+
+ Gets or sets a boundary of this .
+
+
+
+
+ Returns the subset of the viewport that is guaranteed to be visible on a lower quality display.
+
+
+
+
+ Defines the buttons on gamepad.
+
+
+
+
+ Directional pad up.
+
+
+
+
+ Directional pad down.
+
+
+
+
+ Directional pad left.
+
+
+
+
+ Directional pad right.
+
+
+
+
+ START button.
+
+
+
+
+ BACK button.
+
+
+
+
+ Left stick button (pressing the left stick).
+
+
+
+
+ Right stick button (pressing the right stick).
+
+
+
+
+ Left bumper (shoulder) button.
+
+
+
+
+ Right bumper (shoulder) button.
+
+
+
+
+ Big button.
+
+
+
+
+ A button.
+
+
+
+
+ B button.
+
+
+
+
+ X button.
+
+
+
+
+ Y button.
+
+
+
+
+ Left stick is towards the left.
+
+
+
+
+ Right trigger.
+
+
+
+
+ Left trigger.
+
+
+
+
+ Right stick is towards up.
+
+
+
+
+ Right stick is towards down.
+
+
+
+
+ Right stick is towards the right.
+
+
+
+
+ Right stick is towards the left.
+
+
+
+
+ Left stick is towards up.
+
+
+
+
+ Left stick is towards down.
+
+
+
+
+ Left stick is towards the right.
+
+
+
+
+ Defines a button state for buttons of mouse, gamepad or joystick.
+
+
+
+
+ The button is released.
+
+
+
+
+ The button is pressed.
+
+
+
+
+ Supports querying the game controllers and setting the vibration motors.
+
+
+
+
+ Returns the capabilites of the connected controller.
+
+ Player index for the controller you want to query.
+ The capabilites of the controller.
+
+
+
+ Returns the capabilites of the connected controller.
+
+ Index for the controller you want to query.
+ The capabilites of the controller.
+
+
+
+ Gets the current state of a game pad controller with an independent axes dead zone.
+
+ Player index for the controller you want to query.
+ The state of the controller.
+
+
+
+ Gets the current state of a game pad controller with an independent axes dead zone.
+
+ Index for the controller you want to query.
+ The state of the controller.
+
+
+
+ Gets the current state of a game pad controller, using a specified dead zone
+ on analog stick positions.
+
+ Player index for the controller you want to query.
+ Enumerated value that specifies what dead zone type to use.
+ The state of the controller.
+
+
+
+ Gets the current state of a game pad controller, using a specified dead zone
+ on analog stick positions.
+
+ Index for the controller you want to query.
+ Enumerated value that specifies what dead zone type to use.
+ The state of the controller.
+
+
+
+ Sets the vibration motor speeds on the controller device if supported.
+
+ Player index that identifies the controller to set.
+ The speed of the left motor, between 0.0 and 1.0. This motor is a low-frequency motor.
+ The speed of the right motor, between 0.0 and 1.0. This motor is a high-frequency motor.
+ Returns true if the vibration motors were set.
+
+
+
+ Sets the vibration motor speeds on the controller device if supported.
+
+ Index for the controller you want to query.
+ The speed of the left motor, between 0.0 and 1.0. This motor is a low-frequency motor.
+ The speed of the right motor, between 0.0 and 1.0. This motor is a high-frequency motor.
+ Returns true if the vibration motors were set.
+
+
+
+ The maximum number of game pads supported on this system. Attempting to
+ access a gamepad index higher than this number will result in an
+ being thrown by the API.
+
+
+
+
+ Determines whether two specified instances of are equal.
+
+ The first object to compare.
+ The second object to compare.
+ true if and are equal; otherwise, false.
+
+
+
+ Determines whether two specified instances of are not equal.
+
+ The first object to compare.
+ The second object to compare.
+ true if and are not equal; otherwise, false.
+
+
+
+ Returns a value indicating whether this instance is equal to a specified object.
+
+ An object to compare to this instance.
+ true if is a and has the same value as this instance; otherwise, false.
+
+
+
+ Determines whether two specified instances of are equal.
+
+ The first object to compare.
+ The second object to compare.
+ true if and are equal; otherwise, false.
+
+
+
+ Determines whether two specified instances of are not equal.
+
+ The first object to compare.
+ The second object to compare.
+ true if and are not equal; otherwise, false.
+
+
+
+ Returns a value indicating whether this instance is equal to a specified object.
+
+ An object to compare to this instance.
+ true if is a and has the same value as this instance; otherwise, false.
+
+
+
+ The default initialized gamepad state.
+
+
+
+
+ Gets the button mask along with 'virtual buttons' like LeftThumbstickLeft.
+
+
+
+
+ Determines whether two specified instances of are equal.
+
+ The first object to compare.
+ The second object to compare.
+ true if and are equal; otherwise, false.
+
+
+
+ Determines whether two specified instances of are not equal.
+
+ The first object to compare.
+ The second object to compare.
+ true if and are not equal; otherwise, false.
+
+
+
+ Returns a value indicating whether this instance is equal to a specified object.
+
+ An object to compare to this instance.
+ true if is a and has the same value as this instance; otherwise, false.
+
+
+
+ Determines whether two specified instances of are equal.
+
+ The first object to compare.
+ The second object to compare.
+ true if and are equal; otherwise, false.
+
+
+
+ Determines whether two specified instances of are not equal.
+
+ The first object to compare.
+ The second object to compare.
+ true if and are not equal; otherwise, false.
+
+
+
+ Returns a value indicating whether this instance is equal to a specified object.
+
+ An object to compare to this instance.
+ true if is a and has the same value as this instance; otherwise, false.
+
+
+
+ Defines a type of gamepad.
+
+
+
+
+ Unknown.
+
+
+
+
+ GamePad is the XBOX controller.
+
+
+
+
+ GamePad is a wheel.
+
+
+
+
+ GamePad is an arcade stick.
+
+
+
+
+ GamePad is a flight stick.
+
+
+
+
+ GamePad is a dance pad.
+
+
+
+
+ GamePad is a guitar.
+
+
+
+
+ GamePad is an alternate guitar.
+
+
+
+
+ GamePad is a drum kit.
+
+
+
+
+ GamePad is a big button pad.
+
+
+
+
+ Allows interaction with joysticks. Unlike the number of Buttons/Axes/DPads is not limited.
+
+
+
+
+ Gets the capabilites of the joystick.
+
+ Index of the joystick you want to access.
+ The capabilites of the joystick.
+
+
+
+ Gets the current state of the joystick.
+
+ Index of the joystick you want to access.
+ The state of the joystick.
+
+
+
+ Describes joystick capabilities.
+
+
+
+
+ Gets a value indicating whether the joystick is connected.
+
+ true if the joystick is connected; otherwise, false.
+
+
+
+ Gets the unique identifier of the joystick.
+
+ String representing the unique identifier of the joystick.
+
+
+
+ Gets the axis count.
+
+ The number of axes that the joystick possesses.
+
+
+
+ Gets the button count.
+
+ The number of buttons that the joystick possesses.
+
+
+
+ Gets the hat count.
+
+ The number of hats/dpads that the joystick possesses.
+
+
+
+ Describes joystick hat state.
+
+
+
+
+ Gets if joysticks hat "down" is pressed.
+
+ if the button is pressed otherwise, .
+
+
+
+ Gets if joysticks hat "left" is pressed.
+
+ if the button is pressed otherwise, .
+
+
+
+ Gets if joysticks hat "right" is pressed.
+
+ if the button is pressed otherwise, .
+
+
+
+ Gets if joysticks hat "up" is pressed.
+
+ if the button is pressed otherwise, .
+
+
+
+ Describes current joystick state.
+
+
+
+
+ Gets a value indicating whether the joystick is connected.
+
+ true if the joystick is connected; otherwise, false.
+
+
+
+ Gets the joystick axis values.
+
+ An array list of floats that indicate axis values.
+
+
+
+ Gets the joystick button values.
+
+ An array list of ButtonState that indicate button values.
+
+
+
+ Gets the joystick hat values.
+
+ An array list of that indicate hat values.
+
+
+
+ Displays the keyboard input interface asynchronously.
+
+ Title of the dialog box.
+ Description of the dialog box.
+ Default text displayed in the input area.
+ If password mode is enabled, the characters entered are not displayed.
+ Text entered by the player. Null if back was used.
+ Thrown when the message box is already visible
+
+
+ var name = await KeyboardInput.Show("Name", "What's your name?", "Player");
+
+
+
+
+
+ Hides the keyboard input interface and returns the parameter as the result of
+
+ Result to return
+ Thrown when the keyboard input is not visible
+
+
+ var nameTask = KeyboardInput.Show("Name", "What's your name?", "Player");
+ KeyboardInput.Cancel("John Doe");
+ var name = await nameTask;
+
+
+
+
+
+ Holds the state of keystrokes by a keyboard.
+
+
+
+
+ Initializes a new instance of the class.
+
+ List of keys to be flagged as pressed on initialization.
+ Caps Lock state.
+ Num Lock state.
+
+
+
+ Initializes a new instance of the class.
+
+ List of keys to be flagged as pressed on initialization.
+
+
+
+ Gets whether given key is currently being pressed.
+
+ The key to query.
+ true if the key is pressed; false otherwise.
+
+
+
+ Gets whether given key is currently being not pressed.
+
+ The key to query.
+ true if the key is not pressed; false otherwise.
+
+
+
+ Returns an array of values holding keys that are currently being pressed.
+
+ The keys that are currently being pressed.
+
+
+
+ Gets the hash code for instance.
+
+ Hash code of the object.
+
+
+
+ Compares whether two instances are equal.
+
+ instance to the left of the equality operator.
+ instance to the right of the equality operator.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether two instances are not equal.
+
+ instance to the left of the inequality operator.
+ instance to the right of the inequality operator.
+ true if the instances are different; false otherwise.
+
+
+
+ Compares whether current instance is equal to specified object.
+
+ The to compare.
+ true if the provided instance is same with current; false otherwise.
+
+
+
+ Gets the current state of the Caps Lock key.
+
+
+
+
+ Gets the current state of the Num Lock key.
+
+
+
+
+ Returns the state of a specified key.
+
+ The key to query.
+ The state of the key.
+
+
+
+ Defines the keys on a keyboard.
+
+
+
+
+ Reserved.
+
+
+
+
+ BACKSPACE key.
+
+
+
+
+ TAB key.
+
+
+
+
+ ENTER key.
+
+
+
+
+ CAPS LOCK key.
+
+
+
+
+ ESC key.
+
+
+
+
+ SPACEBAR key.
+
+
+
+
+ PAGE UP key.
+
+
+
+
+ PAGE DOWN key.
+
+
+
+
+ END key.
+
+
+
+
+ HOME key.
+
+
+
+
+ LEFT ARROW key.
+
+
+
+
+ UP ARROW key.
+
+
+
+
+ RIGHT ARROW key.
+
+
+
+
+ DOWN ARROW key.
+
+
+
+
+ SELECT key.
+
+
+
+
+ PRINT key.
+
+
+
+
+ EXECUTE key.
+
+
+
+
+ PRINT SCREEN key.
+
+
+
+
+ INS key.
+
+
+
+
+ DEL key.
+
+
+
+
+ HELP key.
+
+
+
+
+ Used for miscellaneous characters; it can vary by keyboard.
+
+
+
+
+ Used for miscellaneous characters; it can vary by keyboard.
+
+
+
+
+ Used for miscellaneous characters; it can vary by keyboard.
+
+
+
+
+ Used for miscellaneous characters; it can vary by keyboard.
+
+
+
+
+ Used for miscellaneous characters; it can vary by keyboard.
+
+
+
+
+ Used for miscellaneous characters; it can vary by keyboard.
+
+
+
+
+ Used for miscellaneous characters; it can vary by keyboard.
+
+
+
+
+ Used for miscellaneous characters; it can vary by keyboard.
+
+
+
+
+ Used for miscellaneous characters; it can vary by keyboard.
+
+
+
+
+ Used for miscellaneous characters; it can vary by keyboard.
+
+
+
+
+ A key.
+
+
+
+
+ B key.
+
+
+
+
+ C key.
+
+
+
+
+ D key.
+
+
+
+
+ E key.
+
+
+
+
+ F key.
+
+
+
+
+ G key.
+
+
+
+
+ H key.
+
+
+
+
+ I key.
+
+
+
+
+ J key.
+
+
+
+
+ K key.
+
+
+
+
+ L key.
+
+
+
+
+ M key.
+
+
+
+
+ N key.
+
+
+
+
+ O key.
+
+
+
+
+ P key.
+
+
+
+
+ Q key.
+
+
+
+
+ R key.
+
+
+
+
+ S key.
+
+
+
+
+ T key.
+
+
+
+
+ U key.
+
+
+
+
+ V key.
+
+
+
+
+ W key.
+
+
+
+
+ X key.
+
+
+
+
+ Y key.
+
+
+
+
+ Z key.
+
+
+
+
+ Left Windows key.
+
+
+
+
+ Right Windows key.
+
+
+
+
+ Applications key.
+
+
+
+
+ Computer Sleep key.
+
+
+
+
+ Numeric keypad 0 key.
+
+
+
+
+ Numeric keypad 1 key.
+
+
+
+
+ Numeric keypad 2 key.
+
+
+
+
+ Numeric keypad 3 key.
+
+
+
+
+ Numeric keypad 4 key.
+
+
+
+
+ Numeric keypad 5 key.
+
+
+
+
+ Numeric keypad 6 key.
+
+
+
+
+ Numeric keypad 7 key.
+
+
+
+
+ Numeric keypad 8 key.
+
+
+
+
+ Numeric keypad 9 key.
+
+
+
+
+ Multiply key.
+
+
+
+
+ Add key.
+
+
+
+
+ Separator key.
+
+
+
+
+ Subtract key.
+
+
+
+
+ Decimal key.
+
+
+
+
+ Divide key.
+
+
+
+
+ F1 key.
+
+
+
+
+ F2 key.
+
+
+
+
+ F3 key.
+
+
+
+
+ F4 key.
+
+
+
+
+ F5 key.
+
+
+
+
+ F6 key.
+
+
+
+
+ F7 key.
+
+
+
+
+ F8 key.
+
+
+
+
+ F9 key.
+
+
+
+
+ F10 key.
+
+
+
+
+ F11 key.
+
+
+
+
+ F12 key.
+
+
+
+
+ F13 key.
+
+
+
+
+ F14 key.
+
+
+
+
+ F15 key.
+
+
+
+
+ F16 key.
+
+
+
+
+ F17 key.
+
+
+
+
+ F18 key.
+
+
+
+
+ F19 key.
+
+
+
+
+ F20 key.
+
+
+
+
+ F21 key.
+
+
+
+
+ F22 key.
+
+
+
+
+ F23 key.
+
+
+
+
+ F24 key.
+
+
+
+
+ NUM LOCK key.
+
+
+
+
+ SCROLL LOCK key.
+
+
+
+
+ Left SHIFT key.
+
+
+
+
+ Right SHIFT key.
+
+
+
+
+ Left CONTROL key.
+
+
+
+
+ Right CONTROL key.
+
+
+
+
+ Left ALT key.
+
+
+
+
+ Right ALT key.
+
+
+
+
+ Browser Back key.
+
+
+
+
+ Browser Forward key.
+
+
+
+
+ Browser Refresh key.
+
+
+
+
+ Browser Stop key.
+
+
+
+
+ Browser Search key.
+
+
+
+
+ Browser Favorites key.
+
+
+
+
+ Browser Start and Home key.
+
+
+
+
+ Volume Mute key.
+
+
+
+
+ Volume Down key.
+
+
+
+
+ Volume Up key.
+
+
+
+
+ Next Track key.
+
+
+
+
+ Previous Track key.
+
+
+
+
+ Stop Media key.
+
+
+
+
+ Play/Pause Media key.
+
+
+
+
+ Start Mail key.
+
+
+
+
+ Select Media key.
+
+
+
+
+ Start Application 1 key.
+
+
+
+
+ Start Application 2 key.
+
+
+
+
+ The OEM Semicolon key on a US standard keyboard.
+
+
+
+
+ For any country/region, the '+' key.
+
+
+
+
+ For any country/region, the ',' key.
+
+
+
+
+ For any country/region, the '-' key.
+
+
+
+
+ For any country/region, the '.' key.
+
+
+
+
+ The OEM question mark key on a US standard keyboard.
+
+
+
+
+ The OEM tilde key on a US standard keyboard.
+
+
+
+
+ The OEM open bracket key on a US standard keyboard.
+
+
+
+
+ The OEM pipe key on a US standard keyboard.
+
+
+
+
+ The OEM close bracket key on a US standard keyboard.
+
+
+
+
+ The OEM singled/double quote key on a US standard keyboard.
+
+
+
+
+ Used for miscellaneous characters; it can vary by keyboard.
+
+
+
+
+ The OEM angle bracket or backslash key on the RT 102 key keyboard.
+
+
+
+
+ IME PROCESS key.
+
+
+
+
+ Attn key.
+
+
+
+
+ CrSel key.
+
+
+
+
+ ExSel key.
+
+
+
+
+ Erase EOF key.
+
+
+
+
+ Play key.
+
+
+
+
+ Zoom key.
+
+
+
+
+ PA1 key.
+
+
+
+
+ CLEAR key.
+
+
+
+
+ Green ChatPad key.
+
+
+
+
+ Orange ChatPad key.
+
+
+
+
+ PAUSE key.
+
+
+
+
+ IME Convert key.
+
+
+
+
+ IME NoConvert key.
+
+
+
+
+ Kana key on Japanese keyboards.
+
+
+
+
+ Kanji key on Japanese keyboards.
+
+
+
+
+ OEM Auto key.
+
+
+
+
+ OEM Copy key.
+
+
+
+
+ OEM Enlarge Window key.
+
+
+
+
+ Identifies the state of a keyboard key.
+
+
+
+
+ Key is released.
+
+
+
+
+ Key is pressed.
+
+
+
+
+ Displays the message box interface asynchronously.
+
+ Title of the message box.
+ Description of the message box.
+ Captions of the message box buttons. Up to three supported.
+ Index of button selected by the player. Null if back was used.
+ Thrown when the message box is already visible
+
+
+ var color = await MessageBox.Show("Color", "What's your favorite color?", new[] { "Red", "Green", "Blue" });
+
+
+
+
+
+ Hides the message box interface and returns the parameter as the result of
+
+ Result to return
+ Thrown when the message box is not visible
+
+
+ var colorTask = MessageBox.Show("Color", "What's your favorite color?", new[] { "Red", "Green", "Blue" });
+ MessageBox.Cancel(0);
+ var color = await colorTask;
+
+
+
+
+
+ Allows reading position and button click information from mouse.
+
+
+
+
+ This API is an extension to XNA.
+ Gets mouse state information that includes position and button
+ presses for the provided window
+
+ Current state of the mouse.
+
+
+
+ Gets mouse state information that includes position and button presses
+ for the primary window
+
+ Current state of the mouse.
+
+
+
+ Sets mouse cursor's relative position to game-window.
+
+ Relative horizontal position of the cursor.
+ Relative vertical position of the cursor.
+
+
+
+ Sets the cursor image to the specified MouseCursor.
+
+ Mouse cursor to use for the cursor image.
+
+
+
+ Gets or sets the window handle for current mouse processing.
+
+
+
+
+ Describes a mouse cursor.
+
+
+
+
+ Creates a mouse cursor from the specified texture.
+
+ Texture to use as the cursor image.
+ X cordinate of the image that will be used for mouse position.
+ Y cordinate of the image that will be used for mouse position.
+
+
+
+ Gets the default arrow cursor.
+
+
+
+
+ Gets the cursor that appears when the mouse is over text editing regions.
+
+
+
+
+ Gets the waiting cursor that appears while the application/system is busy.
+
+
+
+
+ Gets the crosshair ("+") cursor.
+
+
+
+
+ Gets the cross between Arrow and Wait cursors.
+
+
+
+
+ Gets the northwest/southeast ("\") cursor.
+
+
+
+
+ Gets the northeast/southwest ("/") cursor.
+
+
+
+
+ Gets the horizontal west/east ("-") cursor.
+
+
+
+
+ Gets the vertical north/south ("|") cursor.
+
+
+
+
+ Gets the size all cursor which points in all directions.
+
+
+
+
+ Gets the cursor that points that something is invalid, usually a cross.
+
+
+
+
+ Gets the hand cursor, usually used for web links.
+
+
+
+
+ Represents a mouse state with cursor position and button press information.
+
+
+
+
+ Initializes a new instance of the MouseState.
+
+ Horizontal position of the mouse in relation to the window.
+ Vertical position of the mouse in relation to the window.
+ Mouse scroll wheel's value.
+ Left mouse button's state.
+ Middle mouse button's state.
+ Right mouse button's state.
+ XBUTTON1's state.
+ XBUTTON2's state.
+ Normally should be used to get mouse current state. The constructor is provided for simulating mouse input.
+
+
+
+ Compares whether two MouseState instances are equal.
+
+ MouseState instance on the left of the equal sign.
+ MouseState instance on the right of the equal sign.
+ true if the instances are equal; false otherwise.
+
+
+
+ Compares whether two MouseState instances are not equal.
+
+ MouseState instance on the left of the equal sign.
+ MouseState instance on the right of the equal sign.
+ true if the objects are not equal; false otherwise.
+
+
+
+ Compares whether current instance is equal to specified object.
+
+ The MouseState to compare.
+
+
+
+
+ Gets the hash code for MouseState instance.
+
+ Hash code of the object.
+
+
+
+ Gets horizontal position of the cursor in relation to the window.
+
+
+
+
+ Gets vertical position of the cursor in relation to the window.
+
+
+
+
+ Gets cursor position.
+
+
+
+
+ Gets state of the left mouse button.
+
+
+
+
+ Gets state of the middle mouse button.
+
+
+
+
+ Gets state of the right mouse button.
+
+
+
+
+ Returns cumulative scroll wheel value since the game start.
+
+
+
+
+ Gets state of the XButton1.
+
+
+
+
+ Gets state of the XButton2.
+
+
+
+
+ Represents data from a multi-touch gesture over a span of time.
+
+
+
+
+ Initializes a new .
+
+
+
+
+
+
+
+
+
+
+ Gets the type of the gesture.
+
+
+
+
+ Gets the starting time for this multi-touch gesture sample.
+
+
+
+
+ Gets the position of the first touch-point in the gesture sample.
+
+
+
+
+ Gets the position of the second touch-point in the gesture sample.
+
+
+
+
+ Gets the delta information for the first touch-point in the gesture sample.
+
+
+
+
+ Gets the delta information for the second touch-point in the gesture sample.
+
+
+
+
+ Enumuration of values that represent different gestures that can be processed by .
+
+
+
+
+ No gestures.
+
+
+
+
+ The user touched a single point.
+
+
+
+
+ States completion of a drag gesture(VerticalDrag, HorizontalDrag, or FreeDrag).
+
+ No position or delta information is available for this sample.
+
+
+
+ States that a touch was combined with a quick swipe.
+
+ Flicks does not contain position information. The velocity of it can be read from
+
+
+
+ The use touched a point and then performed a free-form drag.
+
+
+
+
+ The use touched a single point for approximately one second.
+
+ As this is a single event, it will not be contionusly fired while the user is holding the touch-point.
+
+
+
+ The user touched the screen and performed either left to right or right to left drag gesture.
+
+
+
+
+ The user either converged or diverged two touch-points on the screen which is like a two-finger drag.
+
+ When this gesture-type is enabled and two fingers are down, it takes precedence over drag gestures.
+
+
+
+ An in-progress pinch operation was completed.
+
+ No position or delta information is available for this sample.
+
+
+
+ The user tapped the device twice which is always preceded by a Tap gesture.
+
+ If the time between two touchs are long enough, insted two seperate single Tap gestures will be generated.
+
+
+
+ The user touched the screen and performed either top to bottom or bottom to top drag gesture.
+
+
+
+
+ Provides state information for a touch screen enabled device.
+
+
+
+
+ Initializes a new instance of the with a pre-determined set of touch locations.
+
+ Array of items to initialize with.
+
+
+
+ Returns specified by ID.
+
+
+
+
+
+
+
+ Returns the index of the first occurrence of specified item in the collection.
+
+ to query.
+
+
+
+
+ Inserts a item into the indicated position.
+
+ The position to insert into.
+ The item to insert.
+
+
+
+ Removes the item at specified index.
+
+ Index of the item that will be removed from collection.
+
+
+
+ Adds a to the collection.
+
+ The item to be added.
+
+
+
+ Clears all the items in collection.
+
+
+
+
+ Returns true if specified item exists in the collection, false otherwise./>
+
+ The item to query for.
+ Returns true if queried item is found, false otherwise.
+
+
+
+ Copies the collection to specified array starting from the given index.
+
+ The array to copy items.
+ The starting index of the copy operation.
+
+
+
+ Removes the specified item from the collection.
+
+ The item to remove.
+
+
+
+
+ Returns an enumerator for the .
+
+ Enumerable list of objects.
+
+
+
+ Returns an enumerator for the .
+
+ Enumerable list of objects.
+
+
+
+ Returns an enumerator for the .
+
+ Enumerable list of objects.
+
+
+
+ States if a touch screen is available.
+
+
+
+
+ States if touch collection is read only.
+
+
+
+
+ Gets or sets the item at the specified index of the collection.
+
+ Position of the item.
+
+
+
+
+ Returns the number of items that exist in the collection.
+
+
+
+
+ Provides the ability to iterate through the TouchLocations in an TouchCollection.
+
+
+
+
+ Advances the enumerator to the next element of the TouchCollection.
+
+
+
+
+ Immediately releases the unmanaged resources used by this object.
+
+
+
+
+ Gets the current element in the TouchCollection.
+
+
+
+
+ Attributes
+
+
+
+
+ True if this touch was pressed and released on the same frame.
+ In this case we will keep it around for the user to get by GetState that frame.
+ However if they do not call GetState that frame, this touch will be forgotten.
+
+
+
+
+ Helper for assigning an invalid touch location.
+
+
+
+
+ Returns a copy of the touch with the state changed to moved.
+
+ The new touch location.
+
+
+
+ Updates the touch location using the new event.
+
+ The next event for this touch location.
+
+
+
+ Holds the possible state information for a touch location..
+
+
+
+
+ This touch location position is invalid.
+
+ Typically, you will encounter this state when a new touch location attempts to get the previous state of itself.
+
+
+
+ This touch location position was updated or pressed at the same position.
+
+
+
+
+ This touch location position is new.
+
+
+
+
+ This touch location position was released.
+
+
+
+
+ Allows retrieval of information from Touch Panel device.
+
+
+
+
+ Gets the current state of the touch panel.
+
+
+
+
+
+ Returns the next available gesture on touch panel device.
+
+
+
+
+
+ The window handle of the touch panel. Purely for Xna compatibility.
+
+
+
+
+ Gets or sets the display height of the touch panel.
+
+
+
+
+ Gets or sets the display orientation of the touch panel.
+
+
+
+
+ Gets or sets the display width of the touch panel.
+
+
+
+
+ Gets or sets enabled gestures.
+
+
+
+
+ Returns true if a touch gesture is available.
+
+
+
+
+ Allows retrieval of capabilities information from touch panel device.
+
+
+
+
+ Returns true if a device is available for use.
+
+
+
+
+ Returns the maximum number of touch locations tracked by the touch panel device.
+
+
+
+
+ The reserved touchId for all mouse touch points.
+
+
+
+
+ Maximum distance a touch location can wiggle and
+ not be considered to have moved.
+
+
+
+
+ The current touch state.
+
+
+
+
+ The current gesture state.
+
+
+
+
+ The positional scale to apply to touch input.
+
+
+
+
+ The current size of the display.
+
+
+
+
+ The next touch location identifier.
+ The value 1 is reserved for the mouse touch point.
+
+
+
+
+ The mapping between platform specific touch ids
+ and the touch ids we assign to touch locations.
+
+
+
+
+ Returns capabilities of touch panel device.
+
+
+
+
+
+ Age all the touches, so any that were Pressed become Moved, and any that were Released are removed
+
+
+
+
+ Apply the given new touch to the state. If it is a Pressed it will be added as a new touch, otherwise we update the existing touch it matches
+
+
+
+
+ This will release all touch locations. It should only be
+ called on platforms where touch state is reset all at once.
+
+
+
+
+ Returns the next available gesture on touch panel device.
+
+
+
+
+
+ The pinch touch locations.
+
+
+
+
+ If true the pinch touch locations are valid and
+ a pinch gesture has begun.
+
+
+
+
+ Used to disable emitting of tap gestures.
+
+
+
+
+ Used to disable emitting of hold gestures.
+
+
+
+
+ The current timestamp that we use for setting the timestamp of new TouchLocations
+
+
+
+
+ The window handle of the touch panel. Purely for Xna compatibility.
+
+
+
+
+ Gets or sets the display height of the touch panel.
+
+
+
+
+ Gets or sets the display orientation of the touch panel.
+
+
+
+
+ Gets or sets the display width of the touch panel.
+
+
+
+
+ Gets or sets enabled gestures.
+
+
+
+
+ Returns true if a touch gesture is available.
+
+
+
+
+ Immediately releases the unmanaged resources used by this object.
+
+
+
+
+ Returns a String representation of this Album.
+
+
+
+
+ Gets the hash code for this instance.
+
+
+
+
+ Gets the duration of the Album.
+
+
+
+
+ Gets the Genre of the Album.
+
+
+
+
+ Gets a value indicating whether the Album has associated album art.
+
+
+
+
+ Gets a value indicating whether the object is disposed.
+
+
+
+
+ Gets the name of the Album.
+
+
+
+
+ Gets a SongCollection that contains the songs on the album.
+
+
+
+
+ Immediately releases the unmanaged resources used by this object.
+
+
+
+
+ Gets the number of Album objects in the AlbumCollection.
+
+
+
+
+ Gets a value indicating whether the object is disposed.
+
+
+
+
+ Gets the Album at the specified index in the AlbumCollection.
+
+ Index of the Album to get.
+
+
+
+ Immediately releases the unmanaged resources used by this object.
+
+
+
+
+ Returns a String representation of the Artist.
+
+
+
+
+ Gets the hash code for this instance.
+
+
+
+
+ Gets the AlbumCollection for the Artist.
+
+
+
+
+ Gets a value indicating whether the object is disposed.
+
+
+
+
+ Gets the name of the Artist.
+
+
+
+
+ Gets the SongCollection for the Artist.
+
+
+
+
+ Immediately releases the unmanaged resources used by this object.
+
+
+
+
+ Returns a String representation of the Genre.
+
+
+
+
+ Gets the hash code for this instance.
+
+
+
+
+ Gets the AlbumCollection for the Genre.
+
+
+
+
+ Gets a value indicating whether the object is disposed.
+
+
+
+
+ Gets the name of the Genre.
+
+
+
+
+ Gets the SongCollection for the Genre.
+
+
+
+
+ Load the contents of MediaLibrary. This blocking call might take up to a few minutes depending on the platform and the size of the user's music library.
+
+ Callback that reports back the progress of the music library loading in percents (0-100).
+
+
+
+ Play clears the current playback queue, and then queues up the specified song for playback.
+ Playback starts immediately at the beginning of the song.
+
+
+
+
+ Play clears the current playback queue, and then queues up the specified song for playback.
+ Playback starts immediately at the given position of the song.
+
+
+
+
+ Set the event handler for "Finished Playing". Done this way to prevent multiple bindings.
+
+
+
+
+ Gets the Album on which the Song appears.
+
+
+
+
+ Gets the Artist of the Song.
+
+
+
+
+ Gets the Genre of the Song.
+
+
+
+
+ Type of sounds in a video
+
+
+
+
+ This video contains only music.
+
+
+
+
+ This video contains only dialog.
+
+
+
+
+ This video contains music and dialog.
+
+
+
+
+ Represents a video.
+
+
+ Represents a video.
+
+
+
+
+ I actually think this is a file PATH...
+
+
+
+
+ Gets the duration of the Video.
+
+
+
+
+ Gets the frame rate of this video.
+
+
+
+
+ Gets the height of this video, in pixels.
+
+
+
+
+ Gets the VideoSoundtrackType for this video.
+
+
+
+
+ Gets the width of this video, in pixels.
+
+
+
+
+ Retrieves a Texture2D containing the current frame of video being played.
+
+ The current frame of video.
+ Thrown if no video is set on the player
+ Thrown if the platform was unable to get a texture in a reasonable amount of time. Often the platform specific media code is running
+ in a different thread or process. Note: This may be a change from XNA behaviour
+
+
+
+ Pauses the currently playing video.
+
+
+
+
+ Plays a Video.
+
+ Video to play.
+
+
+
+ Resumes a paused video.
+
+
+
+
+ Stops playing a video.
+
+
+
+
+ Immediately releases the unmanaged resources used by this object.
+
+
+
+
+ Gets a value that indicates whether the object is disposed.
+
+
+
+
+ Gets a value that indicates whether the player is playing video in a loop.
+
+
+
+
+ Gets or sets the muted setting for the video player.
+
+
+
+
+ Gets the play position within the currently playing video.
+
+
+
+
+ Gets the media playback state, MediaState.
+
+
+
+
+ Gets the Video that is currently playing.
+
+
+
+
+ Video player volume, from 0.0f (silence) to 1.0f (full volume relative to the current device volume).
+
+
+
+
+ The exception that may be thrown during a call to Start() or Stop(). The Message field describes the reason for the exception and the ErrorId field contains the error code from the underlying native code implementation of the accelerometer framework.
+
+
+
+
+ Initializes a new instance of AccelerometerFailedException
+
+ The descriptive reason for the exception
+ The native error code that caused the exception
+
+
+
+ Provides data for Calibrate and events.
+
+
+
+
+ Initializes a new instance of the CalibrationEventArgs class.
+
+
+ Obtain a CalibrationEventArgs object by implementing a handler for the Compass.Calibrate event.
+
+
+
+
+ Derived classes override this method to dispose of managed and unmanaged resources.
+
+ True if unmanaged resources are to be disposed.
+
+
+
+ Compute a hash from a byte array.
+
+
+ Modified FNV Hash in C#
+ http://stackoverflow.com/a/468084
+
+
+
+
+ Compute a hash from the content of a stream and restore the position.
+
+
+ Modified FNV Hash in C#
+ http://stackoverflow.com/a/468084
+
+
+
+
+ Combines the filePath and relativeFile based on relativeFile being a file in the same location as filePath.
+ Relative directory operators (..) are also resolved
+
+ "A\B\C.txt","D.txt" becomes "A\B\D.txt"
+ "A\B\C.txt","..\D.txt" becomes "A\D.txt"
+ Path to the file we are starting from
+ Relative location of another file to resolve the path to
+
+
+
+ Returns true if the given type represents a non-object type that is not abstract.
+
+
+
+
+ Returns true if the get method of the given property exist and are public.
+ Note that we allow a getter-only property to be serialized (and deserialized),
+ *if* CanDeserializeIntoExistingObject is true for the property type.
+
+
+
+
+ Returns true if the given type can be assigned the given value
+
+
+
+
+ Returns true if the given type can be assigned a value with the given object type
+
+
+
+
+ Fallback handler for Marshal.SizeOf(type)
+
+
+
+
+ Generics handler for Marshal.SizeOf
+
+
+
+
+ Represents a Zlib stream for compression or decompression.
+
+
+
+
+ The ZlibStream is a Decorator on a . It adds ZLIB compression or decompression to any
+ stream.
+
+
+ Using this stream, applications can compress or decompress data via
+ stream Read() and Write() operations. Either compression or
+ decompression can occur through either reading or writing. The compression
+ format used is ZLIB, which is documented in IETF RFC 1950, "ZLIB Compressed
+ Data Format Specification version 3.3". This implementation of ZLIB always uses
+ DEFLATE as the compression method. (see IETF RFC 1951, "DEFLATE
+ Compressed Data Format Specification version 1.3.")
+
+
+ The ZLIB format allows for varying compression methods, window sizes, and dictionaries.
+ This implementation always uses the DEFLATE compression method, a preset dictionary,
+ and 15 window bits by default.
+
+
+
+ This class is similar to DeflateStream, except that it adds the
+ RFC1950 header and trailer bytes to a compressed stream when compressing, or expects
+ the RFC1950 header and trailer bytes when decompressing. It is also similar to the
+ .
+
+
+
+
+
+
+ Create a ZlibStream using the specified CompressionMode.
+
+
+
+
+ When mode is CompressionMode.Compress, the ZlibStream
+ will use the default compression level. The "captive" stream will be
+ closed when the ZlibStream is closed.
+
+
+
+
+
+ This example uses a ZlibStream to compress a file, and writes the
+ compressed data to another file.
+
+ using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
+ {
+ using (var raw = System.IO.File.Create(fileToCompress + ".zlib"))
+ {
+ using (Stream compressor = new ZlibStream(raw, CompressionMode.Compress))
+ {
+ byte[] buffer = new byte[WORKING_BUFFER_SIZE];
+ int n;
+ while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
+ {
+ compressor.Write(buffer, 0, n);
+ }
+ }
+ }
+ }
+
+
+ Using input As Stream = File.OpenRead(fileToCompress)
+ Using raw As FileStream = File.Create(fileToCompress & ".zlib")
+ Using compressor As Stream = New ZlibStream(raw, CompressionMode.Compress)
+ Dim buffer As Byte() = New Byte(4096) {}
+ Dim n As Integer = -1
+ Do While (n <> 0)
+ If (n > 0) Then
+ compressor.Write(buffer, 0, n)
+ End If
+ n = input.Read(buffer, 0, buffer.Length)
+ Loop
+ End Using
+ End Using
+ End Using
+
+
+
+ The stream which will be read or written.
+ Indicates whether the ZlibStream will compress or decompress.
+
+
+
+ Create a ZlibStream using the specified CompressionMode and
+ the specified CompressionLevel.
+
+
+
+
+
+ When mode is CompressionMode.Decompress, the level parameter is ignored.
+ The "captive" stream will be closed when the ZlibStream is closed.
+
+
+
+
+
+ This example uses a ZlibStream to compress data from a file, and writes the
+ compressed data to another file.
+
+
+ using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
+ {
+ using (var raw = System.IO.File.Create(fileToCompress + ".zlib"))
+ {
+ using (Stream compressor = new ZlibStream(raw,
+ CompressionMode.Compress,
+ CompressionLevel.BestCompression))
+ {
+ byte[] buffer = new byte[WORKING_BUFFER_SIZE];
+ int n;
+ while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
+ {
+ compressor.Write(buffer, 0, n);
+ }
+ }
+ }
+ }
+
+
+
+ Using input As Stream = File.OpenRead(fileToCompress)
+ Using raw As FileStream = File.Create(fileToCompress & ".zlib")
+ Using compressor As Stream = New ZlibStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression)
+ Dim buffer As Byte() = New Byte(4096) {}
+ Dim n As Integer = -1
+ Do While (n <> 0)
+ If (n > 0) Then
+ compressor.Write(buffer, 0, n)
+ End If
+ n = input.Read(buffer, 0, buffer.Length)
+ Loop
+ End Using
+ End Using
+ End Using
+
+
+
+ The stream to be read or written while deflating or inflating.
+ Indicates whether the ZlibStream will compress or decompress.
+ A tuning knob to trade speed for effectiveness.
+
+
+
+ Create a ZlibStream using the specified CompressionMode, and
+ explicitly specify whether the captive stream should be left open after
+ Deflation or Inflation.
+
+
+
+
+
+ When mode is CompressionMode.Compress, the ZlibStream will use
+ the default compression level.
+
+
+
+ This constructor allows the application to request that the captive stream
+ remain open after the deflation or inflation occurs. By default, after
+ Close() is called on the stream, the captive stream is also
+ closed. In some cases this is not desired, for example if the stream is a
+ that will be re-read after
+ compression. Specify true for the parameter to leave the stream
+ open.
+
+
+
+ See the other overloads of this constructor for example code.
+
+
+
+
+ The stream which will be read or written. This is called the
+ "captive" stream in other places in this documentation.
+ Indicates whether the ZlibStream will compress or decompress.
+ true if the application would like the stream to remain
+ open after inflation/deflation.
+
+
+
+ Create a ZlibStream using the specified CompressionMode
+ and the specified CompressionLevel, and explicitly specify
+ whether the stream should be left open after Deflation or Inflation.
+
+
+
+
+
+ This constructor allows the application to request that the captive
+ stream remain open after the deflation or inflation occurs. By
+ default, after Close() is called on the stream, the captive
+ stream is also closed. In some cases this is not desired, for example
+ if the stream is a that will be
+ re-read after compression. Specify true for the parameter to leave the stream open.
+
+
+
+ When mode is CompressionMode.Decompress, the level parameter is
+ ignored.
+
+
+
+
+
+
+ This example shows how to use a ZlibStream to compress the data from a file,
+ and store the result into another file. The filestream remains open to allow
+ additional data to be written to it.
+
+
+ using (var output = System.IO.File.Create(fileToCompress + ".zlib"))
+ {
+ using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
+ {
+ using (Stream compressor = new ZlibStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, true))
+ {
+ byte[] buffer = new byte[WORKING_BUFFER_SIZE];
+ int n;
+ while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
+ {
+ compressor.Write(buffer, 0, n);
+ }
+ }
+ }
+ // can write additional data to the output stream here
+ }
+
+
+ Using output As FileStream = File.Create(fileToCompress & ".zlib")
+ Using input As Stream = File.OpenRead(fileToCompress)
+ Using compressor As Stream = New ZlibStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, True)
+ Dim buffer As Byte() = New Byte(4096) {}
+ Dim n As Integer = -1
+ Do While (n <> 0)
+ If (n > 0) Then
+ compressor.Write(buffer, 0, n)
+ End If
+ n = input.Read(buffer, 0, buffer.Length)
+ Loop
+ End Using
+ End Using
+ ' can write additional data to the output stream here.
+ End Using
+
+
+
+ The stream which will be read or written.
+
+ Indicates whether the ZlibStream will compress or decompress.
+
+
+ true if the application would like the stream to remain open after
+ inflation/deflation.
+
+
+
+ A tuning knob to trade speed for effectiveness. This parameter is
+ effective only when mode is CompressionMode.Compress.
+
+
+
+
+ Dispose the stream.
+
+
+
+ This may or may not result in a Close() call on the captive
+ stream. See the constructors that have a leaveOpen parameter
+ for more information.
+
+
+ This method may be invoked in two distinct scenarios. If disposing
+ == true, the method has been called directly or indirectly by a
+ user's code, for example via the public Dispose() method. In this
+ case, both managed and unmanaged resources can be referenced and
+ disposed. If disposing == false, the method has been called by the
+ runtime from inside the object finalizer and this method should not
+ reference other objects; in that case only unmanaged resources must
+ be referenced or disposed.
+
+
+
+ indicates whether the Dispose method was invoked by user code.
+
+
+
+
+ Flush the stream.
+
+
+
+
+ Read data from the stream.
+
+
+
+
+
+ If you wish to use the ZlibStream to compress data while reading,
+ you can create a ZlibStream with CompressionMode.Compress,
+ providing an uncompressed data stream. Then call Read() on that
+ ZlibStream, and the data read will be compressed. If you wish to
+ use the ZlibStream to decompress data while reading, you can create
+ a ZlibStream with CompressionMode.Decompress, providing a
+ readable compressed data stream. Then call Read() on that
+ ZlibStream, and the data will be decompressed as it is read.
+
+
+
+ A ZlibStream can be used for Read() or Write(), but
+ not both.
+
+
+
+
+
+ The buffer into which the read data should be placed.
+
+
+ the offset within that data array to put the first byte read.
+
+ the number of bytes to read.
+
+ the number of bytes read
+
+
+
+ Calling this method always throws a .
+
+
+ The offset to seek to....
+ IF THIS METHOD ACTUALLY DID ANYTHING.
+
+
+ The reference specifying how to apply the offset.... IF
+ THIS METHOD ACTUALLY DID ANYTHING.
+
+
+ nothing. This method always throws.
+
+
+
+ Calling this method always throws a .
+
+
+ The new value for the stream length.... IF
+ THIS METHOD ACTUALLY DID ANYTHING.
+
+
+
+
+ Write data to the stream.
+
+
+
+
+
+ If you wish to use the ZlibStream to compress data while writing,
+ you can create a ZlibStream with CompressionMode.Compress,
+ and a writable output stream. Then call Write() on that
+ ZlibStream, providing uncompressed data as input. The data sent to
+ the output stream will be the compressed form of the data written. If you
+ wish to use the ZlibStream to decompress data while writing, you
+ can create a ZlibStream with CompressionMode.Decompress, and a
+ writable output stream. Then call Write() on that stream,
+ providing previously compressed data. The data sent to the output stream
+ will be the decompressed form of the data written.
+
+
+
+ A ZlibStream can be used for Read() or Write(), but not both.
+
+
+ The buffer holding data to write to the stream.
+ the offset within that data array to find the first byte to write.
+ the number of bytes to write.
+
+
+
+ Compress a string into a byte array using ZLIB.
+
+
+
+ Uncompress it with .
+
+
+
+
+
+
+
+ A string to compress. The string will first be encoded
+ using UTF8, then compressed.
+
+
+ The string in compressed form
+
+
+
+ Compress a byte array into a new byte array using ZLIB.
+
+
+
+ Uncompress it with .
+
+
+
+
+
+
+ A buffer to compress.
+
+
+ The data in compressed form
+
+
+
+ Uncompress a ZLIB-compressed byte array into a single string.
+
+
+
+
+
+
+ A buffer containing ZLIB-compressed data.
+
+
+ The uncompressed string
+
+
+
+ Uncompress a ZLIB-compressed byte array into a byte array.
+
+
+
+
+
+
+ A buffer containing ZLIB-compressed data.
+
+
+ The data in uncompressed form
+
+
+
+ This property sets the flush behavior on the stream.
+ Sorry, though, not sure exactly how to describe all the various settings.
+
+
+
+
+ The size of the working buffer for the compression codec.
+
+
+
+
+ The working buffer is used for all stream operations. The default size is
+ 1024 bytes. The minimum size is 128 bytes. You may get better performance
+ with a larger buffer. Then again, you might not. You would have to test
+ it.
+
+
+
+ Set this before the first call to Read() or Write() on the
+ stream. If you try to set it afterwards, it will throw.
+
+
+
+
+ Returns the total number of bytes input so far.
+
+
+ Returns the total number of bytes output so far.
+
+
+
+ Indicates whether the stream can be read.
+
+
+ The return value depends on whether the captive stream supports reading.
+
+
+
+
+ Indicates whether the stream supports Seek operations.
+
+
+ Always returns false.
+
+
+
+
+ Indicates whether the stream can be written.
+
+
+ The return value depends on whether the captive stream supports writing.
+
+
+
+
+ Reading this property always throws a .
+
+
+
+
+ The position of the stream pointer.
+
+
+
+ Setting this property always throws a . Reading will return the total bytes
+ written out, if used in writing, or the total bytes read in, if used in
+ reading. The count may refer to compressed bytes or uncompressed bytes,
+ depending on how you've used the stream.
+
+
+
+
+ A bunch of constants used in the Zlib interface.
+
+
+
+
+ The maximum number of window bits for the Deflate algorithm.
+
+
+
+
+ The default number of window bits for the Deflate algorithm.
+
+
+
+
+ indicates everything is A-OK
+
+
+
+
+ Indicates that the last operation reached the end of the stream.
+
+
+
+
+ The operation ended in need of a dictionary.
+
+
+
+
+ There was an error with the stream - not enough data, not open and readable, etc.
+
+
+
+
+ There was an error with the data - not enough data, bad data, etc.
+
+
+
+
+ There was an error with the working buffer.
+
+
+
+
+ The size of the working buffer used in the ZlibCodec class. Defaults to 8192 bytes.
+
+
+
+
+ The minimum size of the working buffer used in the ZlibCodec class. Currently it is 128 bytes.
+
+
+
+
+ Encoder and Decoder for ZLIB and DEFLATE (IETF RFC1950 and RFC1951).
+
+
+
+ This class compresses and decompresses data according to the Deflate algorithm
+ and optionally, the ZLIB format, as documented in RFC 1950 - ZLIB and RFC 1951 - DEFLATE.
+
+
+
+
+ The buffer from which data is taken.
+
+
+
+
+ An index into the InputBuffer array, indicating where to start reading.
+
+
+
+
+ The number of bytes available in the InputBuffer, starting at NextIn.
+
+
+ Generally you should set this to InputBuffer.Length before the first Inflate() or Deflate() call.
+ The class will update this number as calls to Inflate/Deflate are made.
+
+
+
+
+ Total number of bytes read so far, through all calls to Inflate()/Deflate().
+
+
+
+
+ Buffer to store output data.
+
+
+
+
+ An index into the OutputBuffer array, indicating where to start writing.
+
+
+
+
+ The number of bytes available in the OutputBuffer, starting at NextOut.
+
+
+ Generally you should set this to OutputBuffer.Length before the first Inflate() or Deflate() call.
+ The class will update this number as calls to Inflate/Deflate are made.
+
+
+
+
+ Total number of bytes written to the output so far, through all calls to Inflate()/Deflate().
+
+
+
+
+ used for diagnostics, when something goes wrong!
+
+
+
+
+ The compression level to use in this codec. Useful only in compression mode.
+
+
+
+
+ The number of Window Bits to use.
+
+
+ This gauges the size of the sliding window, and hence the
+ compression effectiveness as well as memory consumption. It's best to just leave this
+ setting alone if you don't know what it is. The maximum value is 15 bits, which implies
+ a 32k window.
+
+
+
+
+ The compression strategy to use.
+
+
+ This is only effective in compression. The theory offered by ZLIB is that different
+ strategies could potentially produce significant differences in compression behavior
+ for different data sets. Unfortunately I don't have any good recommendations for how
+ to set it differently. When I tested changing the strategy I got minimally different
+ compression performance. It's best to leave this property alone if you don't have a
+ good feel for it. Or, you may want to produce a test harness that runs through the
+ different strategy options and evaluates them on different file types. If you do that,
+ let me know your results.
+
+
+
+
+ Create a ZlibCodec.
+
+
+ If you use this default constructor, you will later have to explicitly call
+ InitializeInflate() or InitializeDeflate() before using the ZlibCodec to compress
+ or decompress.
+
+
+
+
+ Create a ZlibCodec that either compresses or decompresses.
+
+
+ Indicates whether the codec should compress (deflate) or decompress (inflate).
+
+
+
+
+ Initialize the inflation state.
+
+
+ It is not necessary to call this before using the ZlibCodec to inflate data;
+ It is implicitly called when you call the constructor.
+
+ Z_OK if everything goes well.
+
+
+
+ Initialize the inflation state with an explicit flag to
+ govern the handling of RFC1950 header bytes.
+
+
+
+ By default, the ZLIB header defined in RFC 1950 is expected. If
+ you want to read a zlib stream you should specify true for
+ expectRfc1950Header. If you have a deflate stream, you will want to specify
+ false. It is only necessary to invoke this initializer explicitly if you
+ want to specify false.
+
+
+ whether to expect an RFC1950 header byte
+ pair when reading the stream of data to be inflated.
+
+ Z_OK if everything goes well.
+
+
+
+ Initialize the ZlibCodec for inflation, with the specified number of window bits.
+
+ The number of window bits to use. If you need to ask what that is,
+ then you shouldn't be calling this initializer.
+ Z_OK if all goes well.
+
+
+
+ Initialize the inflation state with an explicit flag to govern the handling of
+ RFC1950 header bytes.
+
+
+
+ If you want to read a zlib stream you should specify true for
+ expectRfc1950Header. In this case, the library will expect to find a ZLIB
+ header, as defined in RFC
+ 1950, in the compressed stream. If you will be reading a DEFLATE or
+ GZIP stream, which does not have such a header, you will want to specify
+ false.
+
+
+ whether to expect an RFC1950 header byte pair when reading
+ the stream of data to be inflated.
+ The number of window bits to use. If you need to ask what that is,
+ then you shouldn't be calling this initializer.
+ Z_OK if everything goes well.
+
+
+
+ Inflate the data in the InputBuffer, placing the result in the OutputBuffer.
+
+
+ You must have set InputBuffer and OutputBuffer, NextIn and NextOut, and AvailableBytesIn and
+ AvailableBytesOut before calling this method.
+
+
+
+ private void InflateBuffer()
+ {
+ int bufferSize = 1024;
+ byte[] buffer = new byte[bufferSize];
+ ZlibCodec decompressor = new ZlibCodec();
+
+ Console.WriteLine("\n============================================");
+ Console.WriteLine("Size of Buffer to Inflate: {0} bytes.", CompressedBytes.Length);
+ MemoryStream ms = new MemoryStream(DecompressedBytes);
+
+ int rc = decompressor.InitializeInflate();
+
+ decompressor.InputBuffer = CompressedBytes;
+ decompressor.NextIn = 0;
+ decompressor.AvailableBytesIn = CompressedBytes.Length;
+
+ decompressor.OutputBuffer = buffer;
+
+ // pass 1: inflate
+ do
+ {
+ decompressor.NextOut = 0;
+ decompressor.AvailableBytesOut = buffer.Length;
+ rc = decompressor.Inflate(FlushType.None);
+
+ if (rc != ZlibConstants.Z_OK && rc != ZlibConstants.Z_STREAM_END)
+ throw new Exception("inflating: " + decompressor.Message);
+
+ ms.Write(decompressor.OutputBuffer, 0, buffer.Length - decompressor.AvailableBytesOut);
+ }
+ while (decompressor.AvailableBytesIn > 0 || decompressor.AvailableBytesOut == 0);
+
+ // pass 2: finish and flush
+ do
+ {
+ decompressor.NextOut = 0;
+ decompressor.AvailableBytesOut = buffer.Length;
+ rc = decompressor.Inflate(FlushType.Finish);
+
+ if (rc != ZlibConstants.Z_STREAM_END && rc != ZlibConstants.Z_OK)
+ throw new Exception("inflating: " + decompressor.Message);
+
+ if (buffer.Length - decompressor.AvailableBytesOut > 0)
+ ms.Write(buffer, 0, buffer.Length - decompressor.AvailableBytesOut);
+ }
+ while (decompressor.AvailableBytesIn > 0 || decompressor.AvailableBytesOut == 0);
+
+ decompressor.EndInflate();
+ }
+
+
+
+ The flush to use when inflating.
+ Z_OK if everything goes well.
+
+
+
+ Ends an inflation session.
+
+
+ Call this after successively calling Inflate(). This will cause all buffers to be flushed.
+ After calling this you cannot call Inflate() without a intervening call to one of the
+ InitializeInflate() overloads.
+
+ Z_OK if everything goes well.
+
+
+
+ I don't know what this does!
+
+ Z_OK if everything goes well.
+
+
+
+ Initialize the ZlibCodec for deflation operation.
+
+
+ The codec will use the MAX window bits and the default level of compression.
+
+
+
+ int bufferSize = 40000;
+ byte[] CompressedBytes = new byte[bufferSize];
+ byte[] DecompressedBytes = new byte[bufferSize];
+
+ ZlibCodec compressor = new ZlibCodec();
+
+ compressor.InitializeDeflate(CompressionLevel.Default);
+
+ compressor.InputBuffer = System.Text.ASCIIEncoding.ASCII.GetBytes(TextToCompress);
+ compressor.NextIn = 0;
+ compressor.AvailableBytesIn = compressor.InputBuffer.Length;
+
+ compressor.OutputBuffer = CompressedBytes;
+ compressor.NextOut = 0;
+ compressor.AvailableBytesOut = CompressedBytes.Length;
+
+ while (compressor.TotalBytesIn != TextToCompress.Length && compressor.TotalBytesOut < bufferSize)
+ {
+ compressor.Deflate(FlushType.None);
+ }
+
+ while (true)
+ {
+ int rc= compressor.Deflate(FlushType.Finish);
+ if (rc == ZlibConstants.Z_STREAM_END) break;
+ }
+
+ compressor.EndDeflate();
+
+
+
+ Z_OK if all goes well. You generally don't need to check the return code.
+
+
+
+ Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel.
+
+
+ The codec will use the maximum window bits (15) and the specified
+ CompressionLevel. It will emit a ZLIB stream as it compresses.
+
+ The compression level for the codec.
+ Z_OK if all goes well.
+
+
+
+ Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel,
+ and the explicit flag governing whether to emit an RFC1950 header byte pair.
+
+
+ The codec will use the maximum window bits (15) and the specified CompressionLevel.
+ If you want to generate a zlib stream, you should specify true for
+ wantRfc1950Header. In this case, the library will emit a ZLIB
+ header, as defined in RFC
+ 1950, in the compressed stream.
+
+ The compression level for the codec.
+ whether to emit an initial RFC1950 byte pair in the compressed stream.
+ Z_OK if all goes well.
+
+
+
+ Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel,
+ and the specified number of window bits.
+
+
+ The codec will use the specified number of window bits and the specified CompressionLevel.
+
+ The compression level for the codec.
+ the number of window bits to use. If you don't know what this means, don't use this method.
+ Z_OK if all goes well.
+
+
+
+ Initialize the ZlibCodec for deflation operation, using the specified
+ CompressionLevel, the specified number of window bits, and the explicit flag
+ governing whether to emit an RFC1950 header byte pair.
+
+
+ The compression level for the codec.
+ whether to emit an initial RFC1950 byte pair in the compressed stream.
+ the number of window bits to use. If you don't know what this means, don't use this method.
+ Z_OK if all goes well.
+
+
+
+ Deflate one batch of data.
+
+
+ You must have set InputBuffer and OutputBuffer before calling this method.
+
+
+
+ private void DeflateBuffer(CompressionLevel level)
+ {
+ int bufferSize = 1024;
+ byte[] buffer = new byte[bufferSize];
+ ZlibCodec compressor = new ZlibCodec();
+
+ Console.WriteLine("\n============================================");
+ Console.WriteLine("Size of Buffer to Deflate: {0} bytes.", UncompressedBytes.Length);
+ MemoryStream ms = new MemoryStream();
+
+ int rc = compressor.InitializeDeflate(level);
+
+ compressor.InputBuffer = UncompressedBytes;
+ compressor.NextIn = 0;
+ compressor.AvailableBytesIn = UncompressedBytes.Length;
+
+ compressor.OutputBuffer = buffer;
+
+ // pass 1: deflate
+ do
+ {
+ compressor.NextOut = 0;
+ compressor.AvailableBytesOut = buffer.Length;
+ rc = compressor.Deflate(FlushType.None);
+
+ if (rc != ZlibConstants.Z_OK && rc != ZlibConstants.Z_STREAM_END)
+ throw new Exception("deflating: " + compressor.Message);
+
+ ms.Write(compressor.OutputBuffer, 0, buffer.Length - compressor.AvailableBytesOut);
+ }
+ while (compressor.AvailableBytesIn > 0 || compressor.AvailableBytesOut == 0);
+
+ // pass 2: finish and flush
+ do
+ {
+ compressor.NextOut = 0;
+ compressor.AvailableBytesOut = buffer.Length;
+ rc = compressor.Deflate(FlushType.Finish);
+
+ if (rc != ZlibConstants.Z_STREAM_END && rc != ZlibConstants.Z_OK)
+ throw new Exception("deflating: " + compressor.Message);
+
+ if (buffer.Length - compressor.AvailableBytesOut > 0)
+ ms.Write(buffer, 0, buffer.Length - compressor.AvailableBytesOut);
+ }
+ while (compressor.AvailableBytesIn > 0 || compressor.AvailableBytesOut == 0);
+
+ compressor.EndDeflate();
+
+ ms.Seek(0, SeekOrigin.Begin);
+ CompressedBytes = new byte[compressor.TotalBytesOut];
+ ms.Read(CompressedBytes, 0, CompressedBytes.Length);
+ }
+
+
+ whether to flush all data as you deflate. Generally you will want to
+ use Z_NO_FLUSH here, in a series of calls to Deflate(), and then call EndDeflate() to
+ flush everything.
+
+ Z_OK if all goes well.
+
+
+
+ End a deflation session.
+
+
+ Call this after making a series of one or more calls to Deflate(). All buffers are flushed.
+
+ Z_OK if all goes well.
+
+
+
+ Reset a codec for another deflation session.
+
+
+ Call this to reset the deflation state. For example if a thread is deflating
+ non-consecutive blocks, you can call Reset() after the Deflate(Sync) of the first
+ block and before the next Deflate(None) of the second block.
+
+ Z_OK if all goes well.
+
+
+
+ Set the CompressionStrategy and CompressionLevel for a deflation session.
+
+ the level of compression to use.
+ the strategy to use for compression.
+ Z_OK if all goes well.
+
+
+
+ Set the dictionary to be used for either Inflation or Deflation.
+
+ The dictionary bytes to use.
+ Z_OK if all goes well.
+
+
+
+ The Adler32 checksum on the data transferred through the codec so far. You probably don't need to look at this.
+
+
+
+
+ Describes how to flush the current deflate operation.
+
+
+ The different FlushType values are useful when using a Deflate in a streaming application.
+
+
+
+ No flush at all.
+
+
+ Closes the current block, but doesn't flush it to
+ the output. Used internally only in hypothetical
+ scenarios. This was supposed to be removed by Zlib, but it is
+ still in use in some edge cases.
+
+
+
+
+ Use this during compression to specify that all pending output should be
+ flushed to the output buffer and the output should be aligned on a byte
+ boundary. You might use this in a streaming communication scenario, so that
+ the decompressor can get all input data available so far. When using this
+ with a ZlibCodec, AvailableBytesIn will be zero after the call if
+ enough output space has been provided before the call. Flushing will
+ degrade compression and so it should be used only when necessary.
+
+
+
+
+ Use this during compression to specify that all output should be flushed, as
+ with FlushType.Sync, but also, the compression state should be reset
+ so that decompression can restart from this point if previous compressed
+ data has been damaged or if random access is desired. Using
+ FlushType.Full too often can significantly degrade the compression.
+
+
+
+ Signals the end of the compression/decompression stream.
+
+
+
+ The compression level to be used when using a DeflateStream or ZlibStream with CompressionMode.Compress.
+
+
+
+
+ None means that the data will be simply stored, with no change at all.
+ If you are producing ZIPs for use on Mac OSX, be aware that archives produced with CompressionLevel.None
+ cannot be opened with the default zip reader. Use a different CompressionLevel.
+
+
+
+
+ Same as None.
+
+
+
+
+ The fastest but least effective compression.
+
+
+
+
+ A synonym for BestSpeed.
+
+
+
+
+ A little slower, but better, than level 1.
+
+
+
+
+ A little slower, but better, than level 2.
+
+
+
+
+ A little slower, but better, than level 3.
+
+
+
+
+ A little slower than level 4, but with better compression.
+
+
+
+
+ The default compression level, with a good balance of speed and compression efficiency.
+
+
+
+
+ A synonym for Default.
+
+
+
+
+ Pretty good compression!
+
+
+
+
+ Better compression than Level7!
+
+
+
+
+ The "best" compression, where best means greatest reduction in size of the input data stream.
+ This is also the slowest compression.
+
+
+
+
+ A synonym for BestCompression.
+
+
+
+
+ Describes options for how the compression algorithm is executed. Different strategies
+ work better on different sorts of data. The strategy parameter can affect the compression
+ ratio and the speed of compression but not the correctness of the compresssion.
+
+
+
+
+ The default strategy is probably the best for normal data.
+
+
+
+
+ The Filtered strategy is intended to be used most effectively with data produced by a
+ filter or predictor. By this definition, filtered data consists mostly of small
+ values with a somewhat random distribution. In this case, the compression algorithm
+ is tuned to compress them better. The effect of Filtered is to force more Huffman
+ coding and less string matching; it is a half-step between Default and HuffmanOnly.
+
+
+
+
+ Using HuffmanOnly will force the compressor to do Huffman encoding only, with no
+ string matching.
+
+
+
+
+ An enum to specify the direction of transcoding - whether to compress or decompress.
+
+
+
+
+ Used to specify that the stream should compress the data.
+
+
+
+
+ Used to specify that the stream should decompress the data.
+
+
+
+
+ A general purpose exception class for exceptions in the Zlib library.
+
+
+
+
+ The ZlibException class captures exception information generated
+ by the Zlib library.
+
+
+
+
+ This ctor collects a message attached to the exception.
+
+ the message for the exception.
+
+
+
+ Performs an unsigned bitwise right shift with the specified number
+
+ Number to operate on
+ Ammount of bits to shift
+ The resulting number from the shift operation
+
+
+
+ Reads a number of characters from the current source TextReader and writes
+ the data to the target array at the specified index.
+
+
+ The source TextReader to read from
+ Contains the array of characteres read from the source TextReader.
+ The starting index of the target array.
+ The maximum number of characters to read from the source TextReader.
+
+
+ The number of characters read. The number will be less than or equal to
+ count depending on the data available in the source TextReader. Returns -1
+ if the end of the stream is reached.
+
+
+
+
+ Computes an Adler-32 checksum.
+
+
+ The Adler checksum is similar to a CRC checksum, but faster to compute, though less
+ reliable. It is used in producing RFC1950 compressed streams. The Adler checksum
+ is a required part of the "ZLIB" standard. Applications will almost never need to
+ use this class directly.
+
+
+
+
+
+
+ Calculates the Adler32 checksum.
+
+
+
+ This is used within ZLIB. You probably don't need to use this directly.
+
+
+
+ To compute an Adler32 checksum on a byte array:
+
+ var adler = Adler.Adler32(0, null, 0, 0);
+ adler = Adler.Adler32(adler, buffer, index, length);
+
+
+
+
+
+ Map from a distance to a distance code.
+
+
+ No side effects. _dist_code[256] and _dist_code[257] are never used.
+
+
+
+
+ A class for compressing and decompressing GZIP streams.
+
+
+
+
+ The GZipStream is a Decorator on a
+ . It adds GZIP compression or decompression to any
+ stream.
+
+
+
+ Like the System.IO.Compression.GZipStream in the .NET Base Class Library, the
+ Ionic.Zlib.GZipStream can compress while writing, or decompress while
+ reading, but not vice versa. The compression method used is GZIP, which is
+ documented in IETF RFC
+ 1952, "GZIP file format specification version 4.3".
+
+
+ A GZipStream can be used to decompress data (through Read()) or
+ to compress data (through Write()), but not both.
+
+
+
+ If you wish to use the GZipStream to compress data, you must wrap it
+ around a write-able stream. As you call Write() on the GZipStream, the
+ data will be compressed into the GZIP format. If you want to decompress data,
+ you must wrap the GZipStream around a readable stream that contains an
+ IETF RFC 1952-compliant stream. The data will be decompressed as you call
+ Read() on the GZipStream.
+
+
+
+ Though the GZIP format allows data from multiple files to be concatenated
+ together, this stream handles only a single segment of GZIP format, typically
+ representing a single file.
+
+
+
+
+
+
+
+ The last modified time for the GZIP stream.
+
+
+
+ GZIP allows the storage of a last modified time with each GZIP entry.
+ When compressing data, you can set this before the first call to
+ Write(). When decompressing, you can retrieve this value any time
+ after the first call to Read().
+
+
+
+
+ Create a GZipStream using the specified CompressionMode.
+
+
+
+
+ When mode is CompressionMode.Compress, the GZipStream will use the
+ default compression level.
+
+
+
+ As noted in the class documentation, the CompressionMode (Compress
+ or Decompress) also establishes the "direction" of the stream. A
+ GZipStream with CompressionMode.Compress works only through
+ Write(). A GZipStream with
+ CompressionMode.Decompress works only through Read().
+
+
+
+
+
+ This example shows how to use a GZipStream to compress data.
+
+ using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
+ {
+ using (var raw = System.IO.File.Create(outputFile))
+ {
+ using (Stream compressor = new GZipStream(raw, CompressionMode.Compress))
+ {
+ byte[] buffer = new byte[WORKING_BUFFER_SIZE];
+ int n;
+ while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
+ {
+ compressor.Write(buffer, 0, n);
+ }
+ }
+ }
+ }
+
+
+ Dim outputFile As String = (fileToCompress & ".compressed")
+ Using input As Stream = File.OpenRead(fileToCompress)
+ Using raw As FileStream = File.Create(outputFile)
+ Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress)
+ Dim buffer As Byte() = New Byte(4096) {}
+ Dim n As Integer = -1
+ Do While (n <> 0)
+ If (n > 0) Then
+ compressor.Write(buffer, 0, n)
+ End If
+ n = input.Read(buffer, 0, buffer.Length)
+ Loop
+ End Using
+ End Using
+ End Using
+
+
+
+
+ This example shows how to use a GZipStream to uncompress a file.
+
+ private void GunZipFile(string filename)
+ {
+ if (!filename.EndsWith(".gz))
+ throw new ArgumentException("filename");
+ var DecompressedFile = filename.Substring(0,filename.Length-3);
+ byte[] working = new byte[WORKING_BUFFER_SIZE];
+ int n= 1;
+ using (System.IO.Stream input = System.IO.File.OpenRead(filename))
+ {
+ using (Stream decompressor= new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, true))
+ {
+ using (var output = System.IO.File.Create(DecompressedFile))
+ {
+ while (n !=0)
+ {
+ n= decompressor.Read(working, 0, working.Length);
+ if (n > 0)
+ {
+ output.Write(working, 0, n);
+ }
+ }
+ }
+ }
+ }
+ }
+
+
+
+ Private Sub GunZipFile(ByVal filename as String)
+ If Not (filename.EndsWith(".gz)) Then
+ Throw New ArgumentException("filename")
+ End If
+ Dim DecompressedFile as String = filename.Substring(0,filename.Length-3)
+ Dim working(WORKING_BUFFER_SIZE) as Byte
+ Dim n As Integer = 1
+ Using input As Stream = File.OpenRead(filename)
+ Using decompressor As Stream = new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, True)
+ Using output As Stream = File.Create(UncompressedFile)
+ Do
+ n= decompressor.Read(working, 0, working.Length)
+ If n > 0 Then
+ output.Write(working, 0, n)
+ End IF
+ Loop While (n > 0)
+ End Using
+ End Using
+ End Using
+ End Sub
+
+
+
+ The stream which will be read or written.
+ Indicates whether the GZipStream will compress or decompress.
+
+
+
+ Create a GZipStream using the specified CompressionMode and
+ the specified CompressionLevel.
+
+
+
+
+ The CompressionMode (Compress or Decompress) also establishes the
+ "direction" of the stream. A GZipStream with
+ CompressionMode.Compress works only through Write(). A
+ GZipStream with CompressionMode.Decompress works only
+ through Read().
+
+
+
+
+
+
+ This example shows how to use a GZipStream to compress a file into a .gz file.
+
+
+ using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
+ {
+ using (var raw = System.IO.File.Create(fileToCompress + ".gz"))
+ {
+ using (Stream compressor = new GZipStream(raw,
+ CompressionMode.Compress,
+ CompressionLevel.BestCompression))
+ {
+ byte[] buffer = new byte[WORKING_BUFFER_SIZE];
+ int n;
+ while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
+ {
+ compressor.Write(buffer, 0, n);
+ }
+ }
+ }
+ }
+
+
+
+ Using input As Stream = File.OpenRead(fileToCompress)
+ Using raw As FileStream = File.Create(fileToCompress & ".gz")
+ Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression)
+ Dim buffer As Byte() = New Byte(4096) {}
+ Dim n As Integer = -1
+ Do While (n <> 0)
+ If (n > 0) Then
+ compressor.Write(buffer, 0, n)
+ End If
+ n = input.Read(buffer, 0, buffer.Length)
+ Loop
+ End Using
+ End Using
+ End Using
+
+
+ The stream to be read or written while deflating or inflating.
+ Indicates whether the GZipStream will compress or decompress.
+ A tuning knob to trade speed for effectiveness.
+
+
+
+ Create a GZipStream using the specified CompressionMode, and
+ explicitly specify whether the stream should be left open after Deflation
+ or Inflation.
+
+
+
+
+ This constructor allows the application to request that the captive stream
+ remain open after the deflation or inflation occurs. By default, after
+ Close() is called on the stream, the captive stream is also
+ closed. In some cases this is not desired, for example if the stream is a
+ memory stream that will be re-read after compressed data has been written
+ to it. Specify true for the parameter to leave
+ the stream open.
+
+
+
+ The (Compress or Decompress) also
+ establishes the "direction" of the stream. A GZipStream with
+ CompressionMode.Compress works only through Write(). A GZipStream
+ with CompressionMode.Decompress works only through Read().
+
+
+
+ The GZipStream will use the default compression level. If you want
+ to specify the compression level, see .
+
+
+
+ See the other overloads of this constructor for example code.
+
+
+
+
+
+ The stream which will be read or written. This is called the "captive"
+ stream in other places in this documentation.
+
+
+ Indicates whether the GZipStream will compress or decompress.
+
+
+
+ true if the application would like the base stream to remain open after
+ inflation/deflation.
+
+
+
+
+ Create a GZipStream using the specified CompressionMode and the
+ specified CompressionLevel, and explicitly specify whether the
+ stream should be left open after Deflation or Inflation.
+
+
+
+
+
+ This constructor allows the application to request that the captive stream
+ remain open after the deflation or inflation occurs. By default, after
+ Close() is called on the stream, the captive stream is also
+ closed. In some cases this is not desired, for example if the stream is a
+ memory stream that will be re-read after compressed data has been written
+ to it. Specify true for the parameter to
+ leave the stream open.
+
+
+
+ As noted in the class documentation, the CompressionMode (Compress
+ or Decompress) also establishes the "direction" of the stream. A
+ GZipStream with CompressionMode.Compress works only through
+ Write(). A GZipStream with CompressionMode.Decompress works only
+ through Read().
+
+
+
+
+
+ This example shows how to use a GZipStream to compress data.
+
+ using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
+ {
+ using (var raw = System.IO.File.Create(outputFile))
+ {
+ using (Stream compressor = new GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, true))
+ {
+ byte[] buffer = new byte[WORKING_BUFFER_SIZE];
+ int n;
+ while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
+ {
+ compressor.Write(buffer, 0, n);
+ }
+ }
+ }
+ }
+
+
+ Dim outputFile As String = (fileToCompress & ".compressed")
+ Using input As Stream = File.OpenRead(fileToCompress)
+ Using raw As FileStream = File.Create(outputFile)
+ Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, True)
+ Dim buffer As Byte() = New Byte(4096) {}
+ Dim n As Integer = -1
+ Do While (n <> 0)
+ If (n > 0) Then
+ compressor.Write(buffer, 0, n)
+ End If
+ n = input.Read(buffer, 0, buffer.Length)
+ Loop
+ End Using
+ End Using
+ End Using
+
+
+ The stream which will be read or written.
+ Indicates whether the GZipStream will compress or decompress.
+ true if the application would like the stream to remain open after inflation/deflation.
+ A tuning knob to trade speed for effectiveness.
+
+
+
+ Dispose the stream.
+
+
+
+ This may or may not result in a Close() call on the captive
+ stream. See the constructors that have a leaveOpen parameter
+ for more information.
+
+
+ This method may be invoked in two distinct scenarios. If disposing
+ == true, the method has been called directly or indirectly by a
+ user's code, for example via the internal Dispose() method. In this
+ case, both managed and unmanaged resources can be referenced and
+ disposed. If disposing == false, the method has been called by the
+ runtime from inside the object finalizer and this method should not
+ reference other objects; in that case only unmanaged resources must
+ be referenced or disposed.
+
+
+
+ indicates whether the Dispose method was invoked by user code.
+
+
+
+
+ Flush the stream.
+
+
+
+
+ Read and decompress data from the source stream.
+
+
+
+ With a GZipStream, decompression is done through reading.
+
+
+
+
+ byte[] working = new byte[WORKING_BUFFER_SIZE];
+ using (System.IO.Stream input = System.IO.File.OpenRead(_CompressedFile))
+ {
+ using (Stream decompressor= new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, true))
+ {
+ using (var output = System.IO.File.Create(_DecompressedFile))
+ {
+ int n;
+ while ((n= decompressor.Read(working, 0, working.Length)) !=0)
+ {
+ output.Write(working, 0, n);
+ }
+ }
+ }
+ }
+
+
+ The buffer into which the decompressed data should be placed.
+ the offset within that data array to put the first byte read.
+ the number of bytes to read.
+ the number of bytes actually read
+
+
+
+ Calling this method always throws a .
+
+ irrelevant; it will always throw!
+ irrelevant; it will always throw!
+ irrelevant!
+
+
+
+ Calling this method always throws a .
+
+ irrelevant; this method will always throw!
+
+
+
+ Write data to the stream.
+
+
+
+
+ If you wish to use the GZipStream to compress data while writing,
+ you can create a GZipStream with CompressionMode.Compress, and a
+ writable output stream. Then call Write() on that GZipStream,
+ providing uncompressed data as input. The data sent to the output stream
+ will be the compressed form of the data written.
+
+
+
+ A GZipStream can be used for Read() or Write(), but not
+ both. Writing implies compression. Reading implies decompression.
+
+
+
+ The buffer holding data to write to the stream.
+ the offset within that data array to find the first byte to write.
+ the number of bytes to write.
+
+
+
+ Compress a string into a byte array using GZip.
+
+
+
+ Uncompress it with .
+
+
+
+
+
+
+ A string to compress. The string will first be encoded
+ using UTF8, then compressed.
+
+
+ The string in compressed form
+
+
+
+ Compress a byte array into a new byte array using GZip.
+
+
+
+ Uncompress it with .
+
+
+
+
+
+
+ A buffer to compress.
+
+
+ The data in compressed form
+
+
+
+ Uncompress a GZip'ed byte array into a single string.
+
+
+
+
+
+
+ A buffer containing GZIP-compressed data.
+
+
+ The uncompressed string
+
+
+
+ Uncompress a GZip'ed byte array into a byte array.
+
+
+
+
+
+
+ A buffer containing data that has been compressed with GZip.
+
+
+ The data in uncompressed form
+
+
+
+ The comment on the GZIP stream.
+
+
+
+
+ The GZIP format allows for each file to optionally have an associated
+ comment stored with the file. The comment is encoded with the ISO-8859-1
+ code page. To include a comment in a GZIP stream you create, set this
+ property before calling Write() for the first time on the
+ GZipStream.
+
+
+
+ When using GZipStream to decompress, you can retrieve this property
+ after the first call to Read(). If no comment has been set in the
+ GZIP bytestream, the Comment property will return null
+ (Nothing in VB).
+
+
+
+
+
+ The FileName for the GZIP stream.
+
+
+
+
+
+ The GZIP format optionally allows each file to have an associated
+ filename. When compressing data (through Write()), set this
+ FileName before calling Write() the first time on the GZipStream.
+ The actual filename is encoded into the GZIP bytestream with the
+ ISO-8859-1 code page, according to RFC 1952. It is the application's
+ responsibility to insure that the FileName can be encoded and decoded
+ correctly with this code page.
+
+
+
+ When decompressing (through Read()), you can retrieve this value
+ any time after the first Read(). In the case where there was no filename
+ encoded into the GZIP bytestream, the property will return null (Nothing
+ in VB).
+
+
+
+
+
+ The CRC on the GZIP stream.
+
+
+ This is used for internal error checking. You probably don't need to look at this property.
+
+
+
+
+ This property sets the flush behavior on the stream.
+
+
+
+
+ The size of the working buffer for the compression codec.
+
+
+
+
+ The working buffer is used for all stream operations. The default size is
+ 1024 bytes. The minimum size is 128 bytes. You may get better performance
+ with a larger buffer. Then again, you might not. You would have to test
+ it.
+
+
+
+ Set this before the first call to Read() or Write() on the
+ stream. If you try to set it afterwards, it will throw.
+
+
+
+
+ Returns the total number of bytes input so far.
+
+
+ Returns the total number of bytes output so far.
+
+
+
+ Indicates whether the stream can be read.
+
+
+ The return value depends on whether the captive stream supports reading.
+
+
+
+
+ Indicates whether the stream supports Seek operations.
+
+
+ Always returns false.
+
+
+
+
+ Indicates whether the stream can be written.
+
+
+ The return value depends on whether the captive stream supports writing.
+
+
+
+
+ Reading this property always throws a .
+
+
+
+
+ The position of the stream pointer.
+
+
+
+ Setting this property always throws a . Reading will return the total bytes
+ written out, if used in writing, or the total bytes read in, if used in
+ reading. The count may refer to compressed bytes or uncompressed bytes,
+ depending on how you've used the stream.
+
+
+
+
+ Computes a CRC-32. The CRC-32 algorithm is parameterized - you
+ can set the polynomial and enable or disable bit
+ reversal. This can be used for GZIP, BZip2, or ZIP.
+
+
+ This type is used internally by DotNetZip; it is generally not used
+ directly by applications wishing to create, read, or manipulate zip
+ archive files.
+
+
+
+
+ Returns the CRC32 for the specified stream.
+
+ The stream over which to calculate the CRC32
+ the CRC32 calculation
+
+
+
+ Returns the CRC32 for the specified stream, and writes the input into the
+ output stream.
+
+ The stream over which to calculate the CRC32
+ The stream into which to deflate the input
+ the CRC32 calculation
+
+
+
+ Get the CRC32 for the given (word,byte) combo. This is a
+ computation defined by PKzip for PKZIP 2.0 (weak) encryption.
+
+ The word to start with.
+ The byte to combine it with.
+ The CRC-ized result.
+
+
+
+ Update the value for the running CRC32 using the given block of bytes.
+ This is useful when using the CRC32() class in a Stream.
+
+ block of bytes to slurp
+ starting point in the block
+ how many bytes within the block to slurp
+
+
+
+ Process one byte in the CRC.
+
+ the byte to include into the CRC .
+
+
+
+ Process a run of N identical bytes into the CRC.
+
+
+
+ This method serves as an optimization for updating the CRC when a
+ run of identical bytes is found. Rather than passing in a buffer of
+ length n, containing all identical bytes b, this method accepts the
+ byte value and the length of the (virtual) buffer - the length of
+ the run.
+
+
+ the byte to include into the CRC.
+ the number of times that byte should be repeated.
+
+
+
+ Combines the given CRC32 value with the current running total.
+
+
+ This is useful when using a divide-and-conquer approach to
+ calculating a CRC. Multiple threads can each calculate a
+ CRC32 on a segment of the data, and then combine the
+ individual CRC32 values at the end.
+
+ the crc value to be combined with this one
+ the length of data the CRC value was calculated on
+
+
+
+ Create an instance of the CRC32 class using the default settings: no
+ bit reversal, and a polynomial of 0xEDB88320.
+
+
+
+
+ Create an instance of the CRC32 class, specifying whether to reverse
+ data bits or not.
+
+
+ specify true if the instance should reverse data bits.
+
+
+
+ In the CRC-32 used by BZip2, the bits are reversed. Therefore if you
+ want a CRC32 with compatibility with BZip2, you should pass true
+ here. In the CRC-32 used by GZIP and PKZIP, the bits are not
+ reversed; Therefore if you want a CRC32 with compatibility with
+ those, you should pass false.
+
+
+
+
+
+ Create an instance of the CRC32 class, specifying the polynomial and
+ whether to reverse data bits or not.
+
+
+ The polynomial to use for the CRC, expressed in the reversed (LSB)
+ format: the highest ordered bit in the polynomial value is the
+ coefficient of the 0th power; the second-highest order bit is the
+ coefficient of the 1 power, and so on. Expressed this way, the
+ polynomial for the CRC-32C used in IEEE 802.3, is 0xEDB88320.
+
+
+ specify true if the instance should reverse data bits.
+
+
+
+
+ In the CRC-32 used by BZip2, the bits are reversed. Therefore if you
+ want a CRC32 with compatibility with BZip2, you should pass true
+ here for the reverseBits parameter. In the CRC-32 used by
+ GZIP and PKZIP, the bits are not reversed; Therefore if you want a
+ CRC32 with compatibility with those, you should pass false for the
+ reverseBits parameter.
+
+
+
+
+
+ Reset the CRC-32 class - clear the CRC "remainder register."
+
+
+
+ Use this when employing a single instance of this class to compute
+ multiple, distinct CRCs on multiple, distinct data blocks.
+
+
+
+
+
+ Indicates the total number of bytes applied to the CRC.
+
+
+
+
+ Indicates the current CRC for all blocks slurped in.
+
+
+
+
+ A Stream that calculates a CRC32 (a checksum) on all bytes read,
+ or on all bytes written.
+
+
+
+
+ This class can be used to verify the CRC of a ZipEntry when
+ reading from a stream, or to calculate a CRC when writing to a
+ stream. The stream should be used to either read, or write, but
+ not both. If you intermix reads and writes, the results are not
+ defined.
+
+
+
+ This class is intended primarily for use internally by the
+ DotNetZip library.
+
+
+
+
+
+ The default constructor.
+
+
+
+ Instances returned from this constructor will leave the underlying
+ stream open upon Close(). The stream uses the default CRC32
+ algorithm, which implies a polynomial of 0xEDB88320.
+
+
+ The underlying stream
+
+
+
+ The constructor allows the caller to specify how to handle the
+ underlying stream at close.
+
+
+
+ The stream uses the default CRC32 algorithm, which implies a
+ polynomial of 0xEDB88320.
+
+
+ The underlying stream
+ true to leave the underlying stream
+ open upon close of the CrcCalculatorStream; false otherwise.
+
+
+
+ A constructor allowing the specification of the length of the stream
+ to read.
+
+
+
+ The stream uses the default CRC32 algorithm, which implies a
+ polynomial of 0xEDB88320.
+
+
+ Instances returned from this constructor will leave the underlying
+ stream open upon Close().
+
+
+ The underlying stream
+ The length of the stream to slurp
+
+
+
+ A constructor allowing the specification of the length of the stream
+ to read, as well as whether to keep the underlying stream open upon
+ Close().
+
+
+
+ The stream uses the default CRC32 algorithm, which implies a
+ polynomial of 0xEDB88320.
+
+
+ The underlying stream
+ The length of the stream to slurp
+ true to leave the underlying stream
+ open upon close of the CrcCalculatorStream; false otherwise.
+
+
+
+ A constructor allowing the specification of the length of the stream
+ to read, as well as whether to keep the underlying stream open upon
+ Close(), and the CRC32 instance to use.
+
+
+
+ The stream uses the specified CRC32 instance, which allows the
+ application to specify how the CRC gets calculated.
+
+
+ The underlying stream
+ The length of the stream to slurp
+ true to leave the underlying stream
+ open upon close of the CrcCalculatorStream; false otherwise.
+ the CRC32 instance to use to calculate the CRC32
+
+
+
+ Read from the stream
+
+ the buffer to read
+ the offset at which to start
+ the number of bytes to read
+ the number of bytes actually read
+
+
+
+ Write to the stream.
+
+ the buffer from which to write
+ the offset at which to start writing
+ the number of bytes to write
+
+
+
+ Flush the stream.
+
+
+
+
+ Seeking is not supported on this stream. This method always throws
+
+
+ N/A
+ N/A
+ N/A
+
+
+
+ This method always throws
+
+
+ N/A
+
+
+
+ Gets the total number of bytes run through the CRC32 calculator.
+
+
+
+ This is either the total number of bytes read, or the total number of
+ bytes written, depending on the direction of this stream.
+
+
+
+
+ Provides the current CRC for all blocks slurped in.
+
+
+
+ The running total of the CRC is kept as data is written or read
+ through the stream. read this property after all reads or writes to
+ get an accurate CRC for the entire stream.
+
+
+
+
+
+ Indicates whether the underlying stream will be left open when the
+ CrcCalculatorStream is Closed.
+
+
+
+ Set this at any point before calling .
+
+
+
+
+
+ Indicates whether the stream supports reading.
+
+
+
+
+ Indicates whether the stream supports seeking.
+
+
+
+ Always returns false.
+
+
+
+
+
+ Indicates whether the stream supports writing.
+
+
+
+
+ Returns the length of the underlying stream.
+
+
+
+
+ The getter for this property returns the total bytes read.
+ If you use the setter, it will throw
+ .
+
+
+
+
+ A custom encoding class that provides encoding capabilities for the
+ 'Western European (ISO)' encoding under Silverlight.
+ This class was generated by a tool. For more information, visit
+ http://www.hardcodet.net/2010/03/silverlight-text-encoding-class-generator
+
+
+
+
+ Encodes a set of characters from the specified character array into the specified byte array.
+
+
+ The actual number of bytes written into .
+
+ The character array containing the set of characters to encode.
+ The index of the first character to encode.
+ The number of characters to encode.
+ The byte array to contain the resulting sequence of bytes.
+ The index at which to start writing the resulting sequence of bytes.
+
+
+
+
+ Decodes a sequence of bytes from the specified byte array into the specified character array.
+
+
+ The actual number of characters written into .
+
+ The byte array containing the sequence of bytes to decode.
+ The index of the first byte to decode.
+ The number of bytes to decode.
+ The character array to contain the resulting set of characters.
+ The index at which to start writing the resulting set of characters.
+
+
+
+
+ Calculates the number of bytes produced by encoding a set of characters
+ from the specified character array.
+
+
+ The number of bytes produced by encoding the specified characters. This class
+ always returns the value of .
+
+
+
+
+ Calculates the number of characters produced by decoding a sequence
+ of bytes from the specified byte array.
+
+
+ The number of characters produced by decoding the specified sequence of bytes. This class
+ always returns the value of .
+
+
+
+
+ Calculates the maximum number of bytes produced by encoding the specified number of characters.
+
+
+ The maximum number of bytes produced by encoding the specified number of characters. This
+ class always returns the value of .
+
+ The number of characters to encode.
+
+
+
+
+ Calculates the maximum number of characters produced by decoding the specified number of bytes.
+
+
+ The maximum number of characters produced by decoding the specified number of bytes. This class
+ always returns the value of .
+
+ The number of bytes to decode.
+
+
+
+ This table contains characters in an array. The index within the
+ array corresponds to the encoding's mapping of bytes to characters
+ (e.g. if a byte value of 5 is used to encode the character 'x', this
+ character will be stored at the array index 5.
+
+
+
+
+ This dictionary is used to resolve byte values for a given character.
+
+
+
+
+ Gets the name registered with the
+ Internet Assigned Numbers Authority (IANA) for the current encoding.
+
+
+ The IANA name for the current .
+
+
+
+
+ A character that can be set in order to make the encoding class
+ more fault tolerant. If this property is set, the encoding class will
+ use this property instead of throwing an exception if an unsupported
+ byte value is being passed for decoding.
+
+
+
+
+ A byte value that corresponds to the .
+ It is used in encoding scenarios in case an unsupported character is
+ being passed for encoding.
+
+
+
+
+ Gets the number of characters that are supported by this encoding.
+ This property returns a maximum value of 256, as the encoding class
+ only supports single byte encodings (1 byte == 256 possible values).
+
+
+
+
+ Length of Data field
+
+
+
+
+ CRC of both Type and Data fields, but not Length field
+
+
+
+
+ Build CRC lookup table for performance (once-off)
+
+
+
+
+ Applies all PNG filters to the given scanline and returns the filtered scanline that is deemed
+ to be most compressible, using lowest total variation as proxy for compressibility.
+
+
+
+
+
+
+
+
+ Calculates the total variation of given byte array. Total variation is the sum of the absolute values of
+ neighbour differences.
+
+
+
+
+
+
+ Get a buffer that is at least as big as size.
+
+
+
+
+ Return the given buffer to the pool.
+
+
+
+
+
+ Properties that change from how XNA works by default
+
+
+
+
+ Because the Kindle Fire devices default orientation is fliped by 180 degrees from all the other android devices
+ on the market we need to do some special processing to make sure that LandscapeLeft is the correct way round.
+ This list contains all the Build.Model strings of the effected devices, it should be added to if and when
+ more devices exhibit the same issues.
+
+
+
+
+ Get the absolute orientation of the device, accounting for platform differences.
+
+
+
+
+
+ OnCreate called when the activity is launched from cold or after the app
+ has been killed due to a higher priority app needing the memory
+
+
+ Saved instance state.
+
+
+
+
+ In Xna, setting SupportedOrientations = DisplayOrientation.Default (which is the default value)
+ has the effect of setting SupportedOrientations to landscape only or portrait only, based on the
+ aspect ratio of PreferredBackBufferWidth / PreferredBackBufferHeight
+
+
+
+
+
+ Updates the screen orientation. Filters out requests for unsupported orientations.
+
+
+
+
+ Our override of OpenTK.AndroidGameView. Provides Touch and Key Input handling.
+
+
+
+
+ Provides Android applications access to the device’s accelerometer sensor.
+
+
+
+
+ Creates a new instance of the Accelerometer object.
+
+
+
+
+ Initializes the platform resources required for the accelerometer sensor.
+
+
+
+
+ Starts data acquisition from the accelerometer.
+
+
+
+
+ Stops data acquisition from the accelerometer.
+
+
+
+
+ Gets or sets whether the device on which the application is running supports the accelerometer sensor.
+
+
+
+
+ Gets the current state of the accelerometer. The value is a member of the SensorState enumeration.
+
+
+
+
+ Provides Android applications access to the device’s compass sensor.
+
+
+
+
+ Creates a new instance of the Compass object.
+
+
+
+
+ Initializes the platform resources required for the compass sensor.
+
+
+
+
+ Starts data acquisition from the compass.
+
+
+
+
+ Stops data acquisition from the accelerometer.
+
+
+
+
+ Gets whether the device on which the application is running supports the compass sensor.
+
+
+
+
+ Gets the current state of the compass. The value is a member of the SensorState enumeration.
+
+
+
+
+ Manages touch events for Android. Maps new presses to new touch Ids as per Xna WP7 incrementing touch Id behaviour.
+ This is required as Android reports touch IDs of 0 to 5, which leads to incorrect handling of touch events.
+ Motivation and discussion: http://monogame.codeplex.com/discussions/382252
+
+
+
+
+ Interface for a class that handles resuming after a device lost event.
+ In particular, this allows the game to draw something to the screen whilst
+ graphics content is reloaded - a potentially lengthy operation.
+
+
+
+
+ Called at the start of the resume process. Textures should always be reloaded here.
+ If using a ContentManager, it should be disposed and recreated.
+
+
+
+
+ Called whilst the game is resuming. Draw something to the screen here.
+
+
+
+
+ Constructor. SensorDelay.Ui is passed to the base class as this orientation listener
+ is just used for flipping the screen orientation, therefore high frequency data is not required.
+
+
+
+
+ A default implementation of IResumeManager. Loads a user specified
+ image file (eg png) and draws it the middle of the screen.
+
+ Example usage in Game.Initialise():
+
+ #if ANDROID
+ this.Window.SetResumer(new ResumeManager(this.Services,
+ spriteBatch,
+ "UI/ResumingTexture",
+ 1.0f, 0.01f));
+ #endif
+
+
+
+
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Release/OpenTK-1.0.pdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/OpenTK-1.0.pdb
new file mode 100644
index 0000000..da830a3
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/OpenTK-1.0.pdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Release/System.ComponentModel.Composition.pdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/System.ComponentModel.Composition.pdb
new file mode 100644
index 0000000..42981da
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/System.ComponentModel.Composition.pdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Release/System.Core.pdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/System.Core.pdb
new file mode 100644
index 0000000..e016c49
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/System.Core.pdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Release/System.Net.Http.pdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/System.Net.Http.pdb
new file mode 100644
index 0000000..d45e958
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/System.Net.Http.pdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Release/System.Runtime.Serialization.pdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/System.Runtime.Serialization.pdb
new file mode 100644
index 0000000..9db6baf
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/System.Runtime.Serialization.pdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Release/System.ServiceModel.Internals.pdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/System.ServiceModel.Internals.pdb
new file mode 100644
index 0000000..82964fa
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/System.ServiceModel.Internals.pdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Release/System.Xml.Linq.pdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/System.Xml.Linq.pdb
new file mode 100644
index 0000000..3b5075f
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/System.Xml.Linq.pdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Release/System.Xml.pdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/System.Xml.pdb
new file mode 100644
index 0000000..aa7b2c5
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/System.Xml.pdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Release/System.pdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/System.pdb
new file mode 100644
index 0000000..d85743d
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/System.pdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Release/WatercolorGames.Pong-Signed.apk b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/WatercolorGames.Pong-Signed.apk
new file mode 100644
index 0000000..d755dea
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/WatercolorGames.Pong-Signed.apk differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Release/WatercolorGames.Pong.apk b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/WatercolorGames.Pong.apk
new file mode 100644
index 0000000..370bb29
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/WatercolorGames.Pong.apk differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Release/WatercolorGames.Pong.dll b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/WatercolorGames.Pong.dll
new file mode 100644
index 0000000..231b9ec
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/WatercolorGames.Pong.dll differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Release/WatercolorGames.Pong.dll.mdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/WatercolorGames.Pong.dll.mdb
new file mode 100644
index 0000000..572df38
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/WatercolorGames.Pong.dll.mdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Release/WatercolorGames.Pong.pdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/WatercolorGames.Pong.pdb
new file mode 100644
index 0000000..9b4aaac
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/WatercolorGames.Pong.pdb differ
diff --git a/WatercolorGames.Pong/bin/Android/AnyCPU/Release/mscorlib.pdb b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/mscorlib.pdb
new file mode 100644
index 0000000..9cb2b57
Binary files /dev/null and b/WatercolorGames.Pong/bin/Android/AnyCPU/Release/mscorlib.pdb differ
diff --git a/WatercolorGames.Pong/obj/.cache/WatercolorGames.Pong.flag b/WatercolorGames.Pong/obj/.cache/WatercolorGames.Pong.flag
new file mode 100644
index 0000000..4886249
--- /dev/null
+++ b/WatercolorGames.Pong/obj/.cache/WatercolorGames.Pong.flag
@@ -0,0 +1 @@
+DebugAnyCPU-s LGH83128e779a2
diff --git a/WatercolorGames.Pong/obj/Debug/Component.R.cs.flag b/WatercolorGames.Pong/obj/Debug/Component.R.cs.flag
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/WatercolorGames.Pong/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..492ccc7
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/WatercolorGames.Pong/obj/Debug/LGH83128e779a2.deployment b/WatercolorGames.Pong/obj/Debug/LGH83128e779a2.deployment
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Debug/R.cs.flag b/WatercolorGames.Pong/obj/Debug/R.cs.flag
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/WatercolorGames.Pong/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/WatercolorGames.Pong/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/WatercolorGames.Pong/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Debug/WatercolorGames.Pong.csproj.CopyComplete b/WatercolorGames.Pong/obj/Debug/WatercolorGames.Pong.csproj.CopyComplete
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Debug/WatercolorGames.Pong.csproj.CoreCompileInputs.cache b/WatercolorGames.Pong/obj/Debug/WatercolorGames.Pong.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000..f5e2fef
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/WatercolorGames.Pong.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+097d4ff40ff596598d575b60df0f566f64384062
diff --git a/WatercolorGames.Pong/obj/Debug/WatercolorGames.Pong.csproj.FileListAbsolute.txt b/WatercolorGames.Pong/obj/Debug/WatercolorGames.Pong.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..536d234
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/WatercolorGames.Pong.csproj.FileListAbsolute.txt
@@ -0,0 +1,59 @@
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Debug\WatercolorGames.Pong.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Debug\WatercolorGames.Pong.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Debug\WatercolorGames.Pong.apk
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Debug\WatercolorGames.Pong-Signed.apk
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Debug\MonoGame.Framework.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Debug\MonoGame.Framework.xml
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\WatercolorGames.Pong.csproj.CoreCompileInputs.cache
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\WatercolorGames.Pong.csproj.CopyComplete
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\WatercolorGames.Pong.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\WatercolorGames.Pong.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\bin\WatercolorGames.Pong.apk
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\res\values\strings.xml
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\res\drawable\icon.png
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\res\drawable\splash.png
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\res\values\styles.xml
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\R.cs.flag
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\uploadflags.txt
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Debug\Mono.Android.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Debug\mscorlib.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Debug\OpenTK-1.0.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Debug\System.Core.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Debug\System.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Debug\System.Xml.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Debug\System.Xml.Linq.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Debug\System.Net.Http.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Debug\System.Runtime.Serialization.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Debug\System.ServiceModel.Internals.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Debug\Mono.Security.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Debug\System.ComponentModel.Composition.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\linksrc\Mono.Android.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\linksrc\mscorlib.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\linksrc\OpenTK-1.0.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\linksrc\System.Core.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\linksrc\System.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\linksrc\System.Xml.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\linksrc\System.Xml.Linq.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\linksrc\System.Net.Http.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\linksrc\System.Runtime.Serialization.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\linksrc\System.ServiceModel.Internals.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\linksrc\Mono.Security.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\linksrc\System.ComponentModel.Composition.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\linksrc\WatercolorGames.Pong.dll.mdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Debug\WatercolorGames.Pong.dll.mdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\WatercolorGames.Pong.dll.mdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\Mono.Android.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\Mono.Security.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\mscorlib.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\OpenTK-1.0.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\System.ComponentModel.Composition.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\System.Core.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\System.Net.Http.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\System.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\System.Runtime.Serialization.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\System.ServiceModel.Internals.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\System.Xml.Linq.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\System.Xml.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\WatercolorGames.Pong.csprojResolveAssemblyReference.cache
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Debug\WatercolorGames.Pong.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\linksrc\WatercolorGames.Pong.dll.mdb
diff --git a/WatercolorGames.Pong/obj/Debug/WatercolorGames.Pong.csprojResolveAssemblyReference.cache b/WatercolorGames.Pong/obj/Debug/WatercolorGames.Pong.csprojResolveAssemblyReference.cache
new file mode 100644
index 0000000..df615f3
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/WatercolorGames.Pong.csprojResolveAssemblyReference.cache differ
diff --git a/WatercolorGames.Pong/obj/Debug/WatercolorGames.Pong.dll b/WatercolorGames.Pong/obj/Debug/WatercolorGames.Pong.dll
new file mode 100644
index 0000000..9968590
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/WatercolorGames.Pong.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/WatercolorGames.Pong.pdb b/WatercolorGames.Pong/obj/Debug/WatercolorGames.Pong.pdb
new file mode 100644
index 0000000..0837d6b
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/WatercolorGames.Pong.pdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/_dex_stamp b/WatercolorGames.Pong/obj/Debug/_dex_stamp
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Debug/_javac.stamp b/WatercolorGames.Pong/obj/Debug/_javac.stamp
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Debug/acw-map.txt b/WatercolorGames.Pong/obj/Debug/acw-map.txt
new file mode 100644
index 0000000..029964e
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/acw-map.txt
@@ -0,0 +1,20 @@
+WatercolorGames.Pong.Activity1, WatercolorGames.Pong;md5ba40d894fac23818a7eeecdb5217ef4b.Activity1
+WatercolorGames.Pong.Activity1, WatercolorGames.Pong, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null;md5ba40d894fac23818a7eeecdb5217ef4b.Activity1
+WatercolorGames.Pong.Activity1;md5ba40d894fac23818a7eeecdb5217ef4b.Activity1
+watercolorgames.pong.Activity1;md5ba40d894fac23818a7eeecdb5217ef4b.Activity1
+Microsoft.Xna.Framework.AndroidGameActivity, MonoGame.Framework;md59e336b20c5f59a4196ec0611a339f132.AndroidGameActivity
+Microsoft.Xna.Framework.AndroidGameActivity, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null;md59e336b20c5f59a4196ec0611a339f132.AndroidGameActivity
+Microsoft.Xna.Framework.AndroidGameActivity;md59e336b20c5f59a4196ec0611a339f132.AndroidGameActivity
+microsoft.xna.framework.AndroidGameActivity;md59e336b20c5f59a4196ec0611a339f132.AndroidGameActivity
+Microsoft.Xna.Framework.MonoGameAndroidGameView, MonoGame.Framework;md59e336b20c5f59a4196ec0611a339f132.MonoGameAndroidGameView
+Microsoft.Xna.Framework.MonoGameAndroidGameView, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null;md59e336b20c5f59a4196ec0611a339f132.MonoGameAndroidGameView
+Microsoft.Xna.Framework.MonoGameAndroidGameView;md59e336b20c5f59a4196ec0611a339f132.MonoGameAndroidGameView
+microsoft.xna.framework.MonoGameAndroidGameView;md59e336b20c5f59a4196ec0611a339f132.MonoGameAndroidGameView
+Microsoft.Xna.Framework.OrientationListener, MonoGame.Framework;md59e336b20c5f59a4196ec0611a339f132.OrientationListener
+Microsoft.Xna.Framework.OrientationListener, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null;md59e336b20c5f59a4196ec0611a339f132.OrientationListener
+Microsoft.Xna.Framework.OrientationListener;md59e336b20c5f59a4196ec0611a339f132.OrientationListener
+microsoft.xna.framework.OrientationListener;md59e336b20c5f59a4196ec0611a339f132.OrientationListener
+Microsoft.Xna.Framework.ScreenReceiver, MonoGame.Framework;md59e336b20c5f59a4196ec0611a339f132.ScreenReceiver
+Microsoft.Xna.Framework.ScreenReceiver, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null;md59e336b20c5f59a4196ec0611a339f132.ScreenReceiver
+Microsoft.Xna.Framework.ScreenReceiver;md59e336b20c5f59a4196ec0611a339f132.ScreenReceiver
+microsoft.xna.framework.ScreenReceiver;md59e336b20c5f59a4196ec0611a339f132.ScreenReceiver
diff --git a/WatercolorGames.Pong/obj/Debug/android/AndroidManifest.xml b/WatercolorGames.Pong/obj/Debug/android/AndroidManifest.xml
new file mode 100644
index 0000000..2b2409c
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/android/AndroidManifest.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/Java.Interop.dll b/WatercolorGames.Pong/obj/Debug/android/assets/Java.Interop.dll
new file mode 100644
index 0000000..6af9f85
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/Java.Interop.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/Mono.Android.dll b/WatercolorGames.Pong/obj/Debug/android/assets/Mono.Android.dll
new file mode 100644
index 0000000..94b9814
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/Mono.Android.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/Mono.Android.pdb b/WatercolorGames.Pong/obj/Debug/android/assets/Mono.Android.pdb
new file mode 100644
index 0000000..a77c3c2
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/Mono.Android.pdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/Mono.Security.dll b/WatercolorGames.Pong/obj/Debug/android/assets/Mono.Security.dll
new file mode 100644
index 0000000..48aadbd
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/Mono.Security.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/Mono.Security.pdb b/WatercolorGames.Pong/obj/Debug/android/assets/Mono.Security.pdb
new file mode 100644
index 0000000..dfc9716
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/Mono.Security.pdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/MonoGame.Framework.dll b/WatercolorGames.Pong/obj/Debug/android/assets/MonoGame.Framework.dll
new file mode 100644
index 0000000..e33a3a2
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/MonoGame.Framework.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/OpenTK-1.0.dll b/WatercolorGames.Pong/obj/Debug/android/assets/OpenTK-1.0.dll
new file mode 100644
index 0000000..839aac5
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/OpenTK-1.0.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/OpenTK-1.0.pdb b/WatercolorGames.Pong/obj/Debug/android/assets/OpenTK-1.0.pdb
new file mode 100644
index 0000000..da830a3
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/OpenTK-1.0.pdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/System.ComponentModel.Composition.dll b/WatercolorGames.Pong/obj/Debug/android/assets/System.ComponentModel.Composition.dll
new file mode 100644
index 0000000..e8d98ba
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/System.ComponentModel.Composition.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/System.ComponentModel.Composition.pdb b/WatercolorGames.Pong/obj/Debug/android/assets/System.ComponentModel.Composition.pdb
new file mode 100644
index 0000000..42981da
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/System.ComponentModel.Composition.pdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/System.Core.dll b/WatercolorGames.Pong/obj/Debug/android/assets/System.Core.dll
new file mode 100644
index 0000000..7aee4a0
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/System.Core.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/System.Core.pdb b/WatercolorGames.Pong/obj/Debug/android/assets/System.Core.pdb
new file mode 100644
index 0000000..e016c49
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/System.Core.pdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/System.Net.Http.dll b/WatercolorGames.Pong/obj/Debug/android/assets/System.Net.Http.dll
new file mode 100644
index 0000000..17a195d
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/System.Net.Http.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/System.Net.Http.pdb b/WatercolorGames.Pong/obj/Debug/android/assets/System.Net.Http.pdb
new file mode 100644
index 0000000..d45e958
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/System.Net.Http.pdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/System.Runtime.Serialization.dll b/WatercolorGames.Pong/obj/Debug/android/assets/System.Runtime.Serialization.dll
new file mode 100644
index 0000000..bf210a7
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/System.Runtime.Serialization.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/System.Runtime.Serialization.pdb b/WatercolorGames.Pong/obj/Debug/android/assets/System.Runtime.Serialization.pdb
new file mode 100644
index 0000000..9db6baf
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/System.Runtime.Serialization.pdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/System.ServiceModel.Internals.dll b/WatercolorGames.Pong/obj/Debug/android/assets/System.ServiceModel.Internals.dll
new file mode 100644
index 0000000..6bd8366
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/System.ServiceModel.Internals.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/System.ServiceModel.Internals.pdb b/WatercolorGames.Pong/obj/Debug/android/assets/System.ServiceModel.Internals.pdb
new file mode 100644
index 0000000..82964fa
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/System.ServiceModel.Internals.pdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/System.Xml.Linq.dll b/WatercolorGames.Pong/obj/Debug/android/assets/System.Xml.Linq.dll
new file mode 100644
index 0000000..6cb47d7
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/System.Xml.Linq.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/System.Xml.Linq.pdb b/WatercolorGames.Pong/obj/Debug/android/assets/System.Xml.Linq.pdb
new file mode 100644
index 0000000..3b5075f
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/System.Xml.Linq.pdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/System.Xml.dll b/WatercolorGames.Pong/obj/Debug/android/assets/System.Xml.dll
new file mode 100644
index 0000000..21f8d20
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/System.Xml.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/System.Xml.pdb b/WatercolorGames.Pong/obj/Debug/android/assets/System.Xml.pdb
new file mode 100644
index 0000000..aa7b2c5
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/System.Xml.pdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/System.dll b/WatercolorGames.Pong/obj/Debug/android/assets/System.dll
new file mode 100644
index 0000000..45285b2
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/System.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/System.pdb b/WatercolorGames.Pong/obj/Debug/android/assets/System.pdb
new file mode 100644
index 0000000..d85743d
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/System.pdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/WatercolorGames.Pong.dll b/WatercolorGames.Pong/obj/Debug/android/assets/WatercolorGames.Pong.dll
new file mode 100644
index 0000000..9968590
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/WatercolorGames.Pong.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/WatercolorGames.Pong.dll.mdb b/WatercolorGames.Pong/obj/Debug/android/assets/WatercolorGames.Pong.dll.mdb
new file mode 100644
index 0000000..a82d749
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/WatercolorGames.Pong.dll.mdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/machine.config b/WatercolorGames.Pong/obj/Debug/android/assets/machine.config
new file mode 100644
index 0000000..76ccdb4
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/android/assets/machine.config
@@ -0,0 +1,273 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/mscorlib.dll b/WatercolorGames.Pong/obj/Debug/android/assets/mscorlib.dll
new file mode 100644
index 0000000..3bada6c
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/mscorlib.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/assets/mscorlib.pdb b/WatercolorGames.Pong/obj/Debug/android/assets/mscorlib.pdb
new file mode 100644
index 0000000..9cb2b57
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/assets/mscorlib.pdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/bin/WatercolorGames.Pong.apk b/WatercolorGames.Pong/obj/Debug/android/bin/WatercolorGames.Pong.apk
new file mode 100644
index 0000000..2aec543
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/bin/WatercolorGames.Pong.apk differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/bin/classes.dex b/WatercolorGames.Pong/obj/Debug/android/bin/classes.dex
new file mode 100644
index 0000000..a5f594b
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/bin/classes.dex differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/bin/classes.zip b/WatercolorGames.Pong/obj/Debug/android/bin/classes.zip
new file mode 100644
index 0000000..92ecc88
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/bin/classes.zip differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/bin/classes/md59e336b20c5f59a4196ec0611a339f132/AndroidGameActivity.class b/WatercolorGames.Pong/obj/Debug/android/bin/classes/md59e336b20c5f59a4196ec0611a339f132/AndroidGameActivity.class
new file mode 100644
index 0000000..ca88eb6
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/bin/classes/md59e336b20c5f59a4196ec0611a339f132/AndroidGameActivity.class differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/bin/classes/md59e336b20c5f59a4196ec0611a339f132/MonoGameAndroidGameView.class b/WatercolorGames.Pong/obj/Debug/android/bin/classes/md59e336b20c5f59a4196ec0611a339f132/MonoGameAndroidGameView.class
new file mode 100644
index 0000000..20dbd6f
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/bin/classes/md59e336b20c5f59a4196ec0611a339f132/MonoGameAndroidGameView.class differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/bin/classes/md59e336b20c5f59a4196ec0611a339f132/OrientationListener.class b/WatercolorGames.Pong/obj/Debug/android/bin/classes/md59e336b20c5f59a4196ec0611a339f132/OrientationListener.class
new file mode 100644
index 0000000..dc59521
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/bin/classes/md59e336b20c5f59a4196ec0611a339f132/OrientationListener.class differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/bin/classes/md59e336b20c5f59a4196ec0611a339f132/ScreenReceiver.class b/WatercolorGames.Pong/obj/Debug/android/bin/classes/md59e336b20c5f59a4196ec0611a339f132/ScreenReceiver.class
new file mode 100644
index 0000000..48abb81
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/bin/classes/md59e336b20c5f59a4196ec0611a339f132/ScreenReceiver.class differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/bin/classes/md5ba40d894fac23818a7eeecdb5217ef4b/Activity1.class b/WatercolorGames.Pong/obj/Debug/android/bin/classes/md5ba40d894fac23818a7eeecdb5217ef4b/Activity1.class
new file mode 100644
index 0000000..76b7369
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/bin/classes/md5ba40d894fac23818a7eeecdb5217ef4b/Activity1.class differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/bin/classes/mono/MonoPackageManager.class b/WatercolorGames.Pong/obj/Debug/android/bin/classes/mono/MonoPackageManager.class
new file mode 100644
index 0000000..4b597ea
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/bin/classes/mono/MonoPackageManager.class differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/bin/classes/mono/MonoPackageManager_Resources.class b/WatercolorGames.Pong/obj/Debug/android/bin/classes/mono/MonoPackageManager_Resources.class
new file mode 100644
index 0000000..dd6fade
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/bin/classes/mono/MonoPackageManager_Resources.class differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/bin/classes/mono/MonoRuntimeProvider.class b/WatercolorGames.Pong/obj/Debug/android/bin/classes/mono/MonoRuntimeProvider.class
new file mode 100644
index 0000000..a1b2dc9
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/bin/classes/mono/MonoRuntimeProvider.class differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/bin/classes/mono/android/Seppuku.class b/WatercolorGames.Pong/obj/Debug/android/bin/classes/mono/android/Seppuku.class
new file mode 100644
index 0000000..afd19df
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/bin/classes/mono/android/Seppuku.class differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/bin/classes/mono/android/app/ApplicationRegistration.class b/WatercolorGames.Pong/obj/Debug/android/bin/classes/mono/android/app/ApplicationRegistration.class
new file mode 100644
index 0000000..20a9328
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/bin/classes/mono/android/app/ApplicationRegistration.class differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/bin/classes/mono/android/app/NotifyTimeZoneChanges.class b/WatercolorGames.Pong/obj/Debug/android/bin/classes/mono/android/app/NotifyTimeZoneChanges.class
new file mode 100644
index 0000000..72e7bbc
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/bin/classes/mono/android/app/NotifyTimeZoneChanges.class differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/bin/classes/watercolorgames/pong/R$attr.class b/WatercolorGames.Pong/obj/Debug/android/bin/classes/watercolorgames/pong/R$attr.class
new file mode 100644
index 0000000..1e64421
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/bin/classes/watercolorgames/pong/R$attr.class differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/bin/classes/watercolorgames/pong/R$drawable.class b/WatercolorGames.Pong/obj/Debug/android/bin/classes/watercolorgames/pong/R$drawable.class
new file mode 100644
index 0000000..584a244
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/bin/classes/watercolorgames/pong/R$drawable.class differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/bin/classes/watercolorgames/pong/R$string.class b/WatercolorGames.Pong/obj/Debug/android/bin/classes/watercolorgames/pong/R$string.class
new file mode 100644
index 0000000..c9d7113
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/bin/classes/watercolorgames/pong/R$string.class differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/bin/classes/watercolorgames/pong/R$style.class b/WatercolorGames.Pong/obj/Debug/android/bin/classes/watercolorgames/pong/R$style.class
new file mode 100644
index 0000000..3270920
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/bin/classes/watercolorgames/pong/R$style.class differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/bin/classes/watercolorgames/pong/R.class b/WatercolorGames.Pong/obj/Debug/android/bin/classes/watercolorgames/pong/R.class
new file mode 100644
index 0000000..3d95284
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/bin/classes/watercolorgames/pong/R.class differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/bin/mono.android.jar b/WatercolorGames.Pong/obj/Debug/android/bin/mono.android.jar
new file mode 100644
index 0000000..34da1ac
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/bin/mono.android.jar differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/bin/packaged_resources b/WatercolorGames.Pong/obj/Debug/android/bin/packaged_resources
new file mode 100644
index 0000000..c51f9a2
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/bin/packaged_resources differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/manifest/AndroidManifest.xml b/WatercolorGames.Pong/obj/Debug/android/manifest/AndroidManifest.xml
new file mode 100644
index 0000000..2b2409c
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/android/manifest/AndroidManifest.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/obj/Debug/android/src/md59e336b20c5f59a4196ec0611a339f132/AndroidGameActivity.java b/WatercolorGames.Pong/obj/Debug/android/src/md59e336b20c5f59a4196ec0611a339f132/AndroidGameActivity.java
new file mode 100644
index 0000000..8d90dac
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/android/src/md59e336b20c5f59a4196ec0611a339f132/AndroidGameActivity.java
@@ -0,0 +1,83 @@
+package md59e336b20c5f59a4196ec0611a339f132;
+
+
+public class AndroidGameActivity
+ extends android.app.Activity
+ implements
+ mono.android.IGCUserPeer
+{
+/** @hide */
+ public static final String __md_methods;
+ static {
+ __md_methods =
+ "n_onCreate:(Landroid/os/Bundle;)V:GetOnCreate_Landroid_os_Bundle_Handler\n" +
+ "n_onConfigurationChanged:(Landroid/content/res/Configuration;)V:GetOnConfigurationChanged_Landroid_content_res_Configuration_Handler\n" +
+ "n_onPause:()V:GetOnPauseHandler\n" +
+ "n_onResume:()V:GetOnResumeHandler\n" +
+ "n_onDestroy:()V:GetOnDestroyHandler\n" +
+ "";
+ mono.android.Runtime.register ("Microsoft.Xna.Framework.AndroidGameActivity, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null", AndroidGameActivity.class, __md_methods);
+ }
+
+
+ public AndroidGameActivity ()
+ {
+ super ();
+ if (getClass () == AndroidGameActivity.class)
+ mono.android.TypeManager.Activate ("Microsoft.Xna.Framework.AndroidGameActivity, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null", "", this, new java.lang.Object[] { });
+ }
+
+
+ public void onCreate (android.os.Bundle p0)
+ {
+ n_onCreate (p0);
+ }
+
+ private native void n_onCreate (android.os.Bundle p0);
+
+
+ public void onConfigurationChanged (android.content.res.Configuration p0)
+ {
+ n_onConfigurationChanged (p0);
+ }
+
+ private native void n_onConfigurationChanged (android.content.res.Configuration p0);
+
+
+ public void onPause ()
+ {
+ n_onPause ();
+ }
+
+ private native void n_onPause ();
+
+
+ public void onResume ()
+ {
+ n_onResume ();
+ }
+
+ private native void n_onResume ();
+
+
+ public void onDestroy ()
+ {
+ n_onDestroy ();
+ }
+
+ private native void n_onDestroy ();
+
+ private java.util.ArrayList refList;
+ public void monodroidAddReference (java.lang.Object obj)
+ {
+ if (refList == null)
+ refList = new java.util.ArrayList ();
+ refList.add (obj);
+ }
+
+ public void monodroidClearReferences ()
+ {
+ if (refList != null)
+ refList.clear ();
+ }
+}
diff --git a/WatercolorGames.Pong/obj/Debug/android/src/md59e336b20c5f59a4196ec0611a339f132/MonoGameAndroidGameView.java b/WatercolorGames.Pong/obj/Debug/android/src/md59e336b20c5f59a4196ec0611a339f132/MonoGameAndroidGameView.java
new file mode 100644
index 0000000..fa73d30
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/android/src/md59e336b20c5f59a4196ec0611a339f132/MonoGameAndroidGameView.java
@@ -0,0 +1,127 @@
+package md59e336b20c5f59a4196ec0611a339f132;
+
+
+public class MonoGameAndroidGameView
+ extends opentk_1_0.platform.android.AndroidGameView
+ implements
+ mono.android.IGCUserPeer,
+ android.view.View.OnTouchListener,
+ android.view.SurfaceHolder.Callback
+{
+/** @hide */
+ public static final String __md_methods;
+ static {
+ __md_methods =
+ "n_onKeyDown:(ILandroid/view/KeyEvent;)Z:GetOnKeyDown_ILandroid_view_KeyEvent_Handler\n" +
+ "n_onKeyUp:(ILandroid/view/KeyEvent;)Z:GetOnKeyUp_ILandroid_view_KeyEvent_Handler\n" +
+ "n_onGenericMotionEvent:(Landroid/view/MotionEvent;)Z:GetOnGenericMotionEvent_Landroid_view_MotionEvent_Handler\n" +
+ "n_onTouch:(Landroid/view/View;Landroid/view/MotionEvent;)Z:GetOnTouch_Landroid_view_View_Landroid_view_MotionEvent_Handler:Android.Views.View/IOnTouchListenerInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null\n" +
+ "n_surfaceChanged:(Landroid/view/SurfaceHolder;III)V:GetSurfaceChanged_Landroid_view_SurfaceHolder_IIIHandler:Android.Views.ISurfaceHolderCallbackInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null\n" +
+ "n_surfaceCreated:(Landroid/view/SurfaceHolder;)V:GetSurfaceCreated_Landroid_view_SurfaceHolder_Handler:Android.Views.ISurfaceHolderCallbackInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null\n" +
+ "n_surfaceDestroyed:(Landroid/view/SurfaceHolder;)V:GetSurfaceDestroyed_Landroid_view_SurfaceHolder_Handler:Android.Views.ISurfaceHolderCallbackInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null\n" +
+ "";
+ mono.android.Runtime.register ("Microsoft.Xna.Framework.MonoGameAndroidGameView, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null", MonoGameAndroidGameView.class, __md_methods);
+ }
+
+
+ public MonoGameAndroidGameView (android.content.Context p0)
+ {
+ super (p0);
+ if (getClass () == MonoGameAndroidGameView.class)
+ mono.android.TypeManager.Activate ("Microsoft.Xna.Framework.MonoGameAndroidGameView, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null", "Android.Content.Context, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065", this, new java.lang.Object[] { p0 });
+ }
+
+
+ public MonoGameAndroidGameView (android.content.Context p0, android.util.AttributeSet p1)
+ {
+ super (p0, p1);
+ if (getClass () == MonoGameAndroidGameView.class)
+ mono.android.TypeManager.Activate ("Microsoft.Xna.Framework.MonoGameAndroidGameView, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null", "Android.Content.Context, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065:Android.Util.IAttributeSet, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065", this, new java.lang.Object[] { p0, p1 });
+ }
+
+
+ public MonoGameAndroidGameView (android.content.Context p0, android.util.AttributeSet p1, int p2)
+ {
+ super (p0, p1, p2);
+ if (getClass () == MonoGameAndroidGameView.class)
+ mono.android.TypeManager.Activate ("Microsoft.Xna.Framework.MonoGameAndroidGameView, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null", "Android.Content.Context, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065:Android.Util.IAttributeSet, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065:System.Int32, mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", this, new java.lang.Object[] { p0, p1, p2 });
+ }
+
+
+ public MonoGameAndroidGameView (android.content.Context p0, android.util.AttributeSet p1, int p2, int p3)
+ {
+ super (p0, p1, p2, p3);
+ if (getClass () == MonoGameAndroidGameView.class)
+ mono.android.TypeManager.Activate ("Microsoft.Xna.Framework.MonoGameAndroidGameView, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null", "Android.Content.Context, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065:Android.Util.IAttributeSet, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065:System.Int32, mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e:System.Int32, mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", this, new java.lang.Object[] { p0, p1, p2, p3 });
+ }
+
+
+ public boolean onKeyDown (int p0, android.view.KeyEvent p1)
+ {
+ return n_onKeyDown (p0, p1);
+ }
+
+ private native boolean n_onKeyDown (int p0, android.view.KeyEvent p1);
+
+
+ public boolean onKeyUp (int p0, android.view.KeyEvent p1)
+ {
+ return n_onKeyUp (p0, p1);
+ }
+
+ private native boolean n_onKeyUp (int p0, android.view.KeyEvent p1);
+
+
+ public boolean onGenericMotionEvent (android.view.MotionEvent p0)
+ {
+ return n_onGenericMotionEvent (p0);
+ }
+
+ private native boolean n_onGenericMotionEvent (android.view.MotionEvent p0);
+
+
+ public boolean onTouch (android.view.View p0, android.view.MotionEvent p1)
+ {
+ return n_onTouch (p0, p1);
+ }
+
+ private native boolean n_onTouch (android.view.View p0, android.view.MotionEvent p1);
+
+
+ public void surfaceChanged (android.view.SurfaceHolder p0, int p1, int p2, int p3)
+ {
+ n_surfaceChanged (p0, p1, p2, p3);
+ }
+
+ private native void n_surfaceChanged (android.view.SurfaceHolder p0, int p1, int p2, int p3);
+
+
+ public void surfaceCreated (android.view.SurfaceHolder p0)
+ {
+ n_surfaceCreated (p0);
+ }
+
+ private native void n_surfaceCreated (android.view.SurfaceHolder p0);
+
+
+ public void surfaceDestroyed (android.view.SurfaceHolder p0)
+ {
+ n_surfaceDestroyed (p0);
+ }
+
+ private native void n_surfaceDestroyed (android.view.SurfaceHolder p0);
+
+ private java.util.ArrayList refList;
+ public void monodroidAddReference (java.lang.Object obj)
+ {
+ if (refList == null)
+ refList = new java.util.ArrayList ();
+ refList.add (obj);
+ }
+
+ public void monodroidClearReferences ()
+ {
+ if (refList != null)
+ refList.clear ();
+ }
+}
diff --git a/WatercolorGames.Pong/obj/Debug/android/src/md59e336b20c5f59a4196ec0611a339f132/OrientationListener.java b/WatercolorGames.Pong/obj/Debug/android/src/md59e336b20c5f59a4196ec0611a339f132/OrientationListener.java
new file mode 100644
index 0000000..9f423a3
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/android/src/md59e336b20c5f59a4196ec0611a339f132/OrientationListener.java
@@ -0,0 +1,55 @@
+package md59e336b20c5f59a4196ec0611a339f132;
+
+
+public class OrientationListener
+ extends android.view.OrientationEventListener
+ implements
+ mono.android.IGCUserPeer
+{
+/** @hide */
+ public static final String __md_methods;
+ static {
+ __md_methods =
+ "n_onOrientationChanged:(I)V:GetOnOrientationChanged_IHandler\n" +
+ "";
+ mono.android.Runtime.register ("Microsoft.Xna.Framework.OrientationListener, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null", OrientationListener.class, __md_methods);
+ }
+
+
+ public OrientationListener (android.content.Context p0)
+ {
+ super (p0);
+ if (getClass () == OrientationListener.class)
+ mono.android.TypeManager.Activate ("Microsoft.Xna.Framework.OrientationListener, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null", "Android.Content.Context, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065", this, new java.lang.Object[] { p0 });
+ }
+
+
+ public OrientationListener (android.content.Context p0, int p1)
+ {
+ super (p0, p1);
+ if (getClass () == OrientationListener.class)
+ mono.android.TypeManager.Activate ("Microsoft.Xna.Framework.OrientationListener, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null", "Android.Content.Context, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065:Android.Hardware.SensorDelay, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065", this, new java.lang.Object[] { p0, p1 });
+ }
+
+
+ public void onOrientationChanged (int p0)
+ {
+ n_onOrientationChanged (p0);
+ }
+
+ private native void n_onOrientationChanged (int p0);
+
+ private java.util.ArrayList refList;
+ public void monodroidAddReference (java.lang.Object obj)
+ {
+ if (refList == null)
+ refList = new java.util.ArrayList ();
+ refList.add (obj);
+ }
+
+ public void monodroidClearReferences ()
+ {
+ if (refList != null)
+ refList.clear ();
+ }
+}
diff --git a/WatercolorGames.Pong/obj/Debug/android/src/md59e336b20c5f59a4196ec0611a339f132/ScreenReceiver.java b/WatercolorGames.Pong/obj/Debug/android/src/md59e336b20c5f59a4196ec0611a339f132/ScreenReceiver.java
new file mode 100644
index 0000000..8d79820
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/android/src/md59e336b20c5f59a4196ec0611a339f132/ScreenReceiver.java
@@ -0,0 +1,47 @@
+package md59e336b20c5f59a4196ec0611a339f132;
+
+
+public class ScreenReceiver
+ extends android.content.BroadcastReceiver
+ implements
+ mono.android.IGCUserPeer
+{
+/** @hide */
+ public static final String __md_methods;
+ static {
+ __md_methods =
+ "n_onReceive:(Landroid/content/Context;Landroid/content/Intent;)V:GetOnReceive_Landroid_content_Context_Landroid_content_Intent_Handler\n" +
+ "";
+ mono.android.Runtime.register ("Microsoft.Xna.Framework.ScreenReceiver, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null", ScreenReceiver.class, __md_methods);
+ }
+
+
+ public ScreenReceiver ()
+ {
+ super ();
+ if (getClass () == ScreenReceiver.class)
+ mono.android.TypeManager.Activate ("Microsoft.Xna.Framework.ScreenReceiver, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null", "", this, new java.lang.Object[] { });
+ }
+
+
+ public void onReceive (android.content.Context p0, android.content.Intent p1)
+ {
+ n_onReceive (p0, p1);
+ }
+
+ private native void n_onReceive (android.content.Context p0, android.content.Intent p1);
+
+ private java.util.ArrayList refList;
+ public void monodroidAddReference (java.lang.Object obj)
+ {
+ if (refList == null)
+ refList = new java.util.ArrayList ();
+ refList.add (obj);
+ }
+
+ public void monodroidClearReferences ()
+ {
+ if (refList != null)
+ refList.clear ();
+ }
+}
diff --git a/WatercolorGames.Pong/obj/Debug/android/src/md5ba40d894fac23818a7eeecdb5217ef4b/Activity1.java b/WatercolorGames.Pong/obj/Debug/android/src/md5ba40d894fac23818a7eeecdb5217ef4b/Activity1.java
new file mode 100644
index 0000000..aa2c0ee
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/android/src/md5ba40d894fac23818a7eeecdb5217ef4b/Activity1.java
@@ -0,0 +1,47 @@
+package md5ba40d894fac23818a7eeecdb5217ef4b;
+
+
+public class Activity1
+ extends md59e336b20c5f59a4196ec0611a339f132.AndroidGameActivity
+ implements
+ mono.android.IGCUserPeer
+{
+/** @hide */
+ public static final String __md_methods;
+ static {
+ __md_methods =
+ "n_onCreate:(Landroid/os/Bundle;)V:GetOnCreate_Landroid_os_Bundle_Handler\n" +
+ "";
+ mono.android.Runtime.register ("WatercolorGames.Pong.Activity1, WatercolorGames.Pong, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null", Activity1.class, __md_methods);
+ }
+
+
+ public Activity1 ()
+ {
+ super ();
+ if (getClass () == Activity1.class)
+ mono.android.TypeManager.Activate ("WatercolorGames.Pong.Activity1, WatercolorGames.Pong, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null", "", this, new java.lang.Object[] { });
+ }
+
+
+ public void onCreate (android.os.Bundle p0)
+ {
+ n_onCreate (p0);
+ }
+
+ private native void n_onCreate (android.os.Bundle p0);
+
+ private java.util.ArrayList refList;
+ public void monodroidAddReference (java.lang.Object obj)
+ {
+ if (refList == null)
+ refList = new java.util.ArrayList ();
+ refList.add (obj);
+ }
+
+ public void monodroidClearReferences ()
+ {
+ if (refList != null)
+ refList.clear ();
+ }
+}
diff --git a/WatercolorGames.Pong/obj/Debug/android/src/mono/MonoPackageManager.java b/WatercolorGames.Pong/obj/Debug/android/src/mono/MonoPackageManager.java
new file mode 100644
index 0000000..dc35306
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/android/src/mono/MonoPackageManager.java
@@ -0,0 +1,115 @@
+package mono;
+
+import java.io.*;
+import java.lang.String;
+import java.util.Locale;
+import java.util.HashSet;
+import java.util.zip.*;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.res.AssetManager;
+import android.util.Log;
+import mono.android.Runtime;
+
+public class MonoPackageManager {
+
+ static Object lock = new Object ();
+ static boolean initialized;
+
+ static android.content.Context Context;
+
+ public static void LoadApplication (Context context, ApplicationInfo runtimePackage, String[] apks)
+ {
+ synchronized (lock) {
+ if (context instanceof android.app.Application) {
+ Context = context;
+ }
+ if (!initialized) {
+ android.content.IntentFilter timezoneChangedFilter = new android.content.IntentFilter (
+ android.content.Intent.ACTION_TIMEZONE_CHANGED
+ );
+ context.registerReceiver (new mono.android.app.NotifyTimeZoneChanges (), timezoneChangedFilter);
+
+ System.loadLibrary("monodroid");
+ Locale locale = Locale.getDefault ();
+ String language = locale.getLanguage () + "-" + locale.getCountry ();
+ String filesDir = context.getFilesDir ().getAbsolutePath ();
+ String cacheDir = context.getCacheDir ().getAbsolutePath ();
+ String dataDir = getNativeLibraryPath (context);
+ ClassLoader loader = context.getClassLoader ();
+ java.io.File external0 = android.os.Environment.getExternalStorageDirectory ();
+ String externalDir = new java.io.File (
+ external0,
+ "Android/data/" + context.getPackageName () + "/files/.__override__").getAbsolutePath ();
+ String externalLegacyDir = new java.io.File (
+ external0,
+ "../legacy/Android/data/" + context.getPackageName () + "/files/.__override__").getAbsolutePath ();
+
+ Runtime.init (
+ language,
+ apks,
+ getNativeLibraryPath (runtimePackage),
+ new String[]{
+ filesDir,
+ cacheDir,
+ dataDir,
+ },
+ loader,
+ new String[] {
+ externalDir,
+ externalLegacyDir
+ },
+ MonoPackageManager_Resources.Assemblies,
+ context.getPackageName ());
+
+ mono.android.app.ApplicationRegistration.registerApplications ();
+
+ initialized = true;
+ }
+ }
+ }
+
+ public static void setContext (Context context)
+ {
+ // Ignore; vestigial
+ }
+
+ static String getNativeLibraryPath (Context context)
+ {
+ return getNativeLibraryPath (context.getApplicationInfo ());
+ }
+
+ static String getNativeLibraryPath (ApplicationInfo ainfo)
+ {
+ if (android.os.Build.VERSION.SDK_INT >= 9)
+ return ainfo.nativeLibraryDir;
+ return ainfo.dataDir + "/lib";
+ }
+
+ public static String[] getAssemblies ()
+ {
+ return MonoPackageManager_Resources.Assemblies;
+ }
+
+ public static String[] getDependencies ()
+ {
+ return MonoPackageManager_Resources.Dependencies;
+ }
+
+ public static String getApiPackageName ()
+ {
+ return MonoPackageManager_Resources.ApiPackageName;
+ }
+}
+
+class MonoPackageManager_Resources {
+ public static final String[] Assemblies = new String[]{
+ /* We need to ensure that "WatercolorGames.Pong.dll" comes first in this list. */
+ "WatercolorGames.Pong.dll",
+ "MonoGame.Framework.dll",
+ };
+ public static final String[] Dependencies = new String[]{
+ };
+ public static final String ApiPackageName = "Mono.Android.Platform.ApiLevel_23";
+}
diff --git a/WatercolorGames.Pong/obj/Debug/android/src/mono/MonoRuntimeProvider.java b/WatercolorGames.Pong/obj/Debug/android/src/mono/MonoRuntimeProvider.java
new file mode 100644
index 0000000..c006006
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/android/src/mono/MonoRuntimeProvider.java
@@ -0,0 +1,83 @@
+package mono;
+
+public class MonoRuntimeProvider
+ extends android.content.ContentProvider
+{
+ public MonoRuntimeProvider ()
+ {
+ }
+
+ @Override
+ public boolean onCreate ()
+ {
+ return true;
+ }
+
+ @Override
+ public void attachInfo (android.content.Context context, android.content.pm.ProviderInfo info)
+ {
+ // Mono Runtime Initialization {{{
+ android.content.pm.ApplicationInfo apiInfo = null;
+
+ String platformPackage = mono.MonoPackageManager.getApiPackageName ();
+ if (platformPackage != null) {
+ Throwable t = null;
+ try {
+ apiInfo = context.getPackageManager ().getApplicationInfo (platformPackage, 0);
+ } catch (android.content.pm.PackageManager.NameNotFoundException e) {
+ // ignore
+ }
+ if (apiInfo == null) {
+ try {
+ apiInfo = context.getPackageManager ().getApplicationInfo ("Xamarin.Android.Platform", 0);
+ } catch (android.content.pm.PackageManager.NameNotFoundException e) {
+ t = e;
+ }
+ }
+ if (apiInfo == null)
+ throw new RuntimeException ("Unable to find application " + platformPackage + " or Xamarin.Android.Platform!", t);
+ }
+ try {
+ android.content.pm.ApplicationInfo runtimeInfo = context.getPackageManager ().getApplicationInfo ("Mono.Android.DebugRuntime", 0);
+ mono.MonoPackageManager.LoadApplication (context, runtimeInfo,
+ apiInfo != null
+ ? new String[]{runtimeInfo.sourceDir, apiInfo.sourceDir, context.getApplicationInfo ().sourceDir}
+ : new String[]{runtimeInfo.sourceDir, context.getApplicationInfo ().sourceDir});
+ } catch (android.content.pm.PackageManager.NameNotFoundException e) {
+ throw new RuntimeException ("Unable to find application Mono.Android.DebugRuntime!", e);
+ }
+ // }}}
+ super.attachInfo (context, info);
+ }
+
+ @Override
+ public android.database.Cursor query (android.net.Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)
+ {
+ throw new RuntimeException ("This operation is not supported.");
+ }
+
+ @Override
+ public String getType (android.net.Uri uri)
+ {
+ throw new RuntimeException ("This operation is not supported.");
+ }
+
+ @Override
+ public android.net.Uri insert (android.net.Uri uri, android.content.ContentValues initialValues)
+ {
+ throw new RuntimeException ("This operation is not supported.");
+ }
+
+ @Override
+ public int delete (android.net.Uri uri, String where, String[] whereArgs)
+ {
+ throw new RuntimeException ("This operation is not supported.");
+ }
+
+ @Override
+ public int update (android.net.Uri uri, android.content.ContentValues values, String where, String[] whereArgs)
+ {
+ throw new RuntimeException ("This operation is not supported.");
+ }
+}
+
diff --git a/WatercolorGames.Pong/obj/Debug/android/src/mono/android/Seppuku.java b/WatercolorGames.Pong/obj/Debug/android/src/mono/android/Seppuku.java
new file mode 100644
index 0000000..539c874
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/android/src/mono/android/Seppuku.java
@@ -0,0 +1,19 @@
+package mono.android;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+
+public class Seppuku extends BroadcastReceiver {
+ @Override
+ public void onReceive (Context context, Intent intent)
+ {
+ Intent startMain = new Intent (Intent.ACTION_MAIN);
+ startMain.addCategory (Intent.CATEGORY_HOME);
+ startMain.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK);
+ context.startActivity (startMain);
+
+ java.lang.Runtime.getRuntime ().exit (-1);
+ }
+}
diff --git a/WatercolorGames.Pong/obj/Debug/android/src/mono/android/app/ApplicationRegistration.java b/WatercolorGames.Pong/obj/Debug/android/src/mono/android/app/ApplicationRegistration.java
new file mode 100644
index 0000000..b150f3d
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/android/src/mono/android/app/ApplicationRegistration.java
@@ -0,0 +1,10 @@
+package mono.android.app;
+
+public class ApplicationRegistration {
+
+ public static void registerApplications ()
+ {
+ // Application and Instrumentation ACWs must be registered first.
+
+ }
+}
diff --git a/WatercolorGames.Pong/obj/Debug/android/src/mono/android/app/NotifyTimeZoneChanges.java b/WatercolorGames.Pong/obj/Debug/android/src/mono/android/app/NotifyTimeZoneChanges.java
new file mode 100644
index 0000000..21896a0
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/android/src/mono/android/app/NotifyTimeZoneChanges.java
@@ -0,0 +1,8 @@
+package mono.android.app;
+
+public class NotifyTimeZoneChanges extends android.content.BroadcastReceiver {
+ @Override
+ public void onReceive (android.content.Context context, android.content.Intent intent) {
+ mono.android.Runtime.notifyTimeZoneChanged ();
+ }
+}
diff --git a/WatercolorGames.Pong/obj/Debug/android/src/watercolorgames/pong/R.java b/WatercolorGames.Pong/obj/Debug/android/src/watercolorgames/pong/R.java
new file mode 100644
index 0000000..3e8a7a2
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/android/src/watercolorgames/pong/R.java
@@ -0,0 +1,25 @@
+/* AUTO-GENERATED FILE. DO NOT MODIFY.
+ *
+ * This class was automatically generated by the
+ * aapt tool from the resource data it found. It
+ * should not be modified by hand.
+ */
+
+package watercolorgames.pong;
+
+public final class R {
+ public static final class attr {
+ }
+ public static final class drawable {
+ public static final int icon=0x7f020000;
+ public static final int splash=0x7f020001;
+ }
+ public static final class string {
+ public static final int ApplicationName=0x7f030001;
+ public static final int Hello=0x7f030000;
+ public static final int WelcomeToPong=0x7f030002;
+ }
+ public static final class style {
+ public static final int Theme_Splash=0x7f040000;
+ }
+}
diff --git a/WatercolorGames.Pong/obj/Debug/android/typemap.jm b/WatercolorGames.Pong/obj/Debug/android/typemap.jm
new file mode 100644
index 0000000..4f63835
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/typemap.jm differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/typemap.mj b/WatercolorGames.Pong/obj/Debug/android/typemap.mj
new file mode 100644
index 0000000..d0c4a2d
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/android/typemap.mj differ
diff --git a/WatercolorGames.Pong/obj/Debug/android/watercolorgames/pong/R.java b/WatercolorGames.Pong/obj/Debug/android/watercolorgames/pong/R.java
new file mode 100644
index 0000000..3e8a7a2
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/android/watercolorgames/pong/R.java
@@ -0,0 +1,25 @@
+/* AUTO-GENERATED FILE. DO NOT MODIFY.
+ *
+ * This class was automatically generated by the
+ * aapt tool from the resource data it found. It
+ * should not be modified by hand.
+ */
+
+package watercolorgames.pong;
+
+public final class R {
+ public static final class attr {
+ }
+ public static final class drawable {
+ public static final int icon=0x7f020000;
+ public static final int splash=0x7f020001;
+ }
+ public static final class string {
+ public static final int ApplicationName=0x7f030001;
+ public static final int Hello=0x7f030000;
+ public static final int WelcomeToPong=0x7f030002;
+ }
+ public static final class style {
+ public static final int Theme_Splash=0x7f040000;
+ }
+}
diff --git a/WatercolorGames.Pong/obj/Debug/android_debug_keystore.flag b/WatercolorGames.Pong/obj/Debug/android_debug_keystore.flag
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Debug/assets/Content/Fonts/MainBody.xnb b/WatercolorGames.Pong/obj/Debug/assets/Content/Fonts/MainBody.xnb
new file mode 100644
index 0000000..542f625
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/assets/Content/Fonts/MainBody.xnb differ
diff --git a/WatercolorGames.Pong/obj/Debug/assets/Content/Fonts/Score.xnb b/WatercolorGames.Pong/obj/Debug/assets/Content/Fonts/Score.xnb
new file mode 100644
index 0000000..d6f2ccb
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/assets/Content/Fonts/Score.xnb differ
diff --git a/WatercolorGames.Pong/obj/Debug/assets/Content/Fonts/TimeLeft.xnb b/WatercolorGames.Pong/obj/Debug/assets/Content/Fonts/TimeLeft.xnb
new file mode 100644
index 0000000..e73c033
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/assets/Content/Fonts/TimeLeft.xnb differ
diff --git a/WatercolorGames.Pong/obj/Debug/assets/Content/SFX/typesound.xnb b/WatercolorGames.Pong/obj/Debug/assets/Content/SFX/typesound.xnb
new file mode 100644
index 0000000..cfbf67d
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/assets/Content/SFX/typesound.xnb differ
diff --git a/WatercolorGames.Pong/obj/Debug/assets/Content/SFX/writesound.xnb b/WatercolorGames.Pong/obj/Debug/assets/Content/SFX/writesound.xnb
new file mode 100644
index 0000000..b947619
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/assets/Content/SFX/writesound.xnb differ
diff --git a/WatercolorGames.Pong/obj/Debug/build.props b/WatercolorGames.Pong/obj/Debug/build.props
new file mode 100644
index 0000000..79fd07c
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/build.props
@@ -0,0 +1,22 @@
+BundleAssemblies=false
+AotAssemblies=false
+AndroidAotMode=
+ExplicitCrunch=False
+EnableProguard=
+UseSharedRuntime=true
+EmbedAssembliesIntoApk=false
+AndroidLinkMode=Full
+AndroidLinkSkip=
+AndroidSdkBuildToolsVersion=23.0.0
+AndroidSdkPath=
+AndroidNdkPath=
+JavaSdkPath=
+AndroidSequencePointsMode=None
+XamarinAndroidVersion=8.2.0-15
+MonoSymbolArchive=False
+AndroidUseLatestPlatformSdk=false
+TargetFrameworkVersion=v6.0
+AndroidCreatePackagePerAbi=false
+OS=Windows_NT
+DesignTimeBuild=
+AndroidIncludeDebugSymbols=True
diff --git a/WatercolorGames.Pong/obj/Debug/designtime/libraryimports.cache b/WatercolorGames.Pong/obj/Debug/designtime/libraryimports.cache
new file mode 100644
index 0000000..d74d7c0
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/designtime/libraryimports.cache
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/obj/Debug/designtime/libraryprojectimports.cache b/WatercolorGames.Pong/obj/Debug/designtime/libraryprojectimports.cache
new file mode 100644
index 0000000..dca4084
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/designtime/libraryprojectimports.cache
@@ -0,0 +1,14 @@
+
+
+
+
+ C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\lp\0\jl\res
+
+
+ obj\Debug\lp\0\jl\assets
+
+
+
+ C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\lp\0.stamp
+
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/obj/Debug/devices.cache b/WatercolorGames.Pong/obj/Debug/devices.cache
new file mode 100644
index 0000000..87aa662
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/devices.cache
@@ -0,0 +1,7 @@
+
+
+
+ armeabi-v7a
+ 24
+
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/obj/Debug/libraryimports.cache b/WatercolorGames.Pong/obj/Debug/libraryimports.cache
new file mode 100644
index 0000000..d74d7c0
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/libraryimports.cache
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/obj/Debug/libraryprojectimports.cache b/WatercolorGames.Pong/obj/Debug/libraryprojectimports.cache
new file mode 100644
index 0000000..dca4084
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/libraryprojectimports.cache
@@ -0,0 +1,14 @@
+
+
+
+
+ C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\lp\0\jl\res
+
+
+ obj\Debug\lp\0\jl\assets
+
+
+
+ C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\lp\0.stamp
+
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/obj/Debug/link.flag b/WatercolorGames.Pong/obj/Debug/link.flag
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/Java.Interop.dll b/WatercolorGames.Pong/obj/Debug/linksrc/Java.Interop.dll
new file mode 100644
index 0000000..3685651
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/Java.Interop.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/Mono.Android.dll b/WatercolorGames.Pong/obj/Debug/linksrc/Mono.Android.dll
new file mode 100644
index 0000000..94b9814
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/Mono.Android.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/Mono.Android.pdb b/WatercolorGames.Pong/obj/Debug/linksrc/Mono.Android.pdb
new file mode 100644
index 0000000..a77c3c2
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/Mono.Android.pdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/Mono.Security.dll b/WatercolorGames.Pong/obj/Debug/linksrc/Mono.Security.dll
new file mode 100644
index 0000000..48aadbd
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/Mono.Security.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/Mono.Security.pdb b/WatercolorGames.Pong/obj/Debug/linksrc/Mono.Security.pdb
new file mode 100644
index 0000000..dfc9716
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/Mono.Security.pdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/MonoGame.Framework.dll b/WatercolorGames.Pong/obj/Debug/linksrc/MonoGame.Framework.dll
new file mode 100644
index 0000000..c99c020
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/MonoGame.Framework.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/OpenTK-1.0.dll b/WatercolorGames.Pong/obj/Debug/linksrc/OpenTK-1.0.dll
new file mode 100644
index 0000000..839aac5
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/OpenTK-1.0.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/OpenTK-1.0.pdb b/WatercolorGames.Pong/obj/Debug/linksrc/OpenTK-1.0.pdb
new file mode 100644
index 0000000..da830a3
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/OpenTK-1.0.pdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.Collections.Concurrent.dll b/WatercolorGames.Pong/obj/Debug/linksrc/System.Collections.Concurrent.dll
new file mode 100644
index 0000000..09b8491
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.Collections.Concurrent.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.Collections.dll b/WatercolorGames.Pong/obj/Debug/linksrc/System.Collections.dll
new file mode 100644
index 0000000..8142c94
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.Collections.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.ComponentModel.Composition.dll b/WatercolorGames.Pong/obj/Debug/linksrc/System.ComponentModel.Composition.dll
new file mode 100644
index 0000000..e8d98ba
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.ComponentModel.Composition.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.ComponentModel.Composition.pdb b/WatercolorGames.Pong/obj/Debug/linksrc/System.ComponentModel.Composition.pdb
new file mode 100644
index 0000000..42981da
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.ComponentModel.Composition.pdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.Core.dll b/WatercolorGames.Pong/obj/Debug/linksrc/System.Core.dll
new file mode 100644
index 0000000..7aee4a0
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.Core.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.Core.pdb b/WatercolorGames.Pong/obj/Debug/linksrc/System.Core.pdb
new file mode 100644
index 0000000..e016c49
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.Core.pdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.Diagnostics.Debug.dll b/WatercolorGames.Pong/obj/Debug/linksrc/System.Diagnostics.Debug.dll
new file mode 100644
index 0000000..690370f
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.Diagnostics.Debug.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.Linq.dll b/WatercolorGames.Pong/obj/Debug/linksrc/System.Linq.dll
new file mode 100644
index 0000000..d1a4fd5
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.Linq.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.Net.Http.dll b/WatercolorGames.Pong/obj/Debug/linksrc/System.Net.Http.dll
new file mode 100644
index 0000000..17a195d
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.Net.Http.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.Net.Http.pdb b/WatercolorGames.Pong/obj/Debug/linksrc/System.Net.Http.pdb
new file mode 100644
index 0000000..d45e958
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.Net.Http.pdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.Reflection.Extensions.dll b/WatercolorGames.Pong/obj/Debug/linksrc/System.Reflection.Extensions.dll
new file mode 100644
index 0000000..063b612
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.Reflection.Extensions.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.Reflection.Primitives.dll b/WatercolorGames.Pong/obj/Debug/linksrc/System.Reflection.Primitives.dll
new file mode 100644
index 0000000..1f37a6e
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.Reflection.Primitives.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.Reflection.dll b/WatercolorGames.Pong/obj/Debug/linksrc/System.Reflection.dll
new file mode 100644
index 0000000..987c3a2
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.Reflection.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.Runtime.Extensions.dll b/WatercolorGames.Pong/obj/Debug/linksrc/System.Runtime.Extensions.dll
new file mode 100644
index 0000000..b65db38
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.Runtime.Extensions.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.Runtime.InteropServices.dll b/WatercolorGames.Pong/obj/Debug/linksrc/System.Runtime.InteropServices.dll
new file mode 100644
index 0000000..3bd1604
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.Runtime.InteropServices.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.Runtime.Serialization.dll b/WatercolorGames.Pong/obj/Debug/linksrc/System.Runtime.Serialization.dll
new file mode 100644
index 0000000..bf210a7
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.Runtime.Serialization.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.Runtime.Serialization.pdb b/WatercolorGames.Pong/obj/Debug/linksrc/System.Runtime.Serialization.pdb
new file mode 100644
index 0000000..9db6baf
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.Runtime.Serialization.pdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.Runtime.dll b/WatercolorGames.Pong/obj/Debug/linksrc/System.Runtime.dll
new file mode 100644
index 0000000..014cc75
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.Runtime.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.ServiceModel.Internals.dll b/WatercolorGames.Pong/obj/Debug/linksrc/System.ServiceModel.Internals.dll
new file mode 100644
index 0000000..6bd8366
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.ServiceModel.Internals.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.ServiceModel.Internals.pdb b/WatercolorGames.Pong/obj/Debug/linksrc/System.ServiceModel.Internals.pdb
new file mode 100644
index 0000000..82964fa
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.ServiceModel.Internals.pdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.Threading.dll b/WatercolorGames.Pong/obj/Debug/linksrc/System.Threading.dll
new file mode 100644
index 0000000..0c09cbc
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.Threading.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.Xml.Linq.dll b/WatercolorGames.Pong/obj/Debug/linksrc/System.Xml.Linq.dll
new file mode 100644
index 0000000..6cb47d7
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.Xml.Linq.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.Xml.Linq.pdb b/WatercolorGames.Pong/obj/Debug/linksrc/System.Xml.Linq.pdb
new file mode 100644
index 0000000..3b5075f
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.Xml.Linq.pdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.Xml.dll b/WatercolorGames.Pong/obj/Debug/linksrc/System.Xml.dll
new file mode 100644
index 0000000..21f8d20
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.Xml.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.Xml.pdb b/WatercolorGames.Pong/obj/Debug/linksrc/System.Xml.pdb
new file mode 100644
index 0000000..aa7b2c5
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.Xml.pdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.dll b/WatercolorGames.Pong/obj/Debug/linksrc/System.dll
new file mode 100644
index 0000000..45285b2
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/System.pdb b/WatercolorGames.Pong/obj/Debug/linksrc/System.pdb
new file mode 100644
index 0000000..d85743d
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/System.pdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/WatercolorGames.Pong.dll b/WatercolorGames.Pong/obj/Debug/linksrc/WatercolorGames.Pong.dll
new file mode 100644
index 0000000..9968590
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/WatercolorGames.Pong.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/WatercolorGames.Pong.dll.mdb b/WatercolorGames.Pong/obj/Debug/linksrc/WatercolorGames.Pong.dll.mdb
new file mode 100644
index 0000000..a82d749
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/WatercolorGames.Pong.dll.mdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/mscorlib.dll b/WatercolorGames.Pong/obj/Debug/linksrc/mscorlib.dll
new file mode 100644
index 0000000..3bada6c
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/mscorlib.dll differ
diff --git a/WatercolorGames.Pong/obj/Debug/linksrc/mscorlib.pdb b/WatercolorGames.Pong/obj/Debug/linksrc/mscorlib.pdb
new file mode 100644
index 0000000..9cb2b57
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/linksrc/mscorlib.pdb differ
diff --git a/WatercolorGames.Pong/obj/Debug/lp/0.stamp b/WatercolorGames.Pong/obj/Debug/lp/0.stamp
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Debug/lp/1.stamp b/WatercolorGames.Pong/obj/Debug/lp/1.stamp
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Debug/lp/map.cache b/WatercolorGames.Pong/obj/Debug/lp/map.cache
new file mode 100644
index 0000000..75fff94
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/lp/map.cache
@@ -0,0 +1,2 @@
+MonoGame.Framework
+System.Runtime
diff --git a/WatercolorGames.Pong/obj/Debug/res/drawable/icon.png b/WatercolorGames.Pong/obj/Debug/res/drawable/icon.png
new file mode 100644
index 0000000..f6f4f41
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/res/drawable/icon.png differ
diff --git a/WatercolorGames.Pong/obj/Debug/res/drawable/splash.png b/WatercolorGames.Pong/obj/Debug/res/drawable/splash.png
new file mode 100644
index 0000000..2f86107
Binary files /dev/null and b/WatercolorGames.Pong/obj/Debug/res/drawable/splash.png differ
diff --git a/WatercolorGames.Pong/obj/Debug/res/values/strings.xml b/WatercolorGames.Pong/obj/Debug/res/values/strings.xml
new file mode 100644
index 0000000..fbd934a
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/res/values/strings.xml
@@ -0,0 +1 @@
+Hello World, Click Me!ShiftOS PongWelcome to ShiftOS Pong.\n\nShiftOS was a game made by Philip Adams where the goal was to upgrade an experimental operating system using "Codepoints" to one usable as a daily driver.\n\nOne of the upgrades you could buy with Codepoints was a special version of the classic arcade game "Pong". This is that game.\n\nThe goal is simple - earn as many Codepoints as you can by beating the computer or surviving the level. Each level lasts one minute, and the higher the level, the more Codepoints you can earn - but the harder the game will get. Losing the ball will end your run!\n\nTap your screen to start playing.
\ No newline at end of file
diff --git a/WatercolorGames.Pong/obj/Debug/res/values/styles.xml b/WatercolorGames.Pong/obj/Debug/res/values/styles.xml
new file mode 100644
index 0000000..de33812
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/res/values/styles.xml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/obj/Debug/resolved_assemblies.txt b/WatercolorGames.Pong/obj/Debug/resolved_assemblies.txt
new file mode 100644
index 0000000..8899f73
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/resolved_assemblies.txt
@@ -0,0 +1,15 @@
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\WatercolorGames.Pong.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\Java.Interop.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\Mono.Android.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\MonoGame.Framework.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\mscorlib.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\OpenTK-1.0.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\System.Core.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\System.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\System.Xml.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\System.Xml.Linq.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\System.Net.Http.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\System.Runtime.Serialization.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\System.ServiceModel.Internals.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\Mono.Security.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Debug\android\assets\System.ComponentModel.Composition.dll
diff --git a/WatercolorGames.Pong/obj/Debug/resourcepaths.cache b/WatercolorGames.Pong/obj/Debug/resourcepaths.cache
new file mode 100644
index 0000000..063d880
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/resourcepaths.cache
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/obj/Debug/static.flag b/WatercolorGames.Pong/obj/Debug/static.flag
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Debug/strip.flag b/WatercolorGames.Pong/obj/Debug/strip.flag
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Debug/stub_application_data.txt b/WatercolorGames.Pong/obj/Debug/stub_application_data.txt
new file mode 100644
index 0000000..96e4920
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Debug/stub_application_data.txt
@@ -0,0 +1,2 @@
+android.app.Application
+WatercolorGames.Pong
diff --git a/WatercolorGames.Pong/obj/Debug/upload.flag b/WatercolorGames.Pong/obj/Debug/upload.flag
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Release/Component.R.cs.flag b/WatercolorGames.Pong/obj/Release/Component.R.cs.flag
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache b/WatercolorGames.Pong/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..f194daf
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/WatercolorGames.Pong/obj/Release/LGH83128e779a2.deployment b/WatercolorGames.Pong/obj/Release/LGH83128e779a2.deployment
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Release/R.cs.flag b/WatercolorGames.Pong/obj/Release/R.cs.flag
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/WatercolorGames.Pong/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/WatercolorGames.Pong/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/WatercolorGames.Pong/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Release/WatercolorGames.Pong.csproj.CopyComplete b/WatercolorGames.Pong/obj/Release/WatercolorGames.Pong.csproj.CopyComplete
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Release/WatercolorGames.Pong.csproj.CoreCompileInputs.cache b/WatercolorGames.Pong/obj/Release/WatercolorGames.Pong.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000..bde6209
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/WatercolorGames.Pong.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+180bb75539cbf1c99a875143234a40c2a6621800
diff --git a/WatercolorGames.Pong/obj/Release/WatercolorGames.Pong.csproj.FileListAbsolute.txt b/WatercolorGames.Pong/obj/Release/WatercolorGames.Pong.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..dfeb035
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/WatercolorGames.Pong.csproj.FileListAbsolute.txt
@@ -0,0 +1,53 @@
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Release\WatercolorGames.Pong.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Release\WatercolorGames.Pong.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Release\WatercolorGames.Pong.apk
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Release\WatercolorGames.Pong-Signed.apk
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Release\MonoGame.Framework.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Release\MonoGame.Framework.xml
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\WatercolorGames.Pong.csprojResolveAssemblyReference.cache
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\WatercolorGames.Pong.csproj.CoreCompileInputs.cache
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\WatercolorGames.Pong.csproj.CopyComplete
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\WatercolorGames.Pong.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\WatercolorGames.Pong.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\android\bin\WatercolorGames.Pong.apk
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\res\values\strings.xml
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\res\drawable\icon.png
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\res\drawable\splash.png
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\res\values\styles.xml
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\R.cs.flag
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\uploadflags.txt
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Release\Mono.Android.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Release\mscorlib.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Release\OpenTK-1.0.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Release\System.Core.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Release\System.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Release\System.Xml.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Release\System.Xml.Linq.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Release\System.Net.Http.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Release\System.Runtime.Serialization.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Release\System.ServiceModel.Internals.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Release\Mono.Security.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Release\System.ComponentModel.Composition.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\linksrc\Mono.Android.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\linksrc\mscorlib.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\linksrc\OpenTK-1.0.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\linksrc\System.Core.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\linksrc\System.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\linksrc\System.Xml.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\linksrc\System.Xml.Linq.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\linksrc\System.Net.Http.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\linksrc\System.Runtime.Serialization.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\linksrc\System.ServiceModel.Internals.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\linksrc\Mono.Security.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\linksrc\System.ComponentModel.Composition.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\linksrc\WatercolorGames.Pong.dll.mdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Release\WatercolorGames.Pong.dll.mdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\android\assets\WatercolorGames.Pong.dll.mdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\android\assets\Mono.Android.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\android\assets\mscorlib.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\android\assets\OpenTK-1.0.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\android\assets\System.Core.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\android\assets\System.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\android\assets\System.Runtime.Serialization.pdb
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\bin\Android\AnyCPU\Release\WatercolorGames.Pong.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\linksrc\WatercolorGames.Pong.dll.mdb
diff --git a/WatercolorGames.Pong/obj/Release/WatercolorGames.Pong.csprojResolveAssemblyReference.cache b/WatercolorGames.Pong/obj/Release/WatercolorGames.Pong.csprojResolveAssemblyReference.cache
new file mode 100644
index 0000000..0fd37de
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/WatercolorGames.Pong.csprojResolveAssemblyReference.cache differ
diff --git a/WatercolorGames.Pong/obj/Release/WatercolorGames.Pong.dll b/WatercolorGames.Pong/obj/Release/WatercolorGames.Pong.dll
new file mode 100644
index 0000000..231b9ec
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/WatercolorGames.Pong.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/WatercolorGames.Pong.pdb b/WatercolorGames.Pong/obj/Release/WatercolorGames.Pong.pdb
new file mode 100644
index 0000000..9b4aaac
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/WatercolorGames.Pong.pdb differ
diff --git a/WatercolorGames.Pong/obj/Release/_dex_stamp b/WatercolorGames.Pong/obj/Release/_dex_stamp
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Release/_javac.stamp b/WatercolorGames.Pong/obj/Release/_javac.stamp
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Release/acw-map.txt b/WatercolorGames.Pong/obj/Release/acw-map.txt
new file mode 100644
index 0000000..e864a1d
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/acw-map.txt
@@ -0,0 +1,28 @@
+WatercolorGames.Pong.Activity1, WatercolorGames.Pong;md5ba40d894fac23818a7eeecdb5217ef4b.Activity1
+WatercolorGames.Pong.Activity1, WatercolorGames.Pong, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null;md5ba40d894fac23818a7eeecdb5217ef4b.Activity1
+WatercolorGames.Pong.Activity1;md5ba40d894fac23818a7eeecdb5217ef4b.Activity1
+watercolorgames.pong.Activity1;md5ba40d894fac23818a7eeecdb5217ef4b.Activity1
+Microsoft.Xna.Framework.AndroidGameActivity, MonoGame.Framework;md59e336b20c5f59a4196ec0611a339f132.AndroidGameActivity
+Microsoft.Xna.Framework.AndroidGameActivity, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null;md59e336b20c5f59a4196ec0611a339f132.AndroidGameActivity
+Microsoft.Xna.Framework.AndroidGameActivity;md59e336b20c5f59a4196ec0611a339f132.AndroidGameActivity
+microsoft.xna.framework.AndroidGameActivity;md59e336b20c5f59a4196ec0611a339f132.AndroidGameActivity
+Microsoft.Xna.Framework.MonoGameAndroidGameView, MonoGame.Framework;md59e336b20c5f59a4196ec0611a339f132.MonoGameAndroidGameView
+Microsoft.Xna.Framework.MonoGameAndroidGameView, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null;md59e336b20c5f59a4196ec0611a339f132.MonoGameAndroidGameView
+Microsoft.Xna.Framework.MonoGameAndroidGameView;md59e336b20c5f59a4196ec0611a339f132.MonoGameAndroidGameView
+microsoft.xna.framework.MonoGameAndroidGameView;md59e336b20c5f59a4196ec0611a339f132.MonoGameAndroidGameView
+Microsoft.Devices.Sensors.Accelerometer/SensorListener, MonoGame.Framework;md5336012572b3de0db4e4e31e8c5c93e41.Accelerometer_SensorListener
+Microsoft.Devices.Sensors.Accelerometer+SensorListener, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null;md5336012572b3de0db4e4e31e8c5c93e41.Accelerometer_SensorListener
+Microsoft.Devices.Sensors.Accelerometer.SensorListener;md5336012572b3de0db4e4e31e8c5c93e41.Accelerometer_SensorListener
+microsoft.devices.sensors.Accelerometer_SensorListener;md5336012572b3de0db4e4e31e8c5c93e41.Accelerometer_SensorListener
+Microsoft.Devices.Sensors.Compass/SensorListener, MonoGame.Framework;md5336012572b3de0db4e4e31e8c5c93e41.Compass_SensorListener
+Microsoft.Devices.Sensors.Compass+SensorListener, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null;md5336012572b3de0db4e4e31e8c5c93e41.Compass_SensorListener
+Microsoft.Devices.Sensors.Compass.SensorListener;md5336012572b3de0db4e4e31e8c5c93e41.Compass_SensorListener
+microsoft.devices.sensors.Compass_SensorListener;md5336012572b3de0db4e4e31e8c5c93e41.Compass_SensorListener
+Microsoft.Xna.Framework.OrientationListener, MonoGame.Framework;md59e336b20c5f59a4196ec0611a339f132.OrientationListener
+Microsoft.Xna.Framework.OrientationListener, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null;md59e336b20c5f59a4196ec0611a339f132.OrientationListener
+Microsoft.Xna.Framework.OrientationListener;md59e336b20c5f59a4196ec0611a339f132.OrientationListener
+microsoft.xna.framework.OrientationListener;md59e336b20c5f59a4196ec0611a339f132.OrientationListener
+Microsoft.Xna.Framework.ScreenReceiver, MonoGame.Framework;md59e336b20c5f59a4196ec0611a339f132.ScreenReceiver
+Microsoft.Xna.Framework.ScreenReceiver, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null;md59e336b20c5f59a4196ec0611a339f132.ScreenReceiver
+Microsoft.Xna.Framework.ScreenReceiver;md59e336b20c5f59a4196ec0611a339f132.ScreenReceiver
+microsoft.xna.framework.ScreenReceiver;md59e336b20c5f59a4196ec0611a339f132.ScreenReceiver
diff --git a/WatercolorGames.Pong/obj/Release/android/AndroidManifest.xml b/WatercolorGames.Pong/obj/Release/android/AndroidManifest.xml
new file mode 100644
index 0000000..2dfbb8d
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/android/AndroidManifest.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/obj/Release/android/assets/Java.Interop.dll b/WatercolorGames.Pong/obj/Release/android/assets/Java.Interop.dll
new file mode 100644
index 0000000..014569c
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/assets/Java.Interop.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/android/assets/Mono.Android.dll b/WatercolorGames.Pong/obj/Release/android/assets/Mono.Android.dll
new file mode 100644
index 0000000..a62e4cf
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/assets/Mono.Android.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/android/assets/Mono.Android.pdb b/WatercolorGames.Pong/obj/Release/android/assets/Mono.Android.pdb
new file mode 100644
index 0000000..2c8e561
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/assets/Mono.Android.pdb differ
diff --git a/WatercolorGames.Pong/obj/Release/android/assets/MonoGame.Framework.dll b/WatercolorGames.Pong/obj/Release/android/assets/MonoGame.Framework.dll
new file mode 100644
index 0000000..ffe8fdb
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/assets/MonoGame.Framework.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/android/assets/OpenTK-1.0.dll b/WatercolorGames.Pong/obj/Release/android/assets/OpenTK-1.0.dll
new file mode 100644
index 0000000..6683eff
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/assets/OpenTK-1.0.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/android/assets/OpenTK-1.0.pdb b/WatercolorGames.Pong/obj/Release/android/assets/OpenTK-1.0.pdb
new file mode 100644
index 0000000..b777b1d
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/assets/OpenTK-1.0.pdb differ
diff --git a/WatercolorGames.Pong/obj/Release/android/assets/System.Core.dll b/WatercolorGames.Pong/obj/Release/android/assets/System.Core.dll
new file mode 100644
index 0000000..df3ef5a
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/assets/System.Core.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/android/assets/System.Core.pdb b/WatercolorGames.Pong/obj/Release/android/assets/System.Core.pdb
new file mode 100644
index 0000000..9f0e8a9
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/assets/System.Core.pdb differ
diff --git a/WatercolorGames.Pong/obj/Release/android/assets/System.Runtime.Serialization.dll b/WatercolorGames.Pong/obj/Release/android/assets/System.Runtime.Serialization.dll
new file mode 100644
index 0000000..d8764f1
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/assets/System.Runtime.Serialization.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/android/assets/System.Runtime.Serialization.pdb b/WatercolorGames.Pong/obj/Release/android/assets/System.Runtime.Serialization.pdb
new file mode 100644
index 0000000..13ff934
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/assets/System.Runtime.Serialization.pdb differ
diff --git a/WatercolorGames.Pong/obj/Release/android/assets/System.dll b/WatercolorGames.Pong/obj/Release/android/assets/System.dll
new file mode 100644
index 0000000..b98805e
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/assets/System.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/android/assets/System.pdb b/WatercolorGames.Pong/obj/Release/android/assets/System.pdb
new file mode 100644
index 0000000..08fa1ae
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/assets/System.pdb differ
diff --git a/WatercolorGames.Pong/obj/Release/android/assets/WatercolorGames.Pong.dll b/WatercolorGames.Pong/obj/Release/android/assets/WatercolorGames.Pong.dll
new file mode 100644
index 0000000..231b9ec
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/assets/WatercolorGames.Pong.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/android/assets/WatercolorGames.Pong.dll.mdb b/WatercolorGames.Pong/obj/Release/android/assets/WatercolorGames.Pong.dll.mdb
new file mode 100644
index 0000000..572df38
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/assets/WatercolorGames.Pong.dll.mdb differ
diff --git a/WatercolorGames.Pong/obj/Release/android/assets/machine.config b/WatercolorGames.Pong/obj/Release/android/assets/machine.config
new file mode 100644
index 0000000..76ccdb4
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/android/assets/machine.config
@@ -0,0 +1,273 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/WatercolorGames.Pong/obj/Release/android/assets/mscorlib.dll b/WatercolorGames.Pong/obj/Release/android/assets/mscorlib.dll
new file mode 100644
index 0000000..1ee9a4e
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/assets/mscorlib.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/android/assets/mscorlib.pdb b/WatercolorGames.Pong/obj/Release/android/assets/mscorlib.pdb
new file mode 100644
index 0000000..d477489
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/assets/mscorlib.pdb differ
diff --git a/WatercolorGames.Pong/obj/Release/android/assets/shrunk/Java.Interop.dll b/WatercolorGames.Pong/obj/Release/android/assets/shrunk/Java.Interop.dll
new file mode 100644
index 0000000..014569c
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/assets/shrunk/Java.Interop.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/android/assets/shrunk/Mono.Android.dll b/WatercolorGames.Pong/obj/Release/android/assets/shrunk/Mono.Android.dll
new file mode 100644
index 0000000..ac7245a
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/assets/shrunk/Mono.Android.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/android/assets/shrunk/OpenTK-1.0.dll b/WatercolorGames.Pong/obj/Release/android/assets/shrunk/OpenTK-1.0.dll
new file mode 100644
index 0000000..6683eff
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/assets/shrunk/OpenTK-1.0.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/android/assets/shrunk/System.Core.dll b/WatercolorGames.Pong/obj/Release/android/assets/shrunk/System.Core.dll
new file mode 100644
index 0000000..df3ef5a
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/assets/shrunk/System.Core.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/android/assets/shrunk/System.Runtime.Serialization.dll b/WatercolorGames.Pong/obj/Release/android/assets/shrunk/System.Runtime.Serialization.dll
new file mode 100644
index 0000000..d8764f1
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/assets/shrunk/System.Runtime.Serialization.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/android/assets/shrunk/System.dll b/WatercolorGames.Pong/obj/Release/android/assets/shrunk/System.dll
new file mode 100644
index 0000000..b98805e
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/assets/shrunk/System.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/android/assets/shrunk/mscorlib.dll b/WatercolorGames.Pong/obj/Release/android/assets/shrunk/mscorlib.dll
new file mode 100644
index 0000000..1ee9a4e
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/assets/shrunk/mscorlib.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/android/assets/shrunk/shrunk.flag b/WatercolorGames.Pong/obj/Release/android/assets/shrunk/shrunk.flag
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Release/android/bin/WatercolorGames.Pong.apk b/WatercolorGames.Pong/obj/Release/android/bin/WatercolorGames.Pong.apk
new file mode 100644
index 0000000..370bb29
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/bin/WatercolorGames.Pong.apk differ
diff --git a/WatercolorGames.Pong/obj/Release/android/bin/classes.dex b/WatercolorGames.Pong/obj/Release/android/bin/classes.dex
new file mode 100644
index 0000000..a5c502e
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/bin/classes.dex differ
diff --git a/WatercolorGames.Pong/obj/Release/android/bin/classes.zip b/WatercolorGames.Pong/obj/Release/android/bin/classes.zip
new file mode 100644
index 0000000..7cbf2dd
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/bin/classes.zip differ
diff --git a/WatercolorGames.Pong/obj/Release/android/bin/classes/md5336012572b3de0db4e4e31e8c5c93e41/Accelerometer_SensorListener.class b/WatercolorGames.Pong/obj/Release/android/bin/classes/md5336012572b3de0db4e4e31e8c5c93e41/Accelerometer_SensorListener.class
new file mode 100644
index 0000000..3f45941
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/bin/classes/md5336012572b3de0db4e4e31e8c5c93e41/Accelerometer_SensorListener.class differ
diff --git a/WatercolorGames.Pong/obj/Release/android/bin/classes/md5336012572b3de0db4e4e31e8c5c93e41/Compass_SensorListener.class b/WatercolorGames.Pong/obj/Release/android/bin/classes/md5336012572b3de0db4e4e31e8c5c93e41/Compass_SensorListener.class
new file mode 100644
index 0000000..3d47be6
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/bin/classes/md5336012572b3de0db4e4e31e8c5c93e41/Compass_SensorListener.class differ
diff --git a/WatercolorGames.Pong/obj/Release/android/bin/classes/md59e336b20c5f59a4196ec0611a339f132/AndroidGameActivity.class b/WatercolorGames.Pong/obj/Release/android/bin/classes/md59e336b20c5f59a4196ec0611a339f132/AndroidGameActivity.class
new file mode 100644
index 0000000..ca88eb6
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/bin/classes/md59e336b20c5f59a4196ec0611a339f132/AndroidGameActivity.class differ
diff --git a/WatercolorGames.Pong/obj/Release/android/bin/classes/md59e336b20c5f59a4196ec0611a339f132/MonoGameAndroidGameView.class b/WatercolorGames.Pong/obj/Release/android/bin/classes/md59e336b20c5f59a4196ec0611a339f132/MonoGameAndroidGameView.class
new file mode 100644
index 0000000..d4eeae0
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/bin/classes/md59e336b20c5f59a4196ec0611a339f132/MonoGameAndroidGameView.class differ
diff --git a/WatercolorGames.Pong/obj/Release/android/bin/classes/md59e336b20c5f59a4196ec0611a339f132/OrientationListener.class b/WatercolorGames.Pong/obj/Release/android/bin/classes/md59e336b20c5f59a4196ec0611a339f132/OrientationListener.class
new file mode 100644
index 0000000..893b37f
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/bin/classes/md59e336b20c5f59a4196ec0611a339f132/OrientationListener.class differ
diff --git a/WatercolorGames.Pong/obj/Release/android/bin/classes/md59e336b20c5f59a4196ec0611a339f132/ScreenReceiver.class b/WatercolorGames.Pong/obj/Release/android/bin/classes/md59e336b20c5f59a4196ec0611a339f132/ScreenReceiver.class
new file mode 100644
index 0000000..48abb81
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/bin/classes/md59e336b20c5f59a4196ec0611a339f132/ScreenReceiver.class differ
diff --git a/WatercolorGames.Pong/obj/Release/android/bin/classes/md5ba40d894fac23818a7eeecdb5217ef4b/Activity1.class b/WatercolorGames.Pong/obj/Release/android/bin/classes/md5ba40d894fac23818a7eeecdb5217ef4b/Activity1.class
new file mode 100644
index 0000000..76b7369
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/bin/classes/md5ba40d894fac23818a7eeecdb5217ef4b/Activity1.class differ
diff --git a/WatercolorGames.Pong/obj/Release/android/bin/classes/mono/MonoPackageManager.class b/WatercolorGames.Pong/obj/Release/android/bin/classes/mono/MonoPackageManager.class
new file mode 100644
index 0000000..15be9d0
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/bin/classes/mono/MonoPackageManager.class differ
diff --git a/WatercolorGames.Pong/obj/Release/android/bin/classes/mono/MonoPackageManager_Resources.class b/WatercolorGames.Pong/obj/Release/android/bin/classes/mono/MonoPackageManager_Resources.class
new file mode 100644
index 0000000..4f7a5dc
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/bin/classes/mono/MonoPackageManager_Resources.class differ
diff --git a/WatercolorGames.Pong/obj/Release/android/bin/classes/mono/MonoRuntimeProvider.class b/WatercolorGames.Pong/obj/Release/android/bin/classes/mono/MonoRuntimeProvider.class
new file mode 100644
index 0000000..33d2db4
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/bin/classes/mono/MonoRuntimeProvider.class differ
diff --git a/WatercolorGames.Pong/obj/Release/android/bin/classes/mono/android/app/ApplicationRegistration.class b/WatercolorGames.Pong/obj/Release/android/bin/classes/mono/android/app/ApplicationRegistration.class
new file mode 100644
index 0000000..20a9328
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/bin/classes/mono/android/app/ApplicationRegistration.class differ
diff --git a/WatercolorGames.Pong/obj/Release/android/bin/classes/mono/android/app/NotifyTimeZoneChanges.class b/WatercolorGames.Pong/obj/Release/android/bin/classes/mono/android/app/NotifyTimeZoneChanges.class
new file mode 100644
index 0000000..72e7bbc
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/bin/classes/mono/android/app/NotifyTimeZoneChanges.class differ
diff --git a/WatercolorGames.Pong/obj/Release/android/bin/classes/watercolorgames/pong/R$attr.class b/WatercolorGames.Pong/obj/Release/android/bin/classes/watercolorgames/pong/R$attr.class
new file mode 100644
index 0000000..1e64421
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/bin/classes/watercolorgames/pong/R$attr.class differ
diff --git a/WatercolorGames.Pong/obj/Release/android/bin/classes/watercolorgames/pong/R$drawable.class b/WatercolorGames.Pong/obj/Release/android/bin/classes/watercolorgames/pong/R$drawable.class
new file mode 100644
index 0000000..584a244
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/bin/classes/watercolorgames/pong/R$drawable.class differ
diff --git a/WatercolorGames.Pong/obj/Release/android/bin/classes/watercolorgames/pong/R$string.class b/WatercolorGames.Pong/obj/Release/android/bin/classes/watercolorgames/pong/R$string.class
new file mode 100644
index 0000000..d41f9b0
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/bin/classes/watercolorgames/pong/R$string.class differ
diff --git a/WatercolorGames.Pong/obj/Release/android/bin/classes/watercolorgames/pong/R$style.class b/WatercolorGames.Pong/obj/Release/android/bin/classes/watercolorgames/pong/R$style.class
new file mode 100644
index 0000000..13474ab
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/bin/classes/watercolorgames/pong/R$style.class differ
diff --git a/WatercolorGames.Pong/obj/Release/android/bin/classes/watercolorgames/pong/R.class b/WatercolorGames.Pong/obj/Release/android/bin/classes/watercolorgames/pong/R.class
new file mode 100644
index 0000000..3d95284
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/bin/classes/watercolorgames/pong/R.class differ
diff --git a/WatercolorGames.Pong/obj/Release/android/bin/mono.android.jar b/WatercolorGames.Pong/obj/Release/android/bin/mono.android.jar
new file mode 100644
index 0000000..efc1b9d
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/bin/mono.android.jar differ
diff --git a/WatercolorGames.Pong/obj/Release/android/bin/packaged_resources b/WatercolorGames.Pong/obj/Release/android/bin/packaged_resources
new file mode 100644
index 0000000..968de4e
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/bin/packaged_resources differ
diff --git a/WatercolorGames.Pong/obj/Release/android/manifest/AndroidManifest.xml b/WatercolorGames.Pong/obj/Release/android/manifest/AndroidManifest.xml
new file mode 100644
index 0000000..2dfbb8d
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/android/manifest/AndroidManifest.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/obj/Release/android/src/md5336012572b3de0db4e4e31e8c5c93e41/Accelerometer_SensorListener.java b/WatercolorGames.Pong/obj/Release/android/src/md5336012572b3de0db4e4e31e8c5c93e41/Accelerometer_SensorListener.java
new file mode 100644
index 0000000..ef1c2e6
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/android/src/md5336012572b3de0db4e4e31e8c5c93e41/Accelerometer_SensorListener.java
@@ -0,0 +1,57 @@
+package md5336012572b3de0db4e4e31e8c5c93e41;
+
+
+public class Accelerometer_SensorListener
+ extends java.lang.Object
+ implements
+ mono.android.IGCUserPeer,
+ android.hardware.SensorEventListener
+{
+/** @hide */
+ public static final String __md_methods;
+ static {
+ __md_methods =
+ "n_onAccuracyChanged:(Landroid/hardware/Sensor;I)V:GetOnAccuracyChanged_Landroid_hardware_Sensor_IHandler:Android.Hardware.ISensorEventListenerInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null\n" +
+ "n_onSensorChanged:(Landroid/hardware/SensorEvent;)V:GetOnSensorChanged_Landroid_hardware_SensorEvent_Handler:Android.Hardware.ISensorEventListenerInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null\n" +
+ "";
+ mono.android.Runtime.register ("Microsoft.Devices.Sensors.Accelerometer+SensorListener, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null", Accelerometer_SensorListener.class, __md_methods);
+ }
+
+
+ public Accelerometer_SensorListener ()
+ {
+ super ();
+ if (getClass () == Accelerometer_SensorListener.class)
+ mono.android.TypeManager.Activate ("Microsoft.Devices.Sensors.Accelerometer+SensorListener, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null", "", this, new java.lang.Object[] { });
+ }
+
+
+ public void onAccuracyChanged (android.hardware.Sensor p0, int p1)
+ {
+ n_onAccuracyChanged (p0, p1);
+ }
+
+ private native void n_onAccuracyChanged (android.hardware.Sensor p0, int p1);
+
+
+ public void onSensorChanged (android.hardware.SensorEvent p0)
+ {
+ n_onSensorChanged (p0);
+ }
+
+ private native void n_onSensorChanged (android.hardware.SensorEvent p0);
+
+ private java.util.ArrayList refList;
+ public void monodroidAddReference (java.lang.Object obj)
+ {
+ if (refList == null)
+ refList = new java.util.ArrayList ();
+ refList.add (obj);
+ }
+
+ public void monodroidClearReferences ()
+ {
+ if (refList != null)
+ refList.clear ();
+ }
+}
diff --git a/WatercolorGames.Pong/obj/Release/android/src/md5336012572b3de0db4e4e31e8c5c93e41/Compass_SensorListener.java b/WatercolorGames.Pong/obj/Release/android/src/md5336012572b3de0db4e4e31e8c5c93e41/Compass_SensorListener.java
new file mode 100644
index 0000000..46a906e
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/android/src/md5336012572b3de0db4e4e31e8c5c93e41/Compass_SensorListener.java
@@ -0,0 +1,57 @@
+package md5336012572b3de0db4e4e31e8c5c93e41;
+
+
+public class Compass_SensorListener
+ extends java.lang.Object
+ implements
+ mono.android.IGCUserPeer,
+ android.hardware.SensorEventListener
+{
+/** @hide */
+ public static final String __md_methods;
+ static {
+ __md_methods =
+ "n_onAccuracyChanged:(Landroid/hardware/Sensor;I)V:GetOnAccuracyChanged_Landroid_hardware_Sensor_IHandler:Android.Hardware.ISensorEventListenerInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null\n" +
+ "n_onSensorChanged:(Landroid/hardware/SensorEvent;)V:GetOnSensorChanged_Landroid_hardware_SensorEvent_Handler:Android.Hardware.ISensorEventListenerInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null\n" +
+ "";
+ mono.android.Runtime.register ("Microsoft.Devices.Sensors.Compass+SensorListener, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null", Compass_SensorListener.class, __md_methods);
+ }
+
+
+ public Compass_SensorListener ()
+ {
+ super ();
+ if (getClass () == Compass_SensorListener.class)
+ mono.android.TypeManager.Activate ("Microsoft.Devices.Sensors.Compass+SensorListener, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null", "", this, new java.lang.Object[] { });
+ }
+
+
+ public void onAccuracyChanged (android.hardware.Sensor p0, int p1)
+ {
+ n_onAccuracyChanged (p0, p1);
+ }
+
+ private native void n_onAccuracyChanged (android.hardware.Sensor p0, int p1);
+
+
+ public void onSensorChanged (android.hardware.SensorEvent p0)
+ {
+ n_onSensorChanged (p0);
+ }
+
+ private native void n_onSensorChanged (android.hardware.SensorEvent p0);
+
+ private java.util.ArrayList refList;
+ public void monodroidAddReference (java.lang.Object obj)
+ {
+ if (refList == null)
+ refList = new java.util.ArrayList ();
+ refList.add (obj);
+ }
+
+ public void monodroidClearReferences ()
+ {
+ if (refList != null)
+ refList.clear ();
+ }
+}
diff --git a/WatercolorGames.Pong/obj/Release/android/src/md59e336b20c5f59a4196ec0611a339f132/AndroidGameActivity.java b/WatercolorGames.Pong/obj/Release/android/src/md59e336b20c5f59a4196ec0611a339f132/AndroidGameActivity.java
new file mode 100644
index 0000000..8d90dac
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/android/src/md59e336b20c5f59a4196ec0611a339f132/AndroidGameActivity.java
@@ -0,0 +1,83 @@
+package md59e336b20c5f59a4196ec0611a339f132;
+
+
+public class AndroidGameActivity
+ extends android.app.Activity
+ implements
+ mono.android.IGCUserPeer
+{
+/** @hide */
+ public static final String __md_methods;
+ static {
+ __md_methods =
+ "n_onCreate:(Landroid/os/Bundle;)V:GetOnCreate_Landroid_os_Bundle_Handler\n" +
+ "n_onConfigurationChanged:(Landroid/content/res/Configuration;)V:GetOnConfigurationChanged_Landroid_content_res_Configuration_Handler\n" +
+ "n_onPause:()V:GetOnPauseHandler\n" +
+ "n_onResume:()V:GetOnResumeHandler\n" +
+ "n_onDestroy:()V:GetOnDestroyHandler\n" +
+ "";
+ mono.android.Runtime.register ("Microsoft.Xna.Framework.AndroidGameActivity, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null", AndroidGameActivity.class, __md_methods);
+ }
+
+
+ public AndroidGameActivity ()
+ {
+ super ();
+ if (getClass () == AndroidGameActivity.class)
+ mono.android.TypeManager.Activate ("Microsoft.Xna.Framework.AndroidGameActivity, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null", "", this, new java.lang.Object[] { });
+ }
+
+
+ public void onCreate (android.os.Bundle p0)
+ {
+ n_onCreate (p0);
+ }
+
+ private native void n_onCreate (android.os.Bundle p0);
+
+
+ public void onConfigurationChanged (android.content.res.Configuration p0)
+ {
+ n_onConfigurationChanged (p0);
+ }
+
+ private native void n_onConfigurationChanged (android.content.res.Configuration p0);
+
+
+ public void onPause ()
+ {
+ n_onPause ();
+ }
+
+ private native void n_onPause ();
+
+
+ public void onResume ()
+ {
+ n_onResume ();
+ }
+
+ private native void n_onResume ();
+
+
+ public void onDestroy ()
+ {
+ n_onDestroy ();
+ }
+
+ private native void n_onDestroy ();
+
+ private java.util.ArrayList refList;
+ public void monodroidAddReference (java.lang.Object obj)
+ {
+ if (refList == null)
+ refList = new java.util.ArrayList ();
+ refList.add (obj);
+ }
+
+ public void monodroidClearReferences ()
+ {
+ if (refList != null)
+ refList.clear ();
+ }
+}
diff --git a/WatercolorGames.Pong/obj/Release/android/src/md59e336b20c5f59a4196ec0611a339f132/MonoGameAndroidGameView.java b/WatercolorGames.Pong/obj/Release/android/src/md59e336b20c5f59a4196ec0611a339f132/MonoGameAndroidGameView.java
new file mode 100644
index 0000000..5aef383
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/android/src/md59e336b20c5f59a4196ec0611a339f132/MonoGameAndroidGameView.java
@@ -0,0 +1,119 @@
+package md59e336b20c5f59a4196ec0611a339f132;
+
+
+public class MonoGameAndroidGameView
+ extends opentk_1_0.platform.android.AndroidGameView
+ implements
+ mono.android.IGCUserPeer,
+ android.view.View.OnTouchListener,
+ android.view.SurfaceHolder.Callback
+{
+/** @hide */
+ public static final String __md_methods;
+ static {
+ __md_methods =
+ "n_onKeyDown:(ILandroid/view/KeyEvent;)Z:GetOnKeyDown_ILandroid_view_KeyEvent_Handler\n" +
+ "n_onKeyUp:(ILandroid/view/KeyEvent;)Z:GetOnKeyUp_ILandroid_view_KeyEvent_Handler\n" +
+ "n_onGenericMotionEvent:(Landroid/view/MotionEvent;)Z:GetOnGenericMotionEvent_Landroid_view_MotionEvent_Handler\n" +
+ "n_onTouch:(Landroid/view/View;Landroid/view/MotionEvent;)Z:GetOnTouch_Landroid_view_View_Landroid_view_MotionEvent_Handler:Android.Views.View/IOnTouchListenerInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null\n" +
+ "n_surfaceChanged:(Landroid/view/SurfaceHolder;III)V:GetSurfaceChanged_Landroid_view_SurfaceHolder_IIIHandler:Android.Views.ISurfaceHolderCallbackInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null\n" +
+ "n_surfaceCreated:(Landroid/view/SurfaceHolder;)V:GetSurfaceCreated_Landroid_view_SurfaceHolder_Handler:Android.Views.ISurfaceHolderCallbackInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null\n" +
+ "n_surfaceDestroyed:(Landroid/view/SurfaceHolder;)V:GetSurfaceDestroyed_Landroid_view_SurfaceHolder_Handler:Android.Views.ISurfaceHolderCallbackInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null\n" +
+ "";
+ mono.android.Runtime.register ("Microsoft.Xna.Framework.MonoGameAndroidGameView, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null", MonoGameAndroidGameView.class, __md_methods);
+ }
+
+
+ public MonoGameAndroidGameView (android.content.Context p0)
+ {
+ super (p0);
+ if (getClass () == MonoGameAndroidGameView.class)
+ mono.android.TypeManager.Activate ("Microsoft.Xna.Framework.MonoGameAndroidGameView, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null", "Android.Content.Context, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065", this, new java.lang.Object[] { p0 });
+ }
+
+
+ public MonoGameAndroidGameView (android.content.Context p0, android.util.AttributeSet p1)
+ {
+ super (p0, p1);
+ if (getClass () == MonoGameAndroidGameView.class)
+ mono.android.TypeManager.Activate ("Microsoft.Xna.Framework.MonoGameAndroidGameView, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null", "Android.Content.Context, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065:Android.Util.IAttributeSet, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065", this, new java.lang.Object[] { p0, p1 });
+ }
+
+
+ public MonoGameAndroidGameView (android.content.Context p0, android.util.AttributeSet p1, int p2)
+ {
+ super (p0, p1, p2);
+ if (getClass () == MonoGameAndroidGameView.class)
+ mono.android.TypeManager.Activate ("Microsoft.Xna.Framework.MonoGameAndroidGameView, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null", "Android.Content.Context, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065:Android.Util.IAttributeSet, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065:System.Int32, mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", this, new java.lang.Object[] { p0, p1, p2 });
+ }
+
+
+ public boolean onKeyDown (int p0, android.view.KeyEvent p1)
+ {
+ return n_onKeyDown (p0, p1);
+ }
+
+ private native boolean n_onKeyDown (int p0, android.view.KeyEvent p1);
+
+
+ public boolean onKeyUp (int p0, android.view.KeyEvent p1)
+ {
+ return n_onKeyUp (p0, p1);
+ }
+
+ private native boolean n_onKeyUp (int p0, android.view.KeyEvent p1);
+
+
+ public boolean onGenericMotionEvent (android.view.MotionEvent p0)
+ {
+ return n_onGenericMotionEvent (p0);
+ }
+
+ private native boolean n_onGenericMotionEvent (android.view.MotionEvent p0);
+
+
+ public boolean onTouch (android.view.View p0, android.view.MotionEvent p1)
+ {
+ return n_onTouch (p0, p1);
+ }
+
+ private native boolean n_onTouch (android.view.View p0, android.view.MotionEvent p1);
+
+
+ public void surfaceChanged (android.view.SurfaceHolder p0, int p1, int p2, int p3)
+ {
+ n_surfaceChanged (p0, p1, p2, p3);
+ }
+
+ private native void n_surfaceChanged (android.view.SurfaceHolder p0, int p1, int p2, int p3);
+
+
+ public void surfaceCreated (android.view.SurfaceHolder p0)
+ {
+ n_surfaceCreated (p0);
+ }
+
+ private native void n_surfaceCreated (android.view.SurfaceHolder p0);
+
+
+ public void surfaceDestroyed (android.view.SurfaceHolder p0)
+ {
+ n_surfaceDestroyed (p0);
+ }
+
+ private native void n_surfaceDestroyed (android.view.SurfaceHolder p0);
+
+ private java.util.ArrayList refList;
+ public void monodroidAddReference (java.lang.Object obj)
+ {
+ if (refList == null)
+ refList = new java.util.ArrayList ();
+ refList.add (obj);
+ }
+
+ public void monodroidClearReferences ()
+ {
+ if (refList != null)
+ refList.clear ();
+ }
+}
diff --git a/WatercolorGames.Pong/obj/Release/android/src/md59e336b20c5f59a4196ec0611a339f132/OrientationListener.java b/WatercolorGames.Pong/obj/Release/android/src/md59e336b20c5f59a4196ec0611a339f132/OrientationListener.java
new file mode 100644
index 0000000..e6bae10
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/android/src/md59e336b20c5f59a4196ec0611a339f132/OrientationListener.java
@@ -0,0 +1,47 @@
+package md59e336b20c5f59a4196ec0611a339f132;
+
+
+public class OrientationListener
+ extends android.view.OrientationEventListener
+ implements
+ mono.android.IGCUserPeer
+{
+/** @hide */
+ public static final String __md_methods;
+ static {
+ __md_methods =
+ "n_onOrientationChanged:(I)V:GetOnOrientationChanged_IHandler\n" +
+ "";
+ mono.android.Runtime.register ("Microsoft.Xna.Framework.OrientationListener, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null", OrientationListener.class, __md_methods);
+ }
+
+
+ public OrientationListener (android.content.Context p0, int p1)
+ {
+ super (p0, p1);
+ if (getClass () == OrientationListener.class)
+ mono.android.TypeManager.Activate ("Microsoft.Xna.Framework.OrientationListener, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null", "Android.Content.Context, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065:Android.Hardware.SensorDelay, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065", this, new java.lang.Object[] { p0, p1 });
+ }
+
+
+ public void onOrientationChanged (int p0)
+ {
+ n_onOrientationChanged (p0);
+ }
+
+ private native void n_onOrientationChanged (int p0);
+
+ private java.util.ArrayList refList;
+ public void monodroidAddReference (java.lang.Object obj)
+ {
+ if (refList == null)
+ refList = new java.util.ArrayList ();
+ refList.add (obj);
+ }
+
+ public void monodroidClearReferences ()
+ {
+ if (refList != null)
+ refList.clear ();
+ }
+}
diff --git a/WatercolorGames.Pong/obj/Release/android/src/md59e336b20c5f59a4196ec0611a339f132/ScreenReceiver.java b/WatercolorGames.Pong/obj/Release/android/src/md59e336b20c5f59a4196ec0611a339f132/ScreenReceiver.java
new file mode 100644
index 0000000..8d79820
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/android/src/md59e336b20c5f59a4196ec0611a339f132/ScreenReceiver.java
@@ -0,0 +1,47 @@
+package md59e336b20c5f59a4196ec0611a339f132;
+
+
+public class ScreenReceiver
+ extends android.content.BroadcastReceiver
+ implements
+ mono.android.IGCUserPeer
+{
+/** @hide */
+ public static final String __md_methods;
+ static {
+ __md_methods =
+ "n_onReceive:(Landroid/content/Context;Landroid/content/Intent;)V:GetOnReceive_Landroid_content_Context_Landroid_content_Intent_Handler\n" +
+ "";
+ mono.android.Runtime.register ("Microsoft.Xna.Framework.ScreenReceiver, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null", ScreenReceiver.class, __md_methods);
+ }
+
+
+ public ScreenReceiver ()
+ {
+ super ();
+ if (getClass () == ScreenReceiver.class)
+ mono.android.TypeManager.Activate ("Microsoft.Xna.Framework.ScreenReceiver, MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, PublicKeyToken=null", "", this, new java.lang.Object[] { });
+ }
+
+
+ public void onReceive (android.content.Context p0, android.content.Intent p1)
+ {
+ n_onReceive (p0, p1);
+ }
+
+ private native void n_onReceive (android.content.Context p0, android.content.Intent p1);
+
+ private java.util.ArrayList refList;
+ public void monodroidAddReference (java.lang.Object obj)
+ {
+ if (refList == null)
+ refList = new java.util.ArrayList ();
+ refList.add (obj);
+ }
+
+ public void monodroidClearReferences ()
+ {
+ if (refList != null)
+ refList.clear ();
+ }
+}
diff --git a/WatercolorGames.Pong/obj/Release/android/src/md5ba40d894fac23818a7eeecdb5217ef4b/Activity1.java b/WatercolorGames.Pong/obj/Release/android/src/md5ba40d894fac23818a7eeecdb5217ef4b/Activity1.java
new file mode 100644
index 0000000..aa2c0ee
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/android/src/md5ba40d894fac23818a7eeecdb5217ef4b/Activity1.java
@@ -0,0 +1,47 @@
+package md5ba40d894fac23818a7eeecdb5217ef4b;
+
+
+public class Activity1
+ extends md59e336b20c5f59a4196ec0611a339f132.AndroidGameActivity
+ implements
+ mono.android.IGCUserPeer
+{
+/** @hide */
+ public static final String __md_methods;
+ static {
+ __md_methods =
+ "n_onCreate:(Landroid/os/Bundle;)V:GetOnCreate_Landroid_os_Bundle_Handler\n" +
+ "";
+ mono.android.Runtime.register ("WatercolorGames.Pong.Activity1, WatercolorGames.Pong, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null", Activity1.class, __md_methods);
+ }
+
+
+ public Activity1 ()
+ {
+ super ();
+ if (getClass () == Activity1.class)
+ mono.android.TypeManager.Activate ("WatercolorGames.Pong.Activity1, WatercolorGames.Pong, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null", "", this, new java.lang.Object[] { });
+ }
+
+
+ public void onCreate (android.os.Bundle p0)
+ {
+ n_onCreate (p0);
+ }
+
+ private native void n_onCreate (android.os.Bundle p0);
+
+ private java.util.ArrayList refList;
+ public void monodroidAddReference (java.lang.Object obj)
+ {
+ if (refList == null)
+ refList = new java.util.ArrayList ();
+ refList.add (obj);
+ }
+
+ public void monodroidClearReferences ()
+ {
+ if (refList != null)
+ refList.clear ();
+ }
+}
diff --git a/WatercolorGames.Pong/obj/Release/android/src/mono/MonoPackageManager.java b/WatercolorGames.Pong/obj/Release/android/src/mono/MonoPackageManager.java
new file mode 100644
index 0000000..613e11f
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/android/src/mono/MonoPackageManager.java
@@ -0,0 +1,115 @@
+package mono;
+
+import java.io.*;
+import java.lang.String;
+import java.util.Locale;
+import java.util.HashSet;
+import java.util.zip.*;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.res.AssetManager;
+import android.util.Log;
+import mono.android.Runtime;
+
+public class MonoPackageManager {
+
+ static Object lock = new Object ();
+ static boolean initialized;
+
+ static android.content.Context Context;
+
+ public static void LoadApplication (Context context, ApplicationInfo runtimePackage, String[] apks)
+ {
+ synchronized (lock) {
+ if (context instanceof android.app.Application) {
+ Context = context;
+ }
+ if (!initialized) {
+ android.content.IntentFilter timezoneChangedFilter = new android.content.IntentFilter (
+ android.content.Intent.ACTION_TIMEZONE_CHANGED
+ );
+ context.registerReceiver (new mono.android.app.NotifyTimeZoneChanges (), timezoneChangedFilter);
+
+ System.loadLibrary("monodroid");
+ Locale locale = Locale.getDefault ();
+ String language = locale.getLanguage () + "-" + locale.getCountry ();
+ String filesDir = context.getFilesDir ().getAbsolutePath ();
+ String cacheDir = context.getCacheDir ().getAbsolutePath ();
+ String dataDir = getNativeLibraryPath (context);
+ ClassLoader loader = context.getClassLoader ();
+ java.io.File external0 = android.os.Environment.getExternalStorageDirectory ();
+ String externalDir = new java.io.File (
+ external0,
+ "Android/data/" + context.getPackageName () + "/files/.__override__").getAbsolutePath ();
+ String externalLegacyDir = new java.io.File (
+ external0,
+ "../legacy/Android/data/" + context.getPackageName () + "/files/.__override__").getAbsolutePath ();
+
+ Runtime.init (
+ language,
+ apks,
+ getNativeLibraryPath (runtimePackage),
+ new String[]{
+ filesDir,
+ cacheDir,
+ dataDir,
+ },
+ loader,
+ new String[] {
+ externalDir,
+ externalLegacyDir
+ },
+ MonoPackageManager_Resources.Assemblies,
+ context.getPackageName ());
+
+ mono.android.app.ApplicationRegistration.registerApplications ();
+
+ initialized = true;
+ }
+ }
+ }
+
+ public static void setContext (Context context)
+ {
+ // Ignore; vestigial
+ }
+
+ static String getNativeLibraryPath (Context context)
+ {
+ return getNativeLibraryPath (context.getApplicationInfo ());
+ }
+
+ static String getNativeLibraryPath (ApplicationInfo ainfo)
+ {
+ if (android.os.Build.VERSION.SDK_INT >= 9)
+ return ainfo.nativeLibraryDir;
+ return ainfo.dataDir + "/lib";
+ }
+
+ public static String[] getAssemblies ()
+ {
+ return MonoPackageManager_Resources.Assemblies;
+ }
+
+ public static String[] getDependencies ()
+ {
+ return MonoPackageManager_Resources.Dependencies;
+ }
+
+ public static String getApiPackageName ()
+ {
+ return MonoPackageManager_Resources.ApiPackageName;
+ }
+}
+
+class MonoPackageManager_Resources {
+ public static final String[] Assemblies = new String[]{
+ /* We need to ensure that "WatercolorGames.Pong.dll" comes first in this list. */
+ "WatercolorGames.Pong.dll",
+ "MonoGame.Framework.dll",
+ };
+ public static final String[] Dependencies = new String[]{
+ };
+ public static final String ApiPackageName = null;
+}
diff --git a/WatercolorGames.Pong/obj/Release/android/src/mono/MonoRuntimeProvider.java b/WatercolorGames.Pong/obj/Release/android/src/mono/MonoRuntimeProvider.java
new file mode 100644
index 0000000..3543307
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/android/src/mono/MonoRuntimeProvider.java
@@ -0,0 +1,57 @@
+package mono;
+
+import android.util.Log;
+
+public class MonoRuntimeProvider
+ extends android.content.ContentProvider
+{
+ public MonoRuntimeProvider ()
+ {
+ }
+
+ @Override
+ public boolean onCreate ()
+ {
+ return true;
+ }
+
+ @Override
+ public void attachInfo (android.content.Context context, android.content.pm.ProviderInfo info)
+ {
+ // Mono Runtime Initialization {{{
+ mono.MonoPackageManager.LoadApplication (context, context.getApplicationInfo (), new String[]{context.getApplicationInfo ().sourceDir});
+ // }}}
+ super.attachInfo (context, info);
+ }
+
+ @Override
+ public android.database.Cursor query (android.net.Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)
+ {
+ throw new RuntimeException ("This operation is not supported.");
+ }
+
+ @Override
+ public String getType (android.net.Uri uri)
+ {
+ throw new RuntimeException ("This operation is not supported.");
+ }
+
+ @Override
+ public android.net.Uri insert (android.net.Uri uri, android.content.ContentValues initialValues)
+ {
+ throw new RuntimeException ("This operation is not supported.");
+ }
+
+ @Override
+ public int delete (android.net.Uri uri, String where, String[] whereArgs)
+ {
+ throw new RuntimeException ("This operation is not supported.");
+ }
+
+ @Override
+ public int update (android.net.Uri uri, android.content.ContentValues values, String where, String[] whereArgs)
+ {
+ throw new RuntimeException ("This operation is not supported.");
+ }
+}
+
diff --git a/WatercolorGames.Pong/obj/Release/android/src/mono/android/app/ApplicationRegistration.java b/WatercolorGames.Pong/obj/Release/android/src/mono/android/app/ApplicationRegistration.java
new file mode 100644
index 0000000..b150f3d
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/android/src/mono/android/app/ApplicationRegistration.java
@@ -0,0 +1,10 @@
+package mono.android.app;
+
+public class ApplicationRegistration {
+
+ public static void registerApplications ()
+ {
+ // Application and Instrumentation ACWs must be registered first.
+
+ }
+}
diff --git a/WatercolorGames.Pong/obj/Release/android/src/mono/android/app/NotifyTimeZoneChanges.java b/WatercolorGames.Pong/obj/Release/android/src/mono/android/app/NotifyTimeZoneChanges.java
new file mode 100644
index 0000000..21896a0
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/android/src/mono/android/app/NotifyTimeZoneChanges.java
@@ -0,0 +1,8 @@
+package mono.android.app;
+
+public class NotifyTimeZoneChanges extends android.content.BroadcastReceiver {
+ @Override
+ public void onReceive (android.content.Context context, android.content.Intent intent) {
+ mono.android.Runtime.notifyTimeZoneChanged ();
+ }
+}
diff --git a/WatercolorGames.Pong/obj/Release/android/src/watercolorgames/pong/R.java b/WatercolorGames.Pong/obj/Release/android/src/watercolorgames/pong/R.java
new file mode 100644
index 0000000..60c2d29
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/android/src/watercolorgames/pong/R.java
@@ -0,0 +1,24 @@
+/* AUTO-GENERATED FILE. DO NOT MODIFY.
+ *
+ * This class was automatically generated by the
+ * aapt tool from the resource data it found. It
+ * should not be modified by hand.
+ */
+
+package watercolorgames.pong;
+
+public final class R {
+ public static final class attr {
+ }
+ public static final class drawable {
+ public static final int icon=0x7f020000;
+ public static final int splash=0x7f020001;
+ }
+ public static final class string {
+ public static final int ApplicationName=0x7f030001;
+ public static final int Hello=0x7f030000;
+ }
+ public static final class style {
+ public static final int Theme_Splash=0x7f040000;
+ }
+}
diff --git a/WatercolorGames.Pong/obj/Release/android/typemap.jm b/WatercolorGames.Pong/obj/Release/android/typemap.jm
new file mode 100644
index 0000000..cb42d61
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/typemap.jm differ
diff --git a/WatercolorGames.Pong/obj/Release/android/typemap.mj b/WatercolorGames.Pong/obj/Release/android/typemap.mj
new file mode 100644
index 0000000..f236f9d
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/android/typemap.mj differ
diff --git a/WatercolorGames.Pong/obj/Release/android/watercolorgames/pong/R.java b/WatercolorGames.Pong/obj/Release/android/watercolorgames/pong/R.java
new file mode 100644
index 0000000..60c2d29
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/android/watercolorgames/pong/R.java
@@ -0,0 +1,24 @@
+/* AUTO-GENERATED FILE. DO NOT MODIFY.
+ *
+ * This class was automatically generated by the
+ * aapt tool from the resource data it found. It
+ * should not be modified by hand.
+ */
+
+package watercolorgames.pong;
+
+public final class R {
+ public static final class attr {
+ }
+ public static final class drawable {
+ public static final int icon=0x7f020000;
+ public static final int splash=0x7f020001;
+ }
+ public static final class string {
+ public static final int ApplicationName=0x7f030001;
+ public static final int Hello=0x7f030000;
+ }
+ public static final class style {
+ public static final int Theme_Splash=0x7f040000;
+ }
+}
diff --git a/WatercolorGames.Pong/obj/Release/android_debug_keystore.flag b/WatercolorGames.Pong/obj/Release/android_debug_keystore.flag
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Release/build.props b/WatercolorGames.Pong/obj/Release/build.props
new file mode 100644
index 0000000..0e585ec
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/build.props
@@ -0,0 +1,22 @@
+BundleAssemblies=False
+AotAssemblies=False
+AndroidAotMode=
+ExplicitCrunch=False
+EnableProguard=
+UseSharedRuntime=False
+EmbedAssembliesIntoApk=True
+AndroidLinkMode=SdkOnly
+AndroidLinkSkip=
+AndroidSdkBuildToolsVersion=23.0.0
+AndroidSdkPath=
+AndroidNdkPath=
+JavaSdkPath=
+AndroidSequencePointsMode=None
+XamarinAndroidVersion=8.2.0-15
+MonoSymbolArchive=False
+AndroidUseLatestPlatformSdk=false
+TargetFrameworkVersion=v7.0
+AndroidCreatePackagePerAbi=
+OS=Windows_NT
+DesignTimeBuild=
+AndroidIncludeDebugSymbols=False
diff --git a/WatercolorGames.Pong/obj/Release/designtime/libraryimports.cache b/WatercolorGames.Pong/obj/Release/designtime/libraryimports.cache
new file mode 100644
index 0000000..d74d7c0
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/designtime/libraryimports.cache
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/obj/Release/designtime/libraryprojectimports.cache b/WatercolorGames.Pong/obj/Release/designtime/libraryprojectimports.cache
new file mode 100644
index 0000000..2a47345
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/designtime/libraryprojectimports.cache
@@ -0,0 +1,14 @@
+
+
+
+
+ C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\lp\0\jl\res
+
+
+ obj\Release\lp\0\jl\assets
+
+
+
+ C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\lp\0.stamp
+
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/obj/Release/devices.cache b/WatercolorGames.Pong/obj/Release/devices.cache
new file mode 100644
index 0000000..87aa662
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/devices.cache
@@ -0,0 +1,7 @@
+
+
+
+ armeabi-v7a
+ 24
+
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/obj/Release/libraryimports.cache b/WatercolorGames.Pong/obj/Release/libraryimports.cache
new file mode 100644
index 0000000..d74d7c0
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/libraryimports.cache
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/obj/Release/libraryprojectimports.cache b/WatercolorGames.Pong/obj/Release/libraryprojectimports.cache
new file mode 100644
index 0000000..2a47345
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/libraryprojectimports.cache
@@ -0,0 +1,14 @@
+
+
+
+
+ C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\lp\0\jl\res
+
+
+ obj\Release\lp\0\jl\assets
+
+
+
+ C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\lp\0.stamp
+
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/obj/Release/link.flag b/WatercolorGames.Pong/obj/Release/link.flag
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/Java.Interop.dll b/WatercolorGames.Pong/obj/Release/linksrc/Java.Interop.dll
new file mode 100644
index 0000000..3685651
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/Java.Interop.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/Mono.Android.dll b/WatercolorGames.Pong/obj/Release/linksrc/Mono.Android.dll
new file mode 100644
index 0000000..673b7b1
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/Mono.Android.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/Mono.Android.pdb b/WatercolorGames.Pong/obj/Release/linksrc/Mono.Android.pdb
new file mode 100644
index 0000000..620957b
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/Mono.Android.pdb differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/Mono.Security.dll b/WatercolorGames.Pong/obj/Release/linksrc/Mono.Security.dll
new file mode 100644
index 0000000..48aadbd
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/Mono.Security.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/Mono.Security.pdb b/WatercolorGames.Pong/obj/Release/linksrc/Mono.Security.pdb
new file mode 100644
index 0000000..dfc9716
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/Mono.Security.pdb differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/MonoGame.Framework.dll b/WatercolorGames.Pong/obj/Release/linksrc/MonoGame.Framework.dll
new file mode 100644
index 0000000..ffe8fdb
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/MonoGame.Framework.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/OpenTK-1.0.dll b/WatercolorGames.Pong/obj/Release/linksrc/OpenTK-1.0.dll
new file mode 100644
index 0000000..d4f0648
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/OpenTK-1.0.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/OpenTK-1.0.pdb b/WatercolorGames.Pong/obj/Release/linksrc/OpenTK-1.0.pdb
new file mode 100644
index 0000000..da830a3
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/OpenTK-1.0.pdb differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.Collections.Concurrent.dll b/WatercolorGames.Pong/obj/Release/linksrc/System.Collections.Concurrent.dll
new file mode 100644
index 0000000..09b8491
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.Collections.Concurrent.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.Collections.dll b/WatercolorGames.Pong/obj/Release/linksrc/System.Collections.dll
new file mode 100644
index 0000000..8142c94
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.Collections.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.ComponentModel.Composition.dll b/WatercolorGames.Pong/obj/Release/linksrc/System.ComponentModel.Composition.dll
new file mode 100644
index 0000000..e8d98ba
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.ComponentModel.Composition.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.ComponentModel.Composition.pdb b/WatercolorGames.Pong/obj/Release/linksrc/System.ComponentModel.Composition.pdb
new file mode 100644
index 0000000..42981da
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.ComponentModel.Composition.pdb differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.Core.dll b/WatercolorGames.Pong/obj/Release/linksrc/System.Core.dll
new file mode 100644
index 0000000..7aee4a0
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.Core.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.Core.pdb b/WatercolorGames.Pong/obj/Release/linksrc/System.Core.pdb
new file mode 100644
index 0000000..e016c49
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.Core.pdb differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.Diagnostics.Debug.dll b/WatercolorGames.Pong/obj/Release/linksrc/System.Diagnostics.Debug.dll
new file mode 100644
index 0000000..690370f
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.Diagnostics.Debug.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.Linq.dll b/WatercolorGames.Pong/obj/Release/linksrc/System.Linq.dll
new file mode 100644
index 0000000..d1a4fd5
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.Linq.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.Net.Http.dll b/WatercolorGames.Pong/obj/Release/linksrc/System.Net.Http.dll
new file mode 100644
index 0000000..17a195d
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.Net.Http.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.Net.Http.pdb b/WatercolorGames.Pong/obj/Release/linksrc/System.Net.Http.pdb
new file mode 100644
index 0000000..d45e958
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.Net.Http.pdb differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.Reflection.Extensions.dll b/WatercolorGames.Pong/obj/Release/linksrc/System.Reflection.Extensions.dll
new file mode 100644
index 0000000..063b612
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.Reflection.Extensions.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.Reflection.Primitives.dll b/WatercolorGames.Pong/obj/Release/linksrc/System.Reflection.Primitives.dll
new file mode 100644
index 0000000..1f37a6e
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.Reflection.Primitives.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.Reflection.dll b/WatercolorGames.Pong/obj/Release/linksrc/System.Reflection.dll
new file mode 100644
index 0000000..987c3a2
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.Reflection.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.Runtime.Extensions.dll b/WatercolorGames.Pong/obj/Release/linksrc/System.Runtime.Extensions.dll
new file mode 100644
index 0000000..b65db38
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.Runtime.Extensions.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.Runtime.InteropServices.dll b/WatercolorGames.Pong/obj/Release/linksrc/System.Runtime.InteropServices.dll
new file mode 100644
index 0000000..3bd1604
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.Runtime.InteropServices.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.Runtime.Serialization.dll b/WatercolorGames.Pong/obj/Release/linksrc/System.Runtime.Serialization.dll
new file mode 100644
index 0000000..bf210a7
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.Runtime.Serialization.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.Runtime.Serialization.pdb b/WatercolorGames.Pong/obj/Release/linksrc/System.Runtime.Serialization.pdb
new file mode 100644
index 0000000..9db6baf
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.Runtime.Serialization.pdb differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.Runtime.dll b/WatercolorGames.Pong/obj/Release/linksrc/System.Runtime.dll
new file mode 100644
index 0000000..014cc75
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.Runtime.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.ServiceModel.Internals.dll b/WatercolorGames.Pong/obj/Release/linksrc/System.ServiceModel.Internals.dll
new file mode 100644
index 0000000..6bd8366
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.ServiceModel.Internals.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.ServiceModel.Internals.pdb b/WatercolorGames.Pong/obj/Release/linksrc/System.ServiceModel.Internals.pdb
new file mode 100644
index 0000000..82964fa
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.ServiceModel.Internals.pdb differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.Threading.dll b/WatercolorGames.Pong/obj/Release/linksrc/System.Threading.dll
new file mode 100644
index 0000000..0c09cbc
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.Threading.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.Xml.Linq.dll b/WatercolorGames.Pong/obj/Release/linksrc/System.Xml.Linq.dll
new file mode 100644
index 0000000..6cb47d7
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.Xml.Linq.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.Xml.Linq.pdb b/WatercolorGames.Pong/obj/Release/linksrc/System.Xml.Linq.pdb
new file mode 100644
index 0000000..3b5075f
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.Xml.Linq.pdb differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.Xml.dll b/WatercolorGames.Pong/obj/Release/linksrc/System.Xml.dll
new file mode 100644
index 0000000..21f8d20
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.Xml.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.Xml.pdb b/WatercolorGames.Pong/obj/Release/linksrc/System.Xml.pdb
new file mode 100644
index 0000000..aa7b2c5
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.Xml.pdb differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.dll b/WatercolorGames.Pong/obj/Release/linksrc/System.dll
new file mode 100644
index 0000000..45285b2
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/System.pdb b/WatercolorGames.Pong/obj/Release/linksrc/System.pdb
new file mode 100644
index 0000000..d85743d
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/System.pdb differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/WatercolorGames.Pong.dll b/WatercolorGames.Pong/obj/Release/linksrc/WatercolorGames.Pong.dll
new file mode 100644
index 0000000..231b9ec
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/WatercolorGames.Pong.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/WatercolorGames.Pong.dll.mdb b/WatercolorGames.Pong/obj/Release/linksrc/WatercolorGames.Pong.dll.mdb
new file mode 100644
index 0000000..572df38
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/WatercolorGames.Pong.dll.mdb differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/mscorlib.dll b/WatercolorGames.Pong/obj/Release/linksrc/mscorlib.dll
new file mode 100644
index 0000000..3bada6c
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/mscorlib.dll differ
diff --git a/WatercolorGames.Pong/obj/Release/linksrc/mscorlib.pdb b/WatercolorGames.Pong/obj/Release/linksrc/mscorlib.pdb
new file mode 100644
index 0000000..9cb2b57
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/linksrc/mscorlib.pdb differ
diff --git a/WatercolorGames.Pong/obj/Release/lp/0.stamp b/WatercolorGames.Pong/obj/Release/lp/0.stamp
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Release/lp/1.stamp b/WatercolorGames.Pong/obj/Release/lp/1.stamp
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Release/lp/2.stamp b/WatercolorGames.Pong/obj/Release/lp/2.stamp
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Release/lp/map.cache b/WatercolorGames.Pong/obj/Release/lp/map.cache
new file mode 100644
index 0000000..4e51494
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/lp/map.cache
@@ -0,0 +1,3 @@
+MonoGame.Framework
+MonoGame.Framework.Net
+System.Runtime
diff --git a/WatercolorGames.Pong/obj/Release/res/drawable/icon.png b/WatercolorGames.Pong/obj/Release/res/drawable/icon.png
new file mode 100644
index 0000000..f6f4f41
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/res/drawable/icon.png differ
diff --git a/WatercolorGames.Pong/obj/Release/res/drawable/splash.png b/WatercolorGames.Pong/obj/Release/res/drawable/splash.png
new file mode 100644
index 0000000..2f86107
Binary files /dev/null and b/WatercolorGames.Pong/obj/Release/res/drawable/splash.png differ
diff --git a/WatercolorGames.Pong/obj/Release/res/values/strings.xml b/WatercolorGames.Pong/obj/Release/res/values/strings.xml
new file mode 100644
index 0000000..56a583e
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/res/values/strings.xml
@@ -0,0 +1 @@
+Hello World, Click Me!WatercolorGames.Pong
\ No newline at end of file
diff --git a/WatercolorGames.Pong/obj/Release/res/values/styles.xml b/WatercolorGames.Pong/obj/Release/res/values/styles.xml
new file mode 100644
index 0000000..de33812
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/res/values/styles.xml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/obj/Release/resolved_assemblies.txt b/WatercolorGames.Pong/obj/Release/resolved_assemblies.txt
new file mode 100644
index 0000000..851f1d9
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/resolved_assemblies.txt
@@ -0,0 +1,9 @@
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\android\assets\WatercolorGames.Pong.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\android\assets\Java.Interop.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\android\assets\Mono.Android.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\android\assets\MonoGame.Framework.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\android\assets\mscorlib.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\android\assets\OpenTK-1.0.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\android\assets\System.Core.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\android\assets\System.dll
+C:\Users\Michael\source\repos\WatercolorGames.Pong\WatercolorGames.Pong\obj\Release\android\assets\System.Runtime.Serialization.dll
diff --git a/WatercolorGames.Pong/obj/Release/resourcepaths.cache b/WatercolorGames.Pong/obj/Release/resourcepaths.cache
new file mode 100644
index 0000000..063d880
--- /dev/null
+++ b/WatercolorGames.Pong/obj/Release/resourcepaths.cache
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WatercolorGames.Pong/obj/Release/static.flag b/WatercolorGames.Pong/obj/Release/static.flag
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Release/strip.flag b/WatercolorGames.Pong/obj/Release/strip.flag
new file mode 100644
index 0000000..e69de29
diff --git a/WatercolorGames.Pong/obj/Release/upload.flag b/WatercolorGames.Pong/obj/Release/upload.flag
new file mode 100644
index 0000000..e69de29