- added StencilBuffer sample

- added new media files and licensing information
- some work on GraphicsDeviceManager to solve issue #461
- RenderSystemDX10: implemented DepthStencilBuffer handling
- fixed default size of GameWindow and BackBuffer to 800x480
This commit is contained in:
Glatzemann 2011-11-29 13:05:37 +00:00
parent 5ddd0955b4
commit a2baf45eff
17 changed files with 488 additions and 24 deletions

View File

@ -103,6 +103,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Installer", "Installer", "{
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RenderTarget", "Samples\RenderTarget\RenderTarget.csproj", "{71378D2F-0DCD-4413-8DE0-3FEC0BA04E27}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RenderTarget", "Samples\RenderTarget\RenderTarget.csproj", "{71378D2F-0DCD-4413-8DE0-3FEC0BA04E27}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StencilBuffer", "Samples\StencilBuffer\StencilBuffer.csproj", "{41E6C2CF-51EA-4D8E-96AE-739CA3951766}"
EndProject
Global Global
GlobalSection(SubversionScc) = preSolution GlobalSection(SubversionScc) = preSolution
Svn-Managed = True Svn-Managed = True
@ -325,6 +327,16 @@ Global
{71378D2F-0DCD-4413-8DE0-3FEC0BA04E27}.Release|Mixed Platforms.Build.0 = Release|x86 {71378D2F-0DCD-4413-8DE0-3FEC0BA04E27}.Release|Mixed Platforms.Build.0 = Release|x86
{71378D2F-0DCD-4413-8DE0-3FEC0BA04E27}.Release|x86.ActiveCfg = Release|x86 {71378D2F-0DCD-4413-8DE0-3FEC0BA04E27}.Release|x86.ActiveCfg = Release|x86
{71378D2F-0DCD-4413-8DE0-3FEC0BA04E27}.Release|x86.Build.0 = Release|x86 {71378D2F-0DCD-4413-8DE0-3FEC0BA04E27}.Release|x86.Build.0 = Release|x86
{41E6C2CF-51EA-4D8E-96AE-739CA3951766}.Debug|Any CPU.ActiveCfg = Debug|x86
{41E6C2CF-51EA-4D8E-96AE-739CA3951766}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{41E6C2CF-51EA-4D8E-96AE-739CA3951766}.Debug|Mixed Platforms.Build.0 = Debug|x86
{41E6C2CF-51EA-4D8E-96AE-739CA3951766}.Debug|x86.ActiveCfg = Debug|x86
{41E6C2CF-51EA-4D8E-96AE-739CA3951766}.Debug|x86.Build.0 = Debug|x86
{41E6C2CF-51EA-4D8E-96AE-739CA3951766}.Release|Any CPU.ActiveCfg = Release|x86
{41E6C2CF-51EA-4D8E-96AE-739CA3951766}.Release|Mixed Platforms.ActiveCfg = Release|x86
{41E6C2CF-51EA-4D8E-96AE-739CA3951766}.Release|Mixed Platforms.Build.0 = Release|x86
{41E6C2CF-51EA-4D8E-96AE-739CA3951766}.Release|x86.ActiveCfg = Release|x86
{41E6C2CF-51EA-4D8E-96AE-739CA3951766}.Release|x86.Build.0 = Release|x86
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
@ -345,6 +357,7 @@ Global
{A42413A9-5189-40CB-AACA-D50F24865431} = {9B0DD48B-3912-4F33-AF3F-691AF02B73F9} {A42413A9-5189-40CB-AACA-D50F24865431} = {9B0DD48B-3912-4F33-AF3F-691AF02B73F9}
{05233BB1-444F-43F6-A3DF-B82AA924E094} = {9B0DD48B-3912-4F33-AF3F-691AF02B73F9} {05233BB1-444F-43F6-A3DF-B82AA924E094} = {9B0DD48B-3912-4F33-AF3F-691AF02B73F9}
{71378D2F-0DCD-4413-8DE0-3FEC0BA04E27} = {9B0DD48B-3912-4F33-AF3F-691AF02B73F9} {71378D2F-0DCD-4413-8DE0-3FEC0BA04E27} = {9B0DD48B-3912-4F33-AF3F-691AF02B73F9}
{41E6C2CF-51EA-4D8E-96AE-739CA3951766} = {9B0DD48B-3912-4F33-AF3F-691AF02B73F9}
{E5D69E75-D77C-493F-BBDA-6F9E73B82549} = {7AD65E6B-2A48-437F-81D9-4CA9C9A85C64} {E5D69E75-D77C-493F-BBDA-6F9E73B82549} = {7AD65E6B-2A48-437F-81D9-4CA9C9A85C64}
{60D08399-244F-46A3-91F1-4CFD26D961A3} = {7AD65E6B-2A48-437F-81D9-4CA9C9A85C64} {60D08399-244F-46A3-91F1-4CFD26D961A3} = {7AD65E6B-2A48-437F-81D9-4CA9C9A85C64}
{6A582788-C4D2-410C-96CD-177F75712D65} = {5725DA44-4F5C-4E93-A957-AC5C85603EE9} {6A582788-C4D2-410C-96CD-177F75712D65} = {5725DA44-4F5C-4E93-A957-AC5C85603EE9}

View File

@ -62,16 +62,18 @@ namespace ANX.Framework
#region Private Members #region Private Members
private Game game; private Game game;
private GraphicsDevice graphicsDevice; private GraphicsDevice graphicsDevice;
private int backBufferWidth = DefaultBackBufferWidth;
private int backBufferHeight = DefaultBackBufferHeight;
private SurfaceFormat backBufferFormat = SurfaceFormat.Color;
private DepthFormat depthStencilFormat = DepthFormat.Depth24; private DepthFormat depthStencilFormat = DepthFormat.Depth24;
private GraphicsProfile graphicsProfile; private GraphicsProfile graphicsProfile;
private bool isFullScreen;
private bool multiSampling;
#endregion // Private Members #endregion // Private Members
public static readonly int DefaultBackBufferWidth = 800; public static readonly int DefaultBackBufferWidth = 800;
public static readonly int DefaultBackBufferHeight = 600; //TODO: this is 480 in the original XNA public static readonly int DefaultBackBufferHeight = 480;
private int backBufferWidth = DefaultBackBufferWidth;
private int backBufferHeight = DefaultBackBufferHeight;
public event EventHandler<EventArgs> Disposed; public event EventHandler<EventArgs> Disposed;
public event EventHandler<EventArgs> DeviceCreated; public event EventHandler<EventArgs> DeviceCreated;
@ -143,10 +145,6 @@ namespace ANX.Framework
//TODO: validate graphics device //TODO: validate graphics device
//TODO: this should be set somewhere else
deviceInformation.PresentationParameters.DeviceWindowHandle = game.Window.Handle;
deviceInformation.PresentationParameters.BackBufferWidth = DefaultBackBufferWidth; //TODO: set real default sizes
deviceInformation.PresentationParameters.BackBufferHeight = DefaultBackBufferHeight;
this.graphicsDevice = new GraphicsDevice(deviceInformation.Adapter, deviceInformation.GraphicsProfile, deviceInformation.PresentationParameters); this.graphicsDevice = new GraphicsDevice(deviceInformation.Adapter, deviceInformation.GraphicsProfile, deviceInformation.PresentationParameters);
//TODO: hookup events //TODO: hookup events
@ -211,13 +209,23 @@ namespace ANX.Framework
protected GraphicsDeviceInformation FindBestDevice(bool anySuitableDevice) protected GraphicsDeviceInformation FindBestDevice(bool anySuitableDevice)
{ {
//TODO: implement //TODO: implement FindBEstDevice
return new GraphicsDeviceInformation();
GraphicsDeviceInformation deviceInformation = new GraphicsDeviceInformation();
deviceInformation.PresentationParameters.DeviceWindowHandle = game.Window.Handle;
deviceInformation.PresentationParameters.BackBufferFormat = backBufferFormat;
deviceInformation.PresentationParameters.BackBufferWidth = backBufferWidth;
deviceInformation.PresentationParameters.BackBufferHeight = backBufferHeight;
deviceInformation.PresentationParameters.DepthStencilFormat = depthStencilFormat;
return deviceInformation;
} }
protected virtual bool CanResetDevice(GraphicsDeviceInformation newDeviceInfo) protected virtual bool CanResetDevice(GraphicsDeviceInformation newDeviceInfo)
{ {
throw new NotImplementedException(); //TODO: implement CanResetDevice
return false;
} }
protected virtual void RankDevices(List<GraphicsDeviceInformation> foundDevices) protected virtual void RankDevices(List<GraphicsDeviceInformation> foundDevices)
@ -293,12 +301,18 @@ namespace ANX.Framework
{ {
return this.depthStencilFormat; return this.depthStencilFormat;
} }
set { throw new NotImplementedException(); } set
{
this.depthStencilFormat = value;
}
} }
public SurfaceFormat PreferredBackBufferFormat public SurfaceFormat PreferredBackBufferFormat
{ {
get { throw new NotImplementedException(); } get
{
return this.backBufferFormat;
}
set { throw new NotImplementedException(); } set { throw new NotImplementedException(); }
} }
@ -308,7 +322,10 @@ namespace ANX.Framework
{ {
return this.backBufferWidth; return this.backBufferWidth;
} }
set { throw new NotImplementedException(); } set
{
this.backBufferWidth = value;
}
} }
public int PreferredBackBufferHeight public int PreferredBackBufferHeight
@ -317,12 +334,18 @@ namespace ANX.Framework
{ {
return this.backBufferHeight; return this.backBufferHeight;
} }
set { throw new NotImplementedException(); } set
{
this.backBufferHeight = value;
}
} }
public bool IsFullScreen public bool IsFullScreen
{ {
get { throw new NotImplementedException(); } get
{
return this.isFullScreen;
}
set { throw new NotImplementedException(); } set { throw new NotImplementedException(); }
} }
@ -330,7 +353,12 @@ namespace ANX.Framework
{ {
get get
{ {
return graphicsDevice.NativeDevice.VSync; if (graphicsDevice != null && graphicsDevice.NativeDevice != null)
{
return graphicsDevice.NativeDevice.VSync;
}
return true;
} }
set set
{ {
@ -340,7 +368,10 @@ namespace ANX.Framework
public bool PreferMultiSampling public bool PreferMultiSampling
{ {
get { throw new NotImplementedException(); } get
{
return this.multiSampling;
}
set { throw new NotImplementedException(); } set { throw new NotImplementedException(); }
} }

View File

@ -102,6 +102,23 @@ namespace ANX.Framework.Windows.DX10
throw new Exception("can't translate SurfaceFormat: " + surfaceFormat.ToString()); throw new Exception("can't translate SurfaceFormat: " + surfaceFormat.ToString());
} }
public static Format Translate(ANX.Framework.Graphics.DepthFormat depthFormat)
{
switch (depthFormat)
{
case DepthFormat.Depth16:
return Format.D16_UNorm;
case DepthFormat.Depth24:
//TODO: no DirectX10 24Bit depth format???
case DepthFormat.Depth24Stencil8:
return Format.D24_UNorm_S8_UInt;
case DepthFormat.None:
return Format.Unknown;
}
throw new Exception("can't translate DepthFormat: " + depthFormat.ToString());
}
public static SurfaceFormat Translate(SharpDX.DXGI.Format format) public static SurfaceFormat Translate(SharpDX.DXGI.Format format)
{ {
switch (format) switch (format)

View File

@ -101,6 +101,7 @@ namespace ANX.Framework.Windows.DX10
private RenderTargetView renderView; private RenderTargetView renderView;
private RenderTargetView renderTargetView; private RenderTargetView renderTargetView;
private DepthStencilView depthStencilView; private DepthStencilView depthStencilView;
private SharpDX.Direct3D10.Texture2D depthStencilBuffer;
private SharpDX.Direct3D10.Texture2D backBuffer; private SharpDX.Direct3D10.Texture2D backBuffer;
internal Effect_DX10 currentEffect; internal Effect_DX10 currentEffect;
private VertexBuffer currentVertexBuffer; private VertexBuffer currentVertexBuffer;
@ -120,7 +121,7 @@ namespace ANX.Framework.Windows.DX10
var desc = new SwapChainDescription() var desc = new SwapChainDescription()
{ {
BufferCount = 1, BufferCount = 1,
ModeDescription = new ModeDescription(presentationParameters.BackBufferWidth, presentationParameters.BackBufferHeight, new Rational(60, 1), Format.R8G8B8A8_UNorm), ModeDescription = new ModeDescription(presentationParameters.BackBufferWidth, presentationParameters.BackBufferHeight, new Rational(60, 1), FormatConverter.Translate(presentationParameters.BackBufferFormat)),
IsWindowed = true, IsWindowed = true,
OutputHandle = presentationParameters.DeviceWindowHandle, OutputHandle = presentationParameters.DeviceWindowHandle,
SampleDescription = new SampleDescription(1, 0), SampleDescription = new SampleDescription(1, 0),
@ -145,6 +146,35 @@ namespace ANX.Framework.Windows.DX10
renderView = new RenderTargetView(device, backBuffer); renderView = new RenderTargetView(device, backBuffer);
currentViewport = new SharpDX.Direct3D10.Viewport(0, 0, presentationParameters.BackBufferWidth, presentationParameters.BackBufferHeight); currentViewport = new SharpDX.Direct3D10.Viewport(0, 0, presentationParameters.BackBufferWidth, presentationParameters.BackBufferHeight);
//
// create the depth stencil buffer
//
Format depthFormat = FormatConverter.Translate(presentationParameters.DepthStencilFormat);
if (depthFormat != Format.Unknown)
{
DepthStencilViewDescription depthStencilViewDesc = new DepthStencilViewDescription()
{
Format = depthFormat,
};
Texture2DDescription depthStencilTextureDesc = new Texture2DDescription()
{
Width = presentationParameters.BackBufferWidth,
Height = presentationParameters.BackBufferHeight,
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 SharpDX.Direct3D10.Texture2D(device, depthStencilTextureDesc);
this.depthStencilView = new DepthStencilView(device, this.depthStencilBuffer);
}
} }
#region Clear #region Clear
@ -526,6 +556,15 @@ namespace ANX.Framework.Windows.DX10
swapChain = null; swapChain = null;
} }
if (this.depthStencilView != null)
{
this.depthStencilBuffer.Dispose();
this.depthStencilBuffer = null;
this.depthStencilView.Dispose();
this.depthStencilView = null;
}
//TODO: dispose everything else //TODO: dispose everything else
} }
} }

View File

@ -66,7 +66,10 @@ namespace ANX.Framework
internal WindowsGameWindow() internal WindowsGameWindow()
{ {
this.gameWindow = new RenderForm("ANX Framework"); this.gameWindow = new RenderForm("ANX.Framework");
this.gameWindow.Width = 800;
this.gameWindow.Height = 480;
this.gameWindow.MaximizeBox = false; this.gameWindow.MaximizeBox = false;
this.gameWindow.FormBorderStyle = FormBorderStyle.Fixed3D; this.gameWindow.FormBorderStyle = FormBorderStyle.Fixed3D;

View File

@ -123,7 +123,7 @@ namespace ANX.Framework.Windows.GL3
Text = "ANX Framework", Text = "ANX Framework",
MaximizeBox = false, MaximizeBox = false,
FormBorderStyle = FormBorderStyle.Fixed3D, FormBorderStyle = FormBorderStyle.Fixed3D,
ClientSize = new System.Drawing.Size(800, 600), ClientSize = new System.Drawing.Size(800, 480),
}; };
} }
#endregion #endregion

View File

@ -8,8 +8,8 @@ using System.Runtime.InteropServices;
[assembly: AssemblyTitle("KeyboardSample")] [assembly: AssemblyTitle("KeyboardSample")]
[assembly: AssemblyProduct("KeyboardSample")] [assembly: AssemblyProduct("KeyboardSample")]
[assembly: AssemblyDescription("")] [assembly: AssemblyDescription("")]
[assembly: AssemblyCompany("")] [assembly: AssemblyCompany("ANX.Framework Team")]
[assembly: AssemblyCopyright("Copyright © 2011")] [assembly: AssemblyCopyright("Copyright © ANX.Framework Team 2011")]
[assembly: AssemblyTrademark("")] [assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")] [assembly: AssemblyCulture("")]

View File

@ -31,7 +31,8 @@ namespace RenderTarget
protected override void Initialize() protected override void Initialize()
{ {
//graphics.PreferredDepthStencilFormat = DepthFormat.Depth24Stencil8;
//graphics.ApplyChanges();
base.Initialize(); base.Initialize();
} }

View File

@ -83,6 +83,20 @@
<Processor>TextureProcessor</Processor> <Processor>TextureProcessor</Processor>
</Compile> </Compile>
</ItemGroup> </ItemGroup>
<ItemGroup>
<Compile Include="Textures\chest.png">
<Name>chest</Name>
<Importer>TextureImporter</Importer>
<Processor>TextureProcessor</Processor>
</Compile>
</ItemGroup>
<ItemGroup>
<Compile Include="Textures\stone_tile.png">
<Name>stone_tile</Name>
<Importer>TextureImporter</Importer>
<Processor>TextureProcessor</Processor>
</Compile>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- 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. Other similar extension points exist, see Microsoft.Common.targets.

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

View File

@ -0,0 +1,140 @@
#region Using Statements
using System;
using ANX.Framework;
using ANX.Framework.Graphics;
#endregion // Using Statements
namespace StencilBuffer
{
public class Game1 : Game
{
private readonly GraphicsDeviceManager graphics;
private SpriteBatch spriteBatch;
private Texture2D crate;
private Texture2D ground;
private SamplerState SamplerState;
private DepthStencilState RenderObjectsStencilState;
private DepthStencilState StencilStateRenderShadows;
//protected static SamplerState SamplerState = new SamplerState
//{
// AddressU = TextureAddressMode.Wrap,
// AddressV = TextureAddressMode.Wrap,
// AddressW = TextureAddressMode.Wrap,
// Filter = TextureFilter.Linear,
//};
//private static readonly DepthStencilState RenderObjectsStencilState = new DepthStencilState()
//{
// DepthBufferEnable = true,
// DepthBufferWriteEnable = true,
// DepthBufferFunction = CompareFunction.Always,
// ReferenceStencil = 2,
// StencilEnable = true,
// StencilPass = StencilOperation.Increment,
//};
//private static readonly DepthStencilState StencilStateRenderShadows = new DepthStencilState
//{
// DepthBufferEnable = true,
// DepthBufferWriteEnable = true,
// DepthBufferFunction = CompareFunction.LessEqual,
// ReferenceStencil = 1,
// StencilEnable = true,
// StencilPass = StencilOperation.Keep,
//};
public Game1()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "SampleContent";
}
protected override void Initialize()
{
//graphics.PreferredDepthStencilFormat = DepthFormat.Depth24Stencil8;
//graphics.ApplyChanges();
base.Initialize();
}
protected override void LoadContent()
{
spriteBatch = new SpriteBatch(GraphicsDevice);
crate = Content.Load<Texture2D>(@"Textures/chest");
ground = Content.Load<Texture2D>(@"Textures/stone_tile");
this.SamplerState = new SamplerState()
{
AddressU = TextureAddressMode.Wrap,
AddressV = TextureAddressMode.Wrap,
AddressW = TextureAddressMode.Wrap,
Filter = TextureFilter.Linear,
};
this.RenderObjectsStencilState = new DepthStencilState()
{
DepthBufferEnable = true,
DepthBufferWriteEnable = true,
DepthBufferFunction = CompareFunction.Always,
ReferenceStencil = 2,
StencilEnable = false,
StencilPass = StencilOperation.Increment,
};
this.StencilStateRenderShadows = new DepthStencilState
{
DepthBufferEnable = true,
DepthBufferWriteEnable = true,
DepthBufferFunction = CompareFunction.LessEqual,
ReferenceStencil = 1,
StencilEnable = false,
StencilPass = StencilOperation.Keep,
};
}
private void RenderObjects()
{
spriteBatch.Begin(SpriteSortMode.Texture, null, SamplerState, RenderObjectsStencilState, null);
spriteBatch.Draw(crate, new Vector2(100, 100), Color.White);
spriteBatch.Draw(crate, new Vector2(-15, -15), Color.White);
spriteBatch.End();
}
private void RenderGround()
{
spriteBatch.Begin(SpriteSortMode.Texture, null, SamplerState, RenderObjectsStencilState, null);
for (int y = 0; y < 2; y++)
{
for (int x = 0; x < 4; x++)
{
spriteBatch.Draw(ground, new Vector2(x * 255, y * 255), Color.White);
}
}
spriteBatch.End();
}
private void RenderShadows()
{
spriteBatch.Begin(SpriteSortMode.Texture, null, SamplerState, StencilStateRenderShadows, null);
spriteBatch.Draw(crate, new Vector2(125, 125), new Color(0, 0, 0, 0.5f));
spriteBatch.Draw(crate, new Vector2(10, 10), new Color(0, 0, 0, 0.5f));
spriteBatch.End();
}
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(ClearOptions.Target | ClearOptions.Stencil, Color.CornflowerBlue, 1.0f, 2);
RenderGround();
RenderShadows();
RenderObjects();
base.Draw(gameTime);
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1,21 @@
using System;
namespace StencilBuffer
{
#if WINDOWS || XBOX
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
static void Main(string[] args)
{
using (Game1 game = new Game1())
{
game.Run();
}
}
}
#endif
}

View File

@ -0,0 +1,34 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("StencilBuffer")]
[assembly: AssemblyProduct("StencilBuffer")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyCompany("ANX.Framework Team")]
[assembly: AssemblyCopyright("Copyright © ANX.Framework Team 2011")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type. Only Windows
// assemblies support COM.
[assembly: ComVisible(false)]
// On Windows, the following GUID is for the ID of the typelib if this
// project is exposed to COM. On other platforms, it unique identifies the
// title storage container when deploying this assembly to the device.
[assembly: Guid("f35b9f5e-6e40-4411-b041-f7f449eb3df3")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
[assembly: AssemblyVersion("1.0.0.0")]

View File

@ -0,0 +1,151 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{41E6C2CF-51EA-4D8E-96AE-739CA3951766}</ProjectGuid>
<ProjectTypeGuids>{6D335F3A-9D43-41b4-9D22-F6F17C4BE596};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>StencilBuffer</RootNamespace>
<AssemblyName>StencilBuffer</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
<XnaFrameworkVersion>v4.0</XnaFrameworkVersion>
<XnaPlatform>Windows</XnaPlatform>
<XnaProfile>HiDef</XnaProfile>
<XnaCrossPlatformGroupID>8d206378-4698-42f2-a96f-90f1ce3daa81</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' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\x86\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>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\x86\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>
<ItemGroup>
<Reference Include="mscorlib">
<Private>False</Private>
</Reference>
<Reference Include="System">
<Private>False</Private>
</Reference>
<Reference Include="System.Xml">
<Private>False</Private>
</Reference>
<Reference Include="System.Core">
<Private>False</Private>
</Reference>
<Reference Include="System.Xml.Linq">
<Private>False</Private>
</Reference>
<Reference Include="System.Net">
<Private>False</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Program.cs" />
<Compile Include="Game1.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="anx.ico" />
<Content Include="GameThumbnail.png" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.0,Profile=Client">
<Visible>False</Visible>
<ProductName>Microsoft .NET Framework 4 Client Profile %28x86 and x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<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>
<ItemGroup>
<ProjectReference Include="..\..\ANX.Framework\ANX.Framework.csproj">
<Project>{6899F0C9-70B9-4EB0-9DD3-E598D4BE3E35}</Project>
<Name>ANX.Framework</Name>
</ProjectReference>
<ProjectReference Include="..\..\InputSystems\ANX.InputSystem.Windows.XInput\ANX.InputSystem.Windows.XInput.csproj">
<Project>{60D08399-244F-46A3-91F1-4CFD26D961A3}</Project>
<Name>ANX.InputSystem.Windows.XInput</Name>
</ProjectReference>
<ProjectReference Include="..\..\RenderSystems\ANX.Framework.Windows.DX10\ANX.Framework.Windows.DX10.csproj">
<Project>{5BE49183-2F6F-4527-AC90-D816911FCF90}</Project>
<Name>ANX.Framework.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" />
<!--
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.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB