diff --git a/ANX.Framework/ANX.Framework.csproj b/ANX.Framework/ANX.Framework.csproj
index 910661cc..c51d48ed 100644
--- a/ANX.Framework/ANX.Framework.csproj
+++ b/ANX.Framework/ANX.Framework.csproj
@@ -181,6 +181,7 @@
+
@@ -198,6 +199,7 @@
+
diff --git a/ANX.Framework/Graphics/GraphicsDevice.cs b/ANX.Framework/Graphics/GraphicsDevice.cs
index fa5538b8..c41f7978 100644
--- a/ANX.Framework/Graphics/GraphicsDevice.cs
+++ b/ANX.Framework/Graphics/GraphicsDevice.cs
@@ -139,13 +139,13 @@ namespace ANX.Framework.Graphics
throw new NotImplementedException();
}
- public void DrawUserPrimitive(PrimitiveType primitiveType, T[] vertexData, int vertexOffset, int primitiveCount) where T : struct, IVertexType
+ public void DrawUserPrimitives(PrimitiveType primitiveType, T[] vertexData, int vertexOffset, int primitiveCount) where T : struct, IVertexType
{
throw new NotImplementedException();
//TODO: nativeDevice.DrawUserPrimitive(primitiveCount, vertexOffset);
}
- public void DrawUserPrimitive(PrimitiveType primitiveType, T[] vertexData, int vertexOffset, int primitiveCount, VertexDeclaration vertexDeclaration) where T : struct, IVertexType
+ public void DrawUserPrimitives(PrimitiveType primitiveType, T[] vertexData, int vertexOffset, int primitiveCount, VertexDeclaration vertexDeclaration) where T : struct, IVertexType
{
throw new NotImplementedException();
//TODO: nativeDevice.DrawUserPrimitive(primitiveCount, vertexOffset);
@@ -166,6 +166,46 @@ namespace ANX.Framework.Graphics
nativeDevice.SetVertexBuffers(vertexBuffers);
}
+ public void SetRenderTarget(RenderTarget2D renderTarget)
+ {
+ throw new NotImplementedException();
+ }
+
+ public void SetRenderTarget(RenderTargetCube renderTarget, CubeMapFace cubeMapFace)
+ {
+ throw new NotImplementedException();
+ }
+
+ public void SetRenderTargets(params RenderTargetBinding[] renderTargets)
+ {
+ throw new NotImplementedException();
+ }
+
+ public void GetBackBufferData(Nullable rect, T[] data, int startIndex, int elementCount) where T : struct
+ {
+ throw new NotImplementedException();
+ }
+
+ public void GetBackBufferData(T[] data) where T : struct
+ {
+ throw new NotImplementedException();
+ }
+
+ public void GetBackBufferData(T[] data, int startIndex, int elementCount) where T : struct
+ {
+ throw new NotImplementedException();
+ }
+
+ public VertexBufferBinding[] GetVertexBuffers()
+ {
+ throw new NotImplementedException();
+ }
+
+ public RenderTargetBinding[] GetRenderTargets()
+ {
+ throw new NotImplementedException();
+ }
+
public void Reset()
{
this.Reset(this.currentPresentationParameters, this.currentAdapter);
diff --git a/ANX.Framework/Graphics/RenderTarget2D.cs b/ANX.Framework/Graphics/RenderTarget2D.cs
new file mode 100644
index 00000000..69b86091
--- /dev/null
+++ b/ANX.Framework/Graphics/RenderTarget2D.cs
@@ -0,0 +1,116 @@
+#region Using Statements
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using ANX.Framework.NonXNA;
+using ANX.Framework.Graphics;
+
+#endregion // Using Statements
+
+#region License
+
+//
+// This file is part of the ANX.Framework created by the "ANX.Framework developer group".
+//
+// This file is released under the Ms-PL license.
+//
+//
+//
+// Microsoft Public License (Ms-PL)
+//
+// This license governs use of the accompanying software. If you use the software, you accept this license.
+// If you do not accept the license, do not use the software.
+//
+// 1.Definitions
+// The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning
+// here as under U.S. copyright law.
+// A "contribution" is the original software, or any additions or changes to the software.
+// A "contributor" is any person that distributes its contribution under this license.
+// "Licensed patents" are a contributor's patent claims that read directly on its contribution.
+//
+// 2.Grant of Rights
+// (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations
+// in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to
+// reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution
+// or any derivative works that you create.
+// (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in
+// section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed
+// patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution
+// in the software or derivative works of the contribution in the software.
+//
+// 3.Conditions and Limitations
+// (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
+// (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your
+// patent license from such contributor to the software ends automatically.
+// (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution
+// notices that are present in the software.
+// (D) If you distribute any portion of the software in source code form, you may do so only under this license by including
+// a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or
+// object code form, you may only do so under a license that complies with this license.
+// (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees,
+// or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the
+// extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a
+// particular purpose and non-infringement.
+
+#endregion // License
+
+namespace ANX.Framework.Graphics
+{
+ public class RenderTarget2D : Texture2D
+ {
+ public event EventHandler ContentLost;
+
+ public RenderTarget2D(GraphicsDevice graphicsDevice, int width, int height)
+ : base(graphicsDevice, width, height)
+ {
+ throw new NotImplementedException();
+ }
+
+ public RenderTarget2D(GraphicsDevice graphicsDevice, int width, int height, bool mipMap, SurfaceFormat preferredFormat, DepthFormat preferredDepthFormat)
+ : base(graphicsDevice, width, height)
+ {
+ throw new NotImplementedException();
+ }
+
+ public RenderTarget2D(GraphicsDevice graphicsDevice, int width, int height, bool mipMap, SurfaceFormat preferredFormat, DepthFormat preferredDepthFormat, int preferredMultiSampleCount, RenderTargetUsage usage)
+ : base(graphicsDevice, width, height)
+ {
+ throw new NotImplementedException();
+ }
+
+ public DepthFormat DepthStencilFormat
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public bool IsContentLost
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public int MultiSampleCount
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public RenderTargetUsage RenderTargetUsage
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+
+ }
+}
diff --git a/ANX.Framework/Graphics/RenderTargetCube.cs b/ANX.Framework/Graphics/RenderTargetCube.cs
new file mode 100644
index 00000000..73aa0563
--- /dev/null
+++ b/ANX.Framework/Graphics/RenderTargetCube.cs
@@ -0,0 +1,110 @@
+#region Using Statements
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using ANX.Framework.NonXNA;
+using ANX.Framework.Graphics;
+
+#endregion // Using Statements
+
+#region License
+
+//
+// This file is part of the ANX.Framework created by the "ANX.Framework developer group".
+//
+// This file is released under the Ms-PL license.
+//
+//
+//
+// Microsoft Public License (Ms-PL)
+//
+// This license governs use of the accompanying software. If you use the software, you accept this license.
+// If you do not accept the license, do not use the software.
+//
+// 1.Definitions
+// The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning
+// here as under U.S. copyright law.
+// A "contribution" is the original software, or any additions or changes to the software.
+// A "contributor" is any person that distributes its contribution under this license.
+// "Licensed patents" are a contributor's patent claims that read directly on its contribution.
+//
+// 2.Grant of Rights
+// (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations
+// in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to
+// reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution
+// or any derivative works that you create.
+// (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in
+// section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed
+// patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution
+// in the software or derivative works of the contribution in the software.
+//
+// 3.Conditions and Limitations
+// (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
+// (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your
+// patent license from such contributor to the software ends automatically.
+// (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution
+// notices that are present in the software.
+// (D) If you distribute any portion of the software in source code form, you may do so only under this license by including
+// a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or
+// object code form, you may only do so under a license that complies with this license.
+// (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees,
+// or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the
+// extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a
+// particular purpose and non-infringement.
+
+#endregion // License
+
+namespace ANX.Framework.Graphics
+{
+ public class RenderTargetCube : TextureCube
+ {
+ public event EventHandler ContentLost;
+
+ public RenderTargetCube(GraphicsDevice graphicsDevice, int size, bool mipMap, SurfaceFormat preferredFormat, DepthFormat preferredDepthFormat)
+ : base(graphicsDevice, size, mipMap, preferredFormat)
+ {
+ throw new NotImplementedException();
+ }
+
+ public RenderTargetCube(GraphicsDevice graphicsDevice, int size, bool mipMap, SurfaceFormat preferredFormat, DepthFormat preferredDepthFormat, int preferredMultiSampleCount, RenderTargetUsage usage)
+ : base(graphicsDevice, size, mipMap, preferredFormat)
+ {
+ throw new NotImplementedException();
+ }
+
+ public DepthFormat DepthStencilFormat
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public bool IsContentLost
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public int MultiSampleCount
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public RenderTargetUsage RenderTargetUsage
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+
+ }
+}
diff --git a/ANX.Framework/Input/MouseState.cs b/ANX.Framework/Input/MouseState.cs
index e90e26b0..8bcf7454 100644
--- a/ANX.Framework/Input/MouseState.cs
+++ b/ANX.Framework/Input/MouseState.cs
@@ -84,38 +84,56 @@ namespace ANX.Framework.Input
public int X { get { return this.x; } }
public int Y { get { return this.y; } }
- public static bool operator ==(MouseState left, MouseState right)
- {
- return left.X == right.X &&
- left.Y == right.Y &&
- left.LeftButton == right.LeftButton &&
- left.MiddleButton == right.MiddleButton &&
- left.RightButton == right.RightButton &&
- left.XButton1 == right.XButton1 &&
- left.XButton2 == right.XButton2 &&
- left.ScrollWheelValue == right.ScrollWheelValue;
- }
+ public static bool operator ==(MouseState left, MouseState right)
+ {
+ return left.X == right.X &&
+ left.Y == right.Y &&
+ left.LeftButton == right.LeftButton &&
+ left.MiddleButton == right.MiddleButton &&
+ left.RightButton == right.RightButton &&
+ left.XButton1 == right.XButton1 &&
+ left.XButton2 == right.XButton2 &&
+ left.ScrollWheelValue == right.ScrollWheelValue;
+ }
- public static bool operator !=(MouseState left, MouseState right)
- {
- return left.X != right.X ||
- left.Y != right.Y ||
- left.LeftButton != right.LeftButton ||
- left.MiddleButton != right.MiddleButton ||
- left.RightButton != right.RightButton ||
- left.XButton1 != right.XButton1 ||
- left.XButton2 != right.XButton2 ||
- left.ScrollWheelValue != right.ScrollWheelValue;
- }
+ public static bool operator !=(MouseState left, MouseState right)
+ {
+ return left.X != right.X ||
+ left.Y != right.Y ||
+ left.LeftButton != right.LeftButton ||
+ left.MiddleButton != right.MiddleButton ||
+ left.RightButton != right.RightButton ||
+ left.XButton1 != right.XButton1 ||
+ left.XButton2 != right.XButton2 ||
+ left.ScrollWheelValue != right.ScrollWheelValue;
+ }
- public override bool Equals(object obj)
- {
- if (obj is MouseState)
- {
- return this == (MouseState)obj;
- }
+ public override bool Equals(object obj)
+ {
+ if (obj is MouseState)
+ {
+ return this == (MouseState)obj;
+ }
- return false;
- }
+ return false;
+ }
+
+ public override int GetHashCode()
+ {
+ return ((((((this.x.GetHashCode() ^ this.y.GetHashCode()) ^ this.leftButton.GetHashCode()) ^ this.rightButton.GetHashCode()) ^ this.middleButton.GetHashCode()) ^ this.xButton1.GetHashCode()) ^ this.xButton2.GetHashCode()) ^ this.scrollWheel.GetHashCode();
+ }
+
+ public override string ToString()
+ {
+ string buttons = String.Empty;
+
+ buttons += leftButton == ButtonState.Pressed ? "Left" : "";
+ buttons += rightButton == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "Right" : "";
+ buttons += middleButton == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "Middle" : "";
+ buttons += xButton1 == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "XButton1" : "";
+ buttons += xButton2 == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "XButton2" : "";
+
+ return string.Format("{{X:{0} Y:{1} Buttons:{2} Wheel:{3}}}", this.x, this.y, buttons, this.scrollWheel);
+ }
}
}
diff --git a/ANX.InputSystem.Windows.XInput/Mouse.cs b/ANX.InputSystem.Windows.XInput/Mouse.cs
index 1791ce31..5a501e64 100644
--- a/ANX.InputSystem.Windows.XInput/Mouse.cs
+++ b/ANX.InputSystem.Windows.XInput/Mouse.cs
@@ -122,7 +122,7 @@ namespace ANX.InputSystem.Windows.XInput
GetCursorPos(ref currentPosition);
if (WindowHandle != IntPtr.Zero)
{
- ScreenToClient(WindowHandle, ref currentPosition;
+ ScreenToClient(WindowHandle, ref currentPosition);
}
SetCursorPos(currentPosition.X, currentPosition.Y);
}