Updated BasicEffectSample, DualTextureSample, KeyboardSample and MultiRenderTarget. Also reduced the memory usage for multiple rendertargets

Also did some Refactoring for Classes that implement and use
INativeBuffer.
The memory usage reduction for rendertargets resulted in some
refactoring of the directx texture classes.
Also added DebugNames for some DirectX resources in case of a debug
build.
This commit is contained in:
Konstantin Koch 2015-09-30 21:31:15 +02:00
parent c335f183cb
commit 55ab328f79
44 changed files with 2059 additions and 1605 deletions

View File

@ -150,7 +150,7 @@ namespace ANX.Framework.Graphics
public void GetData<T>(T[] data) where T : struct
{
NativeIndexBuffer.GetData(data);
NativeIndexBuffer.GetData(data);
}
public void GetData<T>(T[] data, int startIndex, int elementCount)
@ -164,19 +164,18 @@ namespace ANX.Framework.Graphics
public void SetData<T>(int offsetInBytes, T[] data, int startIndex,
int elementCount) where T : struct
{
NativeIndexBuffer.SetData(GraphicsDevice, offsetInBytes, data,
startIndex, elementCount);
NativeIndexBuffer.SetData(offsetInBytes, data, startIndex, elementCount);
}
public void SetData<T>(T[] data) where T : struct
{
NativeIndexBuffer.SetData(GraphicsDevice, data);
NativeIndexBuffer.SetData(data);
}
public void SetData<T>(T[] data, int startIndex, int elementCount)
where T : struct
{
NativeIndexBuffer.SetData(GraphicsDevice, data, startIndex, elementCount);
NativeIndexBuffer.SetData(data, startIndex, elementCount);
}
#endregion

View File

@ -30,8 +30,8 @@ namespace ANX.Framework.Graphics
public RenderTarget2D(GraphicsDevice graphicsDevice, int width, int height)
: base(graphicsDevice)
{
this.width = width;
this.height = height;
this.Width = width;
this.Height = height;
OneOverWidth = 1f / width;
OneOverHeight = 1f / height;
@ -52,8 +52,8 @@ namespace ANX.Framework.Graphics
[MarshalAsAttribute(UnmanagedType.U1)] bool mipMap, SurfaceFormat preferredFormat, DepthFormat preferredDepthFormat)
: base(graphicsDevice)
{
this.width = width;
this.height = height;
this.Width = width;
this.Height = height;
OneOverWidth = 1f / width;
OneOverHeight = 1f / height;
@ -75,8 +75,8 @@ namespace ANX.Framework.Graphics
int preferredMultiSampleCount, RenderTargetUsage usage)
: base(graphicsDevice)
{
this.width = width;
this.height = height;
this.Width = width;
this.Height = height;
OneOverWidth = 1f / width;
OneOverHeight = 1f / height;

View File

@ -20,9 +20,6 @@ namespace ANX.Framework.Graphics
public class Texture2D : Texture, IGraphicsResource
{
#region Private
protected internal int width;
protected internal int height;
internal float OneOverWidth;
internal float OneOverHeight;
@ -44,24 +41,20 @@ namespace ANX.Framework.Graphics
{
get
{
return new Rectangle(0, 0, this.width, this.height);
return new Rectangle(0, 0, this.Width, this.Height);
}
}
public int Width
{
get
{
return this.width;
}
get;
protected set;
}
public int Height
{
get
{
return this.height;
}
get;
protected set;
}
#endregion
@ -74,8 +67,8 @@ namespace ANX.Framework.Graphics
public Texture2D(GraphicsDevice graphicsDevice, int width, int height)
: base(graphicsDevice)
{
this.width = width;
this.height = height;
this.Width = width;
this.Height = height;
OneOverWidth = 1f / width;
OneOverHeight = 1f / height;
@ -89,8 +82,8 @@ namespace ANX.Framework.Graphics
SurfaceFormat format)
: base(graphicsDevice)
{
this.width = width;
this.height = height;
this.Width = width;
this.Height = height;
OneOverWidth = 1f / width;
OneOverHeight = 1f / height;
@ -104,8 +97,8 @@ namespace ANX.Framework.Graphics
internal Texture2D(GraphicsDevice graphicsDevice, int width, int height, int mipCount, SurfaceFormat format)
: base(graphicsDevice)
{
this.width = width;
this.height = height;
this.Width = width;
this.Height = height;
OneOverWidth = 1f / width;
OneOverHeight = 1f / height;
@ -154,12 +147,12 @@ namespace ANX.Framework.Graphics
public void SetData<T>(T[] data) where T : struct
{
NativeTexture.SetData<T>(GraphicsDevice, data);
NativeTexture.SetData(data);
}
public void SetData<T>(T[] data, int startIndex, int elementCount) where T : struct
{
NativeTexture.SetData<T>(GraphicsDevice, data, startIndex, elementCount);
NativeTexture.SetData<T>(data, startIndex, elementCount);
}
#endregion
@ -200,7 +193,7 @@ namespace ANX.Framework.Graphics
private void CreateNativeTextureSurface()
{
var creator = AddInSystemFactory.Instance.GetDefaultCreator<IRenderSystemCreator>();
nativeTexture2D = creator.CreateTexture(GraphicsDevice, Format, width, height, LevelCount);
nativeTexture2D = creator.CreateTexture(GraphicsDevice, Format, Width, Height, LevelCount);
base.nativeTexture = nativeTexture2D;
}
#endregion

View File

@ -107,7 +107,7 @@ namespace ANX.Framework.Graphics
public void GetData<T>(T[] data) where T : struct
{
NativeVertexBuffer.GetData(data);
NativeVertexBuffer.GetData(data);
}
public void GetData<T>(T[] data, int startIndex, int elementCount) where T : struct
@ -119,17 +119,17 @@ namespace ANX.Framework.Graphics
#region SetData
public void SetData<T>(int offsetInBytes, T[] data, int startIndex, int elementCount, int vertexStride) where T : struct
{
NativeVertexBuffer.SetData(GraphicsDevice, offsetInBytes, data, startIndex, elementCount, vertexStride);
NativeVertexBuffer.SetData(offsetInBytes, data, startIndex, elementCount, vertexStride);
}
public void SetData<T>(T[] data) where T : struct
{
NativeVertexBuffer.SetData(GraphicsDevice, data);
NativeVertexBuffer.SetData(data);
}
public void SetData<T>(T[] data, int startIndex, int elementCount) where T : struct
{
NativeVertexBuffer.SetData(GraphicsDevice, data, startIndex, elementCount);
NativeVertexBuffer.SetData(data, startIndex, elementCount);
}
#endregion

View File

@ -9,13 +9,10 @@ namespace ANX.Framework.NonXNA.RenderSystem
{
public interface INativeBuffer : IDisposable
{
void SetData<T>(GraphicsDevice graphicsDevice, T[] data) where T : struct;
void SetData<T>(GraphicsDevice graphicsDevice, T[] data, int startIndex,
int elementCount) where T : struct;
void SetData<T>(GraphicsDevice graphicsDevice, int offsetInBytes, T[] data,
int startIndex, int elementCount) where T : struct;
void SetData<T>(T[] data) where T : struct;
void SetData<T>(T[] data, int startIndex, int elementCount) where T : struct;
void GetData<T>(T[] data) where T : struct;
void GetData<T>(T[] data) where T : struct;
void GetData<T>(T[] data, int startIndex, int elementCount) where T : struct;
}
}

View File

@ -9,7 +9,6 @@ namespace ANX.Framework.NonXNA
{
public interface INativeGraphicsDevice : IDisposable
{
void Clear(ref Color color);
void Clear(ClearOptions options, Vector4 color, float depth, int stencil);
void Present();

View File

@ -9,7 +9,8 @@ namespace ANX.Framework.NonXNA.RenderSystem
{
public interface INativeIndexBuffer : INativeBuffer
{
void GetData<T>(int offsetInBytes, T[] data, int startIndex,
int elementCount) where T : struct;
void GetData<T>(int offsetInBytes, T[] data, int startIndex, int elementCount) where T : struct;
void SetData<T>(int offsetInBytes, T[] data, int startIndex, int elementCount) where T : struct;
}
}

View File

@ -12,10 +12,8 @@ namespace ANX.Framework.NonXNA.RenderSystem
void SaveAsJpeg(Stream stream, int width, int height);
void SaveAsPng(Stream stream, int width, int height);
void GetData<T>(int level, Nullable<Rectangle> rect, T[] data,
int startIndex, int elementCount) where T : struct;
void GetData<T>(int level, Nullable<Rectangle> rect, T[] data, int startIndex, int elementCount) where T : struct;
void SetData<T>(int level, Nullable<Rectangle> rect, T[] data,
int startIndex, int elementCount) where T : struct;
void SetData<T>(int level, Nullable<Rectangle> rect, T[] data, int startIndex, int elementCount) where T : struct;
}
}

View File

@ -10,10 +10,8 @@ namespace ANX.Framework.NonXNA.RenderSystem
{
public interface INativeVertexBuffer : INativeBuffer
{
void GetData<T>(int offsetInBytes, T[] data, int startIndex, int elementCount,
int vertexStride) where T : struct;
void GetData<T>(int offsetInBytes, T[] data, int startIndex, int elementCount, int vertexStride) where T : struct;
void SetData<T>(GraphicsDevice graphicsDevice, int offsetInBytes, T[] data,
int startIndex, int elementCount, int vertexStride) where T : struct;
void SetData<T>(int offsetInBytes, T[] data, int startIndex, int elementCount, int vertexStride) where T : struct;
}
}

View File

@ -663,39 +663,38 @@ Global
{B30DE9C2-0926-46B6-8351-9AF276C472D5}.Release|x86.ActiveCfg = Release|x86
{B30DE9C2-0926-46B6-8351-9AF276C472D5}.Release|x86.Build.0 = Release|x86
{B30DE9C2-0926-46B6-8351-9AF276C472D5}.Release|Xbox 360.ActiveCfg = Release|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Android.ActiveCfg = Debug|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Any CPU.ActiveCfg = Debug|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Any CPU.Build.0 = Debug|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|ARM.ActiveCfg = Debug|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|iOS.ActiveCfg = Debug|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Linux.ActiveCfg = Debug|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Mac OS.ActiveCfg = Debug|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Mixed Platforms.Build.0 = Debug|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|PS Vita.ActiveCfg = Debug|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Windows.ActiveCfg = Debug|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Windows Metro.ActiveCfg = Debug|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Windows Phone.ActiveCfg = Debug|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|x64.ActiveCfg = Debug|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|x86.ActiveCfg = Debug|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|x86.Build.0 = Debug|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Xbox 360.ActiveCfg = Debug|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Android.ActiveCfg = Release|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Any CPU.ActiveCfg = Release|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|ARM.ActiveCfg = Release|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|iOS.ActiveCfg = Release|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Linux.ActiveCfg = Release|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Mac OS.ActiveCfg = Release|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Mixed Platforms.ActiveCfg = Release|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Mixed Platforms.Build.0 = Release|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|PS Vita.ActiveCfg = Release|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Windows.ActiveCfg = Release|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Windows Metro.ActiveCfg = Release|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Windows Phone.ActiveCfg = Release|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|x64.ActiveCfg = Release|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|x86.ActiveCfg = Release|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|x86.Build.0 = Release|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Xbox 360.ActiveCfg = Release|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Android.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Any CPU.Build.0 = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|ARM.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|iOS.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Linux.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Mac OS.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|PS Vita.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Windows.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Windows Metro.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Windows Phone.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|x64.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|x86.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Xbox 360.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Android.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Any CPU.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Any CPU.Build.0 = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|ARM.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|iOS.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Linux.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Mac OS.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|PS Vita.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Windows.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Windows Metro.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Windows Phone.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|x64.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|x86.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Xbox 360.ActiveCfg = Release|Any CPU
{71378D2F-0DCD-4413-8DE0-3FEC0BA04E27}.Debug|Android.ActiveCfg = Debug|x86
{71378D2F-0DCD-4413-8DE0-3FEC0BA04E27}.Debug|Any CPU.ActiveCfg = Debug|x86
{71378D2F-0DCD-4413-8DE0-3FEC0BA04E27}.Debug|Any CPU.Build.0 = Debug|x86
@ -1052,39 +1051,38 @@ Global
{5040A9C7-6DEC-4613-8586-A598C4070B35}.Release|x64.ActiveCfg = Release|Any CPU
{5040A9C7-6DEC-4613-8586-A598C4070B35}.Release|x86.ActiveCfg = Release|Any CPU
{5040A9C7-6DEC-4613-8586-A598C4070B35}.Release|Xbox 360.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Android.ActiveCfg = Debug|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Any CPU.ActiveCfg = Debug|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Any CPU.Build.0 = Debug|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|ARM.ActiveCfg = Debug|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|iOS.ActiveCfg = Debug|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Linux.ActiveCfg = Debug|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Mac OS.ActiveCfg = Debug|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Mixed Platforms.Build.0 = Debug|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|PS Vita.ActiveCfg = Debug|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Windows.ActiveCfg = Debug|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Windows Metro.ActiveCfg = Debug|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Windows Phone.ActiveCfg = Debug|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|x64.ActiveCfg = Debug|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|x86.ActiveCfg = Debug|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|x86.Build.0 = Debug|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Xbox 360.ActiveCfg = Debug|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Android.ActiveCfg = Release|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Any CPU.ActiveCfg = Release|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|ARM.ActiveCfg = Release|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|iOS.ActiveCfg = Release|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Linux.ActiveCfg = Release|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Mac OS.ActiveCfg = Release|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Mixed Platforms.ActiveCfg = Release|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Mixed Platforms.Build.0 = Release|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|PS Vita.ActiveCfg = Release|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Windows.ActiveCfg = Release|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Windows Metro.ActiveCfg = Release|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Windows Phone.ActiveCfg = Release|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|x64.ActiveCfg = Release|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|x86.ActiveCfg = Release|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|x86.Build.0 = Release|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Xbox 360.ActiveCfg = Release|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Android.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|ARM.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|iOS.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Linux.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Mac OS.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|PS Vita.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Windows.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Windows Metro.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Windows Phone.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|x64.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|x86.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Xbox 360.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Android.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Any CPU.Build.0 = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|ARM.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|iOS.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Linux.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Mac OS.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|PS Vita.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Windows.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Windows Metro.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Windows Phone.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|x64.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|x86.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Xbox 360.ActiveCfg = Release|Any CPU
{441D953C-94C2-42FD-9917-3EB2F6E28173}.Debug|Android.ActiveCfg = Debug|x86
{441D953C-94C2-42FD-9917-3EB2F6E28173}.Debug|Any CPU.ActiveCfg = Debug|x86
{441D953C-94C2-42FD-9917-3EB2F6E28173}.Debug|Any CPU.Build.0 = Debug|x86
@ -1572,39 +1570,38 @@ Global
{E2EE2D12-A98E-4C21-AFFA-35F48D2B2A94}.Release|x64.ActiveCfg = Release|Any CPU
{E2EE2D12-A98E-4C21-AFFA-35F48D2B2A94}.Release|x86.ActiveCfg = Release|Any CPU
{E2EE2D12-A98E-4C21-AFFA-35F48D2B2A94}.Release|Xbox 360.ActiveCfg = Release|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|Android.ActiveCfg = Debug|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|Any CPU.ActiveCfg = Debug|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|Any CPU.Build.0 = Debug|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|ARM.ActiveCfg = Debug|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|iOS.ActiveCfg = Debug|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|Linux.ActiveCfg = Debug|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|Mac OS.ActiveCfg = Debug|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|Mixed Platforms.Build.0 = Debug|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|PS Vita.ActiveCfg = Debug|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|Windows.ActiveCfg = Debug|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|Windows Metro.ActiveCfg = Debug|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|Windows Phone.ActiveCfg = Debug|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|x64.ActiveCfg = Debug|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|x86.ActiveCfg = Debug|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|x86.Build.0 = Debug|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|Xbox 360.ActiveCfg = Debug|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|Android.ActiveCfg = Release|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|Any CPU.ActiveCfg = Release|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|ARM.ActiveCfg = Release|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|iOS.ActiveCfg = Release|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|Linux.ActiveCfg = Release|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|Mac OS.ActiveCfg = Release|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|Mixed Platforms.ActiveCfg = Release|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|Mixed Platforms.Build.0 = Release|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|PS Vita.ActiveCfg = Release|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|Windows.ActiveCfg = Release|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|Windows Metro.ActiveCfg = Release|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|Windows Phone.ActiveCfg = Release|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|x64.ActiveCfg = Release|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|x86.ActiveCfg = Release|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|x86.Build.0 = Release|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|Xbox 360.ActiveCfg = Release|x86
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|Android.ActiveCfg = Debug|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|ARM.ActiveCfg = Debug|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|iOS.ActiveCfg = Debug|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|Linux.ActiveCfg = Debug|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|Mac OS.ActiveCfg = Debug|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|PS Vita.ActiveCfg = Debug|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|Windows.ActiveCfg = Debug|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|Windows Metro.ActiveCfg = Debug|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|Windows Phone.ActiveCfg = Debug|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|x64.ActiveCfg = Debug|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|x86.ActiveCfg = Debug|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Debug|Xbox 360.ActiveCfg = Debug|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|Android.ActiveCfg = Release|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|Any CPU.Build.0 = Release|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|ARM.ActiveCfg = Release|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|iOS.ActiveCfg = Release|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|Linux.ActiveCfg = Release|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|Mac OS.ActiveCfg = Release|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|PS Vita.ActiveCfg = Release|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|Windows.ActiveCfg = Release|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|Windows Metro.ActiveCfg = Release|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|Windows Phone.ActiveCfg = Release|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|x64.ActiveCfg = Release|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|x86.ActiveCfg = Release|Any CPU
{4A048A8C-C31D-4FC8-AAF3-C387B9E0309B}.Release|Xbox 360.ActiveCfg = Release|Any CPU
{45DD7B40-C498-4DD2-A16B-FD6C4E6991B3}.Debug|Android.ActiveCfg = Debug|Any CPU
{45DD7B40-C498-4DD2-A16B-FD6C4E6991B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{45DD7B40-C498-4DD2-A16B-FD6C4E6991B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
@ -1637,72 +1634,70 @@ Global
{45DD7B40-C498-4DD2-A16B-FD6C4E6991B3}.Release|x64.ActiveCfg = Release|Any CPU
{45DD7B40-C498-4DD2-A16B-FD6C4E6991B3}.Release|x86.ActiveCfg = Release|Any CPU
{45DD7B40-C498-4DD2-A16B-FD6C4E6991B3}.Release|Xbox 360.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Android.ActiveCfg = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Any CPU.ActiveCfg = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Any CPU.Build.0 = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|ARM.ActiveCfg = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|iOS.ActiveCfg = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Linux.ActiveCfg = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Mac OS.ActiveCfg = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Mixed Platforms.Build.0 = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|PS Vita.ActiveCfg = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Windows.ActiveCfg = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Windows Metro.ActiveCfg = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Windows Phone.ActiveCfg = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|x64.ActiveCfg = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|x86.ActiveCfg = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|x86.Build.0 = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Xbox 360.ActiveCfg = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Android.ActiveCfg = Release|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Any CPU.ActiveCfg = Release|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|ARM.ActiveCfg = Release|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|iOS.ActiveCfg = Release|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Linux.ActiveCfg = Release|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Mac OS.ActiveCfg = Release|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Mixed Platforms.ActiveCfg = Release|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Mixed Platforms.Build.0 = Release|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|PS Vita.ActiveCfg = Release|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Windows.ActiveCfg = Release|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Windows Metro.ActiveCfg = Release|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Windows Phone.ActiveCfg = Release|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|x64.ActiveCfg = Release|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|x86.ActiveCfg = Release|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|x86.Build.0 = Release|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Xbox 360.ActiveCfg = Release|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Android.ActiveCfg = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Any CPU.ActiveCfg = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Any CPU.Build.0 = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|ARM.ActiveCfg = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|iOS.ActiveCfg = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Linux.ActiveCfg = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Mac OS.ActiveCfg = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Mixed Platforms.Build.0 = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|PS Vita.ActiveCfg = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Windows.ActiveCfg = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Windows Metro.ActiveCfg = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Windows Phone.ActiveCfg = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|x64.ActiveCfg = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|x86.ActiveCfg = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|x86.Build.0 = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Xbox 360.ActiveCfg = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Android.ActiveCfg = Release|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Any CPU.ActiveCfg = Release|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|ARM.ActiveCfg = Release|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|iOS.ActiveCfg = Release|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Linux.ActiveCfg = Release|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Mac OS.ActiveCfg = Release|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Mixed Platforms.ActiveCfg = Release|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Mixed Platforms.Build.0 = Release|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|PS Vita.ActiveCfg = Release|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Windows.ActiveCfg = Release|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Windows Metro.ActiveCfg = Release|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Windows Phone.ActiveCfg = Release|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|x64.ActiveCfg = Release|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|x86.ActiveCfg = Release|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|x86.Build.0 = Release|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Xbox 360.ActiveCfg = Release|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Android.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|ARM.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|iOS.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Linux.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Mac OS.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|PS Vita.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Windows.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Windows Metro.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Windows Phone.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|x64.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|x86.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Xbox 360.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Android.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Any CPU.Build.0 = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|ARM.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|iOS.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Linux.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Mac OS.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|PS Vita.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Windows.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Windows Metro.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Windows Phone.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|x64.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|x86.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Xbox 360.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Android.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|ARM.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|iOS.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Linux.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Mac OS.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|PS Vita.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Windows.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Windows Metro.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Windows Phone.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|x64.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|x86.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Xbox 360.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Android.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Any CPU.Build.0 = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|ARM.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|iOS.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Linux.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Mac OS.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|PS Vita.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Windows.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Windows Metro.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Windows Phone.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|x64.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|x86.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Xbox 360.ActiveCfg = Release|Any CPU
{1986B0ED-3D28-4FEE-82D0-BCC39C87C18C}.Debug|Android.ActiveCfg = Debug|Any CPU
{1986B0ED-3D28-4FEE-82D0-BCC39C87C18C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1986B0ED-3D28-4FEE-82D0-BCC39C87C18C}.Debug|Any CPU.Build.0 = Debug|Any CPU
@ -1933,38 +1928,38 @@ Global
{AA3DF4D7-F072-47B5-B88C-20140B5F704A}.Release|x64.ActiveCfg = Release|Any CPU
{AA3DF4D7-F072-47B5-B88C-20140B5F704A}.Release|x86.ActiveCfg = Release|Any CPU
{AA3DF4D7-F072-47B5-B88C-20140B5F704A}.Release|Xbox 360.ActiveCfg = Release|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|Android.ActiveCfg = Debug|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|Any CPU.ActiveCfg = Debug|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|ARM.ActiveCfg = Debug|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|iOS.ActiveCfg = Debug|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|Linux.ActiveCfg = Debug|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|Mac OS.ActiveCfg = Debug|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|Mixed Platforms.Build.0 = Debug|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|PS Vita.ActiveCfg = Debug|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|Windows.ActiveCfg = Debug|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|Windows Metro.ActiveCfg = Debug|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|Windows Phone.ActiveCfg = Debug|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|x64.ActiveCfg = Debug|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|x86.ActiveCfg = Debug|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|x86.Build.0 = Debug|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|Xbox 360.ActiveCfg = Debug|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|Android.ActiveCfg = Release|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|Any CPU.ActiveCfg = Release|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|ARM.ActiveCfg = Release|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|iOS.ActiveCfg = Release|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|Linux.ActiveCfg = Release|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|Mac OS.ActiveCfg = Release|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|Mixed Platforms.ActiveCfg = Release|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|Mixed Platforms.Build.0 = Release|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|PS Vita.ActiveCfg = Release|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|Windows.ActiveCfg = Release|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|Windows Metro.ActiveCfg = Release|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|Windows Phone.ActiveCfg = Release|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|x64.ActiveCfg = Release|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|x86.ActiveCfg = Release|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|x86.Build.0 = Release|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|Xbox 360.ActiveCfg = Release|x86
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|Android.ActiveCfg = Debug|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|ARM.ActiveCfg = Debug|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|iOS.ActiveCfg = Debug|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|Linux.ActiveCfg = Debug|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|Mac OS.ActiveCfg = Debug|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|PS Vita.ActiveCfg = Debug|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|Windows.ActiveCfg = Debug|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|Windows Metro.ActiveCfg = Debug|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|Windows Phone.ActiveCfg = Debug|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|x64.ActiveCfg = Debug|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|x86.ActiveCfg = Debug|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Debug|Xbox 360.ActiveCfg = Debug|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|Android.ActiveCfg = Release|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|Any CPU.Build.0 = Release|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|ARM.ActiveCfg = Release|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|iOS.ActiveCfg = Release|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|Linux.ActiveCfg = Release|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|Mac OS.ActiveCfg = Release|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|PS Vita.ActiveCfg = Release|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|Windows.ActiveCfg = Release|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|Windows Metro.ActiveCfg = Release|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|Windows Phone.ActiveCfg = Release|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|x64.ActiveCfg = Release|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|x86.ActiveCfg = Release|Any CPU
{0005BDAA-F232-45C3-8D37-7E4FF7A1F605}.Release|Xbox 360.ActiveCfg = Release|Any CPU
{C4DDFFFF-595E-4089-B499-06F68CAF2566}.Debug|Android.ActiveCfg = Debug|Any CPU
{C4DDFFFF-595E-4089-B499-06F68CAF2566}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C4DDFFFF-595E-4089-B499-06F68CAF2566}.Debug|Any CPU.Build.0 = Debug|Any CPU

View File

@ -102,16 +102,13 @@ namespace ANX.RenderSystem.GL3
#endregion
#region SetData
public void SetData<T>(GraphicsDevice graphicsDevice, T[] data)
public void SetData<T>(T[] data)
where T : struct
{
BufferData(data, 0);
}
#endregion
#region SetData
public void SetData<T>(GraphicsDevice graphicsDevice, T[] data,
int startIndex, int elementCount) where T : struct
public void SetData<T>(T[] data, int startIndex, int elementCount) where T : struct
{
if (startIndex != 0 ||
elementCount != data.Length)
@ -125,11 +122,8 @@ namespace ANX.RenderSystem.GL3
BufferData(data, 0);
}
}
#endregion
#region SetData
public void SetData<T>(GraphicsDevice graphicsDevice, int offsetInBytes,
T[] data, int startIndex, int elementCount) where T : struct
public void SetData<T>(int offsetInBytes, T[] data, int startIndex, int elementCount) where T : struct
{
if (startIndex != 0 ||
elementCount != data.Length)

View File

@ -85,14 +85,14 @@ namespace ANX.RenderSystem.GL3
// TODO: offsetInBytes
// TODO: elementCount
#region SetData
public void SetData<T>(GraphicsDevice graphicsDevice, T[] data) where T : struct
public void SetData<T>(T[] data) where T : struct
{
SetData<T>(graphicsDevice, 0, data, 0, data.Length);
SetData<T>(0, data, 0, data.Length);
}
public void SetData<T>(GraphicsDevice graphicsDevice, T[] data, int startIndex, int elementCount) where T : struct
public void SetData<T>(T[] data, int startIndex, int elementCount) where T : struct
{
SetData<T>(graphicsDevice, 0, data, 0, data.Length);
SetData<T>(0, data, 0, data.Length);
}
public void SetData<T>(int level, Rectangle? rect, T[] data, int startIndex, int elementCount) where T : struct
@ -136,8 +136,7 @@ namespace ANX.RenderSystem.GL3
}
}
public void SetData<T>(GraphicsDevice graphicsDevice, int offsetInBytes, T[] data, int startIndex, int elementCount)
where T : struct
public void SetData<T>(int offsetInBytes, T[] data, int startIndex, int elementCount) where T : struct
{
int size = Marshal.SizeOf(typeof(T)) * data.Length;
if (size > maxSetDataSize)
@ -246,7 +245,7 @@ namespace ANX.RenderSystem.GL3
internal void RecreateData()
{
CreateTexture();
SetData(null, texData);
SetData(texData);
texData = null;
}
#endregion

View File

@ -106,16 +106,13 @@ namespace ANX.RenderSystem.GL3
#endregion
#region SetData
public void SetData<T>(GraphicsDevice graphicsDevice, T[] data)
public void SetData<T>(T[] data)
where T : struct
{
BufferData(data, 0);
}
#endregion
#region SetData
public void SetData<T>(GraphicsDevice graphicsDevice, T[] data,
int startIndex, int elementCount) where T : struct
public void SetData<T>(T[] data, int startIndex, int elementCount) where T : struct
{
if (startIndex != 0 ||
elementCount != data.Length)
@ -129,11 +126,8 @@ namespace ANX.RenderSystem.GL3
BufferData(data, 0);
}
}
#endregion
#region SetData
public void SetData<T>(GraphicsDevice graphicsDevice, int offsetInBytes,
T[] data, int startIndex, int elementCount) where T : struct
public void SetData<T>(int offsetInBytes, T[] data, int startIndex, int elementCount) where T : struct
{
if (startIndex != 0 ||
elementCount != data.Length)
@ -147,11 +141,8 @@ namespace ANX.RenderSystem.GL3
BufferData(data, offsetInBytes);
}
}
#endregion
#region SetData
public void SetData<T>(GraphicsDevice graphicsDevice, int offsetInBytes,
T[] data, int startIndex, int elementCount, int vertexStride) where T : struct
public void SetData<T>(int offsetInBytes, T[] data, int startIndex, int elementCount, int vertexStride) where T : struct
{
T[] elements;
if (startIndex != 0 ||
@ -178,10 +169,10 @@ namespace ANX.RenderSystem.GL3
ErrorHelper.Check("BufferSubData");
}
}
#endregion
#endregion
#region BufferData (private helper)
private void BufferData<T>(T[] data, int offset) where T : struct
#region BufferData (private helper)
private void BufferData<T>(T[] data, int offset) where T : struct
{
int size = Marshal.SizeOf(typeof(T)) * data.Length;

View File

@ -23,6 +23,8 @@ namespace ANX.RenderSystem.Windows.DX11
#region FormatSize (SurfaceFormat)
public static int FormatSize(SurfaceFormat format)
{
// description of texture formats of DX10: http://msdn.microsoft.com/en-us/library/bb694531(v=VS.85).aspx
// more helpfull information on DX10 textures: http://msdn.microsoft.com/en-us/library/windows/desktop/bb205131(v=vs.85).aspx
switch (format)
{
case SurfaceFormat.Vector4:
@ -39,9 +41,6 @@ namespace ANX.RenderSystem.Windows.DX11
//case SurfaceFormat.BGR565:
//case SurfaceFormat.BGRA5551:
// return 2;
case SurfaceFormat.Dxt1:
case SurfaceFormat.Dxt3:
case SurfaceFormat.Dxt5:
case SurfaceFormat.Alpha8:
return 1;
}

View File

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
#if DX10
namespace ANX.RenderSystem.Windows.DX10
#elif DX11
namespace ANX.RenderSystem.Windows.DX11
#endif
{
public enum ResourceMapping
{
Read = 1,
Write = 2,
ReadWrite = 3,
}
}

View File

@ -19,195 +19,206 @@ namespace ANX.RenderSystem.Windows.DX11
{
public partial class DxTexture2D : IDisposable
{
#region Private
protected int mipCount;
protected int tempSubresource;
protected int pitch;
private int formatSize;
#if DEBUG
static int textureCount = 0;
#endif
protected SurfaceFormat surfaceFormat;
protected bool useRenderTexture;
#endregion
public int Width
{
get;
protected set;
}
public int Height
{
get;
protected set;
}
#region Public
public GraphicsDevice GraphicsDevice
public GraphicsDeviceDX GraphicsDevice
{
get;
protected set;
}
#endregion
#region Constructor
protected DxTexture2D(GraphicsDevice graphicsDevice, SurfaceFormat setSurfaceFormat, int setMipCount)
public void SetData<T>(T[] data) where T : struct
{
mipCount = setMipCount;
useRenderTexture = mipCount > 1;
GraphicsDevice = graphicsDevice;
surfaceFormat = setSurfaceFormat;
// description of texture formats of DX10: http://msdn.microsoft.com/en-us/library/bb694531(v=VS.85).aspx
// more helpfull information on DX10 textures: http://msdn.microsoft.com/en-us/library/windows/desktop/bb205131(v=vs.85).aspx
formatSize = DxFormatConverter.FormatSize(surfaceFormat);
}
#endregion
#region SetData
public void SetData<T>(GraphicsDevice graphicsDevice, T[] data) where T : struct
{
SetData<T>(graphicsDevice, 0, data, 0, data.Length);
SetData<T>(0, null, data, 0, data.Length);
}
public void SetData<T>(GraphicsDevice graphicsDevice, T[] data, int startIndex, int elementCount) where T : struct
public void SetData<T>(T[] data, int startIndex, int elementCount) where T : struct
{
SetData<T>(graphicsDevice, 0, data, startIndex, elementCount);
SetData<T>(0, null, data, startIndex, elementCount);
}
public void SetData<T>(GraphicsDevice graphicsDevice, int offsetInBytes, T[] data, int startIndex, int elementCount)
where T : struct
{
//TODO: handle offsetInBytes parameter
//TODO: handle startIndex parameter
//TODO: handle elementCount parameter
public void SetData<T>(int level, Framework.Rectangle? rect, T[] data, int startIndex, int elementCount) where T : struct
{
int formatSize = DxFormatConverter.FormatSize(this.surfaceFormat);
int elementSize = Marshal.SizeOf(typeof(T));
unsafe
{
GCHandle handle = GCHandle.Alloc(data, GCHandleType.Pinned);
byte* colorData = (byte*)handle.AddrOfPinnedObject();
Framework.Rectangle realRect;
if (rect.HasValue)
realRect = rect.Value;
else
{
realRect.X = 0;
realRect.Y = 0;
realRect.Width = this.Width;
realRect.Height = this.Height;
}
switch (surfaceFormat)
{
case SurfaceFormat.Color:
SetDataColor(0, offsetInBytes, colorData, startIndex, elementCount);
return;
UpdateSubresource(data, _nativeTexture, level, realRect);
}
case SurfaceFormat.Dxt1:
case SurfaceFormat.Dxt3:
case SurfaceFormat.Dxt5:
SetDataDxt(0, offsetInBytes, colorData, startIndex, elementCount, data.Length);
return;
}
public void GetData<T>(T[] data) where T : struct
{
if (data == null)
throw new ArgumentNullException("data");
handle.Free();
}
this.GetData<T>(0, null, data, 0, data.Length);
}
throw new Exception(String.Format("creating textures of format {0} not yet implemented...", surfaceFormat));
}
#endregion
public void GetData<T>(T[] data, int startIndex, int elementCount) where T : struct
{
this.GetData<T>(0, null, data, startIndex, elementCount);
}
#region SetDataColor
private unsafe void SetDataColor(int level, int offsetInBytes, byte* colorData, int startIndex, int elementCount)
{
int mipmapWidth = Math.Max(Width >> level, 1);
int mipmapHeight = Math.Max(Height >> level, 1);
private Framework.Rectangle ValidateRect<T>(int level, Framework.Rectangle? rect, T[] data, int startIndex, int elementCount)
{
if (data == null)
throw new ArgumentNullException("data");
IntPtr dataPtr = MapWrite(level);
int srcIndex = 0;
if (startIndex + elementCount > data.Length)
throw new ArgumentOutOfRangeException("startIndex + elementCount is bigger than data.Length");
byte* pTexels = (byte*)dataPtr;
for (int row = 0; row < mipmapHeight; row++)
{
int rowStart = row * pitch;
int mipmapWidth = Math.Max(Width >> level, 1);
int mipmapHeight = Math.Max(Height >> level, 1);
for (int col = 0; col < mipmapWidth; col++)
{
int colStart = rowStart + (col * formatSize);
pTexels[colStart++] = colorData[srcIndex++];
pTexels[colStart++] = colorData[srcIndex++];
pTexels[colStart++] = colorData[srcIndex++];
pTexels[colStart++] = colorData[srcIndex++];
}
}
Framework.Rectangle finalRect;
if (rect != null)
{
finalRect = rect.Value;
Unmap();
}
#endregion
if (finalRect.X < 0 || finalRect.Width <= 0 || finalRect.Y < 0 || finalRect.Height <= 0)
throw new ArgumentException("The given rectangle is invalid.");
#region SetDataDxt
private unsafe void SetDataDxt(int level, int offsetInBytes, byte* colorData, int startIndex, int elementCount,
int dataLength)
{
int mipmapWidth = Math.Max(Width >> level, 1);
int mipmapHeight = Math.Max(Height >> level, 1);
if (finalRect.Right > mipmapWidth || finalRect.Bottom > mipmapHeight)
throw new ArgumentException("The given rectangle is bigger than the texture on the given mip level.");
}
else
finalRect = new Framework.Rectangle(0, 0, mipmapWidth, mipmapHeight);
int w = (mipmapWidth + 3) >> 2;
int h = (mipmapHeight + 3) >> 2;
formatSize = (surfaceFormat == SurfaceFormat.Dxt1) ? 8 : 16;
int formatSize = DxFormatConverter.FormatSize(this.surfaceFormat);
IntPtr dataPtr = MapWrite(level);
var ds = new DataStream(dataPtr, mipmapWidth * mipmapHeight * 4 * 2, true, true);
int col = 0;
int index = 0; // startIndex
int count = dataLength; // elementCount
int actWidth = w * formatSize;
int elementSize = Marshal.SizeOf(typeof(T));
if (elementSize * elementCount != formatSize * mipmapWidth * mipmapHeight)
throw new ArgumentException("\"data\" has the wrong size.");
for (int i = 0; i < h; i++)
{
ds.Position = (i * pitch) + (col * formatSize);
if (count <= 0)
break;
else if (count < actWidth)
{
for (int idx = index; idx < index + count; idx++)
ds.WriteByte(colorData[idx]);
break;
}
return finalRect;
}
for (int idx = index; idx < index + actWidth; idx++)
ds.WriteByte(colorData[idx]);
public void GetData<T>(int level, Framework.Rectangle? rect, T[] data, int startIndex, int elementCount) where T : struct
{
var finalRect = ValidateRect(level, rect, data, startIndex, elementCount);
using (var texture = CreateStagingTexture(ResourceMapping.Read))
{
GraphicsDevice.NativeDevice.CopyResource(NativeTexture, texture);
index += actWidth;
count -= actWidth;
}
int subresource = GetSubresource(level);
int pitch;
using (var dataStream = Map(texture, subresource, level, ResourceMapping.Read, out pitch))
{
try
{
int elementIndex = startIndex;
for (int y = finalRect.Top; y < finalRect.Bottom; y++)
{
int width = Math.Min(finalRect.Width, elementCount);
if (width <= 0)
break;
Unmap();
}
#endregion
dataStream.Position = y * pitch;
dataStream.ReadRange(data, elementIndex, width);
#region SetData (TODO)
public void SetData<T>(int level, Framework.Rectangle? rect, T[] data, int startIndex, int elementCount) where T : struct
{
//TODO: handle rect parameter
if (rect != null)
throw new Exception("Texture2D SetData with rectangle is not yet implemented!");
elementIndex += finalRect.Width;
elementCount -= width;
}
}
finally
{
Unmap(texture, subresource);
}
}
}
}
unsafe
{
GCHandle handle = GCHandle.Alloc(data, GCHandleType.Pinned);
byte* colorData = (byte*)handle.AddrOfPinnedObject();
private bool IsDxt
{
get
{
return this.surfaceFormat == SurfaceFormat.Dxt1 || this.surfaceFormat == SurfaceFormat.Dxt3 || this.surfaceFormat == SurfaceFormat.Dxt5;
}
}
switch (surfaceFormat)
{
case SurfaceFormat.Color:
SetDataColor(level, 0, colorData, startIndex, elementCount);
return;
protected int SizeInBytes(int level)
{
int mipmapWidth = Math.Max(Width >> level, 1);
int mipmapHeight = Math.Max(Height >> level, 1);
case SurfaceFormat.Dxt1:
case SurfaceFormat.Dxt3:
case SurfaceFormat.Dxt5:
SetDataDxt(level, 0, colorData, startIndex, elementCount, data.Length);
return;
}
if (this.IsDxt)
{
//Dxt uses 4x4 blocks and each of this block is 8 bytes in size for dxt1, so on average half a byte per pixel.
//For Dxt3 and Dxt5, it's 1 byte per pixel on average.
int w = (mipmapWidth + 3) / 4;
int h = (mipmapHeight + 3) / 4;
var formatSize = (surfaceFormat == SurfaceFormat.Dxt1) ? 8 : 16;
handle.Free();
}
return w * h * formatSize;
}
else
{
return mipmapWidth * mipmapHeight * DxFormatConverter.FormatSize(this.surfaceFormat);
}
}
throw new Exception(String.Format("creating textures of format {0} not yet implemented...", surfaceFormat));
}
#endregion
protected int GetPitch(int level)
{
int mipmapWidth = Math.Max(Width >> level, 1);
if (this.IsDxt)
{
//Dxt uses 4x4 blocks and each of this block is 8 bytes in size for dxt1, so on average half a byte per pixel.
//For Dxt3 and Dxt5, it's 1 byte per pixel on average.
int w = (mipmapWidth + 3) / 4;
var formatSize = (surfaceFormat == SurfaceFormat.Dxt1) ? 8 : 16;
return w * formatSize;
}
else
{
return mipmapWidth * DxFormatConverter.FormatSize(this.surfaceFormat);
}
}
#region Dispose
public void Dispose()
{
this.Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool managed)
{
if (NativeShaderResourceView != null)
{
NativeShaderResourceView.Dispose();
NativeShaderResourceView = null;
}
if (NativeTextureStaging != null)
{
NativeTextureStaging.Dispose();
NativeTextureStaging = null;
}
}
#endregion
}

View File

@ -21,20 +21,7 @@ namespace ANX.RenderSystem.Windows.DX11
{
public partial class GraphicsDeviceDX
{
#region Constants
protected const float ColorMultiplier = 1f / 255f;
protected const bool IsDebugMode =
#if DIRECTX_DEBUG_LAYER
true;
#else
false;
#endif
#endregion
#region Private
protected uint lastClearColor;
protected SharpDX.Color4 clearColor;
protected SharpDX.DXGI.SwapChain swapChain;
protected VertexBufferBinding[] currentVertexBuffer;
protected int currentVertexBufferCount;
@ -53,12 +40,7 @@ namespace ANX.RenderSystem.Windows.DX11
CreateDevice(presentationParameters);
MakeWindowAssociationAndResize(presentationParameters);
CreateRenderView();
// create the depth stencil buffer
SharpDX.DXGI.Format depthFormat = DxFormatConverter.Translate(presentationParameters.DepthStencilFormat);
if (depthFormat != SharpDX.DXGI.Format.Unknown)
CreateDepthStencilBuffer(depthFormat);
CreateRenderView(presentationParameters);
}
#endregion
@ -76,21 +58,6 @@ namespace ANX.RenderSystem.Windows.DX11
}
#endregion
#region UpdateClearColorIfNeeded
protected void UpdateClearColorIfNeeded(ref Color color)
{
uint newClearColor = color.PackedValue;
if (lastClearColor != newClearColor)
{
lastClearColor = newClearColor;
clearColor.Red = color.R * ColorMultiplier;
clearColor.Green = color.G * ColorMultiplier;
clearColor.Blue = color.B * ColorMultiplier;
clearColor.Alpha = color.A * ColorMultiplier;
}
}
#endregion
#region SetViewport
public void SetViewport(Viewport viewport)
{
@ -104,45 +71,35 @@ namespace ANX.RenderSystem.Windows.DX11
{
if (swapChain != null)
{
DisposeRenderView();
DisposeBackBuffer();
Format colorFormat = DxFormatConverter.Translate(presentationParameters.BackBufferFormat);
swapChain.ResizeBuffers(swapChain.Description.BufferCount, presentationParameters.BackBufferWidth,
presentationParameters.BackBufferHeight, colorFormat, swapChain.Description.Flags);
CreateRenderView();
CreateRenderView(presentationParameters);
SetViewport(0, 0, presentationParameters.BackBufferWidth, presentationParameters.BackBufferHeight, 0f, 1f);
// create the depth stencil buffer
Format depthFormat = DxFormatConverter.Translate(presentationParameters.DepthStencilFormat);
if (depthFormat != Format.Unknown)
CreateDepthStencilBuffer(depthFormat);
}
WindowHelper.ResizeRenderWindow(presentationParameters);
}
#endregion
protected void CreateDepthStencilBuffer(Format depthFormat)
{
CreateDepthStencilBuffer(depthFormat, this.backBuffer.Description.Width, this.backBuffer.Description.Height, true);
}
#region GetBackBufferData (TODO)
public void GetBackBufferData<T>(Rectangle? rect, T[] data, int startIndex, int elementCount) where T : struct
{
throw new NotImplementedException();
this.backBuffer.GetData(0, rect, data, startIndex, elementCount);
}
public void GetBackBufferData<T>(T[] data) where T : struct
{
throw new NotImplementedException();
this.backBuffer.GetData(data);
}
public void GetBackBufferData<T>(T[] data, int startIndex, int elementCount) where T : struct
{
throw new NotImplementedException();
this.backBuffer.GetData(data, startIndex, elementCount);
}
#endregion

View File

@ -22,17 +22,17 @@ namespace ANX.RenderSystem.Windows.DX11
protected IndexElementSize elementSize;
#region SetData
public void SetData<S>(GraphicsDevice graphicsDevice, S[] data) where S : struct
public void SetData<S>(S[] data) where S : struct
{
SetData<S>(graphicsDevice, data, 0, data.Length);
SetData<S>(data, 0, data.Length);
}
public void SetData<S>(GraphicsDevice graphicsDevice, S[] data, int startIndex, int elementCount) where S : struct
public void SetData<S>(S[] data, int startIndex, int elementCount) where S : struct
{
SetData<S>(graphicsDevice, 0, data, startIndex, elementCount);
SetData<S>(0, data, startIndex, elementCount);
}
public void SetData<S>(GraphicsDevice graphicsDevice, int offsetInBytes, S[] data, int startIndex, int elementCount)
public void SetData<S>(int offsetInBytes, S[] data, int startIndex, int elementCount)
where S : struct
{
if (offsetInBytes + elementCount * Marshal.SizeOf(typeof(S)) > NativeBuffer.Description.SizeInBytes)
@ -58,12 +58,15 @@ namespace ANX.RenderSystem.Windows.DX11
#region GetData
public void GetData<S>(S[] data) where S : struct
{
if (data == null)
throw new ArgumentNullException("data");
GetData(0, data, 0, data.Length);
}
public void GetData<S>(S[] data, int startIndex, int elementCount) where S : struct
{
GetData(0, data, 0, data.Length);
GetData(0, data, startIndex, elementCount);
}
public void GetData<S>(int offsetInBytes, S[] data, int startIndex, int elementCount) where S : struct

View File

@ -30,20 +30,20 @@ namespace ANX.RenderSystem.Windows.DX11
private int vertexStride;
#region SetData
public void SetData<S>(GraphicsDevice graphicsDevice, S[] data) where S : struct
public void SetData<S>(S[] data) where S : struct
{
if (data == null)
throw new ArgumentNullException("data");
SetData<S>(graphicsDevice, data, 0, data.Length);
SetData(data, 0, data.Length);
}
public void SetData<S>(GraphicsDevice graphicsDevice, S[] data, int startIndex, int elementCount) where S : struct
public void SetData<S>(S[] data, int startIndex, int elementCount) where S : struct
{
SetData<S>(graphicsDevice, 0, data, startIndex, elementCount);
SetData<S>(0, data, startIndex, elementCount, vertexStride);
}
public void SetData<S>(GraphicsDevice graphicsDevice, int offsetInBytes, S[] data, int startIndex, int elementCount)
public void SetData<S>(int offsetInBytes, S[] data, int startIndex, int elementCount, int vertexStride)
where S : struct
{
if (data == null)
@ -70,12 +70,6 @@ namespace ANX.RenderSystem.Windows.DX11
UnmapBuffer();
}
}
public void SetData<S>(GraphicsDevice graphicsDevice, int offsetInBytes, S[] data, int startIndex, int elementCount,
int vertexStride) where S : struct
{
throw new NotImplementedException();
}
#endregion
#region GetData

View File

@ -60,11 +60,15 @@
<Compile Include="..\ANX.RenderSystem.DX.SharedSources\BufferHelper.cs">
<Link>BufferHelper.cs</Link>
</Compile>
<Compile Include="..\ANX.RenderSystem.DX.SharedSources\ResourceMapping.cs">
<Link>ResourceMapping.cs</Link>
</Compile>
<Compile Include="BlendState_DX10.cs" />
<Compile Include="Creator.cs" />
<Compile Include="DepthStencilState_DX10.cs" />
<Compile Include="EffectParameter_DX10.cs" />
<Compile Include="EffectTechnique_DX10.cs" />
<Compile Include="Extensions.cs" />
<Compile Include="GraphicsDeviceDX.cs" />
<Compile Include="Helpers\FormatConverter.cs" />
<Compile Include="DxIndexBuffer.cs" />

View File

@ -107,7 +107,7 @@ namespace ANX.RenderSystem.Windows.DX10
int mipCount)
{
PreventSystemChange();
return new DxTexture2D(graphics, width, height, surfaceFormat, mipCount);
return new DxTexture2D((GraphicsDeviceDX)graphics.NativeDevice, width, height, surfaceFormat, mipCount);
}
#endregion
@ -228,7 +228,7 @@ namespace ANX.RenderSystem.Windows.DX10
RenderTargetUsage usage)
{
PreventSystemChange();
return new RenderTarget2D_DX10(graphics, width, height, mipMap, preferredFormat, preferredDepthFormat,
return new RenderTarget2D_DX10((GraphicsDeviceDX)graphics.NativeDevice, width, height, mipMap, preferredFormat, preferredDepthFormat,
preferredMultiSampleCount, usage);
}
#endregion

View File

@ -12,59 +12,67 @@ using SharpDX;
// For details see: http://anxframework.codeplex.com/license
using Dx10 = SharpDX.Direct3D10;
using System.Runtime.InteropServices;
namespace ANX.RenderSystem.Windows.DX10
{
public partial class DxTexture2D : INativeTexture2D
{
private Dx10.Texture2D NativeTextureStaging;
public int Width
private Dx10.Texture2D _nativeTexture;
public Dx10.ShaderResourceView NativeShaderResourceView { get; private set; }
public Dx10.Texture2D NativeTexture
{
get { return _nativeTexture; }
set
{
if (NativeShaderResourceView != null)
{
NativeShaderResourceView.Dispose();
NativeShaderResourceView = null;
}
_nativeTexture = value;
if (_nativeTexture != null)
{
NativeShaderResourceView = new Dx10.ShaderResourceView(this.GraphicsDevice.NativeDevice, NativeTexture);
#if DEBUG
NativeShaderResourceView.DebugName = _nativeTexture.DebugName + "_ShaderView";
#endif
}
}
}
protected DxTexture2D(GraphicsDeviceDX graphicsDevice)
{
this.GraphicsDevice = graphicsDevice;
}
public DxTexture2D(GraphicsDeviceDX graphicsDevice, Dx10.Texture2D nativeTexture)
: this(graphicsDevice)
{
if (nativeTexture == null)
throw new ArgumentNullException("nativeTexture");
this.Width = nativeTexture.Description.Width;
this.Height = nativeTexture.Description.Height;
#if DEBUG
if (string.IsNullOrEmpty(nativeTexture.DebugName))
nativeTexture.DebugName = "Texture_" + textureCount++;
#endif
this.NativeTexture = nativeTexture;
this.surfaceFormat = DxFormatConverter.Translate(nativeTexture.Description.Format);
}
public DxTexture2D(GraphicsDeviceDX graphicsDevice, int width, int height, SurfaceFormat surfaceFormat, int mipCount)
: this(graphicsDevice)
{
get
{
return NativeTexture != null ? NativeTexture.Description.Width : 0;
}
}
this.surfaceFormat = surfaceFormat;
public int Height
{
get
{
return NativeTexture != null ? NativeTexture.Description.Height : 0;
}
}
internal Dx10.ShaderResourceView NativeShaderResourceView { get; set; }
internal Dx10.Texture2D NativeTexture { get; set; }
#region Constructor
internal DxTexture2D(GraphicsDevice graphicsDevice, SurfaceFormat surfaceFormat)
: this(graphicsDevice, surfaceFormat, 1)
{
}
public DxTexture2D(GraphicsDevice graphicsDevice, int width, int height, SurfaceFormat surfaceFormat, int mipCount)
: this(graphicsDevice, surfaceFormat, mipCount)
{
Dx10.Device device = (graphicsDevice.NativeDevice as GraphicsDeviceDX).NativeDevice;
if (useRenderTexture)
{
var descriptionStaging = new Dx10.Texture2DDescription()
{
Width = width,
Height = height,
MipLevels = mipCount,
ArraySize = mipCount,
Format = DxFormatConverter.Translate(surfaceFormat),
SampleDescription = new SharpDX.DXGI.SampleDescription(1, 0),
Usage = Dx10.ResourceUsage.Staging,
CpuAccessFlags = Dx10.CpuAccessFlags.Write,
};
NativeTextureStaging = new Dx10.Texture2D(device, descriptionStaging);
}
Dx10.Device device = graphicsDevice.NativeDevice;
var description = new Dx10.Texture2DDescription()
{
@ -74,88 +82,95 @@ namespace ANX.RenderSystem.Windows.DX10
ArraySize = mipCount,
Format = DxFormatConverter.Translate(surfaceFormat),
SampleDescription = new SharpDX.DXGI.SampleDescription(1, 0),
Usage = useRenderTexture ? Dx10.ResourceUsage.Default : Dx10.ResourceUsage.Dynamic,
Usage = Dx10.ResourceUsage.Default,
BindFlags = Dx10.BindFlags.ShaderResource,
CpuAccessFlags = useRenderTexture ? Dx10.CpuAccessFlags.None : Dx10.CpuAccessFlags.Write,
CpuAccessFlags = Dx10.CpuAccessFlags.None,
OptionFlags = Dx10.ResourceOptionFlags.None,
};
NativeTexture = new Dx10.Texture2D(device, description);
NativeShaderResourceView = new Dx10.ShaderResourceView(device, NativeTexture);
}
#endregion
this.Width = width;
this.Height = height;
var texture = new Dx10.Texture2D(device, description);
#if DEBUG
texture.DebugName = "Texture_" + textureCount++;
#endif
NativeTexture = texture;
}
#region GetHashCode
public override int GetHashCode()
{
return NativeTexture.NativePointer.ToInt32();
}
#endregion
#region SaveAsJpeg (TODO)
public void SaveAsJpeg(Stream stream, int width, int height)
{
// TODO: handle width and height?
Dx10.Texture2D.ToStream(NativeTexture, Dx10.ImageFileFormat.Jpg, stream);
}
#endregion
#region SaveAsPng (TODO)
public void SaveAsPng(Stream stream, int width, int height)
{
// TODO: handle width and height?
Dx10.Texture2D.ToStream(NativeTexture, Dx10.ImageFileFormat.Png, stream);
}
#endregion
#region GetData (TODO)
public void GetData<T>(T[] data) where T : struct
protected DataStream Map(Dx10.Texture2D texture, int subresource, int level, ResourceMapping mapping, out int pitch)
{
GetData(data, 0, data.Length);
var dataRect = texture.Map(subresource, mapping.ToMapMode(), Dx10.MapFlags.None);
pitch = dataRect.Pitch;
bool read = (mapping & ResourceMapping.Read) != 0;
bool write = (mapping & ResourceMapping.Write) != 0;
return new DataStream(dataRect.DataPointer, SizeInBytes(level), read, write);
}
public void GetData<T>(T[] data, int startIndex, int elementCount) where T : struct
{
throw new NotImplementedException();
}
protected int GetSubresource(int level)
{
return Dx10.Texture2D.CalculateSubResourceIndex(level, 0, NativeTexture.Description.MipLevels);
}
public void GetData<T>(int level, Framework.Rectangle? rect, T[] data, int startIndex, int elementCount) where T : struct
{
throw new NotImplementedException();
}
#endregion
protected void UpdateSubresource<T>(T[] data, Dx10.Texture2D texture, int level, Framework.Rectangle rect) where T : struct
{
var handle = GCHandle.Alloc(data, GCHandleType.Pinned);
try
{
GraphicsDevice.NativeDevice.UpdateSubresource(texture, this.GetSubresource(level), rect.ToResourceRegion(), handle.AddrOfPinnedObject(), GetPitch(level), 0);
}
finally
{
handle.Free();
}
}
#region MapWrite
protected IntPtr MapWrite(int level)
{
tempSubresource = Dx10.Texture2D.CalculateSubResourceIndex(level, 0, mipCount);
var texture = useRenderTexture ? NativeTextureStaging : NativeTexture;
DataRectangle rect = texture.Map(tempSubresource, useRenderTexture ? Dx10.MapMode.Write : Dx10.MapMode.WriteDiscard,
Dx10.MapFlags.None);
pitch = rect.Pitch;
return rect.DataPointer;
}
#endregion
protected Dx10.Texture2D CreateStagingTexture(ResourceMapping mapping)
{
var description = new Dx10.Texture2DDescription()
{
CpuAccessFlags = mapping.ToCpuAccessFlags(),
Usage = Dx10.ResourceUsage.Staging,
Format = NativeTexture.Description.Format,
Width = this.Width,
Height = this.Height,
MipLevels = this.NativeTexture.Description.MipLevels,
SampleDescription = NativeTexture.Description.SampleDescription,
ArraySize = NativeTexture.Description.ArraySize,
OptionFlags = Dx10.ResourceOptionFlags.None,
};
#region MapRead
protected IntPtr MapRead(int level)
{
tempSubresource = Dx10.Texture2D.CalculateSubResourceIndex(level, 0, mipCount);
var texture = useRenderTexture ? NativeTextureStaging : NativeTexture;
DataRectangle rect = texture.Map(tempSubresource, Dx10.MapMode.Read, Dx10.MapFlags.None);
pitch = rect.Pitch;
return rect.DataPointer;
}
#endregion
var texture = new Dx10.Texture2D(GraphicsDevice.NativeDevice, description);
#if DEBUG
texture.DebugName = NativeTexture.DebugName + "_Staging";
#endif
return texture;
}
#region Unmap
protected void Unmap()
protected void Unmap(Dx10.Texture2D texture, int subresource)
{
var texture = useRenderTexture ? NativeTextureStaging : NativeTexture;
texture.Unmap(tempSubresource);
if (useRenderTexture)
texture.Device.CopyResource(NativeTextureStaging, NativeTexture);
texture.Unmap(subresource);
}
#endregion
}
}

View File

@ -0,0 +1,42 @@
using SharpDX;
using SharpDX.Direct3D10;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dx10 = SharpDX.Direct3D10;
namespace ANX.RenderSystem.Windows.DX10
{
static class Extensions
{
public static Dx10.CpuAccessFlags ToCpuAccessFlags(this ResourceMapping mapping)
{
Dx10.CpuAccessFlags flags = Dx10.CpuAccessFlags.None;
if ((mapping & ResourceMapping.Read) != 0)
flags |= Dx10.CpuAccessFlags.Read;
if ((mapping & ResourceMapping.Write) != 0)
flags |= Dx10.CpuAccessFlags.Write;
return flags;
}
public static Dx10.MapMode ToMapMode(this ResourceMapping mapping)
{
return (Dx10.MapMode)mapping;
}
public static ResourceRegion ToResourceRegion(this Framework.Rectangle rect)
{
return new ResourceRegion()
{
Back = 1,
Bottom = rect.Bottom,
Front = 0,
Left = rect.Left,
Right = rect.Right,
Top = rect.Top,
};
}
}
}

View File

@ -20,13 +20,18 @@ namespace ANX.RenderSystem.Windows.DX10
{
public partial class GraphicsDeviceDX : INativeGraphicsDevice
{
#if DEBUG
static int graphicsDeviceCount = 0;
static int swapChainCount = 0;
#endif
//Restricted to 8 from DirectX side.
const int MAX_RENDER_TARGETS = 8;
#region Private
private Dx10.Device nativeDevice;
private Dx10.RenderTargetView renderView;
private Dx10.RenderTargetView[] renderTargetView = new Dx10.RenderTargetView[1];
private Dx10.DepthStencilView depthStencilView;
private Dx10.Texture2D depthStencilBuffer;
private Dx10.Texture2D backBuffer;
private Dx10.RenderTargetView[] renderTargetView = new RenderTargetView[MAX_RENDER_TARGETS];
private Dx10.DepthStencilView[] depthStencilView = new DepthStencilView[MAX_RENDER_TARGETS];
private RenderTarget2D_DX10 backBuffer;
internal EffectDX currentEffect;
#endregion
@ -36,148 +41,79 @@ namespace ANX.RenderSystem.Windows.DX10
var desc = new SwapChainDescription()
{
BufferCount = 1,
ModeDescription = new ModeDescription(presentationParameters.BackBufferWidth,
presentationParameters.BackBufferHeight, new Rational(60, 1),
DxFormatConverter.Translate(presentationParameters.BackBufferFormat)),
ModeDescription = new ModeDescription(
presentationParameters.BackBufferWidth,
presentationParameters.BackBufferHeight,
new Rational(60, 1),
DxFormatConverter.Translate(presentationParameters.BackBufferFormat)
),
IsWindowed = true,
OutputHandle = presentationParameters.DeviceWindowHandle,
SampleDescription = new SampleDescription(1, 0),
SwapEffect = SwapEffect.Discard,
Usage = Usage.RenderTargetOutput
Usage = Usage.RenderTargetOutput | Usage.ShaderInput,
};
// http://msdn.microsoft.com/en-us/library/windows/desktop/bb205068(v=vs.85).aspx
var flags = IsDebugMode ? Dx10.DeviceCreationFlags.Debug : Dx10.DeviceCreationFlags.None;
#if DEBUG
var flags = Dx10.DeviceCreationFlags.Debug;
#else
var flags = Dx10.DeviceCreationFlags.None;
#endif
Dx10.Device.CreateWithSwapChain(Dx10.DriverType.Hardware, flags, desc, out nativeDevice, out swapChain);
#if DEBUG
nativeDevice.DebugName = "GraphicsDevice_" + graphicsDeviceCount++;
swapChain.DebugName = "SwapChain_" + swapChainCount++;
#endif
}
#endregion
#region CreateRenderView
protected void CreateRenderView()
protected void CreateRenderView(PresentationParameters presentationParameters)
{
backBuffer = Dx10.Texture2D.FromSwapChain<Dx10.Texture2D>(swapChain, 0);
renderView = new Dx10.RenderTargetView(nativeDevice, backBuffer);
nativeDevice.OutputMerger.SetTargets(this.depthStencilView, this.renderView);
backBuffer = new RenderTarget2D_DX10(this, Dx10.Texture2D.FromSwapChain<Dx10.Texture2D>(swapChain, 0), presentationParameters.DepthStencilFormat);
this.SetRenderTargets();
}
#endregion
#region CreateDepthStencilBuffer
protected void CreateDepthStencilBuffer(Format depthFormat, int width, int height, bool setAndClearTarget)
{
if (this.depthStencilBuffer != null &&
this.depthStencilBuffer.Description.Format == depthFormat &&
this.depthStencilBuffer.Description.Width == width &&
this.depthStencilBuffer.Description.Height == height)
{
// a DepthStencilBuffer with the right format and the right size already exists -> nothing to do
return;
}
if (depthFormat == Format.Unknown)
{
// no DepthStencilBuffer to create... Old one was disposed already...
return;
}
var depthStencilViewDesc = new Dx10.DepthStencilViewDescription()
{
Format = depthFormat,
};
var depthStencilTextureDesc = new Dx10.Texture2DDescription()
{
Width = width,
Height = height,
MipLevels = 1,
ArraySize = 1,
Format = depthFormat,
SampleDescription = new SampleDescription(1, 0),
Usage = Dx10.ResourceUsage.Default,
BindFlags = Dx10.BindFlags.DepthStencil,
CpuAccessFlags = Dx10.CpuAccessFlags.None,
OptionFlags = Dx10.ResourceOptionFlags.None
};
this.depthStencilBuffer = new Dx10.Texture2D(nativeDevice, depthStencilTextureDesc);
this.depthStencilView = new Dx10.DepthStencilView(nativeDevice, this.depthStencilBuffer);
if (setAndClearTarget)
{
nativeDevice.OutputMerger.SetTargets(this.depthStencilView, this.renderView);
// this workaround is working but maybe not the best solution to issue #472
Clear(ClearOptions.DepthBuffer | ClearOptions.Stencil, Vector4.Zero, 1.0f, 0);
}
}
#endregion
#region Clear
public void Clear(ref Color color)
{
UpdateClearColorIfNeeded(ref color);
if (this.renderTargetView[0] == null)
nativeDevice.ClearRenderTargetView(this.renderView, this.clearColor);
else
{
for (int i = 0; i < this.renderTargetView.Length; i++)
{
if (this.renderTargetView[i] == null)
{
break;
}
nativeDevice.ClearRenderTargetView(this.renderTargetView[i], this.clearColor);
}
}
}
public void Clear(ClearOptions options, Vector4 color, float depth, int stencil)
{
if ((options & ClearOptions.Target) == ClearOptions.Target)
{
// Clear a RenderTarget (or BackBuffer)
var clearColor = new SharpDX.Color4(color.X, color.Y, color.Z, color.W);
this.clearColor.Red = color.X;
this.clearColor.Green = color.Y;
this.clearColor.Blue = color.Z;
this.clearColor.Alpha = color.W;
this.lastClearColor = 0;
if (this.renderTargetView[0] == null)
for (int i = 0; i < MAX_RENDER_TARGETS; i++)
{
nativeDevice.ClearRenderTargetView(this.renderView, this.clearColor);
}
else
{
for (int i = 0; i < this.renderTargetView.Length; i++)
{
if (this.renderTargetView[i] == null)
break;
if (this.renderTargetView[i] == null)
break;
nativeDevice.ClearRenderTargetView(this.renderTargetView[i], this.clearColor);
}
nativeDevice.ClearRenderTargetView(this.renderTargetView[i], clearColor);
}
}
if (this.depthStencilView != null)
Dx10.DepthStencilClearFlags clearFlags;
if ((options | ClearOptions.Stencil | ClearOptions.DepthBuffer) == options)
{
if ((options | ClearOptions.Stencil | ClearOptions.DepthBuffer) == options)
{
// Clear the stencil buffer
nativeDevice.ClearDepthStencilView(this.depthStencilView, Dx10.DepthStencilClearFlags.Depth |
Dx10.DepthStencilClearFlags.Stencil, depth, (byte)stencil);
}
else if ((options | ClearOptions.Stencil) == options)
{
nativeDevice.ClearDepthStencilView(this.depthStencilView, Dx10.DepthStencilClearFlags.Stencil, depth,
(byte)stencil);
}
else
{
nativeDevice.ClearDepthStencilView(this.depthStencilView, Dx10.DepthStencilClearFlags.Depth, depth,
(byte)stencil);
}
clearFlags = Dx10.DepthStencilClearFlags.Depth | Dx10.DepthStencilClearFlags.Stencil;
}
else if ((options | ClearOptions.Stencil) == options)
{
clearFlags = Dx10.DepthStencilClearFlags.Stencil;
}
else
{
clearFlags = Dx10.DepthStencilClearFlags.Depth;
}
for (int i = 0; i < MAX_RENDER_TARGETS; i++)
{
if (this.depthStencilView[i] == null)
break;
nativeDevice.ClearDepthStencilView(this.depthStencilView[i], clearFlags, depth, (byte)stencil);
}
}
#endregion
@ -198,9 +134,7 @@ namespace ANX.RenderSystem.Windows.DX10
Dx10.EffectTechnique technique = SetupEffectForDraw();
int vertexCount = DxFormatConverter.CalculateVertexCount(primitiveType, primitiveCount);
nativeDevice.InputAssembler.PrimitiveTopology = DxFormatConverter.Translate(primitiveType);
//nativeDevice.Rasterizer.SetViewports(currentViewport);
//nativeDevice.OutputMerger.SetTargets(this.depthStencilView, this.renderView);
nativeDevice.InputAssembler.PrimitiveTopology = DxFormatConverter.Translate(primitiveType);
if (indexBuffer != null)
{
@ -225,8 +159,6 @@ namespace ANX.RenderSystem.Windows.DX10
int vertexCount = DxFormatConverter.CalculateVertexCount(primitiveType, primitiveCount);
nativeDevice.InputAssembler.PrimitiveTopology = DxFormatConverter.Translate(primitiveType);
//nativeDevice.Rasterizer.SetViewports(currentViewport);
//nativeDevice.OutputMerger.SetTargets(this.depthStencilView, this.renderView);
for (int i = 0; i < technique.Description.PassCount; ++i)
{
@ -239,7 +171,6 @@ namespace ANX.RenderSystem.Windows.DX10
}
#endregion
#region DrawInstancedPrimitives
public void DrawInstancedPrimitives(PrimitiveType primitiveType, int baseVertex, int minVertexIndex, int numVertices,
int startIndex, int primitiveCount, int instanceCount, IndexBuffer indexBuffer)
{
@ -247,8 +178,6 @@ namespace ANX.RenderSystem.Windows.DX10
int vertexCount = DxFormatConverter.CalculateVertexCount(primitiveType, primitiveCount);
nativeDevice.InputAssembler.PrimitiveTopology = DxFormatConverter.Translate(primitiveType);
//nativeDevice.Rasterizer.SetViewports(currentViewport);
//nativeDevice.OutputMerger.SetTargets(this.depthStencilView, this.renderView);
if (indexBuffer != null)
{
@ -264,9 +193,7 @@ namespace ANX.RenderSystem.Windows.DX10
nativeDevice.InputAssembler.InputLayout.Dispose();
nativeDevice.InputAssembler.InputLayout = null;
}
#endregion
#region DrawUserIndexedPrimitives<T>
public void DrawUserIndexedPrimitives<T>(PrimitiveType primitiveType, T[] vertexData, int vertexOffset, int numVertices,
Array indexData, int indexOffset, int primitiveCount, VertexDeclaration vertexDeclaration,
IndexElementSize indexFormat) where T : struct, IVertexType
@ -290,14 +217,12 @@ namespace ANX.RenderSystem.Windows.DX10
DrawIndexedPrimitives(primitiveType, 0, vertexOffset, numVertices, indexOffset, primitiveCount, indexBuffer);
}
#endregion
#region DrawUserPrimitives<T>
public void DrawUserPrimitives<T>(PrimitiveType primitiveType, T[] vertexData, int vertexOffset, int primitiveCount, VertexDeclaration vertexDeclaration) where T : struct, IVertexType
{
int vertexCount = vertexData.Length;
DxVertexBuffer vb10 = new DxVertexBuffer(nativeDevice, vertexDeclaration, vertexCount, BufferUsage.None);
vb10.SetData<T>(null, vertexData);
vb10.SetData<T>(vertexData);
Dx10.VertexBufferBinding nativeVertexBufferBindings = new Dx10.VertexBufferBinding(vb10.NativeBuffer, vertexDeclaration.VertexStride, 0);
@ -313,8 +238,6 @@ namespace ANX.RenderSystem.Windows.DX10
nativeDevice.InputAssembler.InputLayout = layout;
// Prepare All the stages
nativeDevice.InputAssembler.PrimitiveTopology = DxFormatConverter.Translate(primitiveType);
//nativeDevice.Rasterizer.SetViewports(currentViewport);
//device.OutputMerger.SetTargets(this.depthStencilView, this.renderView);
for (int i = 0; i < technique.Description.PassCount; ++i)
{
@ -325,9 +248,7 @@ namespace ANX.RenderSystem.Windows.DX10
nativeDevice.InputAssembler.InputLayout.Dispose();
nativeDevice.InputAssembler.InputLayout = null;
}
#endregion
#region SetupEffectForDraw
private Dx10.EffectTechnique SetupEffectForDraw()
{
//TODO: check for currentEffect null and throw exception
@ -339,7 +260,6 @@ namespace ANX.RenderSystem.Windows.DX10
return technique;
}
#endregion
#region SetupInputLayout
private InputLayout SetupInputLayout(ShaderBytecode passSignature)
@ -488,120 +408,80 @@ namespace ANX.RenderSystem.Windows.DX10
#region SetRenderTargets
public void SetRenderTargets(params RenderTargetBinding[] renderTargets)
{
if (renderTargets == null)
if (renderTargets == null || renderTargets.Length == 0)
{
// reset the RenderTarget to backbuffer
CreateDepthStencilBuffer(this.depthStencilBuffer.Description.Format, this.backBuffer.Description.Width, this.backBuffer.Description.Height, false);
nativeDevice.OutputMerger.SetRenderTargets(1, new Dx10.RenderTargetView[] { this.renderView }, this.depthStencilView); //TODO: necessary?
nativeDevice.OutputMerger.SetTargets(this.depthStencilView, this.renderView);
nativeDevice.Rasterizer.SetViewports(new SharpDX.Viewport(0, 0, this.backBuffer.Description.Width, this.backBuffer.Description.Height));
this.renderTargetView[0] = this.backBuffer.RenderTargetView;
this.depthStencilView[0] = this.backBuffer.DepthStencilView;
// dispose the old views
for (int i = 0; i < renderTargetView.Length; i++)
for (int i = 1; i < MAX_RENDER_TARGETS; i++)
{
if (renderTargetView[i] != null)
{
renderTargetView[i].Dispose();
renderTargetView[i] = null;
}
this.renderTargetView[i] = null;
this.depthStencilView[i] = null;
}
//To correctly unset renderTargets, the amount of given rendertargetViews must be max(#previousRenderTargets, #newRenderTargets),
//otherwise the old ones at the slots stay bound. For us it means, we try to unbind every possible previous slot.
nativeDevice.OutputMerger.SetRenderTargets(MAX_RENDER_TARGETS, this.renderTargetView, this.backBuffer.DepthStencilView);
nativeDevice.Rasterizer.SetViewports(new SharpDX.Viewport(0, 0, this.backBuffer.Width, this.backBuffer.Height));
}
else
{
int renderTargetCount = renderTargets.Length;
RenderTargetView[] renderTargetsToDelete = new RenderTargetView[renderTargetView.Length];
Array.Copy(renderTargetView, renderTargetsToDelete, renderTargetView.Length);
if (renderTargetCount > MAX_RENDER_TARGETS)
throw new NotSupportedException(string.Format("{0} render targets are not supported. The maximum is {1}.", renderTargetCount, MAX_RENDER_TARGETS));
SharpDX.Viewport[] rtViewports = new SharpDX.Viewport[renderTargetCount];
if (this.renderTargetView.Length != renderTargetCount)
var firstRenderTarget = renderTargets[0].RenderTarget as RenderTarget2D;
for (int i = 1; i < renderTargetCount; i++)
{
this.renderTargetView = new Dx10.RenderTargetView[renderTargetCount];
var renderTarget = renderTargets[i].RenderTarget as RenderTarget2D;
if (renderTarget.Width != firstRenderTarget.Width || renderTarget.Height != firstRenderTarget.Height || renderTarget.MultiSampleCount != firstRenderTarget.MultiSampleCount)
throw new ArgumentException("The render targets don't match");
}
int width = this.backBuffer.Description.Width;
int height = this.backBuffer.Description.Height;
for (int i = 0; i < renderTargetCount; i++)
{
RenderTarget2D renderTarget = renderTargets[i].RenderTarget as RenderTarget2D;
RenderTarget2D_DX10 nativeRenderTarget = renderTarget.NativeRenderTarget as RenderTarget2D_DX10;
//TODO: check if all render Targets have the same size
width = renderTarget.Width;
height = renderTarget.Height;
if (renderTarget != null)
{
RenderTarget2D_DX10 nativeRenderTarget = renderTarget.NativeRenderTarget as RenderTarget2D_DX10;
if (renderTargetView[i] != null)
{
renderTargetView[i].Dispose();
}
renderTargetView[i] = new Dx10.RenderTargetView(nativeDevice, ((DxTexture2D)nativeRenderTarget).NativeShaderResourceView.Resource);
rtViewports[i] = new SharpDX.Viewport(0, 0, width, height);
}
renderTargetView[i] = nativeRenderTarget.RenderTargetView;
depthStencilView[i] = nativeRenderTarget.DepthStencilView;
rtViewports[i] = new SharpDX.Viewport(0, 0, renderTarget.Width, renderTarget.Height);
}
CreateDepthStencilBuffer(this.depthStencilBuffer.Description.Format, width, height, false);
nativeDevice.OutputMerger.SetRenderTargets(renderTargetCount, renderTargetView, this.depthStencilView);
nativeDevice.Rasterizer.SetViewports(rtViewports);
// free the old render target views...
for (int i = 0; i < renderTargetsToDelete.Length; i++)
for (int i = renderTargetCount; i < MAX_RENDER_TARGETS; i++)
{
if (renderTargetsToDelete[i] != null)
{
renderTargetsToDelete[i].Dispose();
renderTargetsToDelete[i] = null;
}
this.renderTargetView[i] = null;
this.depthStencilView[i] = null;
}
nativeDevice.OutputMerger.SetRenderTargets(MAX_RENDER_TARGETS, renderTargetView, this.depthStencilView[0]);
nativeDevice.Rasterizer.SetViewports(rtViewports);
}
}
#endregion
#region DisposeRenderView
protected void DisposeRenderView()
protected void DisposeBackBuffer()
{
renderView.Dispose();
renderView = null;
backBuffer.Dispose();
backBuffer = null;
if (backBuffer != null)
{
backBuffer.Dispose();
backBuffer = null;
}
}
#endregion
#region Dispose
public void Dispose()
{
for (int i = 0; i < renderTargetView.Length; i++)
{
if (renderTargetView[i] != null)
{
renderTargetView[i].Dispose();
renderTargetView[i] = null;
}
}
if (swapChain != null)
{
DisposeRenderView();
DisposeBackBuffer();
swapChain.Dispose();
swapChain = null;
}
if (this.depthStencilView != null)
{
this.depthStencilBuffer.Dispose();
this.depthStencilBuffer = null;
this.depthStencilView.Dispose();
this.depthStencilView = null;
}
//TODO: dispose everything else
}
#endregion

View File

@ -10,15 +10,52 @@ using ANX.Framework.NonXNA.RenderSystem;
// For details see: http://anxframework.codeplex.com/license
using Dx10 = SharpDX.Direct3D10;
using SharpDX.DXGI;
namespace ANX.RenderSystem.Windows.DX10
{
public class RenderTarget2D_DX10 : DxTexture2D, INativeRenderTarget2D, INativeTexture2D
{
#if DEBUG
static int depthStencilCount = 0;
static int renderTargetCount = 0;
#endif
Dx10.Texture2D depthStencil;
public Dx10.RenderTargetView RenderTargetView
{
get;
protected set;
}
public Dx10.DepthStencilView DepthStencilView
{
get;
protected set;
}
public RenderTarget2D_DX10(GraphicsDeviceDX graphics, Dx10.Texture2D texture, DepthFormat depthFormat)
: base(graphics, texture)
{
Dx10.Device device = graphics.NativeDevice;
NativeTexture = texture;
#if DEBUG
NativeTexture.DebugName = "RenderTarget_" + renderTargetCount++;
#endif
RenderTargetView = new Dx10.RenderTargetView(device, NativeTexture);
#if DEBUG
RenderTargetView.DebugName = NativeTexture.DebugName + "_RenderTargetView";
#endif
CreateDepthStencil(graphics, depthFormat, texture.Description.Width, texture.Description.Height);
}
#region Constructor
public RenderTarget2D_DX10(GraphicsDevice graphics, int width, int height, bool mipMap, SurfaceFormat surfaceFormat,
public RenderTarget2D_DX10(GraphicsDeviceDX graphics, int width, int height, bool mipMap, SurfaceFormat surfaceFormat,
DepthFormat preferredDepthFormat, int preferredMultiSampleCount, RenderTargetUsage usage)
: base(graphics, surfaceFormat)
: base(graphics)
{
if (mipMap)
throw new NotImplementedException("creating RenderTargets with mip map not yet implemented");
@ -37,10 +74,71 @@ namespace ANX.RenderSystem.Windows.DX10
OptionFlags = Dx10.ResourceOptionFlags.None,
};
Dx10.Device device = (GraphicsDevice.NativeDevice as GraphicsDeviceDX).NativeDevice;
NativeTexture = new Dx10.Texture2D(device, description);
NativeShaderResourceView = new Dx10.ShaderResourceView(device, NativeTexture);
Dx10.Device device = graphics.NativeDevice;
var texture = new Dx10.Texture2D(device, description);
#if DEBUG
texture.DebugName = "RenderTarget_" + renderTargetCount++;
#endif
this.Width = width;
this.Height = height;
NativeTexture = texture;
RenderTargetView = new Dx10.RenderTargetView(device, NativeTexture);
#if DEBUG
RenderTargetView.DebugName = NativeTexture.DebugName + "_RenderTargetView";
#endif
CreateDepthStencil(graphics, preferredDepthFormat, width, height);
}
#endregion
private void CreateDepthStencil(GraphicsDeviceDX graphics, DepthFormat depthFormat, int width, int height)
{
//TODO: As we can only ever have 1 active DepthStencil and it's currently not possible to access it from the outside,
//we could share the depth stencils as long as they have the correct size and format.
if (depthFormat == DepthFormat.None)
return;
var dxDepthFormat = DxFormatConverter.Translate(depthFormat);
var depthStencilViewDesc = new Dx10.DepthStencilViewDescription()
{
Format = dxDepthFormat,
};
var depthStencilTextureDesc = new Dx10.Texture2DDescription()
{
Width = width,
Height = height,
MipLevels = 1,
ArraySize = 1,
Format = dxDepthFormat,
SampleDescription = new SampleDescription(1, 0),
Usage = Dx10.ResourceUsage.Default,
BindFlags = Dx10.BindFlags.DepthStencil,
CpuAccessFlags = Dx10.CpuAccessFlags.None,
OptionFlags = Dx10.ResourceOptionFlags.None
};
this.depthStencil = new Dx10.Texture2D(graphics.NativeDevice, depthStencilTextureDesc);
this.DepthStencilView = new Dx10.DepthStencilView(graphics.NativeDevice, this.depthStencil);
#if DEBUG
this.depthStencil.DebugName = "DepthStencil_" + depthStencilCount++;
this.DepthStencilView.DebugName = this.depthStencil.DebugName + "_View";
#endif
}
protected override void Dispose(bool managed)
{
base.Dispose(managed);
if (RenderTargetView != null)
{
RenderTargetView.Dispose();
}
if (DepthStencilView != null)
{
DepthStencilView.Dispose();
}
}
}
}

View File

@ -73,12 +73,16 @@
<Compile Include="..\ANX.RenderSystem.DX.SharedSources\BufferHelper.cs">
<Link>BufferHelper.cs</Link>
</Compile>
<Compile Include="..\ANX.RenderSystem.DX.SharedSources\ResourceMapping.cs">
<Link>ResourceMapping.cs</Link>
</Compile>
<Compile Include="BlendState_DX11.cs" />
<Compile Include="Creator.cs" />
<Compile Include="DepthStencilState_DX11.cs" />
<Compile Include="EffectParameter_DX11.cs" />
<Compile Include="EffectPass_DX11.cs" />
<Compile Include="EffectTechnique_DX11.cs" />
<Compile Include="Extensions.cs" />
<Compile Include="FormatConverter.cs" />
<Compile Include="GraphicsDeviceDX.cs" />
<Compile Include="DxIndexBuffer.cs" />

View File

@ -86,7 +86,7 @@ namespace ANX.RenderSystem.Windows.DX11
VertexDeclaration vertexDeclaration, int vertexCount, BufferUsage usage)
{
PreventSystemChange();
return new DxVertexBuffer(graphics, vertexDeclaration, vertexCount, usage);
return new DxVertexBuffer((GraphicsDeviceDX)graphics.NativeDevice, vertexDeclaration, vertexCount, usage);
}
#endregion
@ -233,7 +233,7 @@ namespace ANX.RenderSystem.Windows.DX11
int mipCount)
{
PreventSystemChange();
return new DxTexture2D(graphics, width, height, surfaceFormat, mipCount);
return new DxTexture2D((GraphicsDeviceDX)graphics.NativeDevice, width, height, surfaceFormat, mipCount);
}
#endregion
@ -243,7 +243,7 @@ namespace ANX.RenderSystem.Windows.DX11
RenderTargetUsage usage)
{
PreventSystemChange();
return new RenderTarget2D_DX11(graphics, width, height, mipMap, preferredFormat, preferredDepthFormat,
return new RenderTarget2D_DX11((GraphicsDeviceDX)graphics.NativeDevice, width, height, mipMap, preferredFormat, preferredDepthFormat,
preferredMultiSampleCount, usage);
}
#endregion

View File

@ -17,72 +17,85 @@ namespace ANX.RenderSystem.Windows.DX11
{
public partial class DxTexture2D : INativeTexture2D
{
private Dx11.Texture2D NativeTextureStaging;
private Dx11.Texture2D _nativeTexture;
public int Width
{
get
{
return NativeTexture != null ? NativeTexture.Description.Width : 0;
}
}
public Dx11.ShaderResourceView NativeShaderResourceView { get; private set; }
public int Height
{
get
{
return NativeTexture != null ? NativeTexture.Description.Height : 0;
}
}
public Dx11.Texture2D NativeTexture
{
get { return _nativeTexture; }
set
{
if (NativeShaderResourceView != null)
{
NativeShaderResourceView.Dispose();
NativeShaderResourceView = null;
}
protected internal Dx11.ShaderResourceView NativeShaderResourceView { get; protected set; }
_nativeTexture = value;
internal Dx11.Texture2D NativeTexture { get; set; }
if (_nativeTexture != null)
{
NativeShaderResourceView = new Dx11.ShaderResourceView(this.GraphicsDevice.NativeDevice.Device, NativeTexture);
#if DEBUG
NativeShaderResourceView.DebugName = _nativeTexture.DebugName + "_ShaderView";
#endif
}
}
}
#region Constructor
internal DxTexture2D(GraphicsDevice graphicsDevice, SurfaceFormat surfaceFormat)
: this(graphicsDevice, surfaceFormat, 1)
{
}
protected DxTexture2D(GraphicsDeviceDX graphicsDevice)
{
this.GraphicsDevice = graphicsDevice;
}
public DxTexture2D(GraphicsDevice graphicsDevice, int width, int height, SurfaceFormat surfaceFormat, int mipCount)
: this(graphicsDevice, surfaceFormat, mipCount)
{
Dx11.Device device = (graphicsDevice.NativeDevice as GraphicsDeviceDX).NativeDevice.Device;
var sampleDescription = new SharpDX.DXGI.SampleDescription(1, 0);
public DxTexture2D(GraphicsDeviceDX graphicsDevice, Dx11.Texture2D nativeTexture)
: this(graphicsDevice)
{
if (nativeTexture == null)
throw new ArgumentNullException("nativeTexture");
if (useRenderTexture)
{
var descriptionStaging = new Dx11.Texture2DDescription()
{
Width = width,
Height = height,
MipLevels = mipCount,
ArraySize = mipCount,
Format = DxFormatConverter.Translate(surfaceFormat),
SampleDescription = sampleDescription,
Usage = Dx11.ResourceUsage.Staging,
CpuAccessFlags = Dx11.CpuAccessFlags.Write,
};
NativeTextureStaging = new Dx11.Texture2D(device, descriptionStaging);
}
this.Width = nativeTexture.Description.Width;
this.Height = nativeTexture.Description.Height;
#if DEBUG
if (string.IsNullOrEmpty(nativeTexture.DebugName))
nativeTexture.DebugName = "Texture_" + textureCount++;
#endif
this.NativeTexture = nativeTexture;
var description = new Dx11.Texture2DDescription()
{
Width = width,
Height = height,
MipLevels = mipCount,
ArraySize = mipCount,
Format = DxFormatConverter.Translate(surfaceFormat),
SampleDescription = sampleDescription,
Usage = useRenderTexture ? Dx11.ResourceUsage.Default : Dx11.ResourceUsage.Dynamic,
BindFlags = Dx11.BindFlags.ShaderResource,
CpuAccessFlags = useRenderTexture ? Dx11.CpuAccessFlags.None : Dx11.CpuAccessFlags.Write,
};
this.surfaceFormat = DxFormatConverter.Translate(nativeTexture.Description.Format);
}
NativeTexture = new Dx11.Texture2D(device, description);
NativeShaderResourceView = new Dx11.ShaderResourceView(device, NativeTexture);
}
public DxTexture2D(GraphicsDeviceDX graphicsDevice, int width, int height, SurfaceFormat surfaceFormat, int mipCount)
: this(graphicsDevice)
{
this.surfaceFormat = surfaceFormat;
Dx11.Device device = graphicsDevice.NativeDevice.Device;
var description = new Dx11.Texture2DDescription()
{
Width = width,
Height = height,
MipLevels = mipCount,
ArraySize = mipCount,
Format = DxFormatConverter.Translate(surfaceFormat),
SampleDescription = new SharpDX.DXGI.SampleDescription(1, 0),
Usage = Dx11.ResourceUsage.Default,
BindFlags = Dx11.BindFlags.ShaderResource,
CpuAccessFlags = Dx11.CpuAccessFlags.None,
OptionFlags = Dx11.ResourceOptionFlags.None,
};
this.Width = width;
this.Height = height;
var texture = new Dx11.Texture2D(device, description);
#if DEBUG
texture.DebugName = "Texture_" + textureCount++;
#endif
this.NativeTexture = texture;
}
#endregion
#region GetHashCode
@ -108,58 +121,51 @@ namespace ANX.RenderSystem.Windows.DX11
}
#endregion
#region GetData (TODO)
public void GetData<T>(T[] data) where T : struct
{
GetData(data, 0, data.Length);
}
protected DataStream Map(Dx11.Texture2D texture, int subresource, int level, ResourceMapping mapping, out int pitch)
{
DataStream stream;
var box = GraphicsDevice.NativeDevice.MapSubresource(texture, subresource, mapping.ToMapMode(), Dx11.MapFlags.None, out stream);
public void GetData<T>(T[] data, int startIndex, int elementCount) where T : struct
{
throw new NotImplementedException();
}
pitch = box.RowPitch;
return stream;
}
public void GetData<T>(int level, Framework.Rectangle? rect, T[] data, int startIndex, int elementCount) where T : struct
{
throw new NotImplementedException();
}
#endregion
protected int GetSubresource(int level)
{
return Dx11.Texture2D.CalculateSubResourceIndex(level, 0, NativeTexture.Description.MipLevels);
}
#region MapWrite
protected IntPtr MapWrite(int level)
{
Dx11.DeviceContext context = (GraphicsDevice.NativeDevice as GraphicsDeviceDX).NativeDevice;
tempSubresource = Dx11.Texture2D.CalculateSubResourceIndex(level, 0, mipCount);
var texture = useRenderTexture ? NativeTextureStaging : NativeTexture;
DataBox box = context.MapSubresource(texture, tempSubresource,
useRenderTexture ? Dx11.MapMode.Write : Dx11.MapMode.WriteDiscard, Dx11.MapFlags.None);
pitch = box.RowPitch;
return box.DataPointer;
}
#endregion
protected void UpdateSubresource<T>(T[] data, Dx11.Texture2D texture, int level, Framework.Rectangle rect) where T : struct
{
GraphicsDevice.NativeDevice.UpdateSubresource(data, _nativeTexture, this.GetSubresource(level), GetPitch(level), 0, rect.ToResourceRegion());
}
#region MapRead
protected IntPtr MapRead(int level)
{
Dx11.DeviceContext context = (GraphicsDevice.NativeDevice as GraphicsDeviceDX).NativeDevice;
tempSubresource = Dx11.Texture2D.CalculateSubResourceIndex(level, 0, mipCount);
var texture = useRenderTexture ? NativeTextureStaging : NativeTexture;
DataBox box = context.MapSubresource(texture, tempSubresource, Dx11.MapMode.Read, Dx11.MapFlags.None);
pitch = box.RowPitch;
return box.DataPointer;
}
#endregion
protected Dx11.Texture2D CreateStagingTexture(ResourceMapping mapping)
{
var description = new Dx11.Texture2DDescription()
{
CpuAccessFlags = mapping.ToCpuAccessFlags(),
Usage = Dx11.ResourceUsage.Staging,
Format = NativeTexture.Description.Format,
Width = this.Width,
Height = this.Height,
MipLevels = this.NativeTexture.Description.MipLevels,
SampleDescription = NativeTexture.Description.SampleDescription,
ArraySize = NativeTexture.Description.ArraySize,
OptionFlags = Dx11.ResourceOptionFlags.None,
#region Unmap
protected void Unmap()
{
Dx11.DeviceContext context = (GraphicsDevice.NativeDevice as GraphicsDeviceDX).NativeDevice;
var texture = useRenderTexture ? NativeTextureStaging : NativeTexture;
context.UnmapSubresource(texture, tempSubresource);
};
if(useRenderTexture)
context.CopyResource(NativeTextureStaging, NativeTexture);
}
#endregion
var texture = new Dx11.Texture2D(GraphicsDevice.NativeDevice.Device, description);
#if DEBUG
texture.DebugName = NativeTexture.DebugName + "_Staging";
#endif
return texture;
}
protected void Unmap(Dx11.Texture2D texture, int subresource)
{
GraphicsDevice.NativeDevice.UnmapSubresource(texture, subresource);
}
}
}

View File

@ -29,10 +29,9 @@ namespace ANX.RenderSystem.Windows.DX11
private Dx.DeviceContext context;
#region Constructor
public DxVertexBuffer(GraphicsDevice graphics, VertexDeclaration vertexDeclaration, int vertexCount, BufferUsage usage)
public DxVertexBuffer(GraphicsDeviceDX graphics, VertexDeclaration vertexDeclaration, int vertexCount, BufferUsage usage)
{
var gd11 = graphics.NativeDevice as GraphicsDeviceDX;
this.context = gd11 != null ? gd11.NativeDevice as Dx.DeviceContext : null;
this.context = graphics.NativeDevice;
InitializeBuffer(context.Device, vertexDeclaration, vertexCount, usage);
}
@ -50,19 +49,16 @@ namespace ANX.RenderSystem.Windows.DX11
//TODO: translate and use usage
if (device != null)
var description = new Dx.BufferDescription()
{
var description = new Dx.BufferDescription()
{
Usage = Dx.ResourceUsage.Dynamic,
SizeInBytes = vertexDeclaration.VertexStride * vertexCount,
BindFlags = Dx.BindFlags.VertexBuffer,
CpuAccessFlags = Dx.CpuAccessFlags.Write,
OptionFlags = Dx.ResourceOptionFlags.None
};
Usage = Dx.ResourceUsage.Dynamic,
SizeInBytes = vertexDeclaration.VertexStride * vertexCount,
BindFlags = Dx.BindFlags.VertexBuffer,
CpuAccessFlags = Dx.CpuAccessFlags.Write,
OptionFlags = Dx.ResourceOptionFlags.None
};
NativeBuffer = new Dx.Buffer(device, description);
}
NativeBuffer = new Dx.Buffer(device, description);
}
#endregion

View File

@ -0,0 +1,34 @@
using SharpDX;
using SharpDX.Direct3D11;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dx10 = SharpDX.Direct3D11;
namespace ANX.RenderSystem.Windows.DX11
{
static class Extensions
{
public static Dx10.CpuAccessFlags ToCpuAccessFlags(this ResourceMapping mapping)
{
Dx10.CpuAccessFlags flags = Dx10.CpuAccessFlags.None;
if ((mapping & ResourceMapping.Read) != 0)
flags |= Dx10.CpuAccessFlags.Read;
if ((mapping & ResourceMapping.Write) != 0)
flags |= Dx10.CpuAccessFlags.Write;
return flags;
}
public static Dx10.MapMode ToMapMode(this ResourceMapping mapping)
{
return (Dx10.MapMode)mapping;
}
public static ResourceRegion ToResourceRegion(this Framework.Rectangle rect)
{
return new ResourceRegion(rect.Left, rect.Top, 0, rect.Right, rect.Bottom, 1);
}
}
}

View File

@ -23,12 +23,17 @@ namespace ANX.RenderSystem.Windows.DX11
public partial class GraphicsDeviceDX : INativeGraphicsDevice
{
#region Private
private DeviceContext nativeDevice;
private RenderTargetView renderView;
private RenderTargetView[] renderTargetView = new RenderTargetView[1];
private DepthStencilView depthStencilView;
private Dx11.Texture2D depthStencilBuffer;
private Dx11.Texture2D backBuffer;
#if DEBUG
static int graphicsDeviceCount = 0;
static int swapChainCount = 0;
#endif
//Restricted to 8 from DirectX side.
const int MAX_RENDER_TARGETS = 8;
private Dx11.DeviceContext nativeDevice;
private Dx11.RenderTargetView[] renderTargetView = new RenderTargetView[MAX_RENDER_TARGETS];
private Dx11.DepthStencilView[] depthStencilView = new DepthStencilView[MAX_RENDER_TARGETS];
private RenderTarget2D_DX11 backBuffer;
internal EffectDX currentEffect;
#endregion
@ -51,136 +56,67 @@ namespace ANX.RenderSystem.Windows.DX11
// Create Device and SwapChain
Device dxDevice;
// http://msdn.microsoft.com/en-us/library/windows/desktop/bb205068(v=vs.85).aspx
var flags = IsDebugMode ? DeviceCreationFlags.Debug : DeviceCreationFlags.None;
Device.CreateWithSwapChain(DriverType.Hardware, flags, desc, out dxDevice, out swapChain);
#if DEBUG
var flags = DeviceCreationFlags.Debug;
#else
var flags = DeviceCreationFlags.None;
#endif
// http://msdn.microsoft.com/en-us/library/windows/desktop/bb205068(v=vs.85).aspx
Device.CreateWithSwapChain(DriverType.Hardware, flags, desc, out dxDevice, out swapChain);
#if DEBUG
nativeDevice.DebugName = "GraphicsDevice_" + graphicsDeviceCount++;
swapChain.DebugName = "SwapChain_" + swapChainCount++;
#endif
nativeDevice = dxDevice.ImmediateContext;
}
#endregion
#region CreateRenderView
protected void CreateRenderView()
{
backBuffer = Dx11.Texture2D.FromSwapChain<Dx11.Texture2D>(swapChain, 0);
renderView = new RenderTargetView(nativeDevice.Device, backBuffer);
nativeDevice.OutputMerger.SetTargets(this.depthStencilView, this.renderView);
}
#endregion
#region CreateDepthStencilBuffer
protected void CreateDepthStencilBuffer(Format depthFormat, int width, int height, bool setAndClearTarget)
protected void CreateRenderView(PresentationParameters presentationParameters)
{
if (this.depthStencilBuffer != null &&
this.depthStencilBuffer.Description.Format == depthFormat &&
this.depthStencilBuffer.Description.Width == width &&
this.depthStencilBuffer.Description.Height == height)
{
// a DepthStencilBuffer with the right format and the right size already exists -> nothing to do
return;
}
if (depthFormat == Format.Unknown)
{
// no DepthStencilBuffer to create... Old one was disposed already...
return;
}
DepthStencilViewDescription depthStencilViewDesc = new DepthStencilViewDescription()
{
Format = depthFormat,
};
Texture2DDescription depthStencilTextureDesc = new Texture2DDescription()
{
Width = width,
Height = height,
MipLevels = 1,
ArraySize = 1,
Format = depthFormat,
SampleDescription = new SampleDescription(1, 0),
Usage = ResourceUsage.Default,
BindFlags = BindFlags.DepthStencil,
CpuAccessFlags = CpuAccessFlags.None,
OptionFlags = ResourceOptionFlags.None
};
this.depthStencilBuffer = new Dx11.Texture2D(nativeDevice.Device, depthStencilTextureDesc);
this.depthStencilView = new DepthStencilView(nativeDevice.Device, this.depthStencilBuffer);
if (setAndClearTarget)
{
nativeDevice.OutputMerger.SetTargets(this.depthStencilView, this.renderView);
Clear(ClearOptions.DepthBuffer | ClearOptions.Stencil, ANX.Framework.Vector4.Zero, 1.0f, 0); //TODO: this workaround is working but maybe not the best solution to issue #472
}
backBuffer = new RenderTarget2D_DX11(this, Dx11.Texture2D.FromSwapChain<Dx11.Texture2D>(swapChain, 0), presentationParameters.DepthStencilFormat);
this.SetRenderTargets();
}
#endregion
#region Clear
public void Clear(ref Color color)
{
UpdateClearColorIfNeeded(ref color);
if (this.renderTargetView[0] == null)
nativeDevice.ClearRenderTargetView(this.renderView, this.clearColor);
else
{
for (int i = 0; i < this.renderTargetView.Length; i++)
{
if (this.renderTargetView[i] == null)
{
break;
}
nativeDevice.ClearRenderTargetView(this.renderTargetView[i], this.clearColor);
}
}
}
public void Clear(ClearOptions options, ANX.Framework.Vector4 color, float depth, int stencil)
public void Clear(ClearOptions options, Vector4 color, float depth, int stencil)
{
if ((options & ClearOptions.Target) == ClearOptions.Target)
{
// Clear a RenderTarget (or BackBuffer)
var clearColor = new SharpDX.Color4(color.X, color.Y, color.Z, color.W);
this.clearColor.Red = color.X;
this.clearColor.Green = color.Y;
this.clearColor.Blue = color.Z;
this.clearColor.Alpha = color.W;
this.lastClearColor = 0;
if (this.renderTargetView[0] == null)
nativeDevice.ClearRenderTargetView(this.renderView, this.clearColor);
else
for (int i = 0; i < MAX_RENDER_TARGETS; i++)
{
for (int i = 0; i < this.renderTargetView.Length; i++)
{
if (this.renderTargetView[i] == null)
break;
if (this.renderTargetView[i] == null)
break;
nativeDevice.ClearRenderTargetView(this.renderTargetView[i], this.clearColor);
}
nativeDevice.ClearRenderTargetView(this.renderTargetView[i], clearColor);
}
}
if (this.depthStencilView != null)
Dx11.DepthStencilClearFlags clearFlags;
if ((options | ClearOptions.Stencil | ClearOptions.DepthBuffer) == options)
{
if ((options | ClearOptions.Stencil | ClearOptions.DepthBuffer) == options)
{
// Clear the stencil buffer
nativeDevice.ClearDepthStencilView(this.depthStencilView, DepthStencilClearFlags.Depth |
DepthStencilClearFlags.Stencil, depth, (byte)stencil);
}
else if ((options | ClearOptions.Stencil) == options)
{
nativeDevice.ClearDepthStencilView(this.depthStencilView, DepthStencilClearFlags.Stencil, depth,
(byte)stencil);
}
else
{
nativeDevice.ClearDepthStencilView(this.depthStencilView, DepthStencilClearFlags.Depth, depth, (byte)stencil);
}
clearFlags = Dx11.DepthStencilClearFlags.Depth | Dx11.DepthStencilClearFlags.Stencil;
}
else if ((options | ClearOptions.Stencil) == options)
{
clearFlags = Dx11.DepthStencilClearFlags.Stencil;
}
else
{
clearFlags = Dx11.DepthStencilClearFlags.Depth;
}
for (int i = 0; i < MAX_RENDER_TARGETS; i++)
{
if (this.depthStencilView[i] == null)
break;
nativeDevice.ClearDepthStencilView(this.depthStencilView[i], clearFlags, depth, (byte)stencil);
}
}
@ -304,8 +240,8 @@ namespace ANX.RenderSystem.Windows.DX11
public void DrawUserPrimitives<T>(PrimitiveType primitiveType, T[] vertexData, int vertexOffset, int primitiveCount, VertexDeclaration vertexDeclaration) where T : struct, IVertexType
{
int vertexCount = vertexData.Length;
DxVertexBuffer vb11 = new DxVertexBuffer(nativeDevice.Device, vertexDeclaration, vertexCount, BufferUsage.None);
vb11.SetData<T>(null, vertexData);
DxVertexBuffer vb11 = new DxVertexBuffer(this, vertexDeclaration, vertexCount, BufferUsage.None);
vb11.SetData<T>(vertexData);
Dx11.VertexBufferBinding nativeVertexBufferBindings = new Dx11.VertexBufferBinding(vb11.NativeBuffer, vertexDeclaration.VertexStride, 0);
@ -502,121 +438,82 @@ namespace ANX.RenderSystem.Windows.DX11
#endregion
#region SetRenderTargets
public void SetRenderTargets(params RenderTargetBinding[] renderTargets)
public void SetRenderTargets(params RenderTargetBinding[] renderTargets)
{
if (renderTargets == null)
if (renderTargets == null || renderTargets.Length == 0)
{
// reset the RenderTarget to backbuffer
CreateDepthStencilBuffer(this.depthStencilBuffer.Description.Format, this.backBuffer.Description.Width, this.backBuffer.Description.Height, false);
nativeDevice.OutputMerger.SetTargets(this.depthStencilView, this.renderView);
nativeDevice.Rasterizer.SetViewport(new SharpDX.Viewport(0, 0, this.backBuffer.Description.Width, this.backBuffer.Description.Height));
this.renderTargetView[0] = this.backBuffer.RenderTargetView;
this.depthStencilView[0] = this.backBuffer.DepthStencilView;
// dispose the old views
for (int i = 0; i < renderTargetView.Length; i++)
for (int i = 1; i < MAX_RENDER_TARGETS; i++)
{
if (renderTargetView[i] != null)
{
renderTargetView[i].Dispose();
renderTargetView[i] = null;
}
this.renderTargetView[i] = null;
this.depthStencilView[i] = null;
}
//To correctly unset renderTargets, the amount of given rendertargetViews must be max(#previousRenderTargets, #newRenderTargets),
//otherwise the old ones at the slots stay bound. For us it means, we try to unbind every possible previous slot.
nativeDevice.OutputMerger.SetRenderTargets(this.backBuffer.DepthStencilView, this.renderTargetView);
nativeDevice.Rasterizer.SetViewport(new SharpDX.ViewportF(0, 0, this.backBuffer.Width, this.backBuffer.Height));
}
else
{
int renderTargetCount = renderTargets.Length;
RenderTargetView[] renderTargetsToDelete = new RenderTargetView[renderTargetView.Length];
Array.Copy(renderTargetView, renderTargetsToDelete, renderTargetView.Length);
SharpDX.ViewportF[] rtViewports = new SharpDX.ViewportF[renderTargetCount];
if (renderTargetCount > MAX_RENDER_TARGETS)
throw new NotSupportedException(string.Format("{0} render targets are not supported. The maximum is {1}.", renderTargetCount, MAX_RENDER_TARGETS));
if (this.renderTargetView.Length != renderTargetCount)
var rtViewports = new SharpDX.ViewportF[renderTargetCount];
var firstRenderTarget = renderTargets[0].RenderTarget as RenderTarget2D;
for (int i = 1; i < renderTargetCount; i++)
{
this.renderTargetView = new RenderTargetView[renderTargetCount];
var renderTarget = renderTargets[i].RenderTarget as RenderTarget2D;
if (renderTarget.Width != firstRenderTarget.Width || renderTarget.Height != firstRenderTarget.Height || renderTarget.MultiSampleCount != firstRenderTarget.MultiSampleCount)
throw new ArgumentException("The render targets don't match");
}
int width = this.backBuffer.Description.Width;
int height = this.backBuffer.Description.Height;
for (int i = 0; i < renderTargetCount; i++)
{
RenderTarget2D renderTarget = renderTargets[i].RenderTarget as RenderTarget2D;
var nativeRenderTarget = renderTarget.NativeRenderTarget as RenderTarget2D_DX11;
//TODO: check if all render Targets have the same size
width = renderTarget.Width;
height = renderTarget.Height;
if (renderTarget != null)
{
RenderTarget2D_DX11 nativeRenderTarget = renderTarget.NativeRenderTarget as RenderTarget2D_DX11;
if (renderTargetView[i] != null)
{
renderTargetView[i].Dispose();
}
renderTargetView[i] = new RenderTargetView(nativeDevice.Device, ((DxTexture2D)nativeRenderTarget).NativeShaderResourceView.Resource);
rtViewports[i] = new SharpDX.Viewport(0, 0, width, height);
}
renderTargetView[i] = nativeRenderTarget.RenderTargetView;
depthStencilView[i] = nativeRenderTarget.DepthStencilView;
rtViewports[i] = new SharpDX.ViewportF(0, 0, renderTarget.Width, renderTarget.Height);
}
CreateDepthStencilBuffer(this.depthStencilBuffer.Description.Format, width, height, false);
nativeDevice.OutputMerger.SetTargets(this.depthStencilView, this.renderTargetView);
nativeDevice.Rasterizer.SetViewports(rtViewports);
// free the old render target views...
for (int i = 0; i < renderTargetsToDelete.Length; i++)
for (int i = renderTargetCount; i < MAX_RENDER_TARGETS; i++)
{
if (renderTargetsToDelete[i] != null)
{
renderTargetsToDelete[i].Dispose();
renderTargetsToDelete[i] = null;
}
this.renderTargetView[i] = null;
this.depthStencilView[i] = null;
}
nativeDevice.OutputMerger.SetRenderTargets(this.depthStencilView[0], renderTargetView);
nativeDevice.Rasterizer.SetViewports(rtViewports);
}
}
#endregion
#region DisposeRenderView
protected void DisposeRenderView()
{
renderView.Dispose();
renderView = null;
backBuffer.Dispose();
backBuffer = null;
}
#endregion
protected void DisposeBackBuffer()
{
if (backBuffer != null)
{
backBuffer.Dispose();
backBuffer = null;
}
}
#region Dispose
public void Dispose()
{
for (int i = 0; i < renderTargetView.Length; i++)
{
if (renderTargetView[i] != null)
{
renderTargetView[i].Dispose();
renderTargetView[i] = null;
}
}
if (swapChain != null)
{
DisposeRenderView();
DisposeBackBuffer();
swapChain.Dispose();
swapChain = null;
}
if (this.depthStencilView != null)
{
this.depthStencilBuffer.Dispose();
this.depthStencilBuffer = null;
this.depthStencilView.Dispose();
this.depthStencilView = null;
}
//TODO: dispose everything else
}
#endregion

View File

@ -2,6 +2,8 @@
using System;
using ANX.Framework.Graphics;
using ANX.Framework.NonXNA.RenderSystem;
using Dx11 = SharpDX.Direct3D11;
using SharpDX.DXGI;
#endregion
@ -13,30 +15,131 @@ namespace ANX.RenderSystem.Windows.DX11
{
public class RenderTarget2D_DX11 : DxTexture2D, INativeRenderTarget2D, INativeTexture2D
{
public RenderTarget2D_DX11(GraphicsDevice graphics, int width, int height, bool mipMap, SurfaceFormat surfaceFormat,
#if DEBUG
static int depthStencilCount = 0;
static int renderTargetCount = 0;
#endif
Dx11.Texture2D depthStencil;
public Dx11.RenderTargetView RenderTargetView
{
get;
protected set;
}
public Dx11.DepthStencilView DepthStencilView
{
get;
protected set;
}
public RenderTarget2D_DX11(GraphicsDeviceDX graphics, Dx11.Texture2D texture, DepthFormat depthFormat)
: base(graphics, texture)
{
Dx11.Device device = graphics.NativeDevice.Device;
NativeTexture = texture;
#if DEBUG
NativeTexture.DebugName = "RenderTarget_" + renderTargetCount++;
#endif
RenderTargetView = new Dx11.RenderTargetView(device, NativeTexture);
#if DEBUG
RenderTargetView.DebugName = NativeTexture.DebugName + "_RenderTargetView";
#endif
CreateDepthStencil(graphics, depthFormat, texture.Description.Width, texture.Description.Height);
}
#region Constructor
public RenderTarget2D_DX11(GraphicsDeviceDX graphics, int width, int height, bool mipMap, SurfaceFormat surfaceFormat,
DepthFormat preferredDepthFormat, int preferredMultiSampleCount, RenderTargetUsage usage)
: base(graphics, surfaceFormat)
{
if (mipMap)
throw new NotImplementedException("creating RenderTargets with mip map not yet implemented");
var description = new SharpDX.Direct3D11.Texture2DDescription()
{
Width = width,
Height = height,
MipLevels = 1,
ArraySize = 1,
: base(graphics)
{
if (mipMap)
throw new NotImplementedException("creating RenderTargets with mip map not yet implemented");
var description = new Dx11.Texture2DDescription()
{
Width = width,
Height = height,
MipLevels = 1,
ArraySize = 1,
Format = DxFormatConverter.Translate(surfaceFormat),
SampleDescription = new SharpDX.DXGI.SampleDescription(1, 0),
Usage = SharpDX.Direct3D11.ResourceUsage.Default,
BindFlags = SharpDX.Direct3D11.BindFlags.ShaderResource | SharpDX.Direct3D11.BindFlags.RenderTarget,
CpuAccessFlags = SharpDX.Direct3D11.CpuAccessFlags.None,
OptionFlags = SharpDX.Direct3D11.ResourceOptionFlags.None,
};
SampleDescription = new SharpDX.DXGI.SampleDescription(1, 0),
Usage = Dx11.ResourceUsage.Default,
BindFlags = Dx11.BindFlags.ShaderResource | Dx11.BindFlags.RenderTarget,
CpuAccessFlags = Dx11.CpuAccessFlags.None,
OptionFlags = Dx11.ResourceOptionFlags.None,
};
SharpDX.Direct3D11.DeviceContext device = (GraphicsDevice.NativeDevice as GraphicsDeviceDX).NativeDevice;
NativeTexture = new SharpDX.Direct3D11.Texture2D(device.Device, description);
NativeShaderResourceView = new SharpDX.Direct3D11.ShaderResourceView(device.Device, NativeTexture);
Dx11.Device device = graphics.NativeDevice.Device;
var texture = new Dx11.Texture2D(device, description);
#if DEBUG
texture.DebugName = "RenderTarget_" + renderTargetCount++;
#endif
this.Width = width;
this.Height = height;
NativeTexture = texture;
RenderTargetView = new Dx11.RenderTargetView(device, NativeTexture);
#if DEBUG
RenderTargetView.DebugName = NativeTexture.DebugName + "_RenderTargetView";
#endif
CreateDepthStencil(graphics, preferredDepthFormat, width, height);
}
#endregion
private void CreateDepthStencil(GraphicsDeviceDX graphics, DepthFormat depthFormat, int width, int height)
{
//TODO: As we can only ever have 1 active DepthStencil and it's currently not possible to access it from the outside,
//we could share the depth stencils as long as they have the correct size and format.
if (depthFormat == DepthFormat.None)
return;
var dxDepthFormat = DxFormatConverter.Translate(depthFormat);
var depthStencilViewDesc = new Dx11.DepthStencilViewDescription()
{
Format = dxDepthFormat,
};
var device = graphics.NativeDevice.Device;
var depthStencilTextureDesc = new Dx11.Texture2DDescription()
{
Width = width,
Height = height,
MipLevels = 1,
ArraySize = 1,
Format = dxDepthFormat,
SampleDescription = new SampleDescription(1, 0),
Usage = Dx11.ResourceUsage.Default,
BindFlags = Dx11.BindFlags.DepthStencil,
CpuAccessFlags = Dx11.CpuAccessFlags.None,
OptionFlags = Dx11.ResourceOptionFlags.None
};
this.depthStencil = new Dx11.Texture2D(device, depthStencilTextureDesc);
this.DepthStencilView = new Dx11.DepthStencilView(device, this.depthStencil);
#if DEBUG
this.depthStencil.DebugName = "DepthStencil_" + depthStencilCount++;
this.DepthStencilView.DebugName = this.depthStencil.DebugName + "_View";
#endif
}
protected override void Dispose(bool managed)
{
base.Dispose(managed);
if (RenderTargetView != null)
{
RenderTargetView.Dispose();
}
if (DepthStencilView != null)
{
DepthStencilView.Dispose();
}
}
}
}

View File

@ -22,6 +22,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<UseVSHostingProcess>false</UseVSHostingProcess>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>

View File

@ -1,58 +1,211 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleContent", "SampleContent\SampleContent.contentproj", "{FA6E229D-4504-47B1-8A23-2D3FCC13F778}"
EndProject
# Visual Studio 2013
VisualStudioVersion = 12.0.40629.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BasicEffectSample", "BasicEffectSample\BasicEffectSample.csproj", "{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}"
ProjectSection(ProjectDependencies) = postProject
{75EFAE60-726E-430F-8661-4CF9ABD1306C} = {75EFAE60-726E-430F-8661-4CF9ABD1306C}
EndProjectSection
EndProject
Project("{75EFAE60-726E-430F-8661-4CF9ABD1306C}") = "SampleContent", "SampleContent\SampleContent.cproj", "{75EFAE60-726E-430F-8661-4CF9ABD1306C}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Android = Debug|Android
Debug|Any CPU = Debug|Any CPU
Debug|iOS = Debug|iOS
Debug|Linux = Debug|Linux
Debug|Mac OS = Debug|Mac OS
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|PS Vita = Debug|PS Vita
Debug|Windows = Debug|Windows
Debug|Windows Metro = Debug|Windows Metro
Debug|Windows Phone = Debug|Windows Phone
Debug|x86 = Debug|x86
Debug|XBox 360 = Debug|XBox 360
DebugWin8|Android = DebugWin8|Android
DebugWin8|Any CPU = DebugWin8|Any CPU
DebugWin8|iOS = DebugWin8|iOS
DebugWin8|Linux = DebugWin8|Linux
DebugWin8|Mac OS = DebugWin8|Mac OS
DebugWin8|Mixed Platforms = DebugWin8|Mixed Platforms
DebugWin8|PS Vita = DebugWin8|PS Vita
DebugWin8|Windows = DebugWin8|Windows
DebugWin8|Windows Metro = DebugWin8|Windows Metro
DebugWin8|Windows Phone = DebugWin8|Windows Phone
DebugWin8|x86 = DebugWin8|x86
DebugWin8|XBox 360 = DebugWin8|XBox 360
Release|Android = Release|Android
Release|Any CPU = Release|Any CPU
Release|iOS = Release|iOS
Release|Linux = Release|Linux
Release|Mac OS = Release|Mac OS
Release|Mixed Platforms = Release|Mixed Platforms
Release|PS Vita = Release|PS Vita
Release|Windows = Release|Windows
Release|Windows Metro = Release|Windows Metro
Release|Windows Phone = Release|Windows Phone
Release|x86 = Release|x86
Release|XBox 360 = Release|XBox 360
ReleaseWin8|Android = ReleaseWin8|Android
ReleaseWin8|Any CPU = ReleaseWin8|Any CPU
ReleaseWin8|iOS = ReleaseWin8|iOS
ReleaseWin8|Linux = ReleaseWin8|Linux
ReleaseWin8|Mac OS = ReleaseWin8|Mac OS
ReleaseWin8|Mixed Platforms = ReleaseWin8|Mixed Platforms
ReleaseWin8|PS Vita = ReleaseWin8|PS Vita
ReleaseWin8|Windows = ReleaseWin8|Windows
ReleaseWin8|Windows Metro = ReleaseWin8|Windows Metro
ReleaseWin8|Windows Phone = ReleaseWin8|Windows Phone
ReleaseWin8|x86 = ReleaseWin8|x86
ReleaseWin8|XBox 360 = ReleaseWin8|XBox 360
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.Debug|x86.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.DebugWin8|Any CPU.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.DebugWin8|Mixed Platforms.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.DebugWin8|x86.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.Release|Any CPU.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.Release|Mixed Platforms.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.Release|x86.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.ReleaseWin8|Any CPU.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.ReleaseWin8|Mixed Platforms.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.ReleaseWin8|x86.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Any CPU.ActiveCfg = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Mixed Platforms.Build.0 = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|x86.ActiveCfg = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|x86.Build.0 = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.DebugWin8|Any CPU.ActiveCfg = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.DebugWin8|Mixed Platforms.ActiveCfg = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.DebugWin8|Mixed Platforms.Build.0 = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.DebugWin8|x86.ActiveCfg = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.DebugWin8|x86.Build.0 = Debug|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Any CPU.ActiveCfg = Release|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Mixed Platforms.ActiveCfg = Release|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Mixed Platforms.Build.0 = Release|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|x86.ActiveCfg = Release|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|x86.Build.0 = Release|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.ReleaseWin8|Any CPU.ActiveCfg = Release|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.ReleaseWin8|Mixed Platforms.ActiveCfg = Release|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.ReleaseWin8|Mixed Platforms.Build.0 = Release|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.ReleaseWin8|x86.ActiveCfg = Release|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.ReleaseWin8|x86.Build.0 = Release|x86
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Android.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|iOS.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Linux.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Mac OS.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|PS Vita.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Windows.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Windows Metro.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|Windows Phone.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|x86.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Debug|XBox 360.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.DebugWin8|Android.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.DebugWin8|Any CPU.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.DebugWin8|Any CPU.Build.0 = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.DebugWin8|iOS.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.DebugWin8|Linux.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.DebugWin8|Mac OS.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.DebugWin8|Mixed Platforms.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.DebugWin8|Mixed Platforms.Build.0 = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.DebugWin8|PS Vita.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.DebugWin8|Windows.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.DebugWin8|Windows Metro.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.DebugWin8|Windows Phone.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.DebugWin8|x86.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.DebugWin8|XBox 360.ActiveCfg = Debug|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Android.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Any CPU.Build.0 = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|iOS.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Linux.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Mac OS.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|PS Vita.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Windows.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Windows Metro.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|Windows Phone.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|x86.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.Release|XBox 360.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.ReleaseWin8|Android.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.ReleaseWin8|Any CPU.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.ReleaseWin8|Any CPU.Build.0 = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.ReleaseWin8|iOS.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.ReleaseWin8|Linux.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.ReleaseWin8|Mac OS.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.ReleaseWin8|Mixed Platforms.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.ReleaseWin8|Mixed Platforms.Build.0 = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.ReleaseWin8|PS Vita.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.ReleaseWin8|Windows.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.ReleaseWin8|Windows Metro.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.ReleaseWin8|Windows Phone.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.ReleaseWin8|x86.ActiveCfg = Release|Any CPU
{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}.ReleaseWin8|XBox 360.ActiveCfg = Release|Any CPU
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Android.ActiveCfg = Debug|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Android.Build.0 = Debug|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Any CPU.ActiveCfg = Debug|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|iOS.ActiveCfg = Debug|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|iOS.Build.0 = Debug|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Linux.ActiveCfg = Debug|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Linux.Build.0 = Debug|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Mac OS.ActiveCfg = Debug|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Mac OS.Build.0 = Debug|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Mixed Platforms.ActiveCfg = Debug|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Mixed Platforms.Build.0 = Debug|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|PS Vita.ActiveCfg = Debug|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|PS Vita.Build.0 = Debug|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Windows.ActiveCfg = Debug|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Windows.Build.0 = Debug|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Windows Metro.ActiveCfg = Debug|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Windows Metro.Build.0 = Debug|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Windows Phone.ActiveCfg = Debug|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Windows Phone.Build.0 = Debug|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|x86.ActiveCfg = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|XBox 360.ActiveCfg = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|XBox 360.Build.0 = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Android.ActiveCfg = Debug|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Android.Build.0 = Debug|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Any CPU.ActiveCfg = Debug|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|iOS.ActiveCfg = Debug|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|iOS.Build.0 = Debug|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Linux.ActiveCfg = Debug|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Linux.Build.0 = Debug|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Mac OS.ActiveCfg = Debug|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Mac OS.Build.0 = Debug|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Mixed Platforms.ActiveCfg = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Mixed Platforms.Build.0 = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|PS Vita.ActiveCfg = Debug|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|PS Vita.Build.0 = Debug|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Windows.ActiveCfg = Debug|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Windows.Build.0 = Debug|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Windows Metro.ActiveCfg = Debug|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Windows Metro.Build.0 = Debug|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Windows Phone.ActiveCfg = Debug|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Windows Phone.Build.0 = Debug|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|x86.ActiveCfg = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|XBox 360.ActiveCfg = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|XBox 360.Build.0 = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Android.ActiveCfg = Release|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Android.Build.0 = Release|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Any CPU.ActiveCfg = Release|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|iOS.ActiveCfg = Release|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|iOS.Build.0 = Release|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Linux.ActiveCfg = Release|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Linux.Build.0 = Release|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Mac OS.ActiveCfg = Release|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Mac OS.Build.0 = Release|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Mixed Platforms.ActiveCfg = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Mixed Platforms.Build.0 = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|PS Vita.ActiveCfg = Release|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|PS Vita.Build.0 = Release|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Windows.ActiveCfg = Release|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Windows.Build.0 = Release|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Windows Metro.ActiveCfg = Release|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Windows Metro.Build.0 = Release|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Windows Phone.ActiveCfg = Release|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Windows Phone.Build.0 = Release|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|x86.ActiveCfg = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|XBox 360.ActiveCfg = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|XBox 360.Build.0 = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Android.ActiveCfg = Release|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Android.Build.0 = Release|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Any CPU.ActiveCfg = Release|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|iOS.ActiveCfg = Release|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|iOS.Build.0 = Release|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Linux.ActiveCfg = Release|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Linux.Build.0 = Release|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Mac OS.ActiveCfg = Release|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Mac OS.Build.0 = Release|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Mixed Platforms.ActiveCfg = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Mixed Platforms.Build.0 = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|PS Vita.ActiveCfg = Release|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|PS Vita.Build.0 = Release|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Windows.ActiveCfg = Release|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Windows.Build.0 = Release|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Windows Metro.ActiveCfg = Release|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Windows Metro.Build.0 = Release|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Windows Phone.ActiveCfg = Release|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Windows Phone.Build.0 = Release|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|x86.ActiveCfg = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|XBox 360.ActiveCfg = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|XBox 360.Build.0 = Release|XBox 360
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -1,65 +1,69 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<ProjectGuid>{D810F12D-6CE9-4755-AC6A-5DFEC7D1C782}</ProjectGuid>
<ProjectTypeGuids>{6D335F3A-9D43-41b4-9D22-F6F17C4BE596};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>BasicEffectSample</RootNamespace>
<AssemblyName>BasicEffectSample</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
<XnaFrameworkVersion>v4.0</XnaFrameworkVersion>
<XnaPlatform>Windows</XnaPlatform>
<XnaProfile>HiDef</XnaProfile>
<XnaCrossPlatformGroupID>e26e1d47-54d1-4ba4-87b9-492a55c54a4f</XnaCrossPlatformGroupID>
<XnaOutputType>Game</XnaOutputType>
<ApplicationIcon>anx.ico</ApplicationIcon>
<Thumbnail>GameThumbnail.png</Thumbnail>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\x86\Debug</OutputPath>
<OutputPath>bin\Debug</OutputPath>
<DefineConstants>DEBUG;TRACE;WINDOWS</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoStdLib>true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<PlatformTarget>x86</PlatformTarget>
<XnaCompressContent>false</XnaCompressContent>
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\x86\Release</OutputPath>
<OutputPath>bin\Release</OutputPath>
<DefineConstants>TRACE;WINDOWS</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoStdLib>true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<PlatformTarget>x86</PlatformTarget>
<XnaCompressContent>true</XnaCompressContent>
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
<PropertyGroup>
<RunPostBuildEvent>Always</RunPostBuildEvent>
</PropertyGroup>
<ItemGroup>
<Reference Include="ANX.Framework, Version=0.6.0.37138, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\bin\Debug\ANX.Framework.dll</HintPath>
</Reference>
<Reference Include="ANX.InputDevices.Windows.XInput, Version=0.6.5.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\bin\Debug\ANX.InputDevices.Windows.XInput.dll</HintPath>
</Reference>
<Reference Include="ANX.InputSystem.Standard, Version=0.5.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\bin\Debug\ANX.InputSystem.Standard.dll</HintPath>
</Reference>
<Reference Include="ANX.PlatformSystem.Windows, Version=0.75.1.35539, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\bin\Debug\ANX.PlatformSystem.Windows.dll</HintPath>
</Reference>
<Reference Include="ANX.RenderSystem.Windows.DX10, Version=0.7.28.39390, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\bin\Debug\ANX.RenderSystem.Windows.DX10.dll</HintPath>
</Reference>
<Reference Include="ANX.SoundSystem.Windows.XAudio, Version=0.4.2.39947, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\bin\Debug\ANX.SoundSystem.Windows.XAudio.dll</HintPath>
</Reference>
<Reference Include="mscorlib">
<Private>False</Private>
</Reference>
@ -109,41 +113,6 @@
<Content Include="anx.ico" />
<Content Include="GameThumbnail.png" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\ANX.Framework\ANX.Framework.csproj">
<Project>{6899F0C9-70B9-4EB0-9DD3-E598D4BE3E35}</Project>
<Name>ANX.Framework</Name>
</ProjectReference>
<ProjectReference Include="..\..\InputSystems\ANX.InputDevices.Windows.XInput\ANX.InputDevices.Windows.XInput.csproj">
<Project>{60D08399-244F-46A3-91F1-4CFD26D961A3}</Project>
<Name>ANX.InputDevices.Windows.XInput</Name>
</ProjectReference>
<ProjectReference Include="..\..\InputSystems\ANX.InputSystem.Standard\ANX.InputSystem.Standard.csproj">
<Project>{49066074-3B7B-4A55-B122-6BD33AB73558}</Project>
<Name>ANX.InputSystem.Standard</Name>
</ProjectReference>
<ProjectReference Include="..\..\PlatformSystems\ANX.PlatformSystem.Windows\ANX.PlatformSystem.Windows.csproj">
<Project>{068EB2E9-963C-4E1B-8831-E25011F11FFE}</Project>
<Name>ANX.PlatformSystem.Windows</Name>
</ProjectReference>
<ProjectReference Include="..\..\RenderSystems\ANX.RenderSystem.Windows.DX10\ANX.RenderSystem.Windows.DX10.csproj">
<Project>{5BE49183-2F6F-4527-AC90-D816911FCF90}</Project>
<Name>ANX.RenderSystem.Windows.DX10</Name>
</ProjectReference>
<ProjectReference Include="..\..\RenderSystems\ANX.RenderSystem.Windows.DX11\ANX.RenderSystem.Windows.DX11.csproj">
<Project>{B30DE9C2-0926-46B6-8351-9AF276C472D5}</Project>
<Name>ANX.RenderSystem.Windows.DX11</Name>
</ProjectReference>
<ProjectReference Include="..\..\SoundSystems\ANX.SoundSystem.Windows.XAudio\ANX.SoundSystem.Windows.XAudio.csproj">
<Project>{6A582788-C4D2-410C-96CD-177F75712D65}</Project>
<Name>ANX.SoundSystem.Windows.XAudio</Name>
</ProjectReference>
<ProjectReference Include="..\SampleContent\SampleContent.contentproj">
<Project>{FA6E229D-4504-47B1-8A23-2D3FCC13F778}</Project>
<Name>SampleContent</Name>
<XnaReferenceType>Content</XnaReferenceType>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.0,Profile=Client">
<Visible>False</Visible>
@ -165,14 +134,11 @@
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Xna.Framework.4.0">
<Visible>False</Visible>
<ProductName>Microsoft XNA Framework Redistributable 4.0</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\Microsoft.Xna.GameStudio.targets" />
<PropertyGroup>
<PostBuildEvent>xcopy $(ProjectDir)..\SampleContent\bin\$(ConfigurationName) $(TargetDir)SampleContent\ /D /E /Y</PostBuildEvent>
</PropertyGroup>
<!--
To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

View File

@ -1,58 +1,211 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleContent", "SampleContent\SampleContent.contentproj", "{FA6E229D-4504-47B1-8A23-2D3FCC13F778}"
EndProject
# Visual Studio 2013
VisualStudioVersion = 12.0.40629.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DualTextureSample", "DualTextureSample\DualTextureSample.csproj", "{9259CC4E-AE6B-403C-8FAB-2408448C3935}"
ProjectSection(ProjectDependencies) = postProject
{75EFAE60-726E-430F-8661-4CF9ABD1306C} = {75EFAE60-726E-430F-8661-4CF9ABD1306C}
EndProjectSection
EndProject
Project("{75EFAE60-726E-430F-8661-4CF9ABD1306C}") = "SampleContent", "SampleContent\SampleContent.cproj", "{75EFAE60-726E-430F-8661-4CF9ABD1306C}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Android = Debug|Android
Debug|Any CPU = Debug|Any CPU
Debug|iOS = Debug|iOS
Debug|Linux = Debug|Linux
Debug|Mac OS = Debug|Mac OS
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|PS Vita = Debug|PS Vita
Debug|Windows = Debug|Windows
Debug|Windows Metro = Debug|Windows Metro
Debug|Windows Phone = Debug|Windows Phone
Debug|x86 = Debug|x86
Debug|XBox 360 = Debug|XBox 360
DebugWin8|Android = DebugWin8|Android
DebugWin8|Any CPU = DebugWin8|Any CPU
DebugWin8|iOS = DebugWin8|iOS
DebugWin8|Linux = DebugWin8|Linux
DebugWin8|Mac OS = DebugWin8|Mac OS
DebugWin8|Mixed Platforms = DebugWin8|Mixed Platforms
DebugWin8|PS Vita = DebugWin8|PS Vita
DebugWin8|Windows = DebugWin8|Windows
DebugWin8|Windows Metro = DebugWin8|Windows Metro
DebugWin8|Windows Phone = DebugWin8|Windows Phone
DebugWin8|x86 = DebugWin8|x86
DebugWin8|XBox 360 = DebugWin8|XBox 360
Release|Android = Release|Android
Release|Any CPU = Release|Any CPU
Release|iOS = Release|iOS
Release|Linux = Release|Linux
Release|Mac OS = Release|Mac OS
Release|Mixed Platforms = Release|Mixed Platforms
Release|PS Vita = Release|PS Vita
Release|Windows = Release|Windows
Release|Windows Metro = Release|Windows Metro
Release|Windows Phone = Release|Windows Phone
Release|x86 = Release|x86
Release|XBox 360 = Release|XBox 360
ReleaseWin8|Android = ReleaseWin8|Android
ReleaseWin8|Any CPU = ReleaseWin8|Any CPU
ReleaseWin8|iOS = ReleaseWin8|iOS
ReleaseWin8|Linux = ReleaseWin8|Linux
ReleaseWin8|Mac OS = ReleaseWin8|Mac OS
ReleaseWin8|Mixed Platforms = ReleaseWin8|Mixed Platforms
ReleaseWin8|PS Vita = ReleaseWin8|PS Vita
ReleaseWin8|Windows = ReleaseWin8|Windows
ReleaseWin8|Windows Metro = ReleaseWin8|Windows Metro
ReleaseWin8|Windows Phone = ReleaseWin8|Windows Phone
ReleaseWin8|x86 = ReleaseWin8|x86
ReleaseWin8|XBox 360 = ReleaseWin8|XBox 360
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.Debug|x86.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.DebugWin8|Any CPU.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.DebugWin8|Mixed Platforms.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.DebugWin8|x86.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.Release|Any CPU.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.Release|Mixed Platforms.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.Release|x86.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.ReleaseWin8|Any CPU.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.ReleaseWin8|Mixed Platforms.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.ReleaseWin8|x86.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Any CPU.ActiveCfg = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Mixed Platforms.Build.0 = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|x86.ActiveCfg = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|x86.Build.0 = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.DebugWin8|Any CPU.ActiveCfg = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.DebugWin8|Mixed Platforms.ActiveCfg = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.DebugWin8|Mixed Platforms.Build.0 = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.DebugWin8|x86.ActiveCfg = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.DebugWin8|x86.Build.0 = Debug|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Any CPU.ActiveCfg = Release|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Mixed Platforms.ActiveCfg = Release|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Mixed Platforms.Build.0 = Release|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|x86.ActiveCfg = Release|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|x86.Build.0 = Release|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.ReleaseWin8|Any CPU.ActiveCfg = Release|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.ReleaseWin8|Mixed Platforms.ActiveCfg = Release|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.ReleaseWin8|Mixed Platforms.Build.0 = Release|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.ReleaseWin8|x86.ActiveCfg = Release|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.ReleaseWin8|x86.Build.0 = Release|x86
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Android.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|iOS.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Linux.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Mac OS.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|PS Vita.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Windows.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Windows Metro.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|Windows Phone.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|x86.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Debug|XBox 360.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.DebugWin8|Android.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.DebugWin8|Any CPU.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.DebugWin8|Any CPU.Build.0 = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.DebugWin8|iOS.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.DebugWin8|Linux.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.DebugWin8|Mac OS.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.DebugWin8|Mixed Platforms.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.DebugWin8|Mixed Platforms.Build.0 = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.DebugWin8|PS Vita.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.DebugWin8|Windows.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.DebugWin8|Windows Metro.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.DebugWin8|Windows Phone.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.DebugWin8|x86.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.DebugWin8|XBox 360.ActiveCfg = Debug|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Android.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Any CPU.Build.0 = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|iOS.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Linux.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Mac OS.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|PS Vita.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Windows.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Windows Metro.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|Windows Phone.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|x86.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.Release|XBox 360.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.ReleaseWin8|Android.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.ReleaseWin8|Any CPU.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.ReleaseWin8|Any CPU.Build.0 = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.ReleaseWin8|iOS.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.ReleaseWin8|Linux.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.ReleaseWin8|Mac OS.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.ReleaseWin8|Mixed Platforms.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.ReleaseWin8|Mixed Platforms.Build.0 = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.ReleaseWin8|PS Vita.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.ReleaseWin8|Windows.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.ReleaseWin8|Windows Metro.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.ReleaseWin8|Windows Phone.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.ReleaseWin8|x86.ActiveCfg = Release|Any CPU
{9259CC4E-AE6B-403C-8FAB-2408448C3935}.ReleaseWin8|XBox 360.ActiveCfg = Release|Any CPU
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Android.ActiveCfg = Debug|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Android.Build.0 = Debug|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Any CPU.ActiveCfg = Debug|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|iOS.ActiveCfg = Debug|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|iOS.Build.0 = Debug|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Linux.ActiveCfg = Debug|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Linux.Build.0 = Debug|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Mac OS.ActiveCfg = Debug|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Mac OS.Build.0 = Debug|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Mixed Platforms.ActiveCfg = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Mixed Platforms.Build.0 = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|PS Vita.ActiveCfg = Debug|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|PS Vita.Build.0 = Debug|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Windows.ActiveCfg = Debug|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Windows.Build.0 = Debug|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Windows Metro.ActiveCfg = Debug|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Windows Metro.Build.0 = Debug|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Windows Phone.ActiveCfg = Debug|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Windows Phone.Build.0 = Debug|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|x86.ActiveCfg = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|XBox 360.ActiveCfg = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|XBox 360.Build.0 = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Android.ActiveCfg = Debug|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Android.Build.0 = Debug|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Any CPU.ActiveCfg = Debug|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|iOS.ActiveCfg = Debug|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|iOS.Build.0 = Debug|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Linux.ActiveCfg = Debug|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Linux.Build.0 = Debug|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Mac OS.ActiveCfg = Debug|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Mac OS.Build.0 = Debug|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Mixed Platforms.ActiveCfg = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Mixed Platforms.Build.0 = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|PS Vita.ActiveCfg = Debug|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|PS Vita.Build.0 = Debug|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Windows.ActiveCfg = Debug|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Windows.Build.0 = Debug|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Windows Metro.ActiveCfg = Debug|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Windows Metro.Build.0 = Debug|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Windows Phone.ActiveCfg = Debug|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Windows Phone.Build.0 = Debug|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|x86.ActiveCfg = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|XBox 360.ActiveCfg = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|XBox 360.Build.0 = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Android.ActiveCfg = Release|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Android.Build.0 = Release|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Any CPU.ActiveCfg = Release|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|iOS.ActiveCfg = Release|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|iOS.Build.0 = Release|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Linux.ActiveCfg = Release|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Linux.Build.0 = Release|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Mac OS.ActiveCfg = Release|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Mac OS.Build.0 = Release|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Mixed Platforms.ActiveCfg = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Mixed Platforms.Build.0 = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|PS Vita.ActiveCfg = Release|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|PS Vita.Build.0 = Release|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Windows.ActiveCfg = Release|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Windows.Build.0 = Release|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Windows Metro.ActiveCfg = Release|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Windows Metro.Build.0 = Release|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Windows Phone.ActiveCfg = Release|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Windows Phone.Build.0 = Release|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|x86.ActiveCfg = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|XBox 360.ActiveCfg = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|XBox 360.Build.0 = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Android.ActiveCfg = Release|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Android.Build.0 = Release|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Any CPU.ActiveCfg = Release|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|iOS.ActiveCfg = Release|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|iOS.Build.0 = Release|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Linux.ActiveCfg = Release|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Linux.Build.0 = Release|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Mac OS.ActiveCfg = Release|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Mac OS.Build.0 = Release|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Mixed Platforms.ActiveCfg = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Mixed Platforms.Build.0 = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|PS Vita.ActiveCfg = Release|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|PS Vita.Build.0 = Release|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Windows.ActiveCfg = Release|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Windows.Build.0 = Release|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Windows Metro.ActiveCfg = Release|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Windows Metro.Build.0 = Release|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Windows Phone.ActiveCfg = Release|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Windows Phone.Build.0 = Release|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|x86.ActiveCfg = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|XBox 360.ActiveCfg = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|XBox 360.Build.0 = Release|XBox 360
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -1,40 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<ProjectGuid>{9259CC4E-AE6B-403C-8FAB-2408448C3935}</ProjectGuid>
<ProjectTypeGuids>{6D335F3A-9D43-41b4-9D22-F6F17C4BE596};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>DualTextureSample</RootNamespace>
<AssemblyName>DualTextureSample</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
<XnaFrameworkVersion>v4.0</XnaFrameworkVersion>
<XnaPlatform>Windows</XnaPlatform>
<XnaProfile>HiDef</XnaProfile>
<XnaCrossPlatformGroupID>1b2a6ff3-a41f-495f-8a04-05e3c7ca1efe</XnaCrossPlatformGroupID>
<XnaOutputType>Game</XnaOutputType>
<ApplicationIcon>anx.ico</ApplicationIcon>
<Thumbnail>GameThumbnail.png</Thumbnail>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
@ -44,10 +23,9 @@
<WarningLevel>4</WarningLevel>
<NoStdLib>true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<PlatformTarget>x86</PlatformTarget>
<XnaCompressContent>false</XnaCompressContent>
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\x86\Release</OutputPath>
@ -56,10 +34,30 @@
<WarningLevel>4</WarningLevel>
<NoStdLib>true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<PlatformTarget>x86</PlatformTarget>
<XnaCompressContent>true</XnaCompressContent>
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
<PropertyGroup>
<RunPostBuildEvent>Always</RunPostBuildEvent>
</PropertyGroup>
<ItemGroup>
<Reference Include="ANX.Framework">
<HintPath>..\..\bin\Debug\ANX.Framework.dll</HintPath>
</Reference>
<Reference Include="ANX.InputDevices.Windows.XInput">
<HintPath>..\..\bin\Debug\ANX.InputDevices.Windows.XInput.dll</HintPath>
</Reference>
<Reference Include="ANX.InputSystem.Standard">
<HintPath>..\..\bin\Debug\ANX.InputSystem.Standard.dll</HintPath>
</Reference>
<Reference Include="ANX.PlatformSystem.Windows">
<HintPath>..\..\bin\Debug\ANX.PlatformSystem.Windows.dll</HintPath>
</Reference>
<Reference Include="ANX.RenderSystem.Windows.DX10">
<HintPath>..\..\bin\Debug\ANX.RenderSystem.Windows.DX10.dll</HintPath>
</Reference>
<Reference Include="ANX.SoundSystem.Windows.XAudio">
<HintPath>..\..\bin\Debug\ANX.SoundSystem.Windows.XAudio.dll</HintPath>
</Reference>
<Reference Include="mscorlib" />
<Reference Include="System">
<Private>False</Private>
@ -77,45 +75,6 @@
<Content Include="Game.ico" />
<Content Include="GameThumbnail.png" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\ANX.Framework\ANX.Framework.csproj">
<Project>{6899F0C9-70B9-4EB0-9DD3-E598D4BE3E35}</Project>
<Name>ANX.Framework</Name>
</ProjectReference>
<ProjectReference Include="..\..\InputSystems\ANX.InputDevices.Windows.XInput\ANX.InputDevices.Windows.XInput.csproj">
<Project>{60D08399-244F-46A3-91F1-4CFD26D961A3}</Project>
<Name>ANX.InputDevices.Windows.XInput</Name>
</ProjectReference>
<ProjectReference Include="..\..\InputSystems\ANX.InputSystem.Standard\ANX.InputSystem.Standard.csproj">
<Project>{49066074-3B7B-4A55-B122-6BD33AB73558}</Project>
<Name>ANX.InputSystem.Standard</Name>
</ProjectReference>
<ProjectReference Include="..\..\PlatformSystems\ANX.PlatformSystem.Windows\ANX.PlatformSystem.Windows.csproj">
<Project>{068EB2E9-963C-4E1B-8831-E25011F11FFE}</Project>
<Name>ANX.PlatformSystem.Windows</Name>
</ProjectReference>
<ProjectReference Include="..\..\RenderSystems\ANX.RenderSystem.Windows.DX10\ANX.RenderSystem.Windows.DX10.csproj">
<Project>{5BE49183-2F6F-4527-AC90-D816911FCF90}</Project>
<Name>ANX.RenderSystem.Windows.DX10</Name>
</ProjectReference>
<ProjectReference Include="..\..\RenderSystems\ANX.RenderSystem.Windows.DX11\ANX.RenderSystem.Windows.DX11.csproj">
<Project>{B30DE9C2-0926-46B6-8351-9AF276C472D5}</Project>
<Name>ANX.RenderSystem.Windows.DX11</Name>
</ProjectReference>
<ProjectReference Include="..\..\SoundSystems\ANX.SoundSystem.OpenAL\ANX.SoundSystem.OpenAL.csproj">
<Project>{14EF49AB-6D3F-458D-9D5C-D120B86EDD7A}</Project>
<Name>ANX.SoundSystem.OpenAL</Name>
</ProjectReference>
<ProjectReference Include="..\..\SoundSystems\ANX.SoundSystem.Windows.XAudio\ANX.SoundSystem.Windows.XAudio.csproj">
<Project>{6A582788-C4D2-410C-96CD-177F75712D65}</Project>
<Name>ANX.SoundSystem.Windows.XAudio</Name>
</ProjectReference>
<ProjectReference Include="..\SampleContent\SampleContent.contentproj">
<Project>{FA6E229D-4504-47B1-8A23-2D3FCC13F778}</Project>
<Name>SampleContent</Name>
<XnaReferenceType>Content</XnaReferenceType>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.0,Profile=Client">
<Visible>False</Visible>
@ -137,14 +96,11 @@
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Xna.Framework.4.0">
<Visible>False</Visible>
<ProductName>Microsoft XNA Framework Redistributable 4.0</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\Microsoft.Xna.GameStudio.targets" />
<PropertyGroup>
<PostBuildEvent>xcopy $(ProjectDir)..\SampleContent\bin\$(ConfigurationName) $(TargetDir)SampleContent\ /D /E /Y</PostBuildEvent>
</PropertyGroup>
<!--
To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

View File

@ -1,58 +1,208 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleContent", "SampleContent\SampleContent.contentproj", "{FA6E229D-4504-47B1-8A23-2D3FCC13F778}"
EndProject
# Visual Studio 2013
VisualStudioVersion = 12.0.40629.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KeyboardSample", "KeyboardSample\KeyboardSample.csproj", "{05233BB1-444F-43F6-A3DF-B82AA924E094}"
EndProject
Project("{75EFAE60-726E-430F-8661-4CF9ABD1306C}") = "SampleContent", "SampleContent\SampleContent.cproj", "{75EFAE60-726E-430F-8661-4CF9ABD1306C}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Android = Debug|Android
Debug|Any CPU = Debug|Any CPU
Debug|iOS = Debug|iOS
Debug|Linux = Debug|Linux
Debug|Mac OS = Debug|Mac OS
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|PS Vita = Debug|PS Vita
Debug|Windows = Debug|Windows
Debug|Windows Metro = Debug|Windows Metro
Debug|Windows Phone = Debug|Windows Phone
Debug|x86 = Debug|x86
Debug|XBox 360 = Debug|XBox 360
DebugWin8|Android = DebugWin8|Android
DebugWin8|Any CPU = DebugWin8|Any CPU
DebugWin8|iOS = DebugWin8|iOS
DebugWin8|Linux = DebugWin8|Linux
DebugWin8|Mac OS = DebugWin8|Mac OS
DebugWin8|Mixed Platforms = DebugWin8|Mixed Platforms
DebugWin8|PS Vita = DebugWin8|PS Vita
DebugWin8|Windows = DebugWin8|Windows
DebugWin8|Windows Metro = DebugWin8|Windows Metro
DebugWin8|Windows Phone = DebugWin8|Windows Phone
DebugWin8|x86 = DebugWin8|x86
DebugWin8|XBox 360 = DebugWin8|XBox 360
Release|Android = Release|Android
Release|Any CPU = Release|Any CPU
Release|iOS = Release|iOS
Release|Linux = Release|Linux
Release|Mac OS = Release|Mac OS
Release|Mixed Platforms = Release|Mixed Platforms
Release|PS Vita = Release|PS Vita
Release|Windows = Release|Windows
Release|Windows Metro = Release|Windows Metro
Release|Windows Phone = Release|Windows Phone
Release|x86 = Release|x86
Release|XBox 360 = Release|XBox 360
ReleaseWin8|Android = ReleaseWin8|Android
ReleaseWin8|Any CPU = ReleaseWin8|Any CPU
ReleaseWin8|iOS = ReleaseWin8|iOS
ReleaseWin8|Linux = ReleaseWin8|Linux
ReleaseWin8|Mac OS = ReleaseWin8|Mac OS
ReleaseWin8|Mixed Platforms = ReleaseWin8|Mixed Platforms
ReleaseWin8|PS Vita = ReleaseWin8|PS Vita
ReleaseWin8|Windows = ReleaseWin8|Windows
ReleaseWin8|Windows Metro = ReleaseWin8|Windows Metro
ReleaseWin8|Windows Phone = ReleaseWin8|Windows Phone
ReleaseWin8|x86 = ReleaseWin8|x86
ReleaseWin8|XBox 360 = ReleaseWin8|XBox 360
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.Debug|x86.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.DebugWin8|Any CPU.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.DebugWin8|Mixed Platforms.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.DebugWin8|x86.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.Release|Any CPU.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.Release|Mixed Platforms.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.Release|x86.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.ReleaseWin8|Any CPU.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.ReleaseWin8|Mixed Platforms.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.ReleaseWin8|x86.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Any CPU.ActiveCfg = Debug|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Mixed Platforms.Build.0 = Debug|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|x86.ActiveCfg = Debug|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|x86.Build.0 = Debug|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.DebugWin8|Any CPU.ActiveCfg = DebugWin8|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.DebugWin8|Mixed Platforms.ActiveCfg = DebugWin8|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.DebugWin8|Mixed Platforms.Build.0 = DebugWin8|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.DebugWin8|x86.ActiveCfg = DebugWin8|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.DebugWin8|x86.Build.0 = DebugWin8|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Any CPU.ActiveCfg = Release|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Mixed Platforms.ActiveCfg = Release|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Mixed Platforms.Build.0 = Release|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|x86.ActiveCfg = Release|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|x86.Build.0 = Release|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.ReleaseWin8|Any CPU.ActiveCfg = ReleaseWin8|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.ReleaseWin8|Mixed Platforms.ActiveCfg = ReleaseWin8|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.ReleaseWin8|Mixed Platforms.Build.0 = ReleaseWin8|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.ReleaseWin8|x86.ActiveCfg = ReleaseWin8|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.ReleaseWin8|x86.Build.0 = ReleaseWin8|x86
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Android.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Any CPU.Build.0 = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|iOS.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Linux.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Mac OS.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|PS Vita.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Windows.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Windows Metro.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|Windows Phone.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|x86.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Debug|XBox 360.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.DebugWin8|Android.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.DebugWin8|Any CPU.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.DebugWin8|Any CPU.Build.0 = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.DebugWin8|iOS.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.DebugWin8|Linux.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.DebugWin8|Mac OS.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.DebugWin8|Mixed Platforms.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.DebugWin8|Mixed Platforms.Build.0 = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.DebugWin8|PS Vita.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.DebugWin8|Windows.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.DebugWin8|Windows Metro.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.DebugWin8|Windows Phone.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.DebugWin8|x86.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.DebugWin8|XBox 360.ActiveCfg = Debug|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Android.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Any CPU.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Any CPU.Build.0 = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|iOS.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Linux.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Mac OS.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|PS Vita.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Windows.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Windows Metro.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|Windows Phone.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|x86.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.Release|XBox 360.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.ReleaseWin8|Android.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.ReleaseWin8|Any CPU.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.ReleaseWin8|Any CPU.Build.0 = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.ReleaseWin8|iOS.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.ReleaseWin8|Linux.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.ReleaseWin8|Mac OS.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.ReleaseWin8|Mixed Platforms.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.ReleaseWin8|Mixed Platforms.Build.0 = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.ReleaseWin8|PS Vita.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.ReleaseWin8|Windows.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.ReleaseWin8|Windows Metro.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.ReleaseWin8|Windows Phone.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.ReleaseWin8|x86.ActiveCfg = Release|Any CPU
{05233BB1-444F-43F6-A3DF-B82AA924E094}.ReleaseWin8|XBox 360.ActiveCfg = Release|Any CPU
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Android.ActiveCfg = Debug|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Android.Build.0 = Debug|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Any CPU.ActiveCfg = Debug|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|iOS.ActiveCfg = Debug|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|iOS.Build.0 = Debug|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Linux.ActiveCfg = Debug|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Linux.Build.0 = Debug|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Mac OS.ActiveCfg = Debug|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Mac OS.Build.0 = Debug|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Mixed Platforms.ActiveCfg = Debug|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Mixed Platforms.Build.0 = Debug|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|PS Vita.ActiveCfg = Debug|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|PS Vita.Build.0 = Debug|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Windows.ActiveCfg = Debug|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Windows.Build.0 = Debug|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Windows Metro.ActiveCfg = Debug|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Windows Metro.Build.0 = Debug|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Windows Phone.ActiveCfg = Debug|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Windows Phone.Build.0 = Debug|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|x86.ActiveCfg = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|XBox 360.ActiveCfg = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|XBox 360.Build.0 = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Android.ActiveCfg = Debug|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Android.Build.0 = Debug|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Any CPU.ActiveCfg = Debug|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|iOS.ActiveCfg = Debug|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|iOS.Build.0 = Debug|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Linux.ActiveCfg = Debug|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Linux.Build.0 = Debug|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Mac OS.ActiveCfg = Debug|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Mac OS.Build.0 = Debug|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Mixed Platforms.ActiveCfg = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Mixed Platforms.Build.0 = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|PS Vita.ActiveCfg = Debug|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|PS Vita.Build.0 = Debug|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Windows.ActiveCfg = Debug|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Windows.Build.0 = Debug|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Windows Metro.ActiveCfg = Debug|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Windows Metro.Build.0 = Debug|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Windows Phone.ActiveCfg = Debug|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Windows Phone.Build.0 = Debug|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|x86.ActiveCfg = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|XBox 360.ActiveCfg = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|XBox 360.Build.0 = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Android.ActiveCfg = Release|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Android.Build.0 = Release|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Any CPU.ActiveCfg = Release|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|iOS.ActiveCfg = Release|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|iOS.Build.0 = Release|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Linux.ActiveCfg = Release|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Linux.Build.0 = Release|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Mac OS.ActiveCfg = Release|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Mac OS.Build.0 = Release|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Mixed Platforms.ActiveCfg = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Mixed Platforms.Build.0 = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|PS Vita.ActiveCfg = Release|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|PS Vita.Build.0 = Release|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Windows.ActiveCfg = Release|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Windows.Build.0 = Release|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Windows Metro.ActiveCfg = Release|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Windows Metro.Build.0 = Release|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Windows Phone.ActiveCfg = Release|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Windows Phone.Build.0 = Release|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|x86.ActiveCfg = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|XBox 360.ActiveCfg = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|XBox 360.Build.0 = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Android.ActiveCfg = Release|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Android.Build.0 = Release|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Any CPU.ActiveCfg = Release|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|iOS.ActiveCfg = Release|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|iOS.Build.0 = Release|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Linux.ActiveCfg = Release|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Linux.Build.0 = Release|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Mac OS.ActiveCfg = Release|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Mac OS.Build.0 = Release|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Mixed Platforms.ActiveCfg = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Mixed Platforms.Build.0 = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|PS Vita.ActiveCfg = Release|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|PS Vita.Build.0 = Release|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Windows.ActiveCfg = Release|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Windows.Build.0 = Release|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Windows Metro.ActiveCfg = Release|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Windows Metro.Build.0 = Release|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Windows Phone.ActiveCfg = Release|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Windows Phone.Build.0 = Release|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|x86.ActiveCfg = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|XBox 360.ActiveCfg = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|XBox 360.Build.0 = Release|XBox 360
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -1,89 +1,66 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<ProjectGuid>{05233BB1-444F-43F6-A3DF-B82AA924E094}</ProjectGuid>
<ProjectTypeGuids>{6D335F3A-9D43-41b4-9D22-F6F17C4BE596};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>KeyboardSample</RootNamespace>
<AssemblyName>KeyboardSample</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
<XnaFrameworkVersion>v4.0</XnaFrameworkVersion>
<XnaPlatform>Windows</XnaPlatform>
<XnaProfile>HiDef</XnaProfile>
<XnaCrossPlatformGroupID>fb0ced7e-f67c-4fcd-96bd-6f4be5b93eac</XnaCrossPlatformGroupID>
<XnaOutputType>Game</XnaOutputType>
<ApplicationIcon>anx.ico</ApplicationIcon>
<Thumbnail>GameThumbnail.png</Thumbnail>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\x86\Debug</OutputPath>
<OutputPath>bin\Debug</OutputPath>
<DefineConstants>DEBUG;TRACE;WINDOWS</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoStdLib>true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<PlatformTarget>x86</PlatformTarget>
<XnaCompressContent>false</XnaCompressContent>
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\x86\Release</OutputPath>
<OutputPath>bin\Release</OutputPath>
<DefineConstants>TRACE;WINDOWS</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoStdLib>true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<PlatformTarget>x86</PlatformTarget>
<XnaCompressContent>true</XnaCompressContent>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'DebugWin8|x86'">
<OutputPath>bin\x86\DebugWin8\</OutputPath>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'ReleaseWin8|x86'">
<OutputPath>bin\x86\ReleaseWin8\</OutputPath>
<DefineConstants>TRACE;WINDOWS</DefineConstants>
<Optimize>true</Optimize>
<NoStdLib>true</NoStdLib>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<CodeAnalysisLogFile>bin\x86\Release\KeyboardSample.exe.CodeAnalysisLog.xml</CodeAnalysisLogFile>
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
<PropertyGroup>
<StartupObject>KeyboardSample.Program</StartupObject>
</PropertyGroup>
<PropertyGroup>
<RunPostBuildEvent>Always</RunPostBuildEvent>
</PropertyGroup>
<ItemGroup>
<Reference Include="ANX.Framework">
<HintPath>..\..\bin\Debug\ANX.Framework.dll</HintPath>
</Reference>
<Reference Include="ANX.InputDevices.Windows.XInput">
<HintPath>..\..\bin\Debug\ANX.InputDevices.Windows.XInput.dll</HintPath>
</Reference>
<Reference Include="ANX.InputSystem.Standard">
<HintPath>..\..\bin\Debug\ANX.InputSystem.Standard.dll</HintPath>
</Reference>
<Reference Include="ANX.PlatformSystem.Windows">
<HintPath>..\..\bin\Debug\ANX.PlatformSystem.Windows.dll</HintPath>
</Reference>
<Reference Include="ANX.RenderSystem.Windows.DX10">
<HintPath>..\..\bin\Debug\ANX.RenderSystem.Windows.DX10.dll</HintPath>
</Reference>
<Reference Include="ANX.SoundSystem.Windows.XAudio">
<HintPath>..\..\bin\Debug\ANX.SoundSystem.Windows.XAudio.dll</HintPath>
</Reference>
<Reference Include="mscorlib" />
<Reference Include="System" />
<Reference Include="System.Xml" />
@ -102,37 +79,6 @@
<XnaPlatformSpecific>true</XnaPlatformSpecific>
</Content>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\ANX.Framework\ANX.Framework.csproj">
<Project>{6899F0C9-70B9-4EB0-9DD3-E598D4BE3E35}</Project>
<Name>ANX.Framework</Name>
</ProjectReference>
<ProjectReference Include="..\..\InputSystems\ANX.InputDevices.Windows.XInput\ANX.InputDevices.Windows.XInput.csproj">
<Project>{60D08399-244F-46A3-91F1-4CFD26D961A3}</Project>
<Name>ANX.InputDevices.Windows.XInput</Name>
</ProjectReference>
<ProjectReference Include="..\..\InputSystems\ANX.InputSystem.Standard\ANX.InputSystem.Standard.csproj">
<Project>{49066074-3B7B-4A55-B122-6BD33AB73558}</Project>
<Name>ANX.InputSystem.Standard</Name>
</ProjectReference>
<ProjectReference Include="..\..\PlatformSystems\ANX.PlatformSystem.Windows\ANX.PlatformSystem.Windows.csproj">
<Project>{068EB2E9-963C-4E1B-8831-E25011F11FFE}</Project>
<Name>ANX.PlatformSystem.Windows</Name>
</ProjectReference>
<ProjectReference Include="..\..\RenderSystems\ANX.RenderSystem.Windows.DX10\ANX.RenderSystem.Windows.DX10.csproj">
<Project>{5BE49183-2F6F-4527-AC90-D816911FCF90}</Project>
<Name>ANX.RenderSystem.Windows.DX10</Name>
</ProjectReference>
<ProjectReference Include="..\..\SoundSystems\ANX.SoundSystem.Windows.XAudio\ANX.SoundSystem.Windows.XAudio.csproj">
<Project>{6A582788-C4D2-410C-96CD-177F75712D65}</Project>
<Name>ANX.SoundSystem.Windows.XAudio</Name>
</ProjectReference>
<ProjectReference Include="..\SampleContent\SampleContent.contentproj">
<Project>{FA6E229D-4504-47B1-8A23-2D3FCC13F778}</Project>
<Name>SampleContent</Name>
<XnaReferenceType>Content</XnaReferenceType>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.0,Profile=Client">
<Visible>False</Visible>
@ -154,14 +100,11 @@
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Xna.Framework.4.0">
<Visible>False</Visible>
<ProductName>Microsoft XNA Framework Redistributable 4.0</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\Microsoft.Xna.GameStudio.targets" />
<PropertyGroup>
<PostBuildEvent>xcopy $(ProjectDir)..\SampleContent\bin\$(ConfigurationName) $(TargetDir)SampleContent\ /D /E /Y</PostBuildEvent>
</PropertyGroup>
<!--
To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

View File

@ -1,58 +1,211 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleContent", "SampleContent\SampleContent.contentproj", "{FA6E229D-4504-47B1-8A23-2D3FCC13F778}"
EndProject
# Visual Studio 2013
VisualStudioVersion = 12.0.40629.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MultiRenderTarget", "MultiRenderTarget\MultiRenderTarget.csproj", "{9C9C6245-35C2-4230-8E17-9038A228227F}"
ProjectSection(ProjectDependencies) = postProject
{75EFAE60-726E-430F-8661-4CF9ABD1306C} = {75EFAE60-726E-430F-8661-4CF9ABD1306C}
EndProjectSection
EndProject
Project("{75EFAE60-726E-430F-8661-4CF9ABD1306C}") = "SampleContent", "SampleContent\SampleContent.cproj", "{75EFAE60-726E-430F-8661-4CF9ABD1306C}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Android = Debug|Android
Debug|Any CPU = Debug|Any CPU
Debug|iOS = Debug|iOS
Debug|Linux = Debug|Linux
Debug|Mac OS = Debug|Mac OS
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|PS Vita = Debug|PS Vita
Debug|Windows = Debug|Windows
Debug|Windows Metro = Debug|Windows Metro
Debug|Windows Phone = Debug|Windows Phone
Debug|x86 = Debug|x86
Debug|XBox 360 = Debug|XBox 360
DebugWin8|Android = DebugWin8|Android
DebugWin8|Any CPU = DebugWin8|Any CPU
DebugWin8|iOS = DebugWin8|iOS
DebugWin8|Linux = DebugWin8|Linux
DebugWin8|Mac OS = DebugWin8|Mac OS
DebugWin8|Mixed Platforms = DebugWin8|Mixed Platforms
DebugWin8|PS Vita = DebugWin8|PS Vita
DebugWin8|Windows = DebugWin8|Windows
DebugWin8|Windows Metro = DebugWin8|Windows Metro
DebugWin8|Windows Phone = DebugWin8|Windows Phone
DebugWin8|x86 = DebugWin8|x86
DebugWin8|XBox 360 = DebugWin8|XBox 360
Release|Android = Release|Android
Release|Any CPU = Release|Any CPU
Release|iOS = Release|iOS
Release|Linux = Release|Linux
Release|Mac OS = Release|Mac OS
Release|Mixed Platforms = Release|Mixed Platforms
Release|PS Vita = Release|PS Vita
Release|Windows = Release|Windows
Release|Windows Metro = Release|Windows Metro
Release|Windows Phone = Release|Windows Phone
Release|x86 = Release|x86
Release|XBox 360 = Release|XBox 360
ReleaseWin8|Android = ReleaseWin8|Android
ReleaseWin8|Any CPU = ReleaseWin8|Any CPU
ReleaseWin8|iOS = ReleaseWin8|iOS
ReleaseWin8|Linux = ReleaseWin8|Linux
ReleaseWin8|Mac OS = ReleaseWin8|Mac OS
ReleaseWin8|Mixed Platforms = ReleaseWin8|Mixed Platforms
ReleaseWin8|PS Vita = ReleaseWin8|PS Vita
ReleaseWin8|Windows = ReleaseWin8|Windows
ReleaseWin8|Windows Metro = ReleaseWin8|Windows Metro
ReleaseWin8|Windows Phone = ReleaseWin8|Windows Phone
ReleaseWin8|x86 = ReleaseWin8|x86
ReleaseWin8|XBox 360 = ReleaseWin8|XBox 360
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.Debug|x86.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.DebugWin8|Any CPU.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.DebugWin8|Mixed Platforms.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.DebugWin8|x86.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.Release|Any CPU.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.Release|Mixed Platforms.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.Release|x86.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.ReleaseWin8|Any CPU.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.ReleaseWin8|Mixed Platforms.ActiveCfg = Debug|Any CPU
{FA6E229D-4504-47B1-8A23-2D3FCC13F778}.ReleaseWin8|x86.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Any CPU.ActiveCfg = Debug|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Mixed Platforms.Build.0 = Debug|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|x86.ActiveCfg = Debug|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|x86.Build.0 = Debug|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.DebugWin8|Any CPU.ActiveCfg = DebugWin8|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.DebugWin8|Mixed Platforms.ActiveCfg = DebugWin8|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.DebugWin8|Mixed Platforms.Build.0 = DebugWin8|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.DebugWin8|x86.ActiveCfg = DebugWin8|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.DebugWin8|x86.Build.0 = DebugWin8|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Any CPU.ActiveCfg = Release|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Mixed Platforms.ActiveCfg = Release|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Mixed Platforms.Build.0 = Release|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|x86.ActiveCfg = Release|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|x86.Build.0 = Release|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.ReleaseWin8|Any CPU.ActiveCfg = ReleaseWin8|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.ReleaseWin8|Mixed Platforms.ActiveCfg = ReleaseWin8|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.ReleaseWin8|Mixed Platforms.Build.0 = ReleaseWin8|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.ReleaseWin8|x86.ActiveCfg = ReleaseWin8|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.ReleaseWin8|x86.Build.0 = ReleaseWin8|x86
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Android.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|iOS.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Linux.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Mac OS.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|PS Vita.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Windows.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Windows Metro.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|Windows Phone.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|x86.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Debug|XBox 360.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.DebugWin8|Android.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.DebugWin8|Any CPU.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.DebugWin8|Any CPU.Build.0 = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.DebugWin8|iOS.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.DebugWin8|Linux.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.DebugWin8|Mac OS.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.DebugWin8|Mixed Platforms.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.DebugWin8|Mixed Platforms.Build.0 = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.DebugWin8|PS Vita.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.DebugWin8|Windows.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.DebugWin8|Windows Metro.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.DebugWin8|Windows Phone.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.DebugWin8|x86.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.DebugWin8|XBox 360.ActiveCfg = Debug|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Android.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Any CPU.Build.0 = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|iOS.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Linux.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Mac OS.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|PS Vita.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Windows.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Windows Metro.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Windows Phone.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|x86.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|XBox 360.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.ReleaseWin8|Android.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.ReleaseWin8|Any CPU.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.ReleaseWin8|Any CPU.Build.0 = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.ReleaseWin8|iOS.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.ReleaseWin8|Linux.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.ReleaseWin8|Mac OS.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.ReleaseWin8|Mixed Platforms.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.ReleaseWin8|Mixed Platforms.Build.0 = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.ReleaseWin8|PS Vita.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.ReleaseWin8|Windows.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.ReleaseWin8|Windows Metro.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.ReleaseWin8|Windows Phone.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.ReleaseWin8|x86.ActiveCfg = Release|Any CPU
{9C9C6245-35C2-4230-8E17-9038A228227F}.ReleaseWin8|XBox 360.ActiveCfg = Release|Any CPU
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Android.ActiveCfg = Debug|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Android.Build.0 = Debug|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Any CPU.ActiveCfg = Debug|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|iOS.ActiveCfg = Debug|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|iOS.Build.0 = Debug|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Linux.ActiveCfg = Debug|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Linux.Build.0 = Debug|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Mac OS.ActiveCfg = Debug|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Mac OS.Build.0 = Debug|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Mixed Platforms.ActiveCfg = Debug|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Mixed Platforms.Build.0 = Debug|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|PS Vita.ActiveCfg = Debug|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|PS Vita.Build.0 = Debug|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Windows.ActiveCfg = Debug|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Windows.Build.0 = Debug|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Windows Metro.ActiveCfg = Debug|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Windows Metro.Build.0 = Debug|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Windows Phone.ActiveCfg = Debug|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|Windows Phone.Build.0 = Debug|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|x86.ActiveCfg = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|XBox 360.ActiveCfg = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Debug|XBox 360.Build.0 = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Android.ActiveCfg = Debug|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Android.Build.0 = Debug|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Any CPU.ActiveCfg = Debug|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|iOS.ActiveCfg = Debug|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|iOS.Build.0 = Debug|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Linux.ActiveCfg = Debug|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Linux.Build.0 = Debug|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Mac OS.ActiveCfg = Debug|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Mac OS.Build.0 = Debug|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Mixed Platforms.ActiveCfg = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Mixed Platforms.Build.0 = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|PS Vita.ActiveCfg = Debug|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|PS Vita.Build.0 = Debug|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Windows.ActiveCfg = Debug|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Windows.Build.0 = Debug|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Windows Metro.ActiveCfg = Debug|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Windows Metro.Build.0 = Debug|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Windows Phone.ActiveCfg = Debug|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|Windows Phone.Build.0 = Debug|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|x86.ActiveCfg = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|XBox 360.ActiveCfg = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.DebugWin8|XBox 360.Build.0 = Debug|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Android.ActiveCfg = Release|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Android.Build.0 = Release|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Any CPU.ActiveCfg = Release|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|iOS.ActiveCfg = Release|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|iOS.Build.0 = Release|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Linux.ActiveCfg = Release|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Linux.Build.0 = Release|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Mac OS.ActiveCfg = Release|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Mac OS.Build.0 = Release|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Mixed Platforms.ActiveCfg = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Mixed Platforms.Build.0 = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|PS Vita.ActiveCfg = Release|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|PS Vita.Build.0 = Release|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Windows.ActiveCfg = Release|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Windows.Build.0 = Release|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Windows Metro.ActiveCfg = Release|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Windows Metro.Build.0 = Release|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Windows Phone.ActiveCfg = Release|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|Windows Phone.Build.0 = Release|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|x86.ActiveCfg = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|XBox 360.ActiveCfg = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.Release|XBox 360.Build.0 = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Android.ActiveCfg = Release|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Android.Build.0 = Release|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Any CPU.ActiveCfg = Release|Android
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|iOS.ActiveCfg = Release|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|iOS.Build.0 = Release|iOS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Linux.ActiveCfg = Release|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Linux.Build.0 = Release|Linux
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Mac OS.ActiveCfg = Release|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Mac OS.Build.0 = Release|Mac OS
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Mixed Platforms.ActiveCfg = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Mixed Platforms.Build.0 = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|PS Vita.ActiveCfg = Release|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|PS Vita.Build.0 = Release|PS Vita
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Windows.ActiveCfg = Release|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Windows.Build.0 = Release|Windows
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Windows Metro.ActiveCfg = Release|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Windows Metro.Build.0 = Release|Windows Metro
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Windows Phone.ActiveCfg = Release|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|Windows Phone.Build.0 = Release|Windows Phone
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|x86.ActiveCfg = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|XBox 360.ActiveCfg = Release|XBox 360
{75EFAE60-726E-430F-8661-4CF9ABD1306C}.ReleaseWin8|XBox 360.Build.0 = Release|XBox 360
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -69,6 +69,7 @@ namespace MultiRenderTarget
{
GraphicsDevice.SetRenderTargets(renderTargets[0], renderTargets[1], renderTargets[2], renderTargets[3]);
GraphicsDevice.Clear(Color.Black);
effect.CurrentTechnique.Passes[0].Apply();
GraphicsDevice.DrawUserPrimitives<VertexPositionColor>(PrimitiveType.TriangleList, primitives, 0, 2);

View File

@ -1,85 +1,63 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<ProjectGuid>{9C9C6245-35C2-4230-8E17-9038A228227F}</ProjectGuid>
<ProjectTypeGuids>{6D335F3A-9D43-41b4-9D22-F6F17C4BE596};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>MultiRenderTarget</RootNamespace>
<AssemblyName>MultiRenderTarget</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
<XnaFrameworkVersion>v4.0</XnaFrameworkVersion>
<XnaPlatform>Windows</XnaPlatform>
<XnaProfile>HiDef</XnaProfile>
<XnaCrossPlatformGroupID>9979cba2-8f6f-4d2f-818b-ce82befdb753</XnaCrossPlatformGroupID>
<XnaOutputType>Game</XnaOutputType>
<ApplicationIcon>anx.ico</ApplicationIcon>
<Thumbnail>GameThumbnail.png</Thumbnail>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\x86\Debug</OutputPath>
<OutputPath>bin\Debug</OutputPath>
<DefineConstants>DEBUG;TRACE;WINDOWS</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoStdLib>true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<PlatformTarget>x86</PlatformTarget>
<XnaCompressContent>false</XnaCompressContent>
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\x86\Release</OutputPath>
<OutputPath>bin\Release</OutputPath>
<DefineConstants>TRACE;WINDOWS</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoStdLib>true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<PlatformTarget>x86</PlatformTarget>
<XnaCompressContent>true</XnaCompressContent>
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'DebugWin8|x86'">
<OutputPath>bin\x86\DebugWin8\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'ReleaseWin8|x86'">
<OutputPath>bin\x86\ReleaseWin8\</OutputPath>
<DefineConstants>TRACE;WINDOWS</DefineConstants>
<Optimize>true</Optimize>
<NoStdLib>true</NoStdLib>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<CodeAnalysisLogFile>bin\x86\Release\MultiRenderTarget.exe.CodeAnalysisLog.xml</CodeAnalysisLogFile>
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
<PropertyGroup>
<RunPostBuildEvent>Always</RunPostBuildEvent>
</PropertyGroup>
<ItemGroup>
<Reference Include="ANX.Framework">
<HintPath>..\..\bin\Debug\ANX.Framework.dll</HintPath>
</Reference>
<Reference Include="ANX.InputDevices.Windows.XInput">
<HintPath>..\..\bin\Debug\ANX.InputDevices.Windows.XInput.dll</HintPath>
</Reference>
<Reference Include="ANX.InputSystem.Standard">
<HintPath>..\..\bin\Debug\ANX.InputSystem.Standard.dll</HintPath>
</Reference>
<Reference Include="ANX.PlatformSystem.Windows">
<HintPath>..\..\bin\Debug\ANX.PlatformSystem.Windows.dll</HintPath>
</Reference>
<Reference Include="ANX.RenderSystem.Windows.DX10">
<HintPath>..\..\bin\Debug\ANX.RenderSystem.Windows.DX10.dll</HintPath>
</Reference>
<Reference Include="ANX.SoundSystem.Windows.XAudio">
<HintPath>..\..\bin\Debug\ANX.SoundSystem.Windows.XAudio.dll</HintPath>
</Reference>
<Reference Include="mscorlib" />
<Reference Include="System" />
<Reference Include="System.Xml" />
@ -120,39 +98,10 @@
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\ANX.Framework\ANX.Framework.csproj">
<Project>{6899F0C9-70B9-4EB0-9DD3-E598D4BE3E35}</Project>
<Name>ANX.Framework</Name>
</ProjectReference>
<ProjectReference Include="..\..\InputSystems\ANX.InputDevices.Windows.XInput\ANX.InputDevices.Windows.XInput.csproj">
<Project>{60D08399-244F-46A3-91F1-4CFD26D961A3}</Project>
<Name>ANX.InputDevices.Windows.XInput</Name>
</ProjectReference>
<ProjectReference Include="..\..\InputSystems\ANX.InputSystem.Standard\ANX.InputSystem.Standard.csproj">
<Project>{49066074-3B7B-4A55-B122-6BD33AB73558}</Project>
<Name>ANX.InputSystem.Standard</Name>
</ProjectReference>
<ProjectReference Include="..\..\PlatformSystems\ANX.PlatformSystem.Windows\ANX.PlatformSystem.Windows.csproj">
<Project>{068EB2E9-963C-4E1B-8831-E25011F11FFE}</Project>
<Name>ANX.PlatformSystem.Windows</Name>
</ProjectReference>
<ProjectReference Include="..\..\RenderSystems\ANX.RenderSystem.Windows.DX10\ANX.RenderSystem.Windows.DX10.csproj">
<Project>{5BE49183-2F6F-4527-AC90-D816911FCF90}</Project>
<Name>ANX.RenderSystem.Windows.DX10</Name>
</ProjectReference>
<ProjectReference Include="..\..\SoundSystems\ANX.SoundSystem.Windows.XAudio\ANX.SoundSystem.Windows.XAudio.csproj">
<Project>{6A582788-C4D2-410C-96CD-177F75712D65}</Project>
<Name>ANX.SoundSystem.Windows.XAudio</Name>
</ProjectReference>
<ProjectReference Include="..\SampleContent\SampleContent.contentproj">
<Project>{FA6E229D-4504-47B1-8A23-2D3FCC13F778}</Project>
<Name>SampleContent</Name>
<XnaReferenceType>Content</XnaReferenceType>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\Microsoft.Xna.GameStudio.targets" />
<PropertyGroup>
<PostBuildEvent>xcopy $(ProjectDir)..\SampleContent\bin\$(ConfigurationName) $(TargetDir)SampleContent\ /D /E /Y</PostBuildEvent>
</PropertyGroup>
<!--
To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

View File

@ -92,6 +92,11 @@
<OutputPath>bin\Xbox 360\Release</OutputPath>
<CompressContent>false</CompressContent>
</Configuration>
<Configuration Name="Debug" Platform="0">
<Profile>Reach</Profile>
<OutputPath>bin\Debug</OutputPath>
<CompressContent>false</CompressContent>
</Configuration>
</Configurations>
<References>
<AssemblyReference Name="ANX.Framework.Content.Pipeline.Assimp">..\..\bin\Debug\ANX.Framework.Content.Pipeline.Assimp.dll</AssemblyReference>

View File

@ -86,7 +86,6 @@ namespace VertexIndexBuffer
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
//GraphicsDevice.Clear(ClearOptions.Target | ClearOptions.DepthBuffer | ClearOptions.Stencil, Color.CornflowerBlue, 1.0f, 0);
miniTriEffect.CurrentTechnique.Passes[0].Apply();