MouseState: now reported as complete by ANXStatusComparer

Mouse: fixed a typo in SetPosition
GraphicsDevice: prepared some more methods
This commit is contained in:
Glatzemann 2011-11-07 06:52:52 +00:00
parent 30f7b619aa
commit 68875fe086
6 changed files with 319 additions and 33 deletions

View File

@ -181,6 +181,7 @@
<Compile Include="Graphics\IndexBuffer.cs" />
<Compile Include="Graphics\IndexElementSize.cs" />
<Compile Include="Graphics\IVertexType.cs" />
<Compile Include="Graphics\RenderTargetCube.cs" />
<Compile Include="Graphics\PackedVector\Alpha8.cs" />
<Compile Include="Graphics\PackedVector\Bgr565.cs" />
<Compile Include="Graphics\PackedVector\Bgra4444.cs" />
@ -198,6 +199,7 @@
<Compile Include="Graphics\PackedVector\Rgba64.cs" />
<Compile Include="Graphics\PackedVector\Short2.cs" />
<Compile Include="Graphics\PackedVector\Short4.cs" />
<Compile Include="Graphics\RenderTarget2D.cs" />
<Compile Include="Graphics\RenderTargetBinding.cs" />
<Compile Include="Graphics\ResourceCreatedEventArgs.cs" />
<Compile Include="Graphics\ResourceDestroyedEventArgs.cs" />

View File

@ -139,13 +139,13 @@ namespace ANX.Framework.Graphics
throw new NotImplementedException();
}
public void DrawUserPrimitive<T>(PrimitiveType primitiveType, T[] vertexData, int vertexOffset, int primitiveCount) where T : struct, IVertexType
public void DrawUserPrimitives<T>(PrimitiveType primitiveType, T[] vertexData, int vertexOffset, int primitiveCount) where T : struct, IVertexType
{
throw new NotImplementedException();
//TODO: nativeDevice.DrawUserPrimitive(primitiveCount, vertexOffset);
}
public void DrawUserPrimitive<T>(PrimitiveType primitiveType, T[] vertexData, int vertexOffset, int primitiveCount, VertexDeclaration vertexDeclaration) where T : struct, IVertexType
public void DrawUserPrimitives<T>(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<T>(Nullable<Rectangle> rect, T[] data, int startIndex, int elementCount) where T : struct
{
throw new NotImplementedException();
}
public void GetBackBufferData<T>(T[] data) where T : struct
{
throw new NotImplementedException();
}
public void GetBackBufferData<T>(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);

View File

@ -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<EventArgs> 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();
}
}
}
}

View File

@ -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<EventArgs> 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();
}
}
}
}

View File

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

View File

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