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); }