<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_DotNet编程－星光伴我行</title><subtitle type="text">滴滴真谛 水滴石穿</subtitle><id>http://feed.cnblogs.com/blog/u/15500/rss</id><updated>2012-04-22T17:48:57Z</updated><author><name>DotNet编程</name><uri>http://www.cnblogs.com/furenjun/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/furenjun/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/15500/rss"/><entry><id>http://www.cnblogs.com/furenjun/archive/2012/04/23/2465865.html</id><title type="text">[转]xna 3.1 to xna 4.0</title><summary type="text">xna3.1 to xna 4.0</summary><published>2012-04-22T17:47:00Z</published><updated>2012-04-22T17:47:00Z</updated><author><name>DotNet编程</name><uri>http://www.cnblogs.com/furenjun/</uri></author><link rel="alternate" href="http://www.cnblogs.com/furenjun/archive/2012/04/23/2465865.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/furenjun/archive/2012/04/23/2465865.html"/><content type="html"> &lt;cufon style="width: 62px; height: 30px;" class="cufon cufon-canvas" alt="XNA "&gt;&lt;canvas style="left: -5px; top: 1px; width: 99px; height: 32px;" height="32" width="99"&gt;&lt;/canvas&gt;&lt;cufontext&gt;XNA &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 39px; height: 30px;" class="cufon cufon-canvas" alt="3.1 "&gt;&lt;canvas style="left: -5px; top: 1px; width: 76px; height: 32px;" height="32" width="76"&gt;&lt;/canvas&gt;&lt;cufontext&gt;3.1 &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 35px; height: 30px;" class="cufon cufon-canvas" alt="to "&gt;&lt;canvas style="left: -5px; top: 1px; width: 73px; height: 32px;" height="32" width="73"&gt;&lt;/canvas&gt;&lt;cufontext&gt;to &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 62px; height: 30px;" class="cufon cufon-canvas" alt="XNA "&gt;&lt;canvas style="left: -5px; top: 1px; width: 99px; height: 32px;" height="32" width="99"&gt;&lt;/canvas&gt;&lt;cufontext&gt;XNA &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 52px; height: 30px;" class="cufon cufon-canvas" alt="4.0 "&gt;&lt;canvas style="left: -5px; top: 1px; width: 89px; height: 32px;" height="32" width="89"&gt;&lt;/canvas&gt;&lt;cufontext&gt;4.0 &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 152px; height: 30px;" class="cufon cufon-canvas" alt="Conversion "&gt;&lt;canvas style="left: -5px; top: 1px; width: 190px; height: 32px;" height="32" width="190"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Conversion &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 83px; height: 30px;" class="cufon cufon-canvas" alt="Cheat "&gt;&lt;canvas style="left: -5px; top: 1px; width: 120px; height: 32px;" height="32" width="120"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Cheat &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 75px; height: 30px;" class="cufon cufon-canvas" alt="Sheet"&gt;&lt;canvas style="left: -5px; top: 1px; width: 109px; height: 32px;" height="32" width="109"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Sheet&lt;/cufontext&gt;&lt;/cufon&gt;&lt;div class="main"&gt;&lt;div class="mainContent"&gt;&lt;div class="contentBox940"&gt;&lt;div class="page type-page"&gt;&lt;div class="entry-header"&gt;转自:&lt;a href="http://nelxon.com/resources/xna-3-1-to-xna-4-0-cheatsheet.php"&gt;http://nelxon.com/resources/xna-3-1-to-xna-4-0-cheatsheet.php&lt;/a&gt;&lt;/div&gt;&lt;div class="entry-content"&gt;&lt;p&gt;Nelxon here again providing yet another resource for XNA Game developers. There are a few sites available to help us convert those XNA 3.1 projects to XNA 4.0, but it seems many of us are still have problems migrating successfully and easily. Its a pain to visit multiple sites and pages only to find corrections for 1 to 3 errors and still have hundreds more left.&lt;/p&gt;&lt;p&gt;After losing many hours of production time, I decided it would be more convenient to have a simple cheat sheet&amp;nbsp; - (&lt;em&gt;collection of code snippets XNA 3.1 to XNA 4.0&lt;/em&gt;)&amp;nbsp; to help me convert projects faster with less difficulty. So far, this cheat sheet has helped me convert over a dozen XNA 3.1 projects, which removed at least 90% of the errors due to the code breaking changes from XNA 4.0. The remaining errors I could resolve myself or simply ask for help on the forums. &lt;strong&gt;&lt;em&gt;5 errors are better than 50&amp;#8230;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;I decided to share this cheat sheet because I am constantly reading forums where developers discuss having the same problems converting their projects. I figured maybe other developers would find this useful as well. These code snippets were created from comparing the XNA 3.1 creator&amp;#8217;s club educational samples to the newer XNA 4.0 samples. However do not consider this page as a tutorial, it is a list of examples to help you see the difference between XNA 3.1 and XNA 4.0 syntax and provided to help you learn by example.&lt;/p&gt;&lt;p&gt;DON&amp;#8217;T FORGET TO BACKUP YOUR WORK FIRST, BEFORE YOU TRY TO CONVERT IT.&lt;br /&gt;&lt;/p&gt;&lt;div class="note_box"&gt;&lt;strong&gt;Bookmark this page&lt;/strong&gt;, because it may come in handy if you find a good library written in XNA 3.1.&lt;br /&gt;If a developer is having problems converting their projects, please send them to this page, it may help.&lt;/div&gt;&lt;br /&gt;&lt;div class="warning_box"&gt;&lt;span style="font-size: 20px; font-weight: bold;"&gt;List of errors resolved using this cheat sheet:&lt;/span&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The name &amp;#8216;&lt;strong&gt;SpriteBlendMode&lt;/strong&gt;&amp;#8216; does not exist in the current context&lt;br /&gt;The name &amp;#8216;&lt;strong&gt;SaveStateMode&lt;/strong&gt;&amp;#8216; does not exist in the current context&lt;/p&gt;&lt;p&gt;&amp;#8216;Microsoft.Xna.Framework.Graphics.&lt;strong&gt;GraphicsDevice&lt;/strong&gt;&amp;#8216; does not contain a definition for &amp;#8216;&lt;strong&gt;RenderState&lt;/strong&gt;&amp;#8216;&amp;#8230;&lt;/p&gt;&lt;p&gt;&amp;#8216;Microsoft.Xna.Framework.Graphics.&lt;strong&gt;Effect&lt;/strong&gt;&amp;#8216; does not contain a definition for &amp;#8216;&lt;strong&gt;Begin&lt;/strong&gt;&amp;#8216; &amp;#8230;&lt;br /&gt;&amp;#8216;Microsoft.Xna.Framework.Graphics.&lt;strong&gt;Effect&lt;/strong&gt;&amp;#8216; does not contain a definition for &amp;#8216;&lt;strong&gt;End&lt;/strong&gt;&amp;#8216;..&lt;br /&gt;&amp;#8216;Microsoft.Xna.Framework.Graphics.&lt;strong&gt;Effect&lt;/strong&gt;&amp;#8216; does not contain a definition for &amp;#8216;&lt;strong&gt;CommitChanges&lt;/strong&gt;&amp;#8216; &amp;#8230;&lt;br /&gt;&amp;#8216;Microsoft.Xna.Framework.Graphics.&lt;strong&gt;EffectPass&lt;/strong&gt;&amp;#8216; does not contain a definition for &amp;#8216;&lt;strong&gt;Begin&lt;/strong&gt;&amp;#8216; &amp;#8230;&lt;br /&gt;&amp;#8216;Microsoft.Xna.Framework.Graphics.&lt;strong&gt;EffectPass&lt;/strong&gt;&amp;#8216; does not contain a definition for &amp;#8216;&lt;strong&gt;End&lt;/strong&gt;&amp;#8216; &amp;#8230;.&lt;br /&gt;No overload for method &amp;#8216;&lt;strong&gt;Clone&lt;/strong&gt;&amp;#8216; takes &lt;strong&gt;1&lt;/strong&gt; arguments&lt;/p&gt;&lt;p&gt;The name &amp;#8216;&lt;strong&gt;ShaderProfile&lt;/strong&gt;&amp;#8216; does not exist in the current context&lt;br /&gt;&amp;#8216;Microsoft.Xna.Framework.&lt;strong&gt;GameTime&lt;/strong&gt;&amp;#8216; does not contain a definition for &amp;#8216;&lt;strong&gt;TotalRealTime&lt;/strong&gt;&amp;#8216; &amp;#8230;&lt;br /&gt;&amp;#8216;Microsoft.Xna.Framework.&lt;strong&gt;Color&lt;/strong&gt;&amp;#8216; does not contain a definition for &amp;#8216;&lt;strong&gt;TransparentBlack&lt;/strong&gt;&amp;#8216; &amp;#8230;&lt;/p&gt;&lt;p&gt;The type or namespace name &amp;#8216;&lt;strong&gt;ResolveTexture2D&lt;/strong&gt;&amp;#8216; could not be found &amp;#8230;&lt;br /&gt;&amp;#8216;Microsoft.Xna.Framework.Graphics.&lt;strong&gt;GraphicsDevice&lt;/strong&gt;&amp;#8216; does not contain a definition for &amp;#8216;&lt;strong&gt;ResolveBackBuffer&lt;/strong&gt;&amp;#8216;&amp;#8230;&lt;br /&gt;The type or namespace name &amp;#8216;&lt;strong&gt;DepthStencilBuffer&lt;/strong&gt;&amp;#8216; could not be found &amp;#8230;&lt;/p&gt;&lt;p&gt;&amp;#8216;Microsoft.Xna.Framework.Graphics.&lt;strong&gt;RenderTarget2D&lt;/strong&gt;&amp;#8216; does &lt;strong&gt;not &lt;/strong&gt;contain a constructor that takes &lt;strong&gt;5 arguments&lt;/strong&gt; &amp;#8230;&lt;br /&gt;&amp;#8216;Microsoft.Xna.Framework.Graphics.&lt;strong&gt;RenderTarget2D&lt;/strong&gt;&amp;#8216; does not contain a definition for &amp;#8216;&lt;strong&gt;GetTexture&lt;/strong&gt;&amp;#8216; &amp;#8230;&lt;/p&gt;&lt;p&gt;&amp;#8216;Microsoft.Xna.Framework.Graphics.&lt;strong&gt;PresentationParameters&lt;/strong&gt;&amp;#8216; does not contain a definition for &amp;#8216;&lt;strong&gt;MultiSampleType&lt;/strong&gt;&amp;#8216; &amp;#8230;&lt;br /&gt;&amp;#8216;Microsoft.Xna.Framework.Graphics.&lt;strong&gt;PresentationParameters&lt;/strong&gt;&amp;#8216; does not contain a definition for &amp;#8216;&lt;strong&gt;MultiSampleQuality&lt;/strong&gt;&amp;#8216; &amp;#8230;&lt;/p&gt;&lt;p&gt;The best overloaded method match for &amp;#8216;Microsoft.Xna.Framework.Graphics.GraphicsDevice.&lt;strong&gt;SetRenderTarget&lt;/strong&gt;&amp;#8230;&lt;/p&gt;&lt;p&gt;&amp;#8216;Microsoft.Xna.Framework.Graphics.&lt;strong&gt;GraphicsDevice&lt;/strong&gt;&amp;#8216; does not contain a definition for &amp;#8216;&lt;strong&gt;VertexDeclaration&lt;/strong&gt;&amp;#8216;&lt;br /&gt;&amp;#8216;Microsoft.Xna.Framework.Graphics.&lt;strong&gt;GraphicsDevice&lt;/strong&gt;&amp;#8216; does not contain a definition for &amp;#8216;&lt;strong&gt;Vertices&lt;/strong&gt;&amp;#8216;&lt;/p&gt;&lt;p&gt;&amp;#8216;Microsoft.Xna.Framework.Graphics.&lt;strong&gt;VertexPositionTexture&lt;/strong&gt;&amp;#8216; does not contain a definition for &amp;#8216;&lt;strong&gt;SizeInBytes&lt;/strong&gt;&amp;#8216;&lt;br /&gt;&amp;#8216;Microsoft.Xna.Framework.Graphics.&lt;strong&gt;VertexPositionTexture&lt;/strong&gt;&amp;#8216; does not contain a definition for &amp;#8216;&lt;strong&gt;VertexElements&lt;/strong&gt;&amp;#8216;&lt;/p&gt;&lt;p&gt;&amp;#8216;Microsoft.Xna.Framework.Graphics.&lt;strong&gt;ModelMesh&lt;/strong&gt;&amp;#8216; does not contain a definition for &amp;#8216;&lt;strong&gt;IndexBuffer&lt;/strong&gt;&amp;#8216;&lt;br /&gt;&amp;#8216;Microsoft.Xna.Framework.Graphics.&lt;strong&gt;ModelMesh&lt;/strong&gt;&amp;#8216; does not contain a definition for &amp;#8216;&lt;strong&gt;VertexBuffer&lt;/strong&gt;&amp;#8216;&lt;/p&gt;&lt;p&gt;&amp;#8216;Microsoft.Xna.Framework.Graphics.&lt;strong&gt;ModelMeshPart&lt;/strong&gt;&amp;#8216; does not contain a definition for &amp;#8216;&lt;strong&gt;BaseVertex&lt;/strong&gt;&amp;#8216;&lt;br /&gt;&amp;#8216;Microsoft.Xna.Framework.Graphics.&lt;strong&gt;ModelMeshPart&lt;/strong&gt;&amp;#8216; does not contain a definition for &amp;#8216;&lt;strong&gt;StreamOffset&lt;/strong&gt;&amp;#8216;&lt;br /&gt;&amp;#8216;Microsoft.Xna.Framework.Graphics.&lt;strong&gt;ModelMeshPart&lt;/strong&gt;&amp;#8216; does not contain a definition for &amp;#8216;&lt;strong&gt;VertexStride&lt;/strong&gt;&amp;#8216;&lt;/p&gt;&lt;p&gt;&amp;#8216;Microsoft.Xna.Framework.Storage.&lt;strong&gt;StorageContainer&lt;/strong&gt;&amp;#8216; does not contain a definition for &amp;#8216;&lt;strong&gt;TitleLocation&lt;/strong&gt;&amp;#8216;&lt;br /&gt;&amp;#8216;Microsoft.Xna.Framework.Storage.&lt;strong&gt;StorageContainer&lt;/strong&gt;&amp;#8216; does not contain a definition for &amp;#8216;&lt;strong&gt;Path&lt;/strong&gt;&amp;#8216;&lt;br /&gt;&amp;#8216;Microsoft.Xna.Framework.Storage.&lt;strong&gt;StorageDevice&lt;/strong&gt;&amp;#8216; does not contain a definition for &amp;#8216;&lt;strong&gt;OpenContainer&lt;/strong&gt;&amp;#8216;&lt;br /&gt;&amp;#8216;Microsoft.Xna.Framework.&lt;strong&gt;GamerServices.Guide&lt;/strong&gt;&amp;#8216; does not contain a definition for &amp;#8216;&lt;strong&gt;BeginShowStorageDeviceSelector&lt;/strong&gt;&amp;#8216;&lt;br /&gt;&amp;#8216;Microsoft.Xna.Framework.&lt;strong&gt;GamerServices.Guide&lt;/strong&gt;&amp;#8216; does not contain a definition for &amp;#8216;&lt;strong&gt;EndShowStorageDeviceSelector&lt;/strong&gt;&amp;#8216;&lt;/p&gt;&lt;p&gt;syntax error: unexpected token &amp;#8216;&lt;strong&gt;VertexShader&lt;/strong&gt;&amp;#8216;&lt;br /&gt;syntax error: unexpected token &amp;#8216;&lt;strong&gt;PixelShader&lt;/strong&gt;&amp;#8216;&lt;br /&gt;error X3539:&lt;strong&gt; ps_1_x&lt;/strong&gt; is no longer supported&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="warning_box"&gt;&lt;span style="font-size: 20px; font-weight: bold;"&gt;Other Issues:&lt;/span&gt;&lt;br /&gt;XNA model is drawn inside out, looks transparent, missing vertices or just doesn&amp;#8217;t look right&amp;#8230;&lt;br /&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;p&gt;&lt;strong&gt;&lt;cufon style="width: 31px; height: 16.39px;" class="cufon cufon-canvas" alt="List "&gt;&lt;canvas style="left: -3px; top: 1px; width: 51px; height: 17px;" height="17" width="51"&gt;&lt;/canvas&gt;&lt;cufontext&gt;List &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 19px; height: 16.39px;" class="cufon cufon-canvas" alt="of "&gt;&lt;canvas style="left: -3px; top: 1px; width: 39px; height: 17px;" height="17" width="39"&gt;&lt;/canvas&gt;&lt;cufontext&gt;of &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 76px; height: 16.39px;" class="cufon cufon-canvas" alt="Examples "&gt;&lt;canvas style="left: -3px; top: 1px; width: 95px; height: 17px;" height="17" width="95"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Examples &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 85px; height: 16.39px;" class="cufon cufon-canvas" alt="Converting "&gt;&lt;canvas style="left: -3px; top: 1px; width: 104px; height: 17px;" height="17" width="104"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Converting &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 35px; height: 16.39px;" class="cufon cufon-canvas" alt="XNA "&gt;&lt;canvas style="left: -3px; top: 1px; width: 54px; height: 17px;" height="17" width="54"&gt;&lt;/canvas&gt;&lt;cufontext&gt;XNA &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 22px; height: 16.39px;" class="cufon cufon-canvas" alt="3.1 "&gt;&lt;canvas style="left: -3px; top: 1px; width: 42px; height: 17px;" height="17" width="42"&gt;&lt;/canvas&gt;&lt;cufontext&gt;3.1 &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 20px; height: 16.39px;" class="cufon cufon-canvas" alt="to "&gt;&lt;canvas style="left: -3px; top: 1px; width: 39px; height: 17px;" height="17" width="39"&gt;&lt;/canvas&gt;&lt;cufontext&gt;to &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 35px; height: 16.39px;" class="cufon cufon-canvas" alt="XNA "&gt;&lt;canvas style="left: -3px; top: 1px; width: 54px; height: 17px;" height="17" width="54"&gt;&lt;/canvas&gt;&lt;cufontext&gt;XNA &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 25px; height: 16.39px;" class="cufon cufon-canvas" alt="4.0"&gt;&lt;canvas style="left: -3px; top: 1px; width: 38px; height: 17px;" height="17" width="38"&gt;&lt;/canvas&gt;&lt;cufontext&gt;4.0&lt;/cufontext&gt;&lt;/cufon&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="info_box"&gt;&lt;span style="font-size: 20px; font-weight: bold;"&gt;SpriteBlendMode, SaveStateMode&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_154998" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;sprite.Begin(SpriteBlendMode.AlphaBlend, SpriteSortMode.Deferred, SaveStateMode.SaveState);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_611375" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;sprite.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_481503" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// Sort the object layer and player sprite according to depth&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;spriteBatch.Begin(SpriteBlendMode.AlphaBlend, SpriteSortMode.BackToFront, SaveStateMode.None);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_231238" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// Sort the object layer and player sprite according to depth&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_430932" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;sprite.Begin(SpriteBlendMode.None, SpriteSortMode.Immediate, SaveStateMode.SaveState);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_591004" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;sprite.Begin(SpriteSortMode.Immediate, BlendState.Opaque);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_980033" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// Draw the background image.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;spriteBatch.Begin(SpriteBlendMode.None);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;Viewport viewport = GraphicsDevice.Viewport;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp plain"&gt;spriteBatch.Draw(background, &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;Rectangle(0, 0, viewport.Width, viewport.Height), Color.White);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp plain"&gt;spriteBatch.End();&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_16154" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// Draw the background image.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;spriteBatch.Begin(0, BlendState.Opaque);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;spriteBatch.Draw(background, GraphicsDevice.Viewport.Bounds, Color.White);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp plain"&gt;spriteBatch.End();&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="info_box"&gt;&lt;span style="font-size: 20px; font-weight: bold;"&gt;RenderState&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_432417" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;8&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;9&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;10&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// enable alpha blending and disable depth write&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.AlphaBlendEnable = &lt;/code&gt;&lt;code class="csharp keyword"&gt;true&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.SourceBlend = Blend.SourceAlpha;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.DestinationBlend = Blend.InverseSourceAlpha;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.SeparateAlphaBlendEnabled = &lt;/code&gt;&lt;code class="csharp keyword"&gt;true&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.AlphaBlendOperation = BlendFunction.Add;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.AlphaSourceBlend = Blend.One;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.AlphaDestinationBlend = Blend.One;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.DepthBufferWriteEnable = &lt;/code&gt;&lt;code class="csharp keyword"&gt;false&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_273946" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// enable alpha blending and disable depth write&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.BlendState = BlendState.AlphaBlend;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.DepthStencilState = DepthStencilState.DepthRead;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_525534" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// reset blend and depth write&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.AlphaBlendEnable = &lt;/code&gt;&lt;code class="csharp keyword"&gt;false&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.SeparateAlphaBlendEnabled = &lt;/code&gt;&lt;code class="csharp keyword"&gt;false&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.DepthBufferWriteEnable = &lt;/code&gt;&lt;code class="csharp keyword"&gt;true&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_712241" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// reset blend and depth write&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.BlendState = BlendState.Additive;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.DepthStencilState = DepthStencilState.Default;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_819551" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// enable depth buffering&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.DepthBufferEnable = &lt;/code&gt;&lt;code class="csharp keyword"&gt;true&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_729232" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// enable depth buffering&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.DepthStencilState = DepthStencilState.Default;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_674874" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;//disable depth buffering&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.DepthBufferWriteEnable = &lt;/code&gt;&lt;code class="csharp keyword"&gt;false&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.DepthBufferEnable = &lt;/code&gt;&lt;code class="csharp keyword"&gt;false&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_688197" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;//disable depth buffering&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.DepthStencilState = DepthStencilState.None;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_783344" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// set additive blend (zero on alpha)&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.DepthBufferWriteEnable = &lt;/code&gt;&lt;code class="csharp keyword"&gt;false&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.AlphaBlendEnable = &lt;/code&gt;&lt;code class="csharp keyword"&gt;true&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.SourceBlend = Blend.One;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.DestinationBlend = Blend.One;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_864406" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// set additive blend (zero on alpha)&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.DepthStencilState = DepthStencilState.DepthRead;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.BlendState = BlendState.AlphaBlend;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_585000" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// restore blend modes&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.DepthBufferWriteEnable = &lt;/code&gt;&lt;code class="csharp keyword"&gt;true&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.AlphaBlendEnable = &lt;/code&gt;&lt;code class="csharp keyword"&gt;false&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.SeparateAlphaBlendEnabled = &lt;/code&gt;&lt;code class="csharp keyword"&gt;false&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_244294" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// restore blend modes&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.BlendState = BlendState.Opaque;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.DepthStencilState = DepthStencilState.Default;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_575361" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// set alpha blend and no depth test or write&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.DepthBufferEnable = &lt;/code&gt;&lt;code class="csharp keyword"&gt;false&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.DepthBufferWriteEnable = &lt;/code&gt;&lt;code class="csharp keyword"&gt;false&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.AlphaBlendEnable = &lt;/code&gt;&lt;code class="csharp keyword"&gt;true&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.SourceBlend = Blend.SourceAlpha;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.DestinationBlend = Blend.InverseSourceAlpha;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_482107" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// set alpha blend and no depth test or write&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.DepthStencilState = DepthStencilState.None;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.BlendState = BlendState.AlphaBlend;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_374179" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// Set suitable renderstates for drawing a 3D model&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.AlphaBlendEnable = &lt;/code&gt;&lt;code class="csharp keyword"&gt;false&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.AlphaTestEnable = &lt;/code&gt;&lt;code class="csharp keyword"&gt;false&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.DepthBufferEnable = &lt;/code&gt;&lt;code class="csharp keyword"&gt;true&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_645331" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// Set suitable renderstates for drawing a 3D model&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.BlendState = BlendState.Opaque;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.DepthStencilState = DepthStencilState.Default;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_577112" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// additive blend&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.AlphaBlendEnable = &lt;/code&gt;&lt;code class="csharp keyword"&gt;true&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.SourceBlend = Blend.One;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.DestinationBlend = Blend.One;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_937484" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// additive blend&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.BlendState = BlendState.Additive;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_954305" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// set additive blend&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.DestinationBlend = Blend.One;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_15755" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// set additive blend&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.BlendState = BlendState.Additive;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_966722" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// set alpha blend&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.DestinationBlend = Blend.InverseSourceAlpha;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_860785" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// set alpha blend&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.BlendState = BlendState.AlphaBlend;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_415414" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.CullMode = CullMode.CullCounterClockwiseFace;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_620899" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp spaces"&gt; &lt;/code&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RasterizerState = RasterizerState.CullCounterClockwise;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_261380" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;8&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;9&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;10&lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;11&lt;/div&gt;&lt;div class="line number12 index11 alt1"&gt;12&lt;/div&gt;&lt;div class="line number13 index12 alt2"&gt;13&lt;/div&gt;&lt;div class="line number14 index13 alt1"&gt;14&lt;/div&gt;&lt;div class="line number15 index14 alt2"&gt;15&lt;/div&gt;&lt;div class="line number16 index15 alt1"&gt;16&lt;/div&gt;&lt;div class="line number17 index16 alt2"&gt;17&lt;/div&gt;&lt;div class="line number18 index17 alt1"&gt;18&lt;/div&gt;&lt;div class="line number19 index18 alt2"&gt;19&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// set render states&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.DepthBufferEnable = &lt;/code&gt;&lt;code class="csharp keyword"&gt;false&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.DepthBufferWriteEnable = &lt;/code&gt;&lt;code class="csharp keyword"&gt;false&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.AlphaBlendEnable = &lt;/code&gt;&lt;code class="csharp keyword"&gt;true&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.SourceBlend = Blend.One;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.DestinationBlend = Blend.One;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.SeparateAlphaBlendEnabled = &lt;/code&gt;&lt;code class="csharp keyword"&gt;true&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.AlphaBlendOperation = BlendFunction.Add;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.AlphaDestinationBlend = Blend.Zero;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.AlphaSourceBlend = Blend.Zero;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number12 index11 alt1"&gt; &lt;/div&gt;&lt;div class="line number13 index12 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp comments"&gt;// drawing code here..&lt;/code&gt;&lt;/div&gt;&lt;div class="line number14 index13 alt1"&gt; &lt;/div&gt;&lt;div class="line number15 index14 alt2"&gt;&lt;code class="csharp comments"&gt;// restore render states&lt;/code&gt;&lt;/div&gt;&lt;div class="line number16 index15 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.DepthBufferEnable = &lt;/code&gt;&lt;code class="csharp keyword"&gt;true&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number17 index16 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.DepthBufferWriteEnable = &lt;/code&gt;&lt;code class="csharp keyword"&gt;true&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number18 index17 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.AlphaBlendEnable = &lt;/code&gt;&lt;code class="csharp keyword"&gt;false&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number19 index18 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.SeparateAlphaBlendEnabled = &lt;/code&gt;&lt;code class="csharp keyword"&gt;false&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_990753" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;8&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;9&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;10&lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;11&lt;/div&gt;&lt;div class="line number12 index11 alt1"&gt;12&lt;/div&gt;&lt;div class="line number13 index12 alt2"&gt;13&lt;/div&gt;&lt;div class="line number14 index13 alt1"&gt;14&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;//save the states&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;DepthStencilState ds = GraphicsDevice.DepthStencilState;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;BlendState bs = GraphicsDevice.BlendState;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt; &lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp comments"&gt;//set render states&lt;/code&gt;&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.DepthStencilState = DepthStencilState.DepthRead;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.BlendState = BlendState.AlphaBlend;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt; &lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp comments"&gt;// drawing code here..&lt;/code&gt;&lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt; &lt;/div&gt;&lt;div class="line number12 index11 alt1"&gt;&lt;code class="csharp comments"&gt;// restore render states&lt;/code&gt;&lt;/div&gt;&lt;div class="line number13 index12 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.DepthStencilState = ds;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number14 index13 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.BlendState = bs;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="info_box"&gt;&lt;span style="font-size: 20px; font-weight: bold;"&gt;Effect and EffectPass, Begin(), End(), CommitChanges(), Clone()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_310048" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// apply effect XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;blurEffect.CommitChanges();&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;blurEffect.Begin(SaveStateMode.SaveState);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;blurEffect.CurrentTechnique.Passes[0].Begin();&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.DrawPrimitives(PrimitiveType.TriangleList, 0, 2);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp plain"&gt;blurEffect.CurrentTechnique.Passes[0].End();&lt;/code&gt;&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp plain"&gt;blurEffect.End();&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_751076" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// apply effect XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;blurEffect.CurrentTechnique.Passes[0].Apply();&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.DrawPrimitives(PrimitiveType.TriangleList, 0, 2);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_837366" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// commit effect changes&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;effect.CommitChanges();&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_57747" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;//&amp;nbsp; you will need to call EffectPass.Apply() if any of the effect properties change&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp comments"&gt;// Otherwise Delete it.&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_815032" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// begin effect&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;effect.Begin(SaveStateMode.SaveState);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;effect.CurrentTechnique.Passes[0].Begin();&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_526885" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// begin effect&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;effect.CurrentTechnique.Passes[0].Apply();&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_236045" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// end effect&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;effect.CurrentTechnique.Passes[0].End();&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;effect.End();&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_203393" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// Delete it. No longer needed.&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_299826" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// Make a clone of our replacement effect&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;Effect newEffect = replacementEffect.Clone(replacementEffect.GraphicsDevice);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_486319" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// Make a clone of our replacement effect. 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;Effect newEffect = replacementEffect.Clone();&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_740688" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;8&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;9&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;10&lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;11&lt;/div&gt;&lt;div class="line number12 index11 alt1"&gt;12&lt;/div&gt;&lt;div class="line number13 index12 alt2"&gt;13&lt;/div&gt;&lt;div class="line number14 index13 alt1"&gt;14&lt;/div&gt;&lt;div class="line number15 index14 alt2"&gt;15&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// Activate the appropriate effect technique&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;postprocessEffect.CurrentTechnique = postprocessEffect.Techniques[effectTechniqueName];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt; &lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp comments"&gt;// Draw a fullscreen sprite to apply the postprocessing effect.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp plain"&gt;spriteBatch.Begin(SpriteBlendMode.None,SpriteSortMode.Immediate, SaveStateMode.None);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt; &lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;&lt;code class="csharp plain"&gt;postprocessEffect.Begin();&lt;/code&gt;&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;&lt;code class="csharp plain"&gt;postprocessEffect.CurrentTechnique.Passes[0].Begin();&lt;/code&gt;&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt; &lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;&lt;code class="csharp plain"&gt;spriteBatch.Draw(sceneRenderTarget.GetTexture(), Vector2.Zero, Color.White);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number12 index11 alt1"&gt;&lt;code class="csharp plain"&gt;spriteBatch.End();&lt;/code&gt;&lt;/div&gt;&lt;div class="line number13 index12 alt2"&gt; &lt;/div&gt;&lt;div class="line number14 index13 alt1"&gt;&lt;code class="csharp plain"&gt;postprocessEffect.CurrentTechnique.Passes[0].End();&lt;/code&gt;&lt;/div&gt;&lt;div class="line number15 index14 alt2"&gt;&lt;code class="csharp plain"&gt;postprocessEffect.End();&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_606030" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;8&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// Activate the appropriate effect technique&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;postprocessEffect.CurrentTechnique = postprocessEffect.Techniques[effectTechniqueName];&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt; &lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp comments"&gt;// Draw a fullscreen sprite to apply the postprocessing effect.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp plain"&gt;spriteBatch.Begin(0, BlendState.Opaque, &lt;/code&gt;&lt;code class="csharp keyword"&gt;null&lt;/code&gt;&lt;code class="csharp plain"&gt;, &lt;/code&gt;&lt;code class="csharp keyword"&gt;null&lt;/code&gt;&lt;code class="csharp plain"&gt;, &lt;/code&gt;&lt;code class="csharp keyword"&gt;null&lt;/code&gt;&lt;code class="csharp plain"&gt;, postprocessEffect);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp plain"&gt;spriteBatch.Draw(sceneRenderTarget, Vector2.Zero, Color.White);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;&lt;code class="csharp plain"&gt;spriteBatch.End();&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="info_box"&gt;&lt;span style="font-size: 20px; font-weight: bold;"&gt;ShaderProfile, TotalRealTime, TransparentBlack&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_568466" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;graphics.MinimumPixelShaderProfile = ShaderProfile.PS_3_0; &lt;/code&gt;&lt;code class="csharp comments"&gt;//any PS number...&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;graphics.MinimumVertexShaderProfile = ShaderProfile.VS_3_0;&lt;/code&gt;&lt;code class="csharp comments"&gt;//any VS number...&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_42477" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// Delete it. No longer needed.&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_55589" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp keyword"&gt;float&lt;/code&gt; &lt;code class="csharp plain"&gt;myTime = (&lt;/code&gt;&lt;code class="csharp keyword"&gt;float&lt;/code&gt;&lt;code class="csharp plain"&gt;)gameTime.TotalRealTime.TotalSeconds * 0.2f;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_558078" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp keyword"&gt;float&lt;/code&gt; &lt;code class="csharp plain"&gt;myTime = (&lt;/code&gt;&lt;code class="csharp keyword"&gt;float&lt;/code&gt;&lt;code class="csharp plain"&gt;)gameTime.TotalGameTime.TotalSeconds * 0.2f;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_173510" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.Clear(Color.TransparentBlack);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_173723" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.Clear(Color.Transparent);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="info_box"&gt;&lt;span style="font-size: 20px; font-weight: bold;"&gt;ResolveTexture2D, ResolveBackBuffer, RenderTarget2D, GetTexture, DepthStencilBuffer, PresentationParameters, MultiSampleType, MultiSampleQuality, SetRenderTarget&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_551756" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;ResolveTexture2D sceneMap;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_749254" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;RenderTarget2D sceneMap;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_114118" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// Look up the resolution and format of our main backbuffer.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;PresentationParameters pp = GraphicsDevice.PresentationParameters;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt; &lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp comments"&gt;// Create a texture for reading back the backbuffer contents.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp plain"&gt;sceneMap = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;ResolveTexture2D(GraphicsDevice, pp.BackBufferWidth, pp.BackBufferHeight, 1, pp.BackBufferFormat);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_323397" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;8&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;9&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;10&lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;11&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// Look up the resolution and format of our main backbuffer.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;PresentationParameters pp = GraphicsDevice.PresentationParameters;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt; &lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp comments"&gt;// Create a texture for reading back the backbuffer contents.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp plain"&gt;sceneMap = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;RenderTarget2D(GraphicsDevice, pp.BackBufferWidth, pp.BackBufferHeight, &lt;/code&gt;&lt;code class="csharp keyword"&gt;false&lt;/code&gt;&lt;code class="csharp plain"&gt;, pp.BackBufferFormat,&lt;/code&gt;&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;pp.DepthStencilFormat);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;&lt;code class="csharp comments"&gt;//or &lt;/code&gt;&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt; &lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;&lt;code class="csharp plain"&gt;sceneMap = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;RenderTarget2D(GraphicsDevice, pp.BackBufferWidth, pp.BackBufferHeight, &lt;/code&gt;&lt;code class="csharp keyword"&gt;false&lt;/code&gt;&lt;code class="csharp plain"&gt;, pp.BackBufferFormat,&lt;/code&gt;&lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;pp.DepthStencilFormat, pp.MultiSampleCount, RenderTargetUsage.DiscardContents);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_826031" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.ResolveBackBuffer(sceneMap);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_120935" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.SetRenderTarget(sceneMap);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_72910" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp keyword"&gt;int&lt;/code&gt; &lt;code class="csharp plain"&gt;width = GraphicsDevice.Viewport.Width;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp keyword"&gt;int&lt;/code&gt; &lt;code class="csharp plain"&gt;height = GraphicsDevice.Viewport.Height;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt; &lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp comments"&gt;// create render target&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp plain"&gt;myRenderTarget = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;RenderTarget2D(GraphicsDevice, width, height, 1, SurfaceFormat.Color);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_626727" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp keyword"&gt;int&lt;/code&gt; &lt;code class="csharp plain"&gt;width = GraphicsDevice.Viewport.Width;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp keyword"&gt;int&lt;/code&gt; &lt;code class="csharp plain"&gt;height = GraphicsDevice.Viewport.Height;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt; &lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp comments"&gt;// create render target&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp plain"&gt;myRenderTarget = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;RenderTarget2D(GraphicsDevice, width, height, &lt;/code&gt;&lt;code class="csharp keyword"&gt;true&lt;/code&gt;&lt;code class="csharp plain"&gt;, SurfaceFormat.Color, DepthFormat.Depth24);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_582736" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;PresentationParameters pp = GraphicsDevice.PresentationParameters;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt; &lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp comments"&gt;// Create custom rendertarget&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp plain"&gt;sceneRenderTarget = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;RenderTarget2D(GraphicsDevice, pp.BackBufferWidth, pp.BackBufferHeight, 1,&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;pp.BackBufferFormat, pp.MultiSampleType, pp.MultiSampleQuality);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_330336" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;PresentationParameters pp = GraphicsDevice.PresentationParameters;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt; &lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp comments"&gt;// Create custom rendertarget&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp plain"&gt;sceneRenderTarget = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;RenderTarget2D(GraphicsDevice, pp.BackBufferWidth, pp.BackBufferHeight, &lt;/code&gt;&lt;code class="csharp keyword"&gt;false&lt;/code&gt;&lt;code class="csharp plain"&gt;,&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;pp.BackBufferFormat, pp.DepthStencilFormat, pp.MultiSampleCount,&lt;/code&gt;&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;RenderTargetUsage.DiscardContents);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_682166" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;8&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;9&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;/div&amp;gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;PresentationParameters pp = GraphicsDevice.PresentationParameters;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt; &lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp comments"&gt;// Setup a DepthBuffer&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp plain"&gt;drawBuffer = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;RenderTarget2D(GraphicsDevice, pp.BackBufferWidth, pp.BackBufferHeight, 1,&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;SurfaceFormat.Color, pp.MultiSampleType, pp.MultiSampleQuality);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt; &lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;&lt;code class="csharp plain"&gt;drawDepthBuffer = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;DepthStencilBuffer(GraphicsDevice, pp.AutoDepthStencilFormat,&lt;/code&gt;&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;pp.MultiSampleType, pp.MultiSampleQuality);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_785098" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;8&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;PresentationParameters pp = GraphicsDevice.PresentationParameters;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt; &lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp comments"&gt;// Setup a DepthBuffer&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp plain"&gt;drawBuffer = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;RenderTarget2D(GraphicsDevice, pp.BackBufferWidth, pp.BackBufferHeight, &lt;/code&gt;&lt;code class="csharp keyword"&gt;true&lt;/code&gt;&lt;code class="csharp plain"&gt;,&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;SurfaceFormat.Color,DepthFormat.Depth24Stencil8,&lt;/code&gt;&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;pp.MultiSampleCount, RenderTargetUsage.DiscardContents);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;&lt;code class="csharp comments"&gt;//NOTE:&amp;nbsp; DepthStencilBuffer class no longer exists&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_927421" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;spriteBatch.Draw(myRenderTarget.GetTexture(), Vector2.Zero, Color.White);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_685618" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;spriteBatch.Draw(myRenderTarget, Vector2.Zero, Color.White); &lt;/code&gt;&lt;code class="csharp comments"&gt;// NOTE: ".GetTexure()"&amp;nbsp; No longer needed&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_383982" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;Texture2D myTexture = myRenderTarget.GetTexture();&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_264640" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;Texture2D myTexture = myRenderTarget; &lt;/code&gt;&lt;code class="csharp comments"&gt;// NOTE: ".GetTexure()"&amp;nbsp; No longer needed&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_523264" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.SetRenderTarget(0, myRenderTarget);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_931664" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.SetRenderTarget(myRenderTarget);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_707387" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// Set the two render targets&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.SetRenderTarget(0, colorRT);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.SetRenderTarget(1, depthRT);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_615373" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// Set the two render targets&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.SetRenderTargets(colorRT, depthRT);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_338816" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.SetRenderTarget(0, &lt;/code&gt;&lt;code class="csharp keyword"&gt;null&lt;/code&gt;&lt;code class="csharp plain"&gt;);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_577861" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.SetRenderTarget(&lt;/code&gt;&lt;code class="csharp keyword"&gt;null&lt;/code&gt;&lt;code class="csharp plain"&gt;);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_723489" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;8&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;9&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// resolve the backbuffer as the depth map&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.ResolveBackBuffer(depthMap);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt; &lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp comments"&gt;// draw the scene image again, blur it with the depth map&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.Textures[1] = depthMap;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp plain"&gt;Viewport viewport = GraphicsDevice.Viewport;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;&lt;code class="csharp plain"&gt;dofEffect.CurrentTechnique = depthBlurTechnique;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;&lt;code class="csharp plain"&gt;DrawFullscreenQuad(sceneMap, viewport.Width, viewport.Height, dofEffect);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_397055" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;8&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;9&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;10&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// resolve the backbuffer as the depth map&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.SetRenderTarget(&lt;/code&gt;&lt;code class="csharp keyword"&gt;null&lt;/code&gt;&lt;code class="csharp plain"&gt;);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt; &lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp comments"&gt;// draw the scene image again, blur it with the depth map&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.Textures[1] = depthMap;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.SamplerStates[1] = SamplerState.PointClamp;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;&lt;code class="csharp plain"&gt;Viewport viewport = GraphicsDevice.Viewport;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;&lt;code class="csharp plain"&gt;dofEffect.CurrentTechnique = depthBlurTechnique;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;&lt;code class="csharp plain"&gt;DrawFullscreenQuad(sceneMap, viewport.Width, viewport.Height, dofEffect);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_669541" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;8&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;9&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;10&lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;11&lt;/div&gt;&lt;div class="line number12 index11 alt1"&gt;12&lt;/div&gt;&lt;div class="line number13 index12 alt2"&gt;13&lt;/div&gt;&lt;div class="line number14 index13 alt1"&gt;14&lt;/div&gt;&lt;div class="line number15 index14 alt2"&gt;15&lt;/div&gt;&lt;div class="line number16 index15 alt1"&gt;16&lt;/div&gt;&lt;div class="line number17 index16 alt2"&gt;17&lt;/div&gt;&lt;div class="line number18 index17 alt1"&gt;18&lt;/div&gt;&lt;div class="line number19 index18 alt2"&gt;19&lt;/div&gt;&lt;div class="line number20 index19 alt1"&gt;20&lt;/div&gt;&lt;div class="line number21 index20 alt2"&gt;21&lt;/div&gt;&lt;div class="line number22 index21 alt1"&gt;22&lt;/div&gt;&lt;div class="line number23 index22 alt2"&gt;23&lt;/div&gt;&lt;div class="line number24 index23 alt1"&gt;24&lt;/div&gt;&lt;div class="line number25 index24 alt2"&gt;25&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;ResolveTexture2D resolveTarget;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;RenderTarget2D renderTarget1;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;RenderTarget2D renderTarget2;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt; &lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp comments"&gt;// Look up the resolution and format of our main backbuffer.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp plain"&gt;PresentationParameters pp = GraphicsDevice.PresentationParameters;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt; &lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;&lt;code class="csharp keyword"&gt;int&lt;/code&gt; &lt;code class="csharp plain"&gt;width = pp.BackBufferWidth;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;&lt;code class="csharp keyword"&gt;int&lt;/code&gt; &lt;code class="csharp plain"&gt;height = pp.BackBufferHeight;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;&lt;code class="csharp plain"&gt;SurfaceFormat format = pp.BackBufferFormat;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number12 index11 alt1"&gt; &lt;/div&gt;&lt;div class="line number13 index12 alt2"&gt;&lt;code class="csharp comments"&gt;// Create a texture for reading back the backbuffer contents.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number14 index13 alt1"&gt;&lt;code class="csharp plain"&gt;resolveTarget = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;ResolveTexture2D(GraphicsDevice, width, height, 1, format);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number15 index14 alt2"&gt; &lt;/div&gt;&lt;div class="line number16 index15 alt1"&gt;&lt;code class="csharp comments"&gt;// Create two rendertargets half size for the bloom processing.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number17 index16 alt2"&gt;&lt;code class="csharp plain"&gt;width /= 2;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number18 index17 alt1"&gt;&lt;code class="csharp plain"&gt;height /= 2;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number19 index18 alt2"&gt; &lt;/div&gt;&lt;div class="line number20 index19 alt1"&gt;&lt;code class="csharp plain"&gt;renderTarget1 = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;RenderTarget2D(GraphicsDevice, width, height, 1,format);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number21 index20 alt2"&gt;&lt;code class="csharp plain"&gt;renderTarget2 = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;RenderTarget2D(GraphicsDevice, width, height, 1,format);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number22 index21 alt1"&gt; &lt;/div&gt;&lt;div class="line number23 index22 alt2"&gt;&lt;code class="csharp comments"&gt;// ... In the Draw Method...&lt;/code&gt;&lt;/div&gt;&lt;div class="line number24 index23 alt1"&gt;&lt;code class="csharp spaces"&gt; &lt;/code&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.ResolveBackBuffer(resolveTarget);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number25 index24 alt2"&gt;&lt;code class="csharp spaces"&gt; &lt;/code&gt;&lt;code class="csharp comments"&gt;// ...apply effect and draw pass 1...&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_983157" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;8&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;9&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;10&lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;11&lt;/div&gt;&lt;div class="line number12 index11 alt1"&gt;12&lt;/div&gt;&lt;div class="line number13 index12 alt2"&gt;13&lt;/div&gt;&lt;div class="line number14 index13 alt1"&gt;14&lt;/div&gt;&lt;div class="line number15 index14 alt2"&gt;15&lt;/div&gt;&lt;div class="line number16 index15 alt1"&gt;16&lt;/div&gt;&lt;div class="line number17 index16 alt2"&gt;17&lt;/div&gt;&lt;div class="line number18 index17 alt1"&gt;18&lt;/div&gt;&lt;div class="line number19 index18 alt2"&gt;19&lt;/div&gt;&lt;div class="line number20 index19 alt1"&gt;20&lt;/div&gt;&lt;div class="line number21 index20 alt2"&gt;21&lt;/div&gt;&lt;div class="line number22 index21 alt1"&gt;22&lt;/div&gt;&lt;div class="line number23 index22 alt2"&gt;23&lt;/div&gt;&lt;div class="line number24 index23 alt1"&gt;24&lt;/div&gt;&lt;div class="line number25 index24 alt2"&gt;25&lt;/div&gt;&lt;div class="line number26 index25 alt1"&gt;26&lt;/div&gt;&lt;div class="line number27 index26 alt2"&gt;27&lt;/div&gt;&lt;div class="line number28 index27 alt1"&gt;28&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;RenderTarget2D sceneRenderTarget;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;RenderTarget2D renderTarget1;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;RenderTarget2D renderTarget2;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt; &lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp comments"&gt;// Look up the resolution and format of our main backbuffer.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp plain"&gt;PresentationParameters pp = GraphicsDevice.PresentationParameters;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt; &lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;&lt;code class="csharp keyword"&gt;int&lt;/code&gt; &lt;code class="csharp plain"&gt;width = pp.BackBufferWidth;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;&lt;code class="csharp keyword"&gt;int&lt;/code&gt; &lt;code class="csharp plain"&gt;height = pp.BackBufferHeight;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;&lt;code class="csharp plain"&gt;SurfaceFormat format = pp.BackBufferFormat;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number12 index11 alt1"&gt; &lt;/div&gt;&lt;div class="line number13 index12 alt2"&gt;&lt;code class="csharp comments"&gt;// Create a texture for rendering the main scene, prior to applying bloom.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number14 index13 alt1"&gt;&lt;code class="csharp plain"&gt;sceneRenderTarget = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;RenderTarget2D(GraphicsDevice, width, height, &lt;/code&gt;&lt;code class="csharp keyword"&gt;false&lt;/code&gt;&lt;code class="csharp plain"&gt;,&lt;/code&gt;&lt;/div&gt;&lt;div class="line number15 index14 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;format, pp.DepthStencilFormat, pp.MultiSampleCount,&lt;/code&gt;&lt;/div&gt;&lt;div class="line number16 index15 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;RenderTargetUsage.DiscardContents);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number17 index16 alt2"&gt; &lt;/div&gt;&lt;div class="line number18 index17 alt1"&gt;&lt;code class="csharp comments"&gt;// Create two rendertargets half size for the bloom processing.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number19 index18 alt2"&gt;&lt;code class="csharp plain"&gt;width /= 2;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number20 index19 alt1"&gt;&lt;code class="csharp plain"&gt;height /= 2;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number21 index20 alt2"&gt; &lt;/div&gt;&lt;div class="line number22 index21 alt1"&gt;&lt;code class="csharp plain"&gt;renderTarget1 = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;RenderTarget2D(GraphicsDevice, width, height, &lt;/code&gt;&lt;code class="csharp keyword"&gt;false&lt;/code&gt;&lt;code class="csharp plain"&gt;, format, DepthFormat.None);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number23 index22 alt2"&gt;&lt;code class="csharp plain"&gt;renderTarget2 = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;RenderTarget2D(GraphicsDevice, width, height, &lt;/code&gt;&lt;code class="csharp keyword"&gt;false&lt;/code&gt;&lt;code class="csharp plain"&gt;, format, DepthFormat.None);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number24 index23 alt1"&gt; &lt;/div&gt;&lt;div class="line number25 index24 alt2"&gt;&lt;code class="csharp comments"&gt;// ...In the Draw Method...&lt;/code&gt;&lt;/div&gt;&lt;div class="line number26 index25 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.SetRenderTarget(sceneRenderTarget);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number27 index26 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.SamplerStates[1] = SamplerState.LinearClamp;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number28 index27 alt1"&gt;&lt;code class="csharp comments"&gt;// ...apply effect and draw pass 1....&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="info_box"&gt;&lt;span style="font-size: 20px; font-weight: bold;"&gt;VertexDeclaration, Vertices, VertexElements, SizeInBytes&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_709000" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// Vertex declaration for rendering our 3D model.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp spaces"&gt; &lt;/code&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.VertexDeclaration = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;VertexDeclaration(VertexPositionTexture.VertexElements);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_557690" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// Delete it. No longer needed.&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_594206" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// set vertex buffer and declaration&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.VertexDeclaration = vertexDeclaration;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.Vertices[0].SetSource(vertexBuffer, 0, VertexPositionTexture.SizeInBytes);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_195778" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// set vertex buffer and declaration&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.SetVertexBuffer(vertexBuffer);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_360437" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// create vertex declaration&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;vertexDeclaration = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;VertexDeclaration(GraphicsDevice, VertexPositionTexture.VertexElements);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_484583" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// create vertex declaration&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;vertexDeclaration = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;VertexDeclaration(VertexPositionTexture.VertexDeclaration.GetVertexElements());&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_41347" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// reset vertex buffer declaration&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.VertexDeclaration = &lt;/code&gt;&lt;code class="csharp keyword"&gt;null&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.Vertices[0].SetSource(&lt;/code&gt;&lt;code class="csharp keyword"&gt;null&lt;/code&gt;&lt;code class="csharp plain"&gt;, 0, 0);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_399271" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// reset vertex buffer declaration&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.SetVertexBuffer(&lt;/code&gt;&lt;code class="csharp keyword"&gt;null&lt;/code&gt;&lt;code class="csharp plain"&gt;);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_629994" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// the vertices array&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;VertexPositionNormalTexture[] vertices = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;VertexPositionNormalTexture[100];&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt; &lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp spaces"&gt; &lt;/code&gt;&lt;code class="csharp comments"&gt;// set new particles to vertex buffer&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp plain"&gt;vertexBuffer.SetData&amp;lt;VertexPositionNormalTexture&amp;gt;(VertexPositionNormalTexture.SizeInBytes * vertexCount,&lt;/code&gt;&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;vertices,vertexCount,count,VertexPositionNormalTexture.SizeInBytes);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_132929" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// the vertices array&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;VertexPositionNormalTexture[] vertices = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;VertexPositionNormalTexture[100];&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt; &lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp comments"&gt;// set new particles to vertex buffer&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp plain"&gt;vertexBuffer.SetData&amp;lt;VertexPositionNormalTexture&amp;gt;(vertices);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="info_box"&gt;&lt;span style="font-size: 20px; font-weight: bold;"&gt;VertexBuffer, StreamOffset, VertexStride, IndexBuffer, BaseVertex&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_243518" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;8&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;9&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;10&lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;11&lt;/div&gt;&lt;div class="line number12 index11 alt1"&gt;12&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// for each mesh part&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp keyword"&gt;foreach&lt;/code&gt; &lt;code class="csharp plain"&gt;(ModelMeshPart meshPart &lt;/code&gt;&lt;code class="csharp keyword"&gt;in&lt;/code&gt; &lt;code class="csharp plain"&gt;mesh.MeshParts)&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp comments"&gt;// if primitives to render&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;if&lt;/code&gt; &lt;code class="csharp plain"&gt;(meshPart.PrimitiveCount &amp;gt; 0)&lt;/code&gt;&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp comments"&gt;// setup vertices and indices&lt;/code&gt;&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.VertexDeclaration = meshPart.VertexDeclaration;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.Vertices[0].SetSource(mesh.VertexBuffer, meshPart.StreamOffset, meshPart.VertexStride);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.Indices = mesh.IndexBuffer;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number12 index11 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;...&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_880781" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;8&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;9&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;10&lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;11&lt;/div&gt;&lt;div class="line number12 index11 alt1"&gt;12&lt;/div&gt;&lt;div class="line number13 index12 alt2"&gt;13&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.SamplerStates[0] = SamplerState.LinearWrap; &lt;/code&gt;&lt;code class="csharp comments"&gt;// may be needed in some cases...&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt; &lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp comments"&gt;// for each mesh part&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp keyword"&gt;foreach&lt;/code&gt; &lt;code class="csharp plain"&gt;(ModelMeshPart meshPart &lt;/code&gt;&lt;code class="csharp keyword"&gt;in&lt;/code&gt; &lt;code class="csharp plain"&gt;mesh.MeshParts)&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp comments"&gt;// if primitives to render&lt;/code&gt;&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;if&lt;/code&gt; &lt;code class="csharp plain"&gt;(meshPart.PrimitiveCount &amp;gt; 0)&lt;/code&gt;&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp comments"&gt;// setup vertices and indices&lt;/code&gt;&lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.SetVertexBuffer(meshPart.VertexBuffer);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number12 index11 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.Indices = meshPart.IndexBuffer;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number13 index12 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;...&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_960961" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// draw primitives&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.DrawIndexedPrimitives(PrimitiveType.TriangleList,&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;meshPart.BaseVertex, 0, meshPart.NumVertices,&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;meshPart.StartIndex, meshPart.PrimitiveCount);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_636838" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// draw primitives&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.DrawIndexedPrimitives(PrimitiveType.TriangleList, 0, 0,&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;meshPart.NumVertices, meshPart.StartIndex, meshPart.PrimitiveCount);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="info_box"&gt;&lt;span style="font-size: 20px; font-weight: bold;"&gt;Points, PointSpriteEnable, PointSizeMax, PointList &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_784373" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp spaces"&gt; &lt;/code&gt;&lt;code class="csharp comments"&gt;// create the vertex buffer&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;vertexBuffer = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;VertexBuffer(GraphicsDevice, &lt;/code&gt;&lt;code class="csharp keyword"&gt;typeof&lt;/code&gt;&lt;code class="csharp plain"&gt;(VertexPositionNormalTexture),&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;250, BufferUsage.WriteOnly | BufferUsage.Points);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_879786" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// create the vertex buffer&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;vertexBuffer = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;VertexBuffer(GraphicsDevice, &lt;/code&gt;&lt;code class="csharp keyword"&gt;typeof&lt;/code&gt;&lt;code class="csharp plain"&gt;(VertexPositionNormalTexture),&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;250, BufferUsage.WriteOnly | BufferUsage.None);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_988212" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// enable point sprite 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.PointSpriteEnable = &lt;/code&gt;&lt;code class="csharp keyword"&gt;true&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.RenderState.PointSizeMax = 128;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_825072" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// Delete it. No longer available.&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_322128" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// draw the point sprites&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.DrawPrimitives(PrimitiveType.PointList, vertexPosition, numberVertices);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_951584" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// draw the point sprites&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.DrawPrimitives(PrimitiveType.LineList, vertexPosition, numberVertices);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="info_box"&gt;&lt;span style="font-size: 20px; font-weight: bold;"&gt; OpenContainer, BeginShowStorageDeviceSelector, EndShowStorageDeviceSelector, Path, TitleLocation, FileStream&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_283209" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// open the container&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;StorageContainer storageContainer = storageDevice.OpenContainer(&lt;/code&gt;&lt;code class="csharp string"&gt;"YourGameName"&lt;/code&gt;&lt;code class="csharp plain"&gt;);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_707233" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;8&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;9&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;10&lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;11&lt;/div&gt;&lt;div class="line number12 index11 alt1"&gt;12&lt;/div&gt;&lt;div class="line number13 index12 alt2"&gt;13&lt;/div&gt;&lt;div class="line number14 index13 alt1"&gt;14&lt;/div&gt;&lt;div class="line number15 index14 alt2"&gt;15&lt;/div&gt;&lt;div class="line number16 index15 alt1"&gt;16&lt;/div&gt;&lt;div class="line number17 index16 alt2"&gt;17&lt;/div&gt;&lt;div class="line number18 index17 alt1"&gt;18&lt;/div&gt;&lt;div class="line number19 index18 alt2"&gt;19&lt;/div&gt;&lt;div class="line number20 index19 alt1"&gt;20&lt;/div&gt;&lt;div class="line number21 index20 alt2"&gt;21&lt;/div&gt;&lt;div class="line number22 index21 alt1"&gt;22&lt;/div&gt;&lt;div class="line number23 index22 alt2"&gt;23&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;//To make life easier simply create a method to replace the storageDevice.OpenContainer... &lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt; &lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp color1"&gt;/// &amp;lt;summary&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp color1"&gt;/// Synchronously opens storage container&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp color1"&gt;/// &amp;lt;/summary&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp keyword"&gt;private&lt;/code&gt; &lt;code class="csharp keyword"&gt;static&lt;/code&gt; &lt;code class="csharp plain"&gt;StorageContainer OpenContainer(StorageDevice storageDevice, &lt;/code&gt;&lt;code class="csharp keyword"&gt;string&lt;/code&gt; &lt;code class="csharp plain"&gt;saveGameName)&lt;/code&gt;&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;IAsyncResult result = storageDevice.BeginOpenContainer(saveGameName, &lt;/code&gt;&lt;code class="csharp keyword"&gt;null&lt;/code&gt;&lt;code class="csharp plain"&gt;, &lt;/code&gt;&lt;code class="csharp keyword"&gt;null&lt;/code&gt;&lt;code class="csharp plain"&gt;);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt; &lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp comments"&gt;// Wait for the WaitHandle to become signaled.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number12 index11 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;result.AsyncWaitHandle.WaitOne();&lt;/code&gt;&lt;/div&gt;&lt;div class="line number13 index12 alt2"&gt; &lt;/div&gt;&lt;div class="line number14 index13 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;StorageContainer container = storageDevice.EndOpenContainer(result);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number15 index14 alt2"&gt; &lt;/div&gt;&lt;div class="line number16 index15 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp comments"&gt;// Close the wait handle.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number17 index16 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;result.AsyncWaitHandle.Close();&lt;/code&gt;&lt;/div&gt;&lt;div class="line number18 index17 alt1"&gt; &lt;/div&gt;&lt;div class="line number19 index18 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;return&lt;/code&gt; &lt;code class="csharp plain"&gt;container;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number20 index19 alt1"&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div class="line number21 index20 alt2"&gt; &lt;/div&gt;&lt;div class="line number22 index21 alt1"&gt;&lt;code class="csharp comments"&gt;// open the container&lt;/code&gt;&lt;/div&gt;&lt;div class="line number23 index22 alt2"&gt;&lt;code class="csharp plain"&gt;StorageContainer storageContainer = OpenContainer(storageDevice, &lt;/code&gt;&lt;code class="csharp string"&gt;"YourGameName"&lt;/code&gt;&lt;code class="csharp plain"&gt;);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_158384" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// retrieve the storage device&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;Guide.BeginShowStorageDeviceSelector(GetStorageDeviceResult, retrievalDelegate);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_552324" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// retrieve the storage device&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp keyword"&gt;if&lt;/code&gt; &lt;code class="csharp plain"&gt;(!Guide.IsVisible)&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;StorageDevice.BeginShowSelector(GetStorageDeviceResult, retrievalDelegate);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_712944" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp spaces"&gt; &lt;/code&gt;&lt;code class="csharp comments"&gt;// retrieve and store the storage device&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp spaces"&gt; &lt;/code&gt;&lt;code class="csharp plain"&gt;storageDevice = Guide.EndShowStorageDeviceSelector(result);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_443810" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// retrieve and store the storage device&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp spaces"&gt; &lt;/code&gt;&lt;code class="csharp plain"&gt;storageDevice = StorageDevice.EndShowSelector(result);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_261735" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// get the level setup files&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp spaces"&gt; &lt;/code&gt;&lt;code class="csharp keyword"&gt;string&lt;/code&gt;&lt;code class="csharp plain"&gt;[] filenames = Directory.GetFiles(storageContainer.Path, &lt;/code&gt;&lt;code class="csharp string"&gt;"LevelSetup*.xml"&lt;/code&gt;&lt;code class="csharp plain"&gt;);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_842227" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// get the level setup files&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp keyword"&gt;string&lt;/code&gt;&lt;code class="csharp plain"&gt;[] filenames = storageContainer.GetFileNames(&lt;/code&gt;&lt;code class="csharp string"&gt;"LevelSetup*.xml"&lt;/code&gt;&lt;code class="csharp plain"&gt;");&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_214635" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// save game level data&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp keyword"&gt;using&lt;/code&gt; &lt;code class="csharp plain"&gt;(FileStream stream = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;FileStream(Path.Combine(storageContainer.Path, levelFilename), FileMode.Create))&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;XmlSerializer(&lt;/code&gt;&lt;code class="csharp keyword"&gt;typeof&lt;/code&gt;&lt;code class="csharp plain"&gt;(SaveGameLevel)).Serialize(stream, levelData);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_892337" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// save game level data&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp keyword"&gt;using&lt;/code&gt; &lt;code class="csharp plain"&gt;(Stream stream = storageContainer.OpenFile(levelFilename, FileMode.Create))&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;XmlSerializer(&lt;/code&gt;&lt;code class="csharp keyword"&gt;typeof&lt;/code&gt;&lt;code class="csharp plain"&gt;(SaveGameLevel)).Serialize(stream, levelData);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_580230" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;8&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;9&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// Delete the saved game level data.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp keyword"&gt;using&lt;/code&gt; &lt;code class="csharp plain"&gt;(StorageContainer storageContainer = storageDevice.OpenContainer(&lt;/code&gt;&lt;code class="csharp string"&gt;"saveGameName"&lt;/code&gt;&lt;code class="csharp plain"&gt;))&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;File.Delete(Path.Combine(storageContainer.Path, saveGameLevel.FileName));&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt; &lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;File.Delete(Path.Combine(storageContainer.Path, &lt;/code&gt;&lt;code class="csharp string"&gt;"SaveGameLevel"&lt;/code&gt; &lt;code class="csharp plain"&gt;+&lt;/code&gt;&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;Path.GetFileNameWithoutExtension(saveGameLevel.FileName).Substring(8) +&lt;/code&gt;&lt;code class="csharp string"&gt;".xml"&lt;/code&gt;&lt;code class="csharp plain"&gt;));&lt;/code&gt;&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_677307" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;8&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;9&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// Delete the saved game level data. NOTE: using OpenContainer method created in previous example&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp keyword"&gt;using&lt;/code&gt; &lt;code class="csharp plain"&gt;(StorageContainer storageContainer = OpenContainer(storageDevice, &lt;/code&gt;&lt;code class="csharp string"&gt;"saveGameName"&lt;/code&gt;&lt;code class="csharp plain"&gt;))&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;storageContainer.DeleteFile(saveGameLevel.FileName);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt; &lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;storageContainer.DeleteFile(&lt;/code&gt;&lt;code class="csharp string"&gt;"SaveGameLevel"&lt;/code&gt; &lt;code class="csharp plain"&gt;+&lt;/code&gt;&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;Path.GetFileNameWithoutExtension(saveGameLevel.FileName).Substring(8) + &lt;/code&gt;&lt;code class="csharp string"&gt;".xml"&lt;/code&gt;&lt;code class="csharp plain"&gt;);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_119082" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;8&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;9&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;10&lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;11&lt;/div&gt;&lt;div class="line number12 index11 alt1"&gt;12&lt;/div&gt;&lt;div class="line number13 index12 alt2"&gt;13&lt;/div&gt;&lt;div class="line number14 index13 alt1"&gt;14&lt;/div&gt;&lt;div class="line number15 index14 alt2"&gt;15&lt;/div&gt;&lt;div class="line number16 index15 alt1"&gt;16&lt;/div&gt;&lt;div class="line number17 index16 alt2"&gt;17&lt;/div&gt;&lt;div class="line number18 index17 alt1"&gt;18&lt;/div&gt;&lt;div class="line number19 index18 alt2"&gt;19&lt;/div&gt;&lt;div class="line number20 index19 alt1"&gt;20&lt;/div&gt;&lt;div class="line number21 index20 alt2"&gt;21&lt;/div&gt;&lt;div class="line number22 index21 alt1"&gt;22&lt;/div&gt;&lt;div class="line number23 index22 alt2"&gt;23&lt;/div&gt;&lt;div class="line number24 index23 alt1"&gt;24&lt;/div&gt;&lt;div class="line number25 index24 alt2"&gt;25&lt;/div&gt;&lt;div class="line number26 index25 alt1"&gt;26&lt;/div&gt;&lt;div class="line number27 index26 alt2"&gt;27&lt;/div&gt;&lt;div class="line number28 index27 alt1"&gt;28&lt;/div&gt;&lt;div class="line number29 index28 alt2"&gt;29&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;//Load the Next Level...&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt; &lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp comments"&gt;// Find the path of the next level.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp keyword"&gt;string&lt;/code&gt; &lt;code class="csharp plain"&gt;levelPath;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt; &lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp comments"&gt;// Loop here so we can try again when we can't find a level.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;&lt;code class="csharp keyword"&gt;while&lt;/code&gt; &lt;code class="csharp plain"&gt;(&lt;/code&gt;&lt;code class="csharp keyword"&gt;true&lt;/code&gt;&lt;code class="csharp plain"&gt;)&lt;/code&gt;&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp comments"&gt;// Try to find the next level. They are sequentially numbered txt files.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;levelPath = String.Format(&lt;/code&gt;&lt;code class="csharp string"&gt;"Levels/{0}.txt"&lt;/code&gt;&lt;code class="csharp plain"&gt;, ++levelIndex);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number12 index11 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;levelPath = Path.Combine(StorageContainer.TitleLocation, &lt;/code&gt;&lt;code class="csharp string"&gt;"Content/"&lt;/code&gt; &lt;code class="csharp plain"&gt;+ levelPath);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number13 index12 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;if&lt;/code&gt; &lt;code class="csharp plain"&gt;(File.Exists(levelPath))&lt;/code&gt;&lt;/div&gt;&lt;div class="line number14 index13 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;break&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number15 index14 alt2"&gt; &lt;/div&gt;&lt;div class="line number16 index15 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp comments"&gt;// If there isn't even a level 0, something has gone wrong.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number17 index16 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;if&lt;/code&gt; &lt;code class="csharp plain"&gt;(levelIndex == 0)&lt;/code&gt;&lt;/div&gt;&lt;div class="line number18 index17 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;throw&lt;/code&gt; &lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;Exception(&lt;/code&gt;&lt;code class="csharp string"&gt;"No levels found."&lt;/code&gt;&lt;code class="csharp plain"&gt;);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number19 index18 alt2"&gt; &lt;/div&gt;&lt;div class="line number20 index19 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp comments"&gt;// Whenever we can't find a level, start over again at 0.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number21 index20 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;levelIndex = -1;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number22 index21 alt1"&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div class="line number23 index22 alt2"&gt; &lt;/div&gt;&lt;div class="line number24 index23 alt1"&gt;&lt;code class="csharp comments"&gt;// Unloads the content for the current level before loading the next one.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number25 index24 alt2"&gt;&lt;code class="csharp keyword"&gt;if&lt;/code&gt; &lt;code class="csharp plain"&gt;(level != &lt;/code&gt;&lt;code class="csharp keyword"&gt;null&lt;/code&gt;&lt;code class="csharp plain"&gt;)&lt;/code&gt;&lt;/div&gt;&lt;div class="line number26 index25 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;level.Dispose();&lt;/code&gt;&lt;/div&gt;&lt;div class="line number27 index26 alt2"&gt; &lt;/div&gt;&lt;div class="line number28 index27 alt1"&gt;&lt;code class="csharp comments"&gt;// Load the level.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number29 index28 alt2"&gt;&lt;code class="csharp plain"&gt;level = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;Level(Services, levelPath);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_572544" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;8&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;9&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;10&lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;11&lt;/div&gt;&lt;div class="line number12 index11 alt1"&gt;12&lt;/div&gt;&lt;div class="line number13 index12 alt2"&gt;13&lt;/div&gt;&lt;div class="line number14 index13 alt1"&gt;14&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// Load the Next Level...&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt; &lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp comments"&gt;// move to the next level&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp plain"&gt;levelIndex = (levelIndex + 1) % numberOfLevels;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt; &lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp comments"&gt;// Unloads the content for the current level before loading the next one.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;&lt;code class="csharp keyword"&gt;if&lt;/code&gt; &lt;code class="csharp plain"&gt;(level != &lt;/code&gt;&lt;code class="csharp keyword"&gt;null&lt;/code&gt;&lt;code class="csharp plain"&gt;)&lt;/code&gt;&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;level.Dispose();&lt;/code&gt;&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt; &lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;&lt;code class="csharp comments"&gt;// Load the level.&lt;/code&gt;&lt;/div&gt;&lt;div class="line number12 index11 alt1"&gt;&lt;code class="csharp keyword"&gt;string&lt;/code&gt; &lt;code class="csharp plain"&gt;levelPath = &lt;/code&gt;&lt;code class="csharp keyword"&gt;string&lt;/code&gt;&lt;code class="csharp plain"&gt;.Format(&lt;/code&gt;&lt;code class="csharp string"&gt;"Content/Levels/{0}.txt"&lt;/code&gt;&lt;code class="csharp plain"&gt;, levelIndex);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number13 index12 alt2"&gt;&lt;code class="csharp keyword"&gt;using&lt;/code&gt; &lt;code class="csharp plain"&gt;(Stream fileStream = TitleContainer.OpenStream(levelPath))&lt;/code&gt;&lt;/div&gt;&lt;div class="line number14 index13 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;level = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;Level(Services, fileStream, levelIndex);&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_422400" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;8&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;9&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;10&lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;11&lt;/div&gt;&lt;div class="line number12 index11 alt1"&gt;12&lt;/div&gt;&lt;div class="line number13 index12 alt2"&gt;13&lt;/div&gt;&lt;div class="line number14 index13 alt1"&gt;14&lt;/div&gt;&lt;div class="line number15 index14 alt2"&gt;15&lt;/div&gt;&lt;div class="line number16 index15 alt1"&gt;16&lt;/div&gt;&lt;div class="line number17 index16 alt2"&gt;17&lt;/div&gt;&lt;div class="line number18 index17 alt1"&gt;18&lt;/div&gt;&lt;div class="line number19 index18 alt2"&gt;19&lt;/div&gt;&lt;div class="line number20 index19 alt1"&gt;20&lt;/div&gt;&lt;div class="line number21 index20 alt2"&gt;21&lt;/div&gt;&lt;div class="line number22 index21 alt1"&gt;22&lt;/div&gt;&lt;div class="line number23 index22 alt2"&gt;23&lt;/div&gt;&lt;div class="line number24 index23 alt1"&gt;24&lt;/div&gt;&lt;div class="line number25 index24 alt2"&gt;25&lt;/div&gt;&lt;div class="line number26 index25 alt1"&gt;26&lt;/div&gt;&lt;div class="line number27 index26 alt2"&gt;27&lt;/div&gt;&lt;div class="line number28 index27 alt1"&gt;28&lt;/div&gt;&lt;div class="line number29 index28 alt2"&gt;29&lt;/div&gt;&lt;div class="line number30 index29 alt1"&gt;30&lt;/div&gt;&lt;div class="line number31 index30 alt2"&gt;31&lt;/div&gt;&lt;div class="line number32 index31 alt1"&gt;32&lt;/div&gt;&lt;div class="line number33 index32 alt2"&gt;33&lt;/div&gt;&lt;div class="line number34 index33 alt1"&gt;34&lt;/div&gt;&lt;div class="line number35 index34 alt2"&gt;35&lt;/div&gt;&lt;div class="line number36 index35 alt1"&gt;36&lt;/div&gt;&lt;div class="line number37 index36 alt2"&gt;37&lt;/div&gt;&lt;div class="line number38 index37 alt1"&gt;38&lt;/div&gt;&lt;div class="line number39 index38 alt2"&gt;39&lt;/div&gt;&lt;div class="line number40 index39 alt1"&gt;40&lt;/div&gt;&lt;div class="line number41 index40 alt2"&gt;41&lt;/div&gt;&lt;div class="line number42 index41 alt1"&gt;42&lt;/div&gt;&lt;div class="line number43 index42 alt2"&gt;43&lt;/div&gt;&lt;div class="line number44 index43 alt1"&gt;44&lt;/div&gt;&lt;div class="line number45 index44 alt2"&gt;45&lt;/div&gt;&lt;div class="line number46 index45 alt1"&gt;46&lt;/div&gt;&lt;div class="line number47 index46 alt2"&gt;47&lt;/div&gt;&lt;div class="line number48 index47 alt1"&gt;48&lt;/div&gt;&lt;div class="line number49 index48 alt2"&gt;49&lt;/div&gt;&lt;div class="line number50 index49 alt1"&gt;50&lt;/div&gt;&lt;div class="line number51 index50 alt2"&gt;51&lt;/div&gt;&lt;div class="line number52 index51 alt1"&gt;52&lt;/div&gt;&lt;div class="line number53 index52 alt2"&gt;53&lt;/div&gt;&lt;div class="line number54 index53 alt1"&gt;54&lt;/div&gt;&lt;div class="line number55 index54 alt2"&gt;55&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;//Save the current state of the session, with the given storage device. &lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt; &lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp comments"&gt;// check the parameter&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp keyword"&gt;if&lt;/code&gt; &lt;code class="csharp plain"&gt;((storageDevice == &lt;/code&gt;&lt;code class="csharp keyword"&gt;null&lt;/code&gt;&lt;code class="csharp plain"&gt;) || !storageDevice.IsConnected)&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;return&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt; &lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;&lt;code class="csharp comments"&gt;// open the container&lt;/code&gt;&lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;&lt;code class="csharp keyword"&gt;using&lt;/code&gt; &lt;code class="csharp plain"&gt;(StorageContainer storageContainer = storageDevice.OpenContainer(Session.SaveGameContainerName))&lt;/code&gt;&lt;/div&gt;&lt;div class="line number12 index11 alt1"&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number13 index12 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;string&lt;/code&gt; &lt;code class="csharp plain"&gt;filename;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number14 index13 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;string&lt;/code&gt; &lt;code class="csharp plain"&gt;descriptionFilename;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number15 index14 alt2"&gt; &lt;/div&gt;&lt;div class="line number16 index15 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp comments"&gt;// get the filenames&lt;/code&gt;&lt;/div&gt;&lt;div class="line number17 index16 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;if&lt;/code&gt; &lt;code class="csharp plain"&gt;(overwriteDescription == &lt;/code&gt;&lt;code class="csharp keyword"&gt;null&lt;/code&gt;&lt;code class="csharp plain"&gt;)&lt;/code&gt;&lt;/div&gt;&lt;div class="line number18 index17 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number19 index18 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;int&lt;/code&gt; &lt;code class="csharp plain"&gt;saveGameIndex = 0;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number20 index19 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;string&lt;/code&gt; &lt;code class="csharp plain"&gt;testFilename;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number21 index20 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;do&lt;/code&gt;&lt;/div&gt;&lt;div class="line number22 index21 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number23 index22 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;saveGameIndex++;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number24 index23 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;testFilename = Path.Combine(storageContainer.Path, &lt;/code&gt;&lt;code class="csharp string"&gt;"SaveGame"&lt;/code&gt; &lt;code class="csharp plain"&gt;+ saveGameIndex.ToString() + &lt;/code&gt;&lt;code class="csharp string"&gt;".xml"&lt;/code&gt;&lt;code class="csharp plain"&gt;);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number25 index24 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div class="line number26 index25 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;while&lt;/code&gt; &lt;code class="csharp plain"&gt;(File.Exists(testFilename));&lt;/code&gt;&lt;/div&gt;&lt;div class="line number27 index26 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;filename = testFilename;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number28 index27 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;descriptionFilename = &lt;/code&gt;&lt;code class="csharp string"&gt;"SaveGameDescription"&lt;/code&gt; &lt;code class="csharp plain"&gt;+ saveGameIndex.ToString() + &lt;/code&gt;&lt;code class="csharp string"&gt;".xml"&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number29 index28 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div class="line number30 index29 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;else&lt;/code&gt;&lt;/div&gt;&lt;div class="line number31 index30 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number32 index31 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;filename = Path.Combine(storageContainer.Path, overwriteDescription.FileName);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number33 index32 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;descriptionFilename = &lt;/code&gt;&lt;code class="csharp string"&gt;"SaveGameDescription"&lt;/code&gt; &lt;code class="csharp plain"&gt;+&lt;/code&gt;&lt;/div&gt;&lt;div class="line number34 index33 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;Path.GetFileNameWithoutExtension(overwriteDescription.FileName).Substring(8) + &lt;/code&gt;&lt;code class="csharp string"&gt;".xml"&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number35 index34 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div class="line number36 index35 alt1"&gt; &lt;/div&gt;&lt;div class="line number37 index36 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;using&lt;/code&gt; &lt;code class="csharp plain"&gt;(FileStream stream = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;FileStream(filename, FileMode.Create))&lt;/code&gt;&lt;/div&gt;&lt;div class="line number38 index37 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number39 index38 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;using&lt;/code&gt; &lt;code class="csharp plain"&gt;(XmlWriter xmlWriter = XmlWriter.Create(stream))&lt;/code&gt;&lt;/div&gt;&lt;div class="line number40 index39 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number41 index40 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp comments"&gt;//create and write xml data...&lt;/code&gt;&lt;/div&gt;&lt;div class="line number42 index41 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div class="line number43 index42 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div class="line number44 index43 alt1"&gt; &lt;/div&gt;&lt;div class="line number45 index44 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp comments"&gt;// create the save game description&lt;/code&gt;&lt;/div&gt;&lt;div class="line number46 index45 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;SaveGameDescription description = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;SaveGameDescription();&lt;/code&gt;&lt;/div&gt;&lt;div class="line number47 index46 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;description.FileName = Path.GetFileName(filename);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number48 index47 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;description.ChapterName = IsQuestLineComplete ? &lt;/code&gt;&lt;code class="csharp string"&gt;"Quest Line Complete"&lt;/code&gt; &lt;code class="csharp plain"&gt;: Quest.Name;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number49 index48 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;description.Description = DateTime.Now.ToString();&lt;/code&gt;&lt;/div&gt;&lt;div class="line number50 index49 alt1"&gt; &lt;/div&gt;&lt;div class="line number51 index50 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;using&lt;/code&gt; &lt;code class="csharp plain"&gt;(FileStream stream = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;FileStream(Path.Combine(storageContainer.Path, descriptionFilename), FileMode.Create))&lt;/code&gt;&lt;/div&gt;&lt;div class="line number52 index51 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number53 index52 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;XmlSerializer(&lt;/code&gt;&lt;code class="csharp keyword"&gt;typeof&lt;/code&gt;&lt;code class="csharp plain"&gt;(SaveGameDescription)).Serialize(stream, description);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number54 index53 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div class="line number55 index54 alt2"&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_893319" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;8&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;9&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;10&lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;11&lt;/div&gt;&lt;div class="line number12 index11 alt1"&gt;12&lt;/div&gt;&lt;div class="line number13 index12 alt2"&gt;13&lt;/div&gt;&lt;div class="line number14 index13 alt1"&gt;14&lt;/div&gt;&lt;div class="line number15 index14 alt2"&gt;15&lt;/div&gt;&lt;div class="line number16 index15 alt1"&gt;16&lt;/div&gt;&lt;div class="line number17 index16 alt2"&gt;17&lt;/div&gt;&lt;div class="line number18 index17 alt1"&gt;18&lt;/div&gt;&lt;div class="line number19 index18 alt2"&gt;19&lt;/div&gt;&lt;div class="line number20 index19 alt1"&gt;20&lt;/div&gt;&lt;div class="line number21 index20 alt2"&gt;21&lt;/div&gt;&lt;div class="line number22 index21 alt1"&gt;22&lt;/div&gt;&lt;div class="line number23 index22 alt2"&gt;23&lt;/div&gt;&lt;div class="line number24 index23 alt1"&gt;24&lt;/div&gt;&lt;div class="line number25 index24 alt2"&gt;25&lt;/div&gt;&lt;div class="line number26 index25 alt1"&gt;26&lt;/div&gt;&lt;div class="line number27 index26 alt2"&gt;27&lt;/div&gt;&lt;div class="line number28 index27 alt1"&gt;28&lt;/div&gt;&lt;div class="line number29 index28 alt2"&gt;29&lt;/div&gt;&lt;div class="line number30 index29 alt1"&gt;30&lt;/div&gt;&lt;div class="line number31 index30 alt2"&gt;31&lt;/div&gt;&lt;div class="line number32 index31 alt1"&gt;32&lt;/div&gt;&lt;div class="line number33 index32 alt2"&gt;33&lt;/div&gt;&lt;div class="line number34 index33 alt1"&gt;34&lt;/div&gt;&lt;div class="line number35 index34 alt2"&gt;35&lt;/div&gt;&lt;div class="line number36 index35 alt1"&gt;36&lt;/div&gt;&lt;div class="line number37 index36 alt2"&gt;37&lt;/div&gt;&lt;div class="line number38 index37 alt1"&gt;38&lt;/div&gt;&lt;div class="line number39 index38 alt2"&gt;39&lt;/div&gt;&lt;div class="line number40 index39 alt1"&gt;40&lt;/div&gt;&lt;div class="line number41 index40 alt2"&gt;41&lt;/div&gt;&lt;div class="line number42 index41 alt1"&gt;42&lt;/div&gt;&lt;div class="line number43 index42 alt2"&gt;43&lt;/div&gt;&lt;div class="line number44 index43 alt1"&gt;44&lt;/div&gt;&lt;div class="line number45 index44 alt2"&gt;45&lt;/div&gt;&lt;div class="line number46 index45 alt1"&gt;46&lt;/div&gt;&lt;div class="line number47 index46 alt2"&gt;47&lt;/div&gt;&lt;div class="line number48 index47 alt1"&gt;48&lt;/div&gt;&lt;div class="line number49 index48 alt2"&gt;49&lt;/div&gt;&lt;div class="line number50 index49 alt1"&gt;50&lt;/div&gt;&lt;div class="line number51 index50 alt2"&gt;51&lt;/div&gt;&lt;div class="line number52 index51 alt1"&gt;52&lt;/div&gt;&lt;div class="line number53 index52 alt2"&gt;53&lt;/div&gt;&lt;div class="line number54 index53 alt1"&gt;54&lt;/div&gt;&lt;div class="line number55 index54 alt2"&gt;55&lt;/div&gt;&lt;div class="line number56 index55 alt1"&gt;56&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;//Save the current state of the session, with the given storage device. &lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt; &lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp comments"&gt;// check the parameter&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp keyword"&gt;if&lt;/code&gt; &lt;code class="csharp plain"&gt;((storageDevice == &lt;/code&gt;&lt;code class="csharp keyword"&gt;null&lt;/code&gt;&lt;code class="csharp plain"&gt;) || !storageDevice.IsConnected)&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;return&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt; &lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;&lt;code class="csharp comments"&gt;// open the container Note: using OpenContainer method from previous examples&lt;/code&gt;&lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;&lt;code class="csharp keyword"&gt;using&lt;/code&gt; &lt;code class="csharp plain"&gt;(StorageContainer storageContainer = OpenContainer(storageDevice, Session.SaveGameContainerName))&lt;/code&gt;&lt;/div&gt;&lt;div class="line number12 index11 alt1"&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number13 index12 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;string&lt;/code&gt; &lt;code class="csharp plain"&gt;filename;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number14 index13 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;string&lt;/code&gt; &lt;code class="csharp plain"&gt;descriptionFilename;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number15 index14 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp comments"&gt;// get the filenames&lt;/code&gt;&lt;/div&gt;&lt;div class="line number16 index15 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;if&lt;/code&gt; &lt;code class="csharp plain"&gt;(overwriteDescription == &lt;/code&gt;&lt;code class="csharp keyword"&gt;null&lt;/code&gt;&lt;code class="csharp plain"&gt;)&lt;/code&gt;&lt;/div&gt;&lt;div class="line number17 index16 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number18 index17 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;int&lt;/code&gt; &lt;code class="csharp plain"&gt;saveGameIndex = 0;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number19 index18 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;string&lt;/code&gt; &lt;code class="csharp plain"&gt;testFilename;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number20 index19 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;do&lt;/code&gt;&lt;/div&gt;&lt;div class="line number21 index20 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number22 index21 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;saveGameIndex++;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number23 index22 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;testFilename = &lt;/code&gt;&lt;code class="csharp string"&gt;"SaveGame"&lt;/code&gt; &lt;code class="csharp plain"&gt;+ saveGameIndex.ToString() + &lt;/code&gt;&lt;code class="csharp string"&gt;".xml"&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number24 index23 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div class="line number25 index24 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;while&lt;/code&gt; &lt;code class="csharp plain"&gt;(storageContainer.FileExists(testFilename));&lt;/code&gt;&lt;/div&gt;&lt;div class="line number26 index25 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;filename = testFilename;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number27 index26 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;descriptionFilename = &lt;/code&gt;&lt;code class="csharp string"&gt;"SaveGameDescription"&lt;/code&gt; &lt;code class="csharp plain"&gt;+ saveGameIndex.ToString() + &lt;/code&gt;&lt;code class="csharp string"&gt;".xml"&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number28 index27 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div class="line number29 index28 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;else&lt;/code&gt;&lt;/div&gt;&lt;div class="line number30 index29 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number31 index30 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;filename = overwriteDescription.FileName;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number32 index31 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;descriptionFilename = &lt;/code&gt;&lt;code class="csharp string"&gt;"SaveGameDescription"&lt;/code&gt; &lt;code class="csharp plain"&gt;+&lt;/code&gt;&lt;/div&gt;&lt;div class="line number33 index32 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;Path.GetFileNameWithoutExtension(overwriteDescription.FileName).Substring(8) + &lt;/code&gt;&lt;code class="csharp string"&gt;".xml"&lt;/code&gt;&lt;code class="csharp plain"&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number34 index33 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div class="line number35 index34 alt2"&gt; &lt;/div&gt;&lt;div class="line number36 index35 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp comments"&gt;// Note: using Stream instead of FileStream...&lt;/code&gt;&lt;/div&gt;&lt;div class="line number37 index36 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;using&lt;/code&gt; &lt;code class="csharp plain"&gt;(Stream stream = storageContainer.OpenFile(filename, FileMode.Create))&lt;/code&gt;&lt;/div&gt;&lt;div class="line number38 index37 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number39 index38 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;using&lt;/code&gt; &lt;code class="csharp plain"&gt;(XmlWriter xmlWriter = XmlWriter.Create(stream))&lt;/code&gt;&lt;/div&gt;&lt;div class="line number40 index39 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number41 index40 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp comments"&gt;//create and write xml data...&lt;/code&gt;&lt;/div&gt;&lt;div class="line number42 index41 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div class="line number43 index42 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div class="line number44 index43 alt1"&gt; &lt;/div&gt;&lt;div class="line number45 index44 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp comments"&gt;// create the save game description&lt;/code&gt;&lt;/div&gt;&lt;div class="line number46 index45 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;SaveGameDescription description = &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;SaveGameDescription();&lt;/code&gt;&lt;/div&gt;&lt;div class="line number47 index46 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;description.FileName = Path.GetFileName(filename);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number48 index47 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;description.ChapterName = IsQuestLineComplete ? &lt;/code&gt;&lt;code class="csharp string"&gt;"Quest Line Complete"&lt;/code&gt; &lt;code class="csharp plain"&gt;: Quest.Name;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number49 index48 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;description.Description = DateTime.Now.ToString();&lt;/code&gt;&lt;/div&gt;&lt;div class="line number50 index49 alt1"&gt; &lt;/div&gt;&lt;div class="line number51 index50 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp comments"&gt;// Note: using Stream instead of FileStream...&lt;/code&gt;&lt;/div&gt;&lt;div class="line number52 index51 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;using&lt;/code&gt; &lt;code class="csharp plain"&gt;(Stream stream = storageContainer.OpenFile(descriptionFilename, FileMode.Create))&lt;/code&gt;&lt;/div&gt;&lt;div class="line number53 index52 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number54 index53 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp keyword"&gt;new&lt;/code&gt; &lt;code class="csharp plain"&gt;XmlSerializer(&lt;/code&gt;&lt;code class="csharp keyword"&gt;typeof&lt;/code&gt;&lt;code class="csharp plain"&gt;(SaveGameDescription)).Serialize(stream, description);&lt;/code&gt;&lt;/div&gt;&lt;div class="line number55 index54 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div class="line number56 index55 alt1"&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="info_box"&gt;&lt;span style="font-size: 20px; font-weight: bold;"&gt;VertexShader, PixelShader, ps_1_x&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;Inside your shader (*.fx) files&amp;#8230;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_273793" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;8&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;9&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;VertexShaderOutput VertexShader(...)&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp comments"&gt;//some code&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp plain"&gt;float4 PixelShader(...)&lt;/code&gt;&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp comments"&gt;// some code&lt;/code&gt;&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_889867" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;8&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;9&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;10&lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;11&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp comments"&gt;// VertexShader can not be used&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;VertexShaderOutput&amp;nbsp; VertexShaderFunction(...)&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp comments"&gt;// some code&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp comments"&gt;// PixelShader can not be used&lt;/code&gt;&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;&lt;code class="csharp plain"&gt;float4 PixelShaderFunction(...)&lt;/code&gt;&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number10 index9 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp comments"&gt;// some code&lt;/code&gt;&lt;/div&gt;&lt;div class="line number11 index10 alt2"&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;div&gt;&lt;div id="highlighter_775768" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;8&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;9&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 3.1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;technique&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;pass&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;VertexShader = compile vs_1_1 VertexShader();&lt;/code&gt;&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;PixelShader&amp;nbsp; = compile ps_1_1 PixelShader();&lt;/code&gt;&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id="highlighter_693699" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;6&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;7&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;8&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;9&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// XNA 4.0&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;technique&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;pass&lt;/code&gt;&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div class="line number6 index5 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;VertexShader = compile vs_2_0 VertexShaderFunction(); &lt;/code&gt;&lt;code class="csharp comments"&gt;//VertexShader can not be used &amp;amp; set vs higher than 1_1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number7 index6 alt2"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;PixelShader&amp;nbsp; = compile ps_2_0 PixelShaderFunction(); &lt;/code&gt;&lt;code class="csharp comments"&gt;//PixelShader can not be used &amp;amp; set ps higher than 1_1&lt;/code&gt;&lt;/div&gt;&lt;div class="line number8 index7 alt1"&gt;&lt;code class="csharp spaces"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div class="line number9 index8 alt2"&gt;&lt;code class="csharp plain"&gt;}&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="info_box"&gt;&lt;span style="font-size: 20px; font-weight: bold;"&gt;XNA Model drawn inside out, slightly transparent, missing parts or just looks wrong&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;strong&gt;Add the following code before the XNA Model Draw code&lt;/strong&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;div id="highlighter_769870" class="syntaxhighlighter  csharp"&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;div class="line number1 index0 alt2"&gt;1&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;2&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;3&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt;4&lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;5&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="container"&gt;&lt;div class="line number1 index0 alt2"&gt;&lt;code class="csharp comments"&gt;// Set suitable renderstates for drawing a 3D model&lt;/code&gt;&lt;/div&gt;&lt;div class="line number2 index1 alt1"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.BlendState = BlendState.Opaque;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number3 index2 alt2"&gt;&lt;code class="csharp plain"&gt;GraphicsDevice.DepthStencilState = DepthStencilState.Default;&lt;/code&gt;&lt;/div&gt;&lt;div class="line number4 index3 alt1"&gt; &lt;/div&gt;&lt;div class="line number5 index4 alt2"&gt;&lt;code class="csharp comments"&gt;// your model draw code starts here...&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;br /&gt;Well That&amp;#8217;s all for now, I will continue to add more examples as needed.&lt;br /&gt;Good luck with your games and Remember Indie Games are the future. &lt;/p&gt;&lt;p&gt;-Nelxon Studio&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;img src="http://www.cnblogs.com/furenjun/aggbug/2465865.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/furenjun/archive/2012/04/23/2465865.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/furenjun/archive/2012/04/23/2465860.html</id><title type="text">xna开发资源收集</title><summary type="text">xna开发资源收集</summary><published>2012-04-22T17:34:00Z</published><updated>2012-04-22T17:34:00Z</updated><author><name>DotNet编程</name><uri>http://www.cnblogs.com/furenjun/</uri></author><link rel="alternate" href="http://www.cnblogs.com/furenjun/archive/2012/04/23/2465860.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/furenjun/archive/2012/04/23/2465860.html"/><content type="html"> &lt;p&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;cufon style="width: 85px; height: 16.39px;" class="cufon cufon-canvas" alt="Rendering, "&gt;&lt;canvas style="left: -3px; top: 1px; width: 105px; height: 17px;" height="17" width="105"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Rendering, &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 69px; height: 16.39px;" class="cufon cufon-canvas" alt="Graphics "&gt;&lt;canvas style="left: -3px; top: 1px; width: 88px; height: 17px;" height="17" width="88"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Graphics &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 32px; height: 16.39px;" class="cufon cufon-canvas" alt="and "&gt;&lt;canvas style="left: -3px; top: 1px; width: 52px; height: 17px;" height="17" width="52"&gt;&lt;/canvas&gt;&lt;cufontext&gt;and &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 47px; height: 16.39px;" class="cufon cufon-canvas" alt="Game "&gt;&lt;canvas style="left: -3px; top: 1px; width: 66px; height: 17px;" height="17" width="66"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Game &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 59px; height: 16.39px;" class="cufon cufon-canvas" alt="Engines"&gt;&lt;canvas style="left: -3px; top: 1px; width: 75px; height: 17px;" height="17" width="75"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Engines&lt;/cufontext&gt;&lt;/cufon&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.synapsegaming.com/" target="_blank"&gt;Synapse Gaming SunBurn Engine 2.0&lt;/a&gt; &amp;#8211; Nice Game Engine loaded with features and the Best Support &amp;amp; Community Ever&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.digitalrune.com/Products/GameEngine.aspx" target="_blank"&gt;Digital Rune Engine&lt;/a&gt; &amp;#8211; Great Game Engine&amp;nbsp; (&lt;em&gt;physics, animation,&amp;nbsp; math, multi-threading and more&lt;/em&gt;)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/xen" target="_blank"&gt;Xen Graphics API for XNA&lt;/a&gt; &amp;#8211; rendering tools and much more&lt;/li&gt;&lt;li&gt;&lt;a title="Ploobs Engine for XNA" href="http://ploobs.com.br/?p=725" target="_blank"&gt;Ploobs Engine&lt;/a&gt; &amp;#8211; loaded with shader effects , deferred rendering, lighting, soft shadows, the works.&lt;/li&gt;&lt;li&gt;&lt;a href="http://xnafinalengine.codeplex.com/" target="_blank"&gt;XNA Final Engine&lt;/a&gt; &amp;#8211; rendering, post screen effects, and more&lt;/li&gt;&lt;li&gt;&lt;a href="http://nine.codeplex.com/" target="_blank"&gt;Engine Nine&lt;/a&gt; &amp;#8211; includes, animation, post fx, AI, custom materials, scene management,&amp;nbsp; deferred lighting and more&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.hilva.com/" target="_blank"&gt;Hilva XNA Graphics Engine&lt;/a&gt; &amp;#8211; Rendering Engine, Animation, and more&lt;/li&gt;&lt;li&gt;&lt;a href="http://indiefreaks.com/indiefreaks-game-framework/" target="_blank"&gt;Indiefreaks Game Framework&lt;/a&gt; - Incredible Addition for SunBurn Engine Users&lt;/li&gt;&lt;li&gt;&lt;a href="http://jemgine.codeplex.com/" target="_blank"&gt;Jemgine &lt;/a&gt;- An extendable 2d Game Engine with an level editor&lt;/li&gt;&lt;li&gt;&lt;a href="http://roy-t.nl/index.php/2010/12/28/deferred-rendering-in-xna4-0-source-code/" target="_blank"&gt;Deferred Rendering&lt;/a&gt; &amp;#8211; Roy Triesscheijn updated Catalin Zima&amp;#8217;s Tutorial to XNA 4.0&lt;/li&gt;&lt;li&gt;&lt;a href="http://jcoluna.wordpress.com/" target="_blank"&gt;Jcoluna XNA Samples&lt;/a&gt; &amp;#8211; If you&amp;#8217;re trying to make your own engine, start here.&amp;nbsp; (&lt;em&gt;Shadows, SSAO, Lights, culling&amp;#8230;&lt;/em&gt;)&lt;/li&gt;&lt;li&gt;&lt;a href="http://tomato.codeplex.com/" target="_blank"&gt;Tomato Renderer&lt;/a&gt; &amp;#8211; Open Source Engine with light pre-pass, ssao, depth of field and more (&lt;em&gt;includes user interface&lt;/em&gt;)&lt;/li&gt;&lt;/ul&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;p&gt;&lt;strong&gt;&lt;cufon style="width: 76px; height: 16.39px;" class="cufon cufon-canvas" alt="Character "&gt;&lt;canvas style="left: -3px; top: 1px; width: 95px; height: 17px;" height="17" width="95"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Character &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 77px; height: 16.39px;" class="cufon cufon-canvas" alt="Animation"&gt;&lt;canvas style="left: -3px; top: 1px; width: 91px; height: 17px;" height="17" width="91"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Animation&lt;/cufontext&gt;&lt;/cufon&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.digitalrune.com/Products/GameEngine/Animation.aspx"&gt;Digital Rune Animation&lt;/a&gt; &amp;#8211; Support 2D and 3D animation, Incredible skinned animation pipeline (RECOMMENDED)&lt;/li&gt;&lt;li&gt;&lt;a href="http://sgmotion.codeplex.com/" target="_blank"&gt;SGMotion Animation Library&lt;/a&gt; &amp;#8211; XNAnimation Library integrated with SunBurn&lt;/li&gt;&lt;li&gt;&lt;a href="http://communistgames.blogspot.com/2010/12/animation-library-for-xna-40.html" target="_blank"&gt;Communist Games Animation Library&lt;/a&gt; &amp;#8211; Animation blending, shared skeletons, and more&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/xnanimation" target="_blank"&gt;XNAnimation Library&lt;/a&gt; &amp;#8211; Too many features to list.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/animationcomponents" target="_blank"&gt;XNA Animation Component Library&lt;/a&gt; &amp;#8211; one of the first animation engines, still awesome&lt;/li&gt;&lt;li&gt;&lt;a href="http://creators.xna.com/en-US/tutorial/skinnedmodelextensions" target="_blank"&gt;Skinned Model with Extensions&lt;/a&gt; &amp;#8211; learn something from this tutorial&lt;/li&gt;&lt;li&gt;&lt;a href="http://nine.codeplex.com/" target="_blank"&gt;Engine Nine&lt;/a&gt; &amp;#8211; has an easy to use animation system, for skinned and non skinned models.&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/shawnhar/archive/2010/06/18/merging-animation-files.aspx" target="_blank"&gt;Merge FBX Animation Files&lt;/a&gt; &amp;#8211;&amp;nbsp; hate XNA FBX only uses 1 Take? here&amp;#8217;s the solution&lt;/li&gt;&lt;/ul&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;p&gt;&lt;strong&gt;&lt;cufon style="width: 56px; height: 16.39px;" class="cufon cufon-canvas" alt="Physics"&gt;&lt;canvas style="left: -3px; top: 1px; width: 72px; height: 17px;" height="17" width="72"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Physics&lt;/cufontext&gt;&lt;/cufon&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a title="DigitalRune Physics" href="http://www.digitalrune.com/Products/GameEngine/Physics.aspx" target="_blank"&gt;DigitalRune Physics&lt;/a&gt; &amp;#8211;&amp;nbsp; A module from &lt;em&gt;DigitalRune Engine -&lt;/em&gt; Physics with lots of features,&amp;nbsp; (fast &amp;amp; Xbox, $300)&lt;/li&gt;&lt;li&gt;&lt;a href="http://bepuphysics.codeplex.com/" target="_blank"&gt;Bepu Physics&lt;/a&gt; &amp;#8211; Nice Physics engine with &lt;strong&gt;many features&lt;/strong&gt;, (fast,&amp;nbsp; FREE)&lt;/li&gt;&lt;li&gt;&lt;a title="Jitter Physics" href="http://www.jitter-physics.com/" target="_blank"&gt;Jitter Physics&lt;/a&gt; &amp;#8211;&amp;nbsp; Physics Engine by the author of JigLibX&amp;nbsp; (fast,&amp;nbsp; FREE)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.mataliphysics.com/" target="_blank"&gt;Matali Physics&lt;/a&gt; -fast with lots of potential (fast on PC, average on Xbox 360, $130 &amp;#8211; $260)&lt;/li&gt;&lt;li&gt;&lt;a href="http://henge3d.codeplex.com/" target="_blank"&gt;Henge 3D Physics&lt;/a&gt; &amp;#8211; Lot of Features and multi-threaded (okay on PC, slow on Xbox 360, FREE)&lt;/li&gt;&lt;li&gt;&lt;a href="http://jiglibx.codeplex.com/" target="_blank"&gt;JigLibX&lt;/a&gt; &amp;#8211; old physics enigine (not multi-threaded)&amp;nbsp; (slow, FREE &amp;#8211; use Jitter instead&amp;#8230; )&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/FarseerPhysics" target="_blank"&gt;Farseer Physics Engine&lt;/a&gt; &amp;#8211; a 2D Physics Engine&lt;/li&gt;&lt;li&gt;&lt;a href="http://box2dxna.codeplex.com/" target="_blank"&gt;Box2D.XNA&lt;/a&gt; &amp;#8211; C#/XNA port of Box2D&lt;/li&gt;&lt;/ul&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;p&gt;&lt;strong&gt;&lt;cufon style="width: 43px; height: 16.39px;" class="cufon cufon-canvas" alt="Audio"&gt;&lt;canvas style="left: -3px; top: 1px; width: 58px; height: 17px;" height="17" width="58"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Audio&lt;/cufontext&gt;&lt;/cufon&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://easyxnaaudio.codeplex.com/" target="_blank"&gt;EasyXnaAudio&lt;/a&gt; &amp;#8211; easy interface to load, play, and manage songs and sounds&lt;/li&gt;&lt;li&gt;&lt;a href="http://xnafinalengine.codeplex.com/" target="_blank"&gt;XNA Final Engine&lt;/a&gt; &amp;#8211; Audio engine included in framework&lt;/li&gt;&lt;li&gt;&lt;a href="http://creators.xna.com/en-US/education/catalog/?contenttype=0&amp;amp;devarea=12&amp;amp;sort=1" target="_blank"&gt;Creators Club Audio Examples &lt;/a&gt;- this is all you need for audio in XNA&lt;/li&gt;&lt;/ul&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;p&gt;&lt;strong&gt;&lt;cufon style="width: 68px; height: 16.39px;" class="cufon cufon-canvas" alt="Artificial "&gt;&lt;canvas style="left: -3px; top: 1px; width: 87px; height: 17px;" height="17" width="87"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Artificial &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 91px; height: 16.39px;" class="cufon cufon-canvas" alt="Intelligence "&gt;&lt;canvas style="left: -3px; top: 1px; width: 111px; height: 17px;" height="17" width="111"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Intelligence &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 29px; height: 16.39px;" class="cufon cufon-canvas" alt="(AI)"&gt;&lt;canvas style="left: -3px; top: 1px; width: 46px; height: 17px;" height="17" width="46"&gt;&lt;/canvas&gt;&lt;cufontext&gt;(AI)&lt;/cufontext&gt;&lt;/cufon&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://nine.codeplex.com/" target="_blank"&gt;Engine Nine&lt;/a&gt; &amp;#8211; has a Path Finding and steering behaviors included&lt;/li&gt;&lt;li&gt;&lt;a href="http://sharpsteer.codeplex.com/" target="_blank"&gt;SharpSteer&lt;/a&gt; &amp;#8211; I found a million and 1 uses for this&amp;#8230;&lt;/li&gt;&lt;li&gt;&lt;a href="http://xnacommunity.codeplex.com/wikipage?title=IA_maqestados_eng&amp;amp;referringTitle=IA_maqestados" target="_blank"&gt;State machine-based behavior models&lt;/a&gt; -&amp;nbsp; Good Article, sample old..&lt;/li&gt;&lt;li&gt;&lt;a href="http://xnacommunity.codeplex.com/wikipage?title=Steering%20-%20evitar%20obst%u00e1culos&amp;amp;referringTitle=Ejemplos" target="_blank"&gt;Steering Behaviors,&amp;nbsp; Obstacle Avoidance&lt;/a&gt; &amp;#8211; good Example (in spanish)&lt;/li&gt;&lt;/ul&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;p&gt;&lt;strong&gt;&lt;cufon style="width: 66px; height: 16.39px;" class="cufon cufon-canvas" alt="Particles"&gt;&lt;canvas style="left: -3px; top: 1px; width: 81px; height: 17px;" height="17" width="81"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Particles&lt;/cufontext&gt;&lt;/cufon&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.xnaparticles.com/" target="_blank"&gt;DPSF (Dynamic Particle System Framework) &lt;/a&gt;- tested and approved&lt;/li&gt;&lt;li&gt;&lt;a href="http://mpe.codeplex.com/" target="_blank"&gt;Mercury Particle Engine&lt;/a&gt; &amp;#8211; great engine, has lots of potential&lt;/li&gt;&lt;li&gt;&lt;a href="http://nuclexframework.codeplex.com/" target="_blank"&gt;Nuclex Framework&lt;/a&gt;- multi-threaded particle system&lt;/li&gt;&lt;li&gt;&lt;a href="http://creators.xna.com/en-US/tutorial/particlexml" target="_blank"&gt;XML Particle Sample for XNA Creator Club&lt;/a&gt; &amp;#8211; still one of my favorites&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.digitalrune.com/Products/GameEngine/Particles.aspx" target="_blank"&gt;DigitalRune Particles&lt;/a&gt; &amp;#8211; Very Nice.&amp;#8230;&lt;/li&gt;&lt;/ul&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;p&gt;&lt;strong&gt;&lt;cufon style="width: 74px; height: 16.39px;" class="cufon cufon-canvas" alt="Graphical "&gt;&lt;canvas style="left: -3px; top: 1px; width: 93px; height: 17px;" height="17" width="93"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Graphical &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 39px; height: 16.39px;" class="cufon cufon-canvas" alt="User "&gt;&lt;canvas style="left: -3px; top: 1px; width: 58px; height: 17px;" height="17" width="58"&gt;&lt;/canvas&gt;&lt;cufontext&gt;User &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 79px; height: 16.39px;" class="cufon cufon-canvas" alt="Interfaces "&gt;&lt;canvas style="left: -3px; top: 1px; width: 99px; height: 17px;" height="17" width="99"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Interfaces &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 44px; height: 16.39px;" class="cufon cufon-canvas" alt="(GUI) "&gt;&lt;canvas style="left: -3px; top: 1px; width: 64px; height: 17px;" height="17" width="64"&gt;&lt;/canvas&gt;&lt;cufontext&gt;(GUI) &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 12px; height: 16.39px;" class="cufon cufon-canvas" alt="/ "&gt;&lt;canvas style="left: -3px; top: 1px; width: 31px; height: 17px;" height="17" width="31"&gt;&lt;/canvas&gt;&lt;cufontext&gt;/ &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 42px; height: 16.39px;" class="cufon cufon-canvas" alt="Level "&gt;&lt;canvas style="left: -3px; top: 1px; width: 61px; height: 17px;" height="17" width="61"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Level &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 50px; height: 16.39px;" class="cufon cufon-canvas" alt="Editor "&gt;&lt;canvas style="left: -3px; top: 1px; width: 69px; height: 17px;" height="17" width="69"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Editor &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 39px; height: 16.39px;" class="cufon cufon-canvas" alt="Tools"&gt;&lt;canvas style="left: -3px; top: 1px; width: 55px; height: 17px;" height="17" width="55"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Tools&lt;/cufontext&gt;&lt;/cufon&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.digitalrune.com/Products/GameEngine/GameUI.aspx" target="_blank"&gt;DigitalRune Game UI&lt;/a&gt; &amp;#8211; Basically &lt;em&gt;Neoforce Controls&lt;/em&gt; on steroids, part of&amp;nbsp; the Digital Rune Engine&lt;/li&gt;&lt;li&gt;&lt;a href="http://neoforce.codeplex.com/" target="_blank"&gt;Neoforce Controls &lt;/a&gt;- my Second Favorite tool for Interfaces (now open source)&lt;/li&gt;&lt;li&gt;&lt;a href="http://nuclexframework.codeplex.com/" target="_blank"&gt;Nuclex Framework&lt;/a&gt;- skinnable interface included&lt;/li&gt;&lt;li&gt;&lt;a href="http://xnagizmo.codeplex.com/" target="_blank"&gt;3D XNA Gizmo&lt;/a&gt;- you may need this for level editing&amp;#8230;&lt;/li&gt;&lt;li&gt;&lt;a href="http://xnacommunity.codeplex.com/wikipage?title=XNAEditorEnglish&amp;amp;referringTitle=XNAEditor" target="_blank"&gt;XNA and Windows Forms&lt;/a&gt; &amp;#8211; this article explains the best&lt;/li&gt;&lt;/ul&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;p&gt;&lt;strong&gt;&lt;cufon style="width: 86px; height: 16.39px;" class="cufon cufon-canvas" alt="GameState "&gt;&lt;canvas style="left: -3px; top: 1px; width: 105px; height: 17px;" height="17" width="105"&gt;&lt;/canvas&gt;&lt;cufontext&gt;GameState &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 98px; height: 16.39px;" class="cufon cufon-canvas" alt="Management"&gt;&lt;canvas style="left: -3px; top: 1px; width: 115px; height: 17px;" height="17" width="115"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Management&lt;/cufontext&gt;&lt;/cufon&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.david-amador.com/2010/01/xna-screen-manager/" target="_blank"&gt;Xna Screen Manager&lt;/a&gt; &amp;#8211; clean, simple and easy to use&lt;/li&gt;&lt;li&gt;&lt;a href="http://nuclexframework.codeplex.com/" target="_blank"&gt;Nuclex Framework&lt;/a&gt; &amp;#8211; game manager included (nicely done)&lt;/li&gt;&lt;li&gt;&lt;a href="http://creators.xna.com/en-US/samples/gamestatemanagement" target="_blank"&gt;GameStateManager from Creator&amp;#8217;s Club&lt;/a&gt; &amp;#8211; great starter&amp;nbsp; to build your own&lt;/li&gt;&lt;/ul&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;p&gt;&lt;strong&gt;&lt;cufon style="width: 118px; height: 16.39px;" class="cufon cufon-canvas" alt="Multi-threading"&gt;&lt;canvas style="left: -3px; top: 1px; width: 132px; height: 17px;" height="17" width="132"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Multi-threading&lt;/cufontext&gt;&lt;/cufon&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/ParallelTasks" target="_blank"&gt;ParallelTasks Threading Library&lt;/a&gt;-&amp;nbsp; makes it easy to multi-thread your game&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sgtconker.com/2009/11/article-multi-threading-your-xna/" target="_blank"&gt;Multi-threading your XNA Game&lt;/a&gt; &amp;#8211; great article and example&lt;/li&gt;&lt;li&gt;&lt;a href="http://software.intel.com/en-us/articles/designing-the-framework-of-a-parallel-game-engine/" target="_blank"&gt;Designing the Framework of a Parallel Game Engine&lt;/a&gt; &amp;#8211; just read it&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.digitalrune.com/Products/GameEngine.aspx" target="_blank"&gt;DigitalRune Engine&lt;/a&gt; &amp;#8211; Threading Library Included in Engine (RECOMMENDED)&lt;/li&gt;&lt;/ul&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;p&gt;&lt;strong&gt;&lt;cufon style="width: 52px; height: 16.39px;" class="cufon cufon-canvas" alt="Useful "&gt;&lt;canvas style="left: -3px; top: 1px; width: 71px; height: 17px;" height="17" width="71"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Useful &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 52px; height: 16.39px;" class="cufon cufon-canvas" alt="Extras "&gt;&lt;canvas style="left: -3px; top: 1px; width: 71px; height: 17px;" height="17" width="71"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Extras &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 32px; height: 16.39px;" class="cufon cufon-canvas" alt="and "&gt;&lt;canvas style="left: -3px; top: 1px; width: 52px; height: 17px;" height="17" width="52"&gt;&lt;/canvas&gt;&lt;cufontext&gt;and &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 62px; height: 16.39px;" class="cufon cufon-canvas" alt="Services"&gt;&lt;canvas style="left: -3px; top: 1px; width: 77px; height: 17px;" height="17" width="77"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Services&lt;/cufontext&gt;&lt;/cufon&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.digitalrune.com/Products/Geometry/Overview.aspx" target="_blank"&gt;DigitalRune Math and Geometry Libraries&lt;/a&gt;-&amp;nbsp; This comes with the DigitalRune Engine (RECOMMENDED)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.roastedamoeba.com/blog/archive/2010/12/09/xbuilder-v-released" target="_blank"&gt;XBuilder 2.0&lt;/a&gt; &amp;#8211; This lets you preview your content assets right in Visual Studio&lt;/li&gt;&lt;li&gt;&lt;a href="http://nshader.codeplex.com/" target="_blank"&gt;NShader 1.1&lt;/a&gt; &amp;#8211; Syntax Highlighting for your HLSL files&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.roastedamoeba.com/blog/archive/2010/11/13/introducing-stitchup-generating-shaders-from-hlsl-shader-fragments" target="_blank"&gt;StitchUp&lt;/a&gt; &amp;#8211; Generate Shaders from HLSL Shader Fragments&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.mixamo.com/" target="_blank"&gt;Mixamo&lt;/a&gt; &amp;#8211; need Animation for your Characters?&lt;/li&gt;&lt;li&gt;&lt;a href="http://mocap.cs.cmu.edu/" target="_blank"&gt;CMU Mocap Database &lt;/a&gt;-&amp;nbsp; need the largest collection of free Mocap available?&lt;/li&gt;&lt;li&gt;&lt;a href="http://hyperduckmusicstudios.bandcamp.com/" target="_blank"&gt;HyperDuck Music Studios&lt;/a&gt; &amp;#8211; need custom music for your game?&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.fontsquirrel.com/" target="_blank"&gt;Font Squirrel&lt;/a&gt; &amp;#8211;&amp;nbsp; need Free Commercial-Use Fonts for your game?&lt;/li&gt;&lt;/ul&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;p&gt;&lt;strong&gt;&lt;cufon style="width: 66px; height: 16.39px;" class="cufon cufon-canvas" alt="Articles, "&gt;&lt;canvas style="left: -3px; top: 1px; width: 85px; height: 17px;" height="17" width="85"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Articles, &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 46px; height: 16.39px;" class="cufon cufon-canvas" alt="Blogs "&gt;&lt;canvas style="left: -3px; top: 1px; width: 66px; height: 17px;" height="17" width="66"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Blogs &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 32px; height: 16.39px;" class="cufon cufon-canvas" alt="and "&gt;&lt;canvas style="left: -3px; top: 1px; width: 52px; height: 17px;" height="17" width="52"&gt;&lt;/canvas&gt;&lt;cufontext&gt;and &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 66px; height: 16.39px;" class="cufon cufon-canvas" alt="Tutorials"&gt;&lt;canvas style="left: -3px; top: 1px; width: 81px; height: 17px;" height="17" width="81"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Tutorials&lt;/cufontext&gt;&lt;/cufon&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://gamedevelopedia.com/" target="_blank"&gt;Game Developedia&lt;/a&gt; &amp;#8211; Nice Beginner XNA 4.0 Tutorials&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.robotfootgames.com/xna-tutorials" target="_blank"&gt;Tutorials by Robot Foot Games&lt;/a&gt; &amp;#8211; nice 2D sprite Tutorials&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/49/XNA-4-0-Class-Diagrams.aspx" target="_blank"&gt;XNA 4.0 Class Diagrams&lt;/a&gt; &amp;#8211; extremely useful for programmers&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.roastedamoeba.com/projects/" target="_blank"&gt;RoastedAmoeba Projects&lt;/a&gt; &amp;#8211; Awesome XNA 4.0 Projects&lt;/li&gt;&lt;li&gt;&lt;a href="http://permafrostgaming.squarespace.com/dev-blog-copy/2010/9/16/acid-rain-tilemap-and-camera-system-xna-tutorial.html" target="_blank"&gt;TileMap and Camera System Tutoria&lt;/a&gt;l&amp;nbsp; - good article&lt;/li&gt;&lt;li&gt;&lt;a href="http://badcorporatelogo.wordpress.com/2010/10/31/xna-content-pipeline-debugging-4-0/" target="_blank"&gt;XNA Content Pipeline Debugging&lt;/a&gt; &amp;#8211; helps you figure old those pipeline problems&lt;/li&gt;&lt;li&gt;&lt;a href="http://dotnetperls.com/" target="_blank"&gt;Dot Net Perls&lt;/a&gt; &amp;#8211; Best resource for looking for c# snippets and samples&lt;/li&gt;&lt;li&gt;&lt;a href="http://spacedjase.com/post/2010/07/02/How-to-eliminate-frame-by-frame-Garbage-Generation-using-CLR-Profiler.aspx" target="_blank"&gt;Eliminate Garbage with CLR Profiler&lt;/a&gt; &amp;#8211; optimize you game&amp;#8230;&lt;/li&gt;&lt;li&gt;&lt;a href="http://roy-t.nl/index.php/2010/02/21/xna-simple-arcballcamera/" target="_blank"&gt;Gimbal lock free Arcball camera&lt;/a&gt; &amp;#8211; nice camera tutorial&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sgtconker.com/2010/09/article-xna-farseer-platform-physics-tutorial/" target="_blank"&gt;How to use Farseer in platform game&lt;/a&gt; &amp;#8211; Platform Physics Tutorial&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.krissteele.net/blogdetails.aspx?id=211" target="_blank"&gt;Parallax Starfield&lt;/a&gt; &amp;#8211; great example of parallax scrolling&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sgtconker.com/2010/12/articles-mvc-in-games/" target="_blank"&gt;MVC in Game&lt;/a&gt;s &amp;#8211; Model View Controller advantages&lt;/li&gt;&lt;li&gt;&lt;a href="http://gamedev.stackexchange.com/questions/tagged/xna" target="_blank"&gt;XNA Questions&lt;/a&gt; &amp;#8211; You may find your answer here&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sgtconker.com/" target="_blank"&gt;Sgt. Conker&lt;/a&gt; &amp;#8211; Lots of News and Resources for XNA&lt;/li&gt;&lt;li&gt;&lt;a href="http://communistgames.blogspot.com/" target="_blank"&gt;Communist Games Blogs&lt;/a&gt; &amp;#8211; Lots XNA 4.0 Code Snippets and practices&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/shawnhar/" target="_blank"&gt;Shawn Hargreaves Blog&lt;/a&gt;- He Knows XNA 4.0 Personally&lt;strong&gt;&lt;em&gt;Not XNA Exclusive Articles, but Handy&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/" target="_blank"&gt;General Game Networking&lt;/a&gt; &amp;#8211; learn more building online multiplayer games&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.gamasutra.com/view/feature/4286/game_ui_discoveries_what_players_.php" target="_blank"&gt;Game User Interfaces&lt;/a&gt; &amp;#8211; What players wants&lt;/li&gt;&lt;li&gt;&lt;a href="http://h3.gd/code/nucleus/" target="_blank"&gt;Nucleus High Level Engine Design&lt;/a&gt; &amp;#8211; Great Design notes&lt;/li&gt;&lt;/ul&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;p&gt;&lt;strong&gt;&lt;cufon style="width: 35px; height: 16.39px;" class="cufon cufon-canvas" alt="XNA "&gt;&lt;canvas style="left: -3px; top: 1px; width: 54px; height: 17px;" height="17" width="54"&gt;&lt;/canvas&gt;&lt;cufontext&gt;XNA &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 29px; height: 16.39px;" class="cufon cufon-canvas" alt="4.0 "&gt;&lt;canvas style="left: -3px; top: 1px; width: 49px; height: 17px;" height="17" width="49"&gt;&lt;/canvas&gt;&lt;cufontext&gt;4.0 &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 46px; height: 16.39px;" class="cufon cufon-canvas" alt="Books"&gt;&lt;canvas style="left: -3px; top: 1px; width: 62px; height: 17px;" height="17" width="62"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Books&lt;/cufontext&gt;&lt;/cufon&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://www.packtpub.com/xna-4-0-game-development-by-example-beginners-guide/book" target="_blank"&gt;XNA 4.0 Game Development by Example: Beginner&amp;#8217;s Guide&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.packtpub.com/3d-graphics-with-xna-game-studio-4-0/book" target="_blank"&gt;3D Graphics with XNA Game Studio 4.0&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/XNA-Game-Studio-4-0-Programming/dp/0672333457" target="_blank"&gt;XNA Game Studio 4.0 Programming: Developing for Windows Phone and Xbox Live&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/1449394620/" target="_blank"&gt;Learning XNA 4.0&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/Complete-XNA-Game-Studio-4-0/dp/1584505370/" target="_blank"&gt;The Complete XNA Game Studio 4.0: An Exploration into the XNA Framework Library&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;p&gt;&lt;strong&gt;&lt;cufon style="width: 30px; height: 16.39px;" class="cufon cufon-canvas" alt="Are "&gt;&lt;canvas style="left: -3px; top: 1px; width: 49px; height: 17px;" height="17" width="49"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Are &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 32px; height: 16.39px;" class="cufon cufon-canvas" alt="you "&gt;&lt;canvas style="left: -3px; top: 1px; width: 51px; height: 17px;" height="17" width="51"&gt;&lt;/canvas&gt;&lt;cufontext&gt;you &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 50px; height: 16.39px;" class="cufon cufon-canvas" alt="trying "&gt;&lt;canvas style="left: -3px; top: 1px; width: 69px; height: 17px;" height="17" width="69"&gt;&lt;/canvas&gt;&lt;cufontext&gt;trying &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 20px; height: 16.39px;" class="cufon cufon-canvas" alt="to "&gt;&lt;canvas style="left: -3px; top: 1px; width: 39px; height: 17px;" height="17" width="39"&gt;&lt;/canvas&gt;&lt;cufontext&gt;to &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 60px; height: 16.39px;" class="cufon cufon-canvas" alt="convert "&gt;&lt;canvas style="left: -3px; top: 1px; width: 80px; height: 17px;" height="17" width="80"&gt;&lt;/canvas&gt;&lt;cufontext&gt;convert &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 35px; height: 16.39px;" class="cufon cufon-canvas" alt="XNA "&gt;&lt;canvas style="left: -3px; top: 1px; width: 54px; height: 17px;" height="17" width="54"&gt;&lt;/canvas&gt;&lt;cufontext&gt;XNA &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 22px; height: 16.39px;" class="cufon cufon-canvas" alt="3.1 "&gt;&lt;canvas style="left: -3px; top: 1px; width: 42px; height: 17px;" height="17" width="42"&gt;&lt;/canvas&gt;&lt;cufontext&gt;3.1 &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 65px; height: 16.39px;" class="cufon cufon-canvas" alt="projects "&gt;&lt;canvas style="left: -3px; top: 1px; width: 84px; height: 17px;" height="17" width="84"&gt;&lt;/canvas&gt;&lt;cufontext&gt;projects &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 20px; height: 16.39px;" class="cufon cufon-canvas" alt="to "&gt;&lt;canvas style="left: -3px; top: 1px; width: 39px; height: 17px;" height="17" width="39"&gt;&lt;/canvas&gt;&lt;cufontext&gt;to &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 35px; height: 16.39px;" class="cufon cufon-canvas" alt="XNA "&gt;&lt;canvas style="left: -3px; top: 1px; width: 54px; height: 17px;" height="17" width="54"&gt;&lt;/canvas&gt;&lt;cufontext&gt;XNA &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 34px; height: 16.39px;" class="cufon cufon-canvas" alt="4.0?"&gt;&lt;canvas style="left: -3px; top: 1px; width: 49px; height: 17px;" height="17" width="49"&gt;&lt;/canvas&gt;&lt;cufontext&gt;4.0?&lt;/cufontext&gt;&lt;/cufon&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a title="XNA 3.1 to XNA 4.0 Cheat Sheet" href="http://nelxon.com/resources/xna-3-1-to-xna-4-0-cheatsheet/" target="_blank"&gt;XNA 3.1 to XNA 4.0 Cheat Sheet&lt;/a&gt; &amp;#8211; Loaded with example of how to convert projects&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/shawnhar/archive/2010/03/16/breaking-changes-in-xna-game-studio-4-0.aspx" target="_blank"&gt;Breaking changes in XNA Game Studio 4.0&lt;/a&gt; &amp;#8211; things you should know before converting&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/grozen/archive/2010/10/23/converting-a-3d-xna-3-0-game-to-xna-4-0-an-example.aspx" target="_blank"&gt;3D XNA 3.1 game to XNA 4.0 &amp;#8211; an example &lt;/a&gt; -pixel shaders ,xap files,&amp;nbsp; DepthStencilBuffer (fixes)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.hexworld.co.uk/blog/?cat=9" target="_blank"&gt;XNA 3.1 to XNA 4.0&lt;/a&gt; &amp;#8211; RenderTarget2D, renderstate, effectpass, vertexdeclaration (fixes)&lt;/li&gt;&lt;li&gt;&lt;a href="http://communistgames.blogspot.com/2010/10/converting-between-texture2d-and-image.html" target="_blank"&gt;Coverting Between Texture2D and Image&lt;/a&gt; &amp;#8211; Texture2D FromFile (fix)&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/shawnhar/archive/2010/04/05/spritebatch-and-custom-renderstates-in-xna-game-studio-4-0.aspx" target="_blank"&gt;SpriteBatch and custom renderstates&lt;/a&gt; &amp;#8211; SpriteBatch, SpriteBlendMode, SaveStateMode (fixes)&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/shawnhar/archive/2010/03/26/rendertarget-changes-in-xna-game-studio-4-0.aspx" target="_blank"&gt;Rendertarget changes&lt;/a&gt; &amp;#8211; RenderTarget2D, GraphicsDevice.SetRenderTarget (fixes)&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/shawnhar/archive/2010/04/05/spritebatch-and-custom-shaders-in-xna-game-studio-4-0.aspx" target="_blank"&gt;SpriteBatch and custom shaders&lt;/a&gt; &amp;#8211; SpriteBatch Improvement (update details)&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/shawnhar/archive/2010/03/30/resolvebackbuffer-and-resolvetexture2d-in-xna-game-studio-4-0.aspx" target="_blank"&gt;ResolveBackBuffer and ResolveTexture2D &lt;/a&gt;- Where are they?&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/shawnhar/archive/2010/04/22/effect-api-changes-in-xna-game-studio-4-0.aspx" target="_blank"&gt;Effect API Changes &lt;/a&gt;- effect.Begin(), passes.Begin() (fixes)&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/shawnhar/archive/2010/05/05/effect-interfaces-in-xna-game-studio-4-0.aspx" target="_blank"&gt;Effect Interfaces&lt;/a&gt; &amp;#8211;&amp;nbsp; BasicEffect updates, Built in Types (fixes)&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/shawnhar/archive/2010/06/18/spritebatch-and-renderstates-in-xna-game-studio-4-0.aspx" target="_blank"&gt;SpriteBatch and renderStates&lt;/a&gt; &amp;#8211; fix 3D graphics drawn incorrectly when 2D objects on Screen&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/shawnhar/archive/2010/04/19/vertex-data-in-xna-game-studio-4-0.aspx" target="_blank"&gt;Vertex Data&lt;/a&gt; &amp;#8211; VertexDeclaration, VertexElements, SizeInBytes, VertexBuffer (fixes)&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/shawnhar/archive/2010/03/22/point-sprites-in-xna-game-studio-4-0.aspx" target="_blank"&gt;Point Sprites&lt;/a&gt; &amp;#8211; Where are they?&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/shawnhar/archive/2010/04/02/state-objects-in-xna-game-studio-4-0.aspx" target="_blank"&gt;State Objects&lt;/a&gt; &amp;#8211; SaveStateMode, SaveStateBlock, RenderState, BlendFunction, (fixes)&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/shawnhar/archive/2010/04/13/elapsedrealtime-and-totalrealtime-in-xna-game-studio-4-0.aspx" target="_blank"&gt;ElapsedRealTime and TotalRealTime&lt;/a&gt; &amp;#8211; understanding the time changes (update details)&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/shawnhar/archive/2010/06/17/drawinstancedprimitives-in-xna-game-studio-4-0.aspx" target="_blank"&gt;DrawIntancedPrimitives&lt;/a&gt; &amp;#8211; mesh instancing, state batching, shader instancing (update details)&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/shawnhar/archive/2010/07/09/rendertarget-formats-in-xna-game-studio-4-0.aspx" target="_blank"&gt;Rendertarget formats&lt;/a&gt; &amp;#8211; details on backbuffer formats and rendertarget formats&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/shawnhar/archive/2010/07/19/selecting-reach-vs-hidef.aspx" target="_blank"&gt;Reach vs HiDef&lt;/a&gt; &amp;#8211; things you should know&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/shawnhar/archive/2010/05/03/new-effects-in-the-content-pipeline.aspx" target="_blank"&gt;New Effects built-in Content Pipeline&lt;/a&gt; &amp;#8211; BasicEffect, SkinnedEffect, EnvironMapEffect and more&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/shawnhar/archive/2010/04/14/viewport-tweaks-in-xna-game-studio-4-0.aspx" target="_blank"&gt;Viewport Tweaks&lt;/a&gt; &amp;#8211; Updates to Viewport Objects and properties&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/shawnhar/archive/2010/03/31/color-constructors-in-xna-game-studio-4-0.aspx" target="_blank"&gt;Color constructors&lt;/a&gt; &amp;#8211; updates to Color&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;*Most of the articles above are from Shawn Hargreaves Blog,  posted here to make them easier to find.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: 13px; font-weight: normal;"&gt;&lt;span class="hr "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;cufon style="width: 41px; height: 16.39px;" class="cufon cufon-canvas" alt="Sites "&gt;&lt;canvas style="left: -3px; top: 1px; width: 61px; height: 17px;" height="17" width="61"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Sites &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 36px; height: 16.39px;" class="cufon cufon-canvas" alt="that "&gt;&lt;canvas style="left: -3px; top: 1px; width: 55px; height: 17px;" height="17" width="55"&gt;&lt;/canvas&gt;&lt;cufontext&gt;that &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 68px; height: 16.39px;" class="cufon cufon-canvas" alt="promote "&gt;&lt;canvas style="left: -3px; top: 1px; width: 87px; height: 17px;" height="17" width="87"&gt;&lt;/canvas&gt;&lt;cufontext&gt;promote &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 32px; height: 16.39px;" class="cufon cufon-canvas" alt="and "&gt;&lt;canvas style="left: -3px; top: 1px; width: 52px; height: 17px;" height="17" width="52"&gt;&lt;/canvas&gt;&lt;cufontext&gt;and &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 54px; height: 16.39px;" class="cufon cufon-canvas" alt="review "&gt;&lt;canvas style="left: -3px; top: 1px; width: 73px; height: 17px;" height="17" width="73"&gt;&lt;/canvas&gt;&lt;cufontext&gt;review &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 41px; height: 16.39px;" class="cufon cufon-canvas" alt="Xbox "&gt;&lt;canvas style="left: -3px; top: 1px; width: 61px; height: 17px;" height="17" width="61"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Xbox &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 42px; height: 16.39px;" class="cufon cufon-canvas" alt="Indie "&gt;&lt;canvas style="left: -3px; top: 1px; width: 61px; height: 17px;" height="17" width="61"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Indie &lt;/cufontext&gt;&lt;/cufon&gt;&lt;cufon style="width: 51px; height: 16.39px;" class="cufon cufon-canvas" alt="Games"&gt;&lt;canvas style="left: -3px; top: 1px; width: 66px; height: 17px;" height="17" width="66"&gt;&lt;/canvas&gt;&lt;cufontext&gt;Games&lt;/cufontext&gt;&lt;/cufon&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://indiegamerchick.com/" target="_blank"&gt;Indie Gamer Chick&lt;/a&gt; &amp;#8211; If she likes your game obviously you did something right. &lt;em&gt;Brutally Honest Indie Game Reviews.&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://xboxindies.teamkobun.com/" target="_blank"&gt;Kobun&amp;#8217;s Xbox Indies Page&lt;/a&gt; &amp;#8211; Xbox Indie Games Recommendations and Reviews&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.armlessoctopus.com/" target="_blank"&gt;Armless Octopus&lt;/a&gt; &amp;#8211; Xbox Indie Game Reviews&lt;/li&gt;&lt;li&gt;&lt;a href="http://indienerds.com/" target="_blank"&gt;Indie Nerds&lt;/a&gt; &amp;#8211; Games worth playing&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.gamemarx.com/" target="_blank"&gt;GameMarx&lt;/a&gt; &amp;#8211;&amp;nbsp; A site dedicated to Xbox Indie Games (news, reviews, podcasts and more)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.xboxhornet.com/" target="_blank"&gt;XboxHornet&lt;/a&gt; &amp;#8211; Loaded with Reviews and Xbox Indie Game Related Articles&lt;/li&gt;&lt;li&gt;&lt;a href="http://writingsofmassdeduction.com/" target="_blank"&gt;Writings of Mass Deduction&lt;/a&gt; &amp;#8211; Everyday A New Game Review (&lt;em&gt;seeking the best games&lt;/em&gt;)&lt;/li&gt;&lt;li&gt;&lt;a href="http://8bithorse.blogspot.com/" target="_blank"&gt;8 Bit Horse &lt;/a&gt;- Where 2D Lives&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.indiegames-uprising.com/" target="_blank"&gt;Indie Game Uprising&lt;/a&gt; &amp;#8211;&amp;nbsp; Look for High Quality Xbox Indie Games released every season&lt;/li&gt;&lt;li&gt;&lt;a href="http://kotaku.com/#!xboxindies/forum" target="_blank"&gt;Kotaku XboxIndies&lt;/a&gt; &amp;#8211; Lots of review and Indie game trailers&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.gametrailers.com/platformlist/xblig/index.html" target="_blank"&gt;GameTrailers Xbox Indie Games&lt;/a&gt; &amp;#8211;&amp;nbsp; Lots of Xbox Indie Game Trailers&lt;/li&gt;&lt;li&gt;&lt;a href="http://sfx-360.com/" target="_blank"&gt;SFX-360&lt;/a&gt; &amp;#8211; Some Xbox Indie Games reviews (&lt;em&gt;not many&lt;/em&gt;)&lt;/li&gt;&lt;/ul&gt; &lt;img src="http://www.cnblogs.com/furenjun/aggbug/2465860.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/furenjun/archive/2012/04/23/2465860.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/furenjun/archive/2012/04/21/hightmap.html</id><title type="text">解决:Cannot find ContentTypeReader HeightmapCollision.HeightMapInfoReader</title><summary type="text">高程图hightmap信息加载错误的原因及解决办法。</summary><published>2012-04-21T06:20:00Z</published><updated>2012-04-21T06:20:00Z</updated><author><name>DotNet编程</name><uri>http://www.cnblogs.com/furenjun/</uri></author><link rel="alternate" href="http://www.cnblogs.com/furenjun/archive/2012/04/21/hightmap.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/furenjun/archive/2012/04/21/hightmap.html"/><content type="html">&lt;p&gt; 在调试 hightmap图生成 3d地形，在调用 &lt;/p&gt;&lt;p&gt;&amp;nbsp; terrain = Content.Load&amp;lt;Model&amp;gt;("terrain");语句时出现以下错误提示：&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/furenjun/contentexception.png" width="452" height="289" /&gt;&lt;/p&gt;&lt;p&gt;原因：&lt;/p&gt;&lt;p&gt;需要更改 HeightMapInfoContent.cs 文件中的以下方法中的 HeightMapInfo类和HeightMapInfoReader类的命名空间，改成你实际的命名空间名称，该命名空间名称应与你项目命名空间名称一致：&lt;/p&gt;&lt;p&gt;（注:上面说的两个类在HeightMapInfo.cs文件中。）&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;override&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;GetRuntimeType(TargetPlatform&amp;nbsp;targetPlatform)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;...&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;override&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;GetRuntimeReader(TargetPlatform&amp;nbsp;targetPlatform)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;...&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;如下图所示：&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/furenjun/contentexceptionSolution.png" width="1370" height="518" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;本例修改结果如下所示：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&amp;nbsp;Tells&amp;nbsp;the&amp;nbsp;content&amp;nbsp;pipeline&amp;nbsp;what&amp;nbsp;CLR&amp;nbsp;type&amp;nbsp;the&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&amp;nbsp;data&amp;nbsp;will&amp;nbsp;be&amp;nbsp;loaded&amp;nbsp;into&amp;nbsp;at&amp;nbsp;runtime.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;override&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;GetRuntimeType(TargetPlatform&amp;nbsp;targetPlatform)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;hightmapTerrain.HeightMapInfo,&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&amp;nbsp;+&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;hightmapTerrain,&amp;nbsp;Version=1.0.0.0,&amp;nbsp;Culture=neutral&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&amp;nbsp;Tells&amp;nbsp;the&amp;nbsp;content&amp;nbsp;pipeline&amp;nbsp;what&amp;nbsp;worker&amp;nbsp;type&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&amp;nbsp;will&amp;nbsp;be&amp;nbsp;used&amp;nbsp;to&amp;nbsp;load&amp;nbsp;the&amp;nbsp;data.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;override&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;GetRuntimeReader(TargetPlatform&amp;nbsp;targetPlatform)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;hightmapTerrain.HeightMapInfoReader,&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&amp;nbsp;+&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;hightmapTerrain,&amp;nbsp;Version=1.0.0.0,&amp;nbsp;Culture=neutral&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;img src="http://www.cnblogs.com/furenjun/aggbug/2461455.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/furenjun/archive/2012/04/21/hightmap.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/furenjun/archive/2012/04/15/2450213.html</id><title type="text">office 2010 激活信息查看</title><summary type="text">office 2010 激活信息查看</summary><published>2012-04-15T07:12:00Z</published><updated>2012-04-15T07:12:00Z</updated><author><name>DotNet编程</name><uri>http://www.cnblogs.com/furenjun/</uri></author><link rel="alternate" href="http://www.cnblogs.com/furenjun/archive/2012/04/15/2450213.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/furenjun/archive/2012/04/15/2450213.html"/><content type="html">&lt;p&gt; 开始--&amp;gt;cmd.exe&lt;/p&gt;&lt;p&gt;输入以下命令：&lt;/p&gt;&lt;p&gt;cd C:\Program Files\Microsoft Office\Office14&amp;nbsp; &lt;br /&gt;cscript ospp.vbs /dstatus&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/furenjun/office激活信息查看.png" width="744" height="174" /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/furenjun/aggbug/2450213.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/furenjun/archive/2012/04/15/2450213.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/furenjun/archive/2012/04/13/2445297.html</id><title type="text">[转]：DEM数据和影像数据下载汇总</title><summary type="text">DEM数据和影像数据下载汇总</summary><published>2012-04-13T02:00:00Z</published><updated>2012-04-13T02:00:00Z</updated><author><name>DotNet编程</name><uri>http://www.cnblogs.com/furenjun/</uri></author><link rel="alternate" href="http://www.cnblogs.com/furenjun/archive/2012/04/13/2445297.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/furenjun/archive/2012/04/13/2445297.html"/><content type="html"> &lt;p&gt;[转]：DEM数据和影像数据下载汇总 &lt;br /&gt;&lt;strong&gt;一、DEM数据和影像数据下载网址&lt;br /&gt;&lt;/strong&gt;&amp;nbsp;地球系统科学数据共享平台：&lt;a href="http://www.geodata.cn/"&gt;http://www.geodata.cn/&lt;/a&gt; &lt;br /&gt;&amp;nbsp;中国西部环境与生态科学数据中心：&lt;a href="http://westdc.westgis.ac.cn/"&gt;http://westdc.westgis.ac.cn/&lt;/a&gt; &lt;br /&gt;&amp;nbsp;中国科学院科学数据库：&lt;a href="http://www.csdb.cn/"&gt;http://www.csdb.cn/&lt;/a&gt; &lt;br /&gt;&amp;nbsp;国际科学数据服务平台：&lt;a href="http://datamirror.csdb.cn/"&gt;http://datamirror.csdb.cn/&lt;/a&gt; &lt;br /&gt;&amp;nbsp;国土资源科学数据共享：&lt;a href="http://www.resdata.cn/"&gt;http://www.resdata.cn/&lt;/a&gt; &lt;br /&gt;&amp;nbsp;中华人民共和国国家统计局：&lt;a href="http://www.stats.gov.cn/"&gt;http://www.stats.gov.cn/&lt;/a&gt; &lt;br /&gt;&amp;nbsp;国家地震科学数据共享中心：&lt;a href="http://data.earthquake.cn/"&gt;http://data.earthquake.cn/&lt;/a&gt; &lt;br /&gt;&amp;nbsp;中国气象科学数据共享服务网：&lt;a href="http://cdc.cma.gov.cn/"&gt;http://cdc.cma.gov.cn/&lt;/a&gt; &lt;br /&gt;&amp;nbsp;国家基础地理信息中心：&lt;a href="http://ngcc.sbsm.gov.cn/guide"&gt;http://ngcc.sbsm.gov.cn/guide&lt;/a&gt; &lt;br /&gt;&amp;nbsp;国家气候中心：&lt;a href="http://ncc.cma.gov.cn/"&gt;http://ncc.cma.gov.cn/&lt;/a&gt; &lt;br /&gt;&amp;nbsp;中国台风网：&lt;a href="http://www.typhoon.gov.cn/"&gt;http://www.typhoon.gov.cn/&lt;/a&gt; &lt;br /&gt;&amp;nbsp;数字黑河：&lt;a href="http://heihe.westgis.ac.cn/"&gt;http://heihe.westgis.ac.cn/&lt;/a&gt; &lt;br /&gt;&amp;nbsp;中国资源卫星应用中心：&lt;a href="http://www.cresda.com/"&gt;http://www.cresda.com/&lt;/a&gt; &lt;br /&gt;&amp;nbsp;国家基础地理信息系统：&lt;a href="http://nfgis.nsdi.gov.cn/"&gt;http://nfgis.nsdi.gov.cn/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;二、最&amp;#8220;牛&amp;#8221;免费下载遥感影像和DEM的网址大全&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;1.http://glcfapp.umiacs.umd.edu:8080/esdi/search.jsp&lt;br /&gt;2.http://glovis.usgs.gov/&lt;br /&gt;3.http://disc.sci.gsfc.nasa.gov/data/datapool/&lt;br /&gt;4.http://edc.usgs.gov/products/elevation/gtopo30/hydro/index.html&lt;br /&gt;5.http://data.geocomm.com/catalog/index.html&lt;br /&gt;6.http://edcsns17.cr.usgs.gov/EarthExplorer/&lt;br /&gt;7.http://www.digitalglobe.com/index.php/27/Sample+Imagery+Gallery&lt;br /&gt;8.http://glcf.umiacs.umd.edu/data/&lt;br /&gt;9.landsat etm+ and tm images for free&lt;br /&gt;&lt;a href="http://www.landsat.org/ortho/index.htm"&gt;http://www.landsat.org/ortho/index.htm&lt;/a&gt;&lt;br /&gt;10中巴卫星&lt;br /&gt;&lt;a href="http://www.cresda.com.cn/cn/default.asp"&gt;http://www.cresda.com.cn/cn/default.asp&lt;/a&gt;&lt;br /&gt;11.NOAA&lt;br /&gt;&lt;a href="http://www.class.noaa.gov/nsaa/p"&gt;http://www.class.noaa.gov/nsaa/p&lt;/a&gt; &amp;#8230; 2585A2A3950668E84A0|xGv00|fcc8d4de8197f69fde70263fb4d52380&lt;/p&gt;&lt;p&gt;&lt;strong&gt;三、全球高精度DEM免费下载&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;全球各国shape数据下载，包括矢量要素、dem数据、遥感图片，免费，精度不知。&lt;a href="http://biogeo.berkeley.edu/bgm/gdata.php"&gt;http://biogeo.berkeley.edu/bgm/gdata.php&lt;/a&gt;&amp;nbsp;&amp;nbsp; （哪位大虾知道这数据精度及来源的请说明一下，谢啦） &lt;br /&gt;&amp;nbsp;全球各国eoo格式数据下载，包括矢量要素、dem数据、遥感图片，需付费，也有部分类型数据免费，精度不知道。&lt;a href="http://data.geocomm.com/"&gt;http://data.geocomm.com/&lt;/a&gt; &lt;br /&gt;1.公开的DEM数据SRTM3 &lt;br /&gt;&amp;nbsp;SRTM数据主要是由美国太空总署(NASA)和国防部国家测绘局(NIMA)联合测量的，SRTM 的全称是Shuttle RadarTopography Mission，即航天飞机雷达地形测绘使命，2000年2月11日上午11时44分，美国&amp;#8220;奋进&amp;#8221;号航天飞机在佛罗里达州卡那维拉尔角的航天发射中心发射升空，&amp;#8220;奋进&amp;#8221;号上搭载的SRTM系统共计进行了222小时23分钟的数据采集工作，获取北纬60度至南纬56度之间，面积超过1.19亿平方公里的9.8万亿字节的雷达影像数据，覆盖全球陆地表面的80%以上，该计划共耗资3.64亿美元，获取的雷达影像数据经过两年多的处理，制成了数字地形高程模型，该测量数据覆盖中国全境。SRTM数据每经纬度方格提供一个文件，精度有1 arc-second和3arc-seconds两种，称作SRTM1和SRTM3,或者称作30M和90M数据，SRTM1的文件里面包含3601*3601个采样点的高度数据，SRTM3的文件里面包含1201*1201个采样点的高度数据。目前能够免费获取中国境内的SRTM3文件，是90米的数据，每个90米的数据点是由9个30米的数据点算术平均得来的。 &lt;br /&gt;&amp;nbsp;SRTM数据下载的地址是：&lt;a href="http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp"&gt;http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp&lt;/a&gt;。我国境内的数据在Eurasia目录下，每经纬度方格一个文件，文件命名方法是X1X2X3X4.hgt.zip，X1是N或 S表示南北，X2是下方纬度数，X3是E或W表示东西，X4是左方经度数。 Documentation目录下有这些数据的介绍。 &lt;br /&gt;GEOtiff &lt;br /&gt;&amp;nbsp;中国部分为z-51-〔4-5）,z-52-(3-6),z-3-(3-7),z-54-(3-7),z-55-(3-7),z-56-(4-8),z-57-(4-8),z-58-(4-9),z-59-(3-11),z-60-(2-11),z-61-(2-8),z-62-(2-4),z-63-(3,4),z-64-3&lt;br /&gt;&amp;nbsp;可用做spot5等遥感影象的正射校正． &lt;br /&gt;&amp;nbsp;第四补洞版：&lt;a href="http://srtm.csi.cgiar.org/index.asp"&gt;http://srtm.csi.cgiar.org/index.asp&lt;/a&gt;&lt;br /&gt;2.公开的三波段遥感合成图像GeoCover &lt;br /&gt;&amp;nbsp;GeoCover是使用LANDSAT5卫星在1990年左右采集的数据合成的，LANDSAT5是美国太空总署(NASA)于1984年3月1日发射的地球观测卫星。LANDSAT5 TM(Thematic Mapper)有7个波段： &lt;br /&gt;&amp;nbsp;波段1:0.45&amp;#8211;0.52um蓝绿波段 波段2:0.52- 0.60绿色波段 &lt;br /&gt;&amp;nbsp;波段3:0.63 &amp;#8211; 0.69红色波段 波段4:0.76-0.90um近红外波段 &lt;br /&gt;&amp;nbsp;波段7:2.08-2.35um短红外波段 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 其中波段1-5和7为可见光及近红外波段，分辨率为30米，波段6为热红外光分辨率为120米。LANSAT5每景扫描耗时约26.31秒，覆盖185公里&amp;#215;170公里，扫描影像重叠率超过10%。GeoCover使用了742波段分别作为红色、绿色和蓝色进行了假彩色合成，也许如果使用1、2、3三种可见光波段合成的话会使我们看起来更舒服一些，不过我们现在能拿到的只能是这种742的合成假彩，通过观察发现其中的绿色通道对地形有较好的反应，实际操作中可以将这种假彩图像反相取其中的绿色通道来作为地形底图。GeoCover图像文件使用WGS84UTM坐标，采用TIFF或MrSID格式分发，图像中每个像素28.5M-30M,一般以28.5M计算。 GeoCover的下载地址是：&lt;a href="https://zulu.ssc.nasa.gov/mrsid"&gt;https://zulu.ssc.nasa.gov/mrsid&lt;/a&gt;。可从全球地图页面上选择 &lt;br /&gt;你需要的区域下载。GeoCover文件每个在东西方向跨越一个UTM分区，在南北方向跨越5个纬度，东西提供50KM的富裕，南北提供1KM的富裕。文件命名方法是X1-X2-X3.tar，X1是N或S表示南北，X2是UTM带数，X3下方经度数。 &lt;br /&gt;3.其他渠道 &lt;br /&gt;&amp;nbsp;（1）NIMA地名数据库:可以提供大多数国家的地名英文拼写及坐标,包含中国境内大约6万个地方, 可以在以下地址下载中国地名库:ftp://ftp.nga.mil/pub/gns ;data/cn.zip。 &lt;br /&gt;SPACEIMAGING 1M分辨率卫星图像预览:虽然只能免费得到预览图像，但其分辨率也已经不算太低了，并且可以随预览图提供图像的一些数据信息，非常方便将图像用工具软件进行较正， 下载地址:http://www.spaceimaging.com/default.htm ; &lt;br /&gt;国家基础地理信息系统:国家基础地理信息系统全国1:400万数据库全部数据均可浏览。其中，中国国界、省界、地市级以上居民地、三级以上河流、主要公路和主要铁路等数据可以自由下载。 &lt;br /&gt;下载地址为：&lt;a href="http://nfgis.nsdi.gov.cn/nfgis/chinese/c"&gt;http://nfgis.nsdi.gov.cn/nfgis/chinese/c&lt;/a&gt; ;xz.htm。可以在这里预先浏览供下 载的数据内容有： （1）国界 国界与省界 地市级以上居民地 一级河流 三级以上河流主要公路 主要铁路 &lt;br /&gt;&amp;nbsp;（2）地级以上境界 县级以上境界 县级以上居民地 四级以上河流 五级以上河流 &lt;br /&gt;从公开发行的地图上获取数据信息:可以直接从某些电子地图提取到不错的数据，也可以从纸介地图上测量或数字化某些信息，目前正在进行这方面的试验，已取得一定量数据。 &lt;br /&gt;&amp;nbsp;PS：&lt;a href="http://glcfapp.umiacs.umd.edu:8080/esdi/search.jsp"&gt;http://glcfapp.umiacs.umd.edu:8080/esdi/search.jsp&lt;/a&gt; &lt;br /&gt;&amp;nbsp;&lt;a href="http://glovis.usgs.gov/"&gt;http://glovis.usgs.gov/&lt;/a&gt; &lt;br /&gt;&amp;nbsp;&lt;a href="http://disc.sci.gsfc.nasa.gov/data/datapool/"&gt;http://disc.sci.gsfc.nasa.gov/data/datapool/&lt;/a&gt; &lt;br /&gt;&amp;nbsp;&lt;a href="http://edc.usgs.gov/products/elevation/gtopo30/hydro/index.html"&gt;http://edc.usgs.gov/products/elevation/gtopo30/hydro/index.html&lt;/a&gt; &lt;br /&gt;&amp;nbsp;&lt;a href="http://edcsns17.cr.usgs.gov/EarthExplorer/"&gt;http://edcsns17.cr.usgs.gov/EarthExplorer/&lt;/a&gt; &lt;br /&gt;&amp;nbsp;&lt;a href="http://www.digitalglobe.com/index.php/27/Sample+Imagery+Gallery"&gt;http://www.digitalglobe.com/index.php/27/Sample+Imagery+Gallery&lt;/a&gt; &lt;br /&gt;马里兰大学的一些zz&lt;br /&gt;对遥感数据使用的几个共性问题，提几条解决办法。供商榷补充。&lt;br /&gt;&amp;nbsp;1，影像来源&lt;br /&gt;&amp;nbsp;遥感影像的来源有很多，但是免费的不多。其中地理所的TM/ETM数据需要注册，比较麻烦。对于不需要支付国际流量费用的用户来说，建议直接到马里兰大学的网站下载：&lt;a href="http://glcfapp.umiacs.umd.edu/index.shtml"&gt;http://glcfapp.umiacs.umd.edu/index.shtml&lt;/a&gt;&lt;br /&gt;里面除了ETM数据，还有其他一些类型，但是覆盖面积有限。TM/ETM是覆盖最广，基本需要的地方都有。&lt;br /&gt;下载的方式有map search，Path/row search, product search.对ETM数据来说，由于波段很多，下载量很大，可以考虑下载自己需要的波段内容即可。&lt;br /&gt;&amp;nbsp;2，数据处理&lt;br /&gt;&amp;nbsp;我用的是ENVI 4.6，下面的说明以ENVI为例。这是一个用IDL语言编写的专业遥感处理工具，性能卓越。&lt;br /&gt;本人通常下载1，4，7和8波段（TM数据没有8波段），理由是1，4，7波段不仅分辨率相同，波段彼此相距较远，信息冗余量小。用于假彩色合成可以获得最大的信息量。利用7，4，1波段作为RGB通道可以合成相对近似自然的假彩色影像。8波段主要用于影像融合。（假彩色可以用1，2，3，4，5，7中的任意三个波段来合成。当然如果要想获得最接近自然的彩色影像，建议使用3，2，1波段作为RGB合成。）&lt;br /&gt;&amp;nbsp;3，数据融合 &lt;br /&gt;&amp;nbsp;8波段是分辨率最高（约15m）的波段，可以与由其他波段合成的假彩色影像一起融合，形成与8波段分辨率相同的彩色图像&amp;#8211;这是ETM数据优于TM数据的地方。具体使用transform&amp;#8211;image sharpening&amp;#8211;HSV&amp;#8230;.来完成。&lt;br /&gt;如果希望最大限度保留图像信息，可以用1、2、3、4、5、7做pc分析，之后选择信息量最大的三个分量进行彩色合成，然后再与8融合。这样做的缺点是会增加处理时间。&lt;br /&gt;&amp;nbsp;4，图像镶嵌&lt;br /&gt;&amp;nbsp;当需要的图像不在同一景时，可用ENVI里面的mosaicking功能来进行完成。具体步骤是&lt;br /&gt;点击Basic tools&amp;#8211;Mosaicking&amp;#8211;Georeferrenced，出现map basic mosaic窗口，&lt;br /&gt;点击import&amp;#8211;import files and edit properties ，出现选择图像窗口，&lt;br /&gt;选择图像之后，ok！然后记住选择背景值0。这样就可以把多景图像镶嵌在一起了。&lt;br /&gt;&amp;nbsp;5，导出导出&lt;br /&gt;&amp;nbsp;可以保存为其他程序可以打开和编辑的文件类型，比如jpg，tiff等，有的时候需要把别的矢量要素叠加到图像上，可以通过vector菜单来完成&lt;br /&gt;&lt;/p&gt; &lt;img src="http://www.cnblogs.com/furenjun/aggbug/2445297.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/furenjun/archive/2012/04/13/2445297.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/furenjun/archive/2012/04/07/2436657.html</id><title type="text">打工是最愚蠢的投资——李嘉诚在深圳大梅沙演讲</title><summary type="text">讲得真好！你看了还想打工吗？</summary><published>2012-04-07T14:38:00Z</published><updated>2012-04-07T14:38:00Z</updated><author><name>DotNet编程</name><uri>http://www.cnblogs.com/furenjun/</uri></author><link rel="alternate" href="http://www.cnblogs.com/furenjun/archive/2012/04/07/2436657.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/furenjun/archive/2012/04/07/2436657.html"/><content type="html"> &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 打工是最愚蠢的投资--------- 很多人会认为打工是在赚钱。其实打工才是最大最愚蠢的投资。 人生最宝贵的是什么？除了我们的青春还有什么更宝贵？ 很多人都抱怨我穷，我没钱想做生意又找不到资金。多么的可笑！其实在你身上就有着一座金山(无形资产)，只是你不敢承认。宁可埋没也不敢利用。宁可委委屈屈地帮人打工，把你的资产双手拱让给了你的老板。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 我们试想一下，有谁生下来上天就会送给他一大堆金钱的？有谁是准备非常齐全了完美了再去创业就成功了？计划赶不上变化，特别是在如今这个信息高度快速传播的年代！ 我曾经问过我的一个朋友为什么不去打工？他的回答很惊人：&amp;#8220;说句得罪点，出去打工简直就是愚蠢浪费青春！为什么你一直是打工仔？因为你安于现状！因为你没有勇气，你天生胆小怕事不敢另择它路！所以你是打工仔！因为你没有勇往直前，没有超越自我的精神！所以，你还是一个打工仔！你想过了改变你的生活，改变你穷困的命运，但是你没有做！因为你不敢做！你害怕输，你害怕输的一穷再穷！你最后不敢想，还是在打工，所以你还是打工仔！！！你努力了，你拼搏了，你抱着雄心大志。结果你没看到预想的成就！你放弃了！你只还是一个打工仔！！&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 为什么你一直是打工仔？因为你随波逐流！近墨者黑，不思上进，分钱没得，死爱闹热，所以你一直是打工仔！因为你畏惧你父母，你听信你亲戚，你没有主张，你不敢一个人做决定。所以，你只不过还是一直是一个打工仔！你观念传统，只想打工赚点钱结婚生子，然后生病老死，走你父母一模一样的路，所以你一直是打工仔！你天生脆弱、脑筋迟钝只想做按班就部的工作，你想做无本的生意，你想坐在家里等天上掉陷饼，所以你一直是一个打工仔！你抱怨没有机遇，机遇来到你身边的时候你又抓不住！因为你不会抓！所以你还是一直是打工仔！因为你的贫穷，所以你自卑！你退缩了！你什么都不敢做！你只会给别人打工！所以你一直是打工仔！你没有特别技能，你只有使蛮力！你和你父母一样，恶性循环，所以，你一直永远的一个一直在打工的打工仔！&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 很多人想把握机会，要做一件事情时，但往往给自己找了很多理由让自己一直处于矛盾之中，不断浪费时间，虚度时光。如：&lt;/p&gt;&lt;p&gt;&lt;strong&gt;1 、我没有口才 错！&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 有没有人天生就会说话，台上的演讲大师也不是一下子就能出口成章，骂人的时候很擅长，抱怨的时候也很擅长，这也是口才，只是没有任何营养罢了，那是没有价值的口才；看别人争论的时候，自己满嘴评头论足，却不反省自己，倘若你做得好，你今天是否还说自己没口才？&lt;br /&gt;&lt;strong&gt;2 、我没有钱 错&lt;/strong&gt;&lt;strong&gt;！&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 不是没有钱，而是没有赚钱的脑袋，工作几年了没有钱么，有了，但是花掉了，花在没有回报的事情上面，吃喝玩乐，或存放贬值了，没有实现最大化，所以钱就这样入不敷出，这样月光光 这样被生活所需全部一一使用，这样周而复始，每月做个月光族，没有远虑，当一天和尚敲一天钟，得过且过。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;3 、我没有能力 错！&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 不给自己机会去锻炼，又有谁一出生就有跑的能力?跳的能力？一毕业就是社会精英?一创业就马上成功?当别人很努力的学习，很努力的积累，努力的找方法，而他每天就做了很少一点就觉得乏味，学了一些就觉得没意思，看了一些就不想看，跟自己跟别人说没兴趣学，然后半辈子过去，一事无成，然后牢骚上天不给机会。能力是努力修来的，不努力想有能力，天才都会成蠢材，但努力，再笨的人也能成精英。&lt;br /&gt;&lt;strong&gt;4 、我没有时间 错！&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/strong&gt;时间很多，但浪费的也很多，别人很充实，他在看电视，别人在努力学习时，他在游戏消遣虚度，总之时间就是觉得很多余，他过得越来越无聊，别人赚钱了羡慕别人，但不去学别人好好把握时间创造价值，整天不学无术。&lt;br /&gt;&lt;strong&gt;5 、我没有心情 错！&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/strong&gt;心情好的时候去游玩；心情不好的时候在家喝闷酒，心情好的时候去逛街，心情不好的时候玩游戏，心情好的时候去享受，心情不好的时候就睡大觉，好坏心情都一样，反正就是不做正事。&lt;br /&gt;&lt;strong&gt;6 、我没有兴趣 错！&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/strong&gt;兴趣是什么，吃喝玩乐谁都有，没有成就哪里来的尽兴，出去旅游回来月光族，出去K歌 回头钱包空空，出去大量购物回来惨兮兮。打工有没有兴趣，挤公车有没有兴趣？上班签到下班打卡有没有兴趣？家里急需要一大笔钱的时候借钱有没有兴趣？要还钱没钱还有没有兴趣？卖老鼠药的人对老鼠药有没有兴趣&amp;#8230;&amp;#8230;？&lt;br /&gt;&lt;strong&gt;7 、我考虑考虑 错！&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/strong&gt;考虑做吧，有可能就成了！不做吧，好不甘心，整天上班也没有个头，还是做吧，明天开始，不过还是算了，再想想，这钱挣的也不容易，不不，就是打工挣钱也不容易，所以不能放弃机会，决定了，把握机会。 哎呀！天都黑了，明天再说吧！然后第二天又因为以上123456点，因为左思右想，继续循环，最终不能决定，犹犹豫豫，还是一无所获。&lt;br /&gt;&lt;br /&gt;有句话是，可怜之人必有可恨之处！这一生中不是没有机遇，而是没有争取与把握，借口太多，理由太多&amp;#8230;&amp;#8230;！争取之人必竭力争取，一分钱都没有也千方百计想办法，不争取之人给一百万也动不起来，发财不了，还有可能一败涂地，这就是行动上的欠缺，喜欢犹豫不决，喜欢拖延，喜欢半途而废，最后一辈子平庸，碌碌无为！还有的人，做事三分钟热度，一开始热情高涨，等会就继续懒散，这种人成功的帽子也不会在你的头上。看看为什么别人身价几个亿，你自己还在为钱奔波，不要羡慕别人命好，别人很困难的时候是怎么坚挺过来的，怎么克服困难，突破自己，改变命运的，你没看到罢了，活着就是要一身价值。&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/furenjun/ljc.jpg" width="300" height="399" /&gt;&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/furenjun/ljc3.jpg" width="340" height="500" /&gt;&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/furenjun/ljc2.jpg" width="300" height="231" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;     &lt;img src="http://www.cnblogs.com/furenjun/aggbug/2436657.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/furenjun/archive/2012/04/07/2436657.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/furenjun/archive/2012/04/05/2432620.html</id><title type="text">雍和宫烧香注意事项</title><summary type="text">我补充一下：1、60岁以上老人门票半价，记得带上身份证哟。2、香不能买很大一根的，否则保安不让带进去的哟。</summary><published>2012-04-04T16:56:00Z</published><updated>2012-04-04T16:56:00Z</updated><author><name>DotNet编程</name><uri>http://www.cnblogs.com/furenjun/</uri></author><link rel="alternate" href="http://www.cnblogs.com/furenjun/archive/2012/04/05/2432620.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/furenjun/archive/2012/04/05/2432620.html"/><content type="html">&lt;p&gt; 第一、香不在多，三枝最好。很多人，尤其是南方的朋友，喜欢买很多香，不管三七二十一，就插一堆在佛跟前，这是不敬的。三枝香，恭恭敬敬地点上，双手捧着插上，这才是对菩萨的尊敬。从前殿，中殿，大殿，后殿，依次每个殿都三枝香，非要多烧，也不要超过9枝，九为最大，朝了就是对佛的不敬。如果钱少，只能买三只，也没有关系，就在正殿供上便可。而且，为活人许愿，要烧单数，给亡人祭奠，才烧双数。剩下的怎么办？就散放在供桌上，让没有钱，而心地虔诚的人去烧，这样公德才大。众人理佛，才公德无量。自己一个人烧，烧得再多，也不及众人理佛来得大。如果要许愿，那就更要让大家帮你理佛了。所以不要舍不得，觉得自己买的就要自己烧，那不对。&lt;br /&gt;第二、鲜花献佛。香拜并不是最好的，最好的是鲜花祭拜，颜色越鲜艳越好。一枝足够。&lt;br /&gt;第三、衣冠拜。可以给佛做一个袈裟，披在佛身上。比较奢侈。&lt;br /&gt;第四、不一定下跪。下跪是一种自愿行为。双手合十，心地平静，就是拜。&lt;br /&gt;第五、关于香。现在的香有许愿香，还愿香，求子香，因缘香，乱七八糟，都不是真的。香就是香，是人和佛的交流工具，没有更多的意义。更有甚者，香港来的朋友买一米多高的香，说是烧高香，那就跟不对了。高香，是心清自高，不是高低的高。不然有钱人岂不做2米高的香，再回头连门都进不去了呢。还有头柱香，佛为师法平等，如果有头柱与二柱，末柱的区别，还叫师法平等么，还叫佛么。头柱香也是子虚乌有的说法，是商家的炒做，雍和宫的香每年到初一就有人向方丈行贿，企图烧头柱，据说都抄到了8万，据说被拒绝了，不知是真是假，呵呵。&lt;br /&gt;第六、 庙里的门槛是绝对不能踩的，那是佛的肩膀,一定要跨过去。否则&amp;#8230;&amp;#8230;&lt;br /&gt;第七、庙里是可以捐香火灯油钱的，在有些没有功德箱的寺庙，是可以把香油钱放在佛像脚边的。除此以外，一切的投钱方式都是对佛的不敬，也更不会带来什么好运气，所以以后就不要再往什么钵盂，水盆里扔了。有害无益。&lt;br /&gt;第八、关于护身符。没有什么男带观音女带佛的说法。所谓开光，不过是从庙里请来的物件由德高的僧人念经而已。一个护身符是不可以终身佩带的，如果有了什么闪失，比如碰坏了，绳子断了，说明已经挡过灾难，或这段时间与你缘分已尽，不应该再带，应该妥善保管，或者交到寺庙，另请一个护身符。而且所谓护身符不离左右，不是指随身佩带，是随身携带，可以在兜里，包里，脖子上，只要在你附近，就能保佑。睡觉的时候要摘下，洗澡也是要摘下。这才是尊敬。&lt;br /&gt;第九、关于在家供佛。家里供的佛没有什么方位的讲究，也不用请风水先生故弄玄虚。可以安放在客厅，小间，除了卧室都可以的地方。但是如果人来人往的地方，一定要用红幔帐在不理佛的时候盖起来。早晚三柱香。或一天只一次，出差不在，没关系，只要回来后，立刻理拜，就算虔诚，并无妨碍。&lt;br /&gt;我补充一下：&lt;br /&gt;1、60岁以上老人门票半价，记得带上身份证哟。&lt;br /&gt;2、香不能买很大一根的，否则保安不让带进去的哟。&lt;br /&gt;转自：&lt;br /&gt;&lt;a href="http://blog.renren.com/share/265013220/2992360347"&gt;http://blog.renren.com/share/265013220/2992360347&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/furenjun/aggbug/2432620.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/furenjun/archive/2012/04/05/2432620.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/furenjun/archive/2012/03/19/2406851.html</id><title type="text">常用书籍推荐与下载地址</title><summary type="text">常用书籍推荐与下载地址</summary><published>2012-03-19T13:16:00Z</published><updated>2012-03-19T13:16:00Z</updated><author><name>DotNet编程</name><uri>http://www.cnblogs.com/furenjun/</uri></author><link rel="alternate" href="http://www.cnblogs.com/furenjun/archive/2012/03/19/2406851.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/furenjun/archive/2012/03/19/2406851.html"/><content type="html">&lt;p&gt; &lt;strong&gt;1、WPF技术相关书籍&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;（1）MSDN关于WPF其中内容，链接：&lt;a href="http://msdn.microsoft.com/en-us/library/ms754130%28VS.100%29.aspx" rel="nofollow" target="_blank"&gt;&lt;span style="color: red;"&gt;Windows Presentation Foundation&lt;/span&gt;&lt;/a&gt;&lt;span style="color: red;"&gt;&amp;nbsp;&lt;/span&gt; 不用说了 这个是我反复阅读的可以如实的告诉大家 这个内容 我全看了 而且不止一遍，两遍。七八遍总是有的。因此 我会第一个品评MSDN；&lt;br /&gt;&lt;br /&gt;（2）Charles Petzold &lt;a href="http://www.pin5i.com/showtopic-25845.html" target="_blank"&gt;&lt;span style="color: red;"&gt;Applications = Code + Markup A Guide to the Microsoft Windows Presentation &lt;/span&gt;Foundation&lt;/a&gt; 这本书有中文版，翻译的也不错，但是实话我未能通读，绝大部分都是看过 某些部分看过也不下三四遍；&lt;br /&gt;&lt;br /&gt;（3）Matthew 王德才译 MacDonald &lt;a href="http://www.pin5i.com/showtopic-23743.html" target="_blank"&gt;Pro &lt;span style="color: red;"&gt;WPF in C#2008 Second Edition&lt;/span&gt;&lt;/a&gt; 这本书同样有中文版 翻译过来的是&amp;#8220;WPF编程宝典&amp;#8212;&amp;#8212;使用C#2008和.Net3.5&amp;#8221; 这本书 英文的厚厚的我打印装订成了三册 等到中文版出来我又不惜大撒银子 买了一本。案头书。&lt;br /&gt;&lt;br /&gt;（4）Adam Nathan &lt;a href="http://www.pin5i.com/showtopic-27118.html" target="_blank"&gt;&lt;span style="color: red;"&gt;Windows Presentation Foundation Unleashed（WPF揭秘）&lt;/span&gt;&lt;/a&gt; 我第一次买的书；&lt;br /&gt;&lt;br /&gt;（5）Ian Griffiths, Chris Sells 所著的 &lt;a href="http://www.pin5i.com/showtopic-27119.html" target="_blank"&gt;&lt;span style="color: red;"&gt;Programming WPF , 2nd Edition&lt;/span&gt;&lt;/a&gt; 这本书貌似有中文版，名为WPF编程 记住是第二版。传说中 &lt;br /&gt;这是一本好书 我看过英文的&amp;nbsp; 还不错。&lt;br /&gt;&lt;br /&gt;（6）Chris Anderson 朱永光译 &lt;a href="http://www.pin5i.com/showtopic-24842.html" target="_blank"&gt;&lt;span style="color: red;"&gt;Essential Windows Presentation Foundation&lt;/span&gt;&lt;/a&gt; WPF核心技术 这本书偏薄；&lt;br /&gt;&lt;br /&gt;（7）又是Charles Peztold老人家所著的 精通Windows&lt;span class="t_tag" href="tools/ajax.aspx?t=topicswithsametag&amp;amp;tagid=58"&gt;3D&lt;/span&gt;图形编程 英文名为 &lt;a href="http://www.pin5i.com/showtopic-27120.html" target="_blank"&gt;3D &lt;span style="color: red;"&gt;Programming for Windows: Three-Dimensional Graphics Programming for the Windows &lt;/span&gt;Presentation &lt;br /&gt;Foundation&lt;/a&gt; 。我中英文都看过；&lt;br /&gt;&lt;br /&gt;（8）Pavan Podila等 &lt;a href="http://www.pin5i.com/showtopic-26324.html" target="_blank"&gt;WPF&lt;span style="color: red;"&gt; Control Development Unleashed: Building Advanced User Experiences&lt;/span&gt;&lt;/a&gt; 一本不错的介绍WPF&lt;span class="t_tag" href="tools/ajax.aspx?t=topicswithsametag&amp;amp;tagid=88"&gt;控件&lt;/span&gt;的书，顺便说一下，我还是有意翻译该书的。&lt;br /&gt;&lt;br /&gt;（9）Jack X&lt;span style="color: red;"&gt;u &lt;/span&gt;&lt;a href="http://www.pin5i.com/showtopic-27121.html" target="_blank"&gt;&lt;span style="color: red;"&gt;Practical WPF Graphics Programming&lt;/span&gt;&lt;/a&gt; 一本介绍WPF图形编程的书 ，目前我并没有看到中文版。&lt;br /&gt;&lt;br /&gt;（10）Rob Eisenberg等 Sam&lt;span style="color: red;"&gt;s &lt;/span&gt;&lt;a href="http://www.pin5i.com/showtopic-23855.html" target="_blank"&gt;&lt;span style="color: red;"&gt;Teach Yourself WPF in 24 Hours&lt;/span&gt;&lt;/a&gt;，翻译过来就是Sams 24小时搞定WPF，挺神的 丫的；&lt;br /&gt;&lt;br /&gt;（11）张晗雨编&lt;span style="color: red;"&gt;著 &lt;/span&gt;&lt;a href="http://www.amazon.cn/mn/detailApp?asin=B001PBG6VU&amp;amp;source=pin5i-23" rel="nofollow" target="_blank"&gt;&lt;span style="color: red;"&gt;WPF全视角分析&lt;/span&gt;&lt;/a&gt;&amp;nbsp; 国人所写的WPF书籍；&lt;br /&gt;&lt;br /&gt;（12）王少&lt;span style="color: red;"&gt;葵 &lt;/span&gt;&lt;a href="http://www.amazon.cn/mn/detailApp?asin=B0017KOV6G&amp;amp;source=pin5i-23" rel="nofollow" target="_blank"&gt;&lt;span style="color: red;"&gt;深入解析WPF&lt;/span&gt;&lt;/a&gt; 号称是国内第一本WPF书 确实也是;&lt;br /&gt;&lt;br /&gt;（13）WPF高级编程，&lt;span style="color: red;"&gt;英文&lt;/span&gt;&lt;a href="http://www.pin5i.com/showtopic-23744.html" target="_blank"&gt;&lt;span style="color: red;"&gt;Professional WPF Programming&lt;/span&gt;&lt;/a&gt;，该书有中文版。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;img src="http://www.cnblogs.com/furenjun/aggbug/2406851.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/furenjun/archive/2012/03/19/2406851.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/furenjun/archive/2012/03/19/2405569.html</id><title type="text">office 2010系列产品重输密钥的方法</title><summary type="text">office 2010系列产品重输密钥的方法</summary><published>2012-03-19T01:44:00Z</published><updated>2012-03-19T01:44:00Z</updated><author><name>DotNet编程</name><uri>http://www.cnblogs.com/furenjun/</uri></author><link rel="alternate" href="http://www.cnblogs.com/furenjun/archive/2012/03/19/2405569.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/furenjun/archive/2012/03/19/2405569.html"/><content type="html">&lt;p&gt; 按下面的步骤进行操作即可：&lt;/p&gt;&lt;p&gt;1.开始--》控制面板--》卸载程序，选中你要更改密钥的office2010产品。&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/furenjun/officeLicense.png" width="796" height="457" /&gt;&lt;/p&gt;&lt;p&gt;2.单击&amp;#8220;更改&amp;#8221;，在弹出的窗体中选择&amp;#8220;重新输入密钥&amp;#8221;，点击&amp;#8220;继续&amp;#8221;。在弹出的窗体中输入新的密钥，点击&amp;#8220;继续&amp;#8221;，直至软件自动完成密钥更新。&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/furenjun/officeLicense2.png" width="626" height="510" /&gt;&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/furenjun/officeLicense3.png" width="626" height="510" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/furenjun/aggbug/2405569.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/furenjun/archive/2012/03/19/2405569.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/furenjun/archive/2012/03/17/2404027.html</id><title type="text">禁用Windows7脱机文件的方法</title><summary type="text">禁用Windows7脱机文件的方法</summary><published>2012-03-17T13:16:00Z</published><updated>2012-03-17T13:16:00Z</updated><author><name>DotNet编程</name><uri>http://www.cnblogs.com/furenjun/</uri></author><link rel="alternate" href="http://www.cnblogs.com/furenjun/archive/2012/03/17/2404027.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/furenjun/archive/2012/03/17/2404027.html"/><content type="html">&lt;p&gt; 按下面的步骤即可禁用脱机文件：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 图所示点击&amp;#8220;脱机文件&amp;#8221;图标，在弹出的windows同步中心窗口中点击&amp;#8220;管理脱机文件&amp;#8221;，在弹出的脱机文件窗口中，点击&amp;#8220;禁用脱机文件&amp;#8221;。再点击&amp;#8220;确认&amp;#8221;按钮，系统提示&amp;#8220;重启计算机以生效&amp;#8221;，重启计算机即可。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;div align="center"&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/furenjun/ProhibitUseOfflineFiles.png" width="902" height="907" /&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;div align="center"&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/furenjun/ProhibitUseOfflineFiles2.png" width="542" height="536" /&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;Windows 有关脱机文件的介绍：&lt;/p&gt;&lt;p&gt;了解脱机文件&lt;/p&gt;&lt;p&gt;如果您曾经需要访问存储在网络上共享文件夹中的重要文件，但由于您的便携式计算机已断开网络连接而无法访问，则可以了解脱机文件的需求。借助脱机文件，即使您的计算机未连接到网络，也可以访问网络文件的副本。&lt;/p&gt;&lt;p&gt;使用脱机文件非常容易。只需选择希望在脱机时可用的网络上的文件（或文件夹）即可。Windows 会自动在计算机上创建每个文件的副本。这些副本称为&amp;#8220;脱机文件&amp;#8221;。即使您未连接到网络，也可以使用这些文件，并且下次连接时，Windows 将自动将脱机文件与网络文件夹中的原始文件同步。&lt;/p&gt;&lt;p&gt;有关如何使用脱机文件的详细说明，请参阅脱机时使用网络文件。&lt;/p&gt;&lt;p&gt;可以在连接到存储文件的网络时访问网络文件。&lt;br /&gt;未连接到网络时，可以访问网络文件的本地副本。&lt;/p&gt;&lt;p&gt;使用脱机文件的原因&lt;br /&gt;对于使用共享网络文件夹中存储的文件的人员而言，使用脱机文件具有多个优点。通过使用脱机文件，可以：&lt;/p&gt;&lt;p&gt;不受网络中断的影响。 使用脱机文件时，不管是网络关闭或是所访问的网络文件夹不可用，这都没有关系。如果发生上述任一情况，Windows 会自动打开存储在计算机上的文件的脱机副本，而不是访问网络文件夹中的文件，且您可以继续工作而不被中断。&lt;/p&gt;&lt;p&gt;离开网络时使用文件。 从网络断开连接时，通常无法打开存储在网络上的任何文件。使用脱机文件，可以在从网络断开连接后，仍具有设置为脱机可用的所有网络文件的副本。这在携带便携式计算机旅行时特别有用。&lt;/p&gt;&lt;p&gt;与网络文件轻松同步。 任何时候您想和网络文件夹中的最新版本的文件同步时，只需单击一个按钮就可以执行此操作。&lt;/p&gt;&lt;p&gt;在较慢连接上工作时增强效率。接入连接速度较慢的网络时，使用共享网络文件夹中的文件的效率很低，而且很慢。若要加快速度，您可以随时轻松地切换到使用网络文件的脱机副本。&lt;/p&gt;&lt;p&gt;保持脱机文件同步&lt;br /&gt;选择要设置为脱机可用的网络文件或文件夹时，Windows 会自动在计算机上创建该文件或文件夹的副本。任何时候重新连接到网络文件夹时，Windows 都会将这些文件与网络文件夹中的相应文件同步。还可以随时手动同步这些文件。&lt;/p&gt;&lt;p&gt;这就是您保持脱机文件同步所要了解的。但是，对于一些好奇的人，还有其他一些详细信息：&lt;/p&gt;&lt;p&gt;如果您脱机工作，并对网络文件夹中的脱机文件进行更改，则 Windows 会在下次连接到该网络文件夹时自动同步对文件所做的任何更改。&lt;/p&gt;&lt;p&gt;如果您脱机工作时其他人对共享网络文件夹中的文件进行更改，则 Windows 会在下次连接到该网络文件夹时将这些更改与您计算机上的脱机文件同步。如果在上次连接到网络文件夹之后您也更改了这些文件，则会发生同步冲突，Windows 将询问您想要保留哪个版本。&lt;/p&gt;&lt;p&gt;根据硬盘的大小，您可能需要管理脱机文件使用的空间量。有关详细信息，请参阅管理脱机文件的磁盘空间。&lt;br /&gt;&lt;/p&gt;&lt;p class="para"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;img src="http://www.cnblogs.com/furenjun/aggbug/2404027.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/furenjun/archive/2012/03/17/2404027.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
