<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://forums.xna.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>General</title><link>http://forums.xna.com/forums/50.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 0.0)</generator><item><title>Re: Supporting multiple D3D version</title><link>http://forums.xna.com/forums/thread/71763.aspx</link><pubDate>Sun, 29 Jun 2008 09:07:24 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:71763</guid><dc:creator>MessiahAndrw</dc:creator><slash:comments>0</slash:comments><comments>http://forums.xna.com/forums/thread/71763.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=50&amp;PostID=71763</wfw:commentRss><description>Why not try to initialise the latest version (10.1), and if it fails, try initialising the second latest (10), then try D3D 9, and if it still fails report an error message and quit.&lt;br /&gt;</description></item><item><title>Re: Supporting multiple D3D version</title><link>http://forums.xna.com/forums/thread/67641.aspx</link><pubDate>Tue, 10 Jun 2008 01:00:03 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:67641</guid><dc:creator>NightMarez</dc:creator><slash:comments>0</slash:comments><comments>http://forums.xna.com/forums/thread/67641.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=50&amp;PostID=67641</wfw:commentRss><description>&lt;p&gt;That would be ALOT of work (thanks microsoft zzzz)...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;First, you need to detect what system the user has &lt;a href="http://support.microsoft.com/kb/307394"&gt;http://support.microsoft.com/kb/307394&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Version reporting back is on the list, except vista wich is 6.x.x.x.x (i belive it was, check it yourself since your using vista).&lt;/p&gt;
&lt;p&gt;Then, you need to check if it uses vista, does it have vista sp1 (for dx10.1).&lt;/p&gt;
&lt;p&gt;Then, you need to check wich hardware the user has, if vista sp1, does it support dx10.1 else it has to use dx10 if hw supports that, else dx9ex&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Oh and you also have to check wich version of directx (highest supportet) is installed (if users is on vista, on winxp highest supportet is dx9 anyways).&lt;/p&gt;
&lt;p&gt;But i dont see the point, its like &amp;quot;oh my god lets sell alot of hardware for the company&amp;#39;s&amp;quot;, and a new DX comes out every year wich requires new hardware to get something out of it.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For now, ill only use DX9 and DX10, they can take DX10.1 and&amp;nbsp;whatever else they are planning and showe it where the sun dont shine (sry but its really annoying).&lt;/p&gt;
&lt;p&gt;Its more work, alot more work, for programmers, will you use shader model 1_0, 2_0, 3_0, 4_0, 4_1 waaahtupppp! zzzzzz&lt;/p&gt;
&lt;p&gt;Nothing more fun then sitting around&amp;nbsp;making shaders for a couple of years.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Just noticed your name! dangit, i been using NightMarez for like 8 years now, guess its time to make up a new name :) at some point anyways&lt;/p&gt;</description></item><item><title>Supporting multiple D3D version</title><link>http://forums.xna.com/forums/thread/61783.aspx</link><pubDate>Wed, 14 May 2008 05:24:23 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:61783</guid><dc:creator>Nightmare</dc:creator><slash:comments>0</slash:comments><comments>http://forums.xna.com/forums/thread/61783.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=50&amp;PostID=61783</wfw:commentRss><description>&lt;P&gt;After buying a new system that support D3D10.1 i wanna get started with it.&lt;/P&gt;
&lt;P&gt;As not many people using D3D10 hardware yet i wanna support different versions like the DXUT does&lt;BR&gt;I noticed there are currently 4 versions of D3D: &lt;BR&gt;D3D9 (XP), &lt;BR&gt;D3D9EX (Vista / D3D9 Hardware)&lt;BR&gt;D3D10 (Vista / D3D10 Hardware)&lt;BR&gt;D3D10.1 (Vista SP1 / D3D10.1 Hardware)&lt;/P&gt;
&lt;P&gt;To use the different version easy im using interfaces and inherited classes but was wondering on whats the best way to detect what version to use.&lt;/P&gt;
&lt;P&gt;1) How to detect the operating system? (XP / Vista / Vista SP1)&lt;BR&gt;2) In case of Vista, how to detect hardware capabilities? (D3D9 / D3D10 / D3D10.1)&lt;BR&gt;3) In case they run Vista SP1 but the hardware dont support D3D10.1 features, can i still use the D3D10Device1 classes?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Little extra info about the project:&lt;BR&gt;Project is created using Vista SP1, VS 2008, C++&lt;/P&gt;
&lt;P&gt;To handle the different D3D versions im using this kinda system&lt;/P&gt;
&lt;P&gt;Interface class&lt;/P&gt;
&lt;DIV style="BACKGROUND-COLOR:white;"&gt;
&lt;TABLE style="BORDER-RIGHT:#e5e5e5 1px solid;BORDER-TOP:#e5e5e5 1px solid;BORDER-LEFT:#e5e5e5 1px solid;WIDTH:525px;BORDER-BOTTOM:#e5e5e5 1px solid;BACKGROUND-COLOR:white;" cellSpacing=0 cellPadding=0&gt;

&lt;TR style="VERTICAL-ALIGN:top;LINE-HEIGHT:normal;"&gt;
&lt;TD style="WIDTH:40px;TEXT-ALIGN:right;"&gt;&lt;PRE style="BORDER-RIGHT:#e7e7e7 1px solid;PADDING-RIGHT:2px;PADDING-LEFT:2px;FONT-SIZE:11px;PADDING-BOTTOM:2px;MARGIN:0px;COLOR:gray;PADDING-TOP:2px;FONT-FAMILY:courier new;"&gt;1&lt;BR&gt;2&lt;BR&gt;3&lt;BR&gt;4&lt;BR&gt; &lt;/PRE&gt;&lt;/TD&gt;
&lt;TD style="WIDTH:465px;"&gt;
&lt;DIV style="PADDING-RIGHT:2px;OVERFLOW-Y:hidden;PADDING-LEFT:8px;PADDING-BOTTOM:2px;MARGIN:0px;OVERFLOW:scroll;WIDTH:465px;PADDING-TOP:2px;"&gt;&lt;PRE&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;class&lt;/SPAN&gt; IRenderDevice&lt;BR&gt;{&lt;BR&gt;    &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:green;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;// Virtual functions&lt;/SPAN&gt;&lt;BR&gt;}&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;P&gt;D3D9 Render class&lt;/P&gt;
&lt;DIV style="BACKGROUND-COLOR:white;"&gt;
&lt;TABLE style="BORDER-RIGHT:#e5e5e5 1px solid;BORDER-TOP:#e5e5e5 1px solid;BORDER-LEFT:#e5e5e5 1px solid;WIDTH:525px;BORDER-BOTTOM:#e5e5e5 1px solid;BACKGROUND-COLOR:white;" cellSpacing=0 cellPadding=0&gt;

&lt;TR style="VERTICAL-ALIGN:top;LINE-HEIGHT:normal;"&gt;
&lt;TD style="WIDTH:40px;TEXT-ALIGN:right;"&gt;&lt;PRE style="BORDER-RIGHT:#e7e7e7 1px solid;PADDING-RIGHT:2px;PADDING-LEFT:2px;FONT-SIZE:11px;PADDING-BOTTOM:2px;MARGIN:0px;COLOR:gray;PADDING-TOP:2px;FONT-FAMILY:courier new;"&gt;1&lt;BR&gt;2&lt;BR&gt;3&lt;BR&gt;4&lt;BR&gt; &lt;/PRE&gt;&lt;/TD&gt;
&lt;TD style="WIDTH:465px;"&gt;
&lt;DIV style="PADDING-RIGHT:2px;OVERFLOW-Y:hidden;PADDING-LEFT:8px;PADDING-BOTTOM:2px;MARGIN:0px;OVERFLOW:scroll;WIDTH:465px;PADDING-TOP:2px;"&gt;&lt;PRE&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;class&lt;/SPAN&gt; RenderSystemD3D9 : &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;public&lt;/SPAN&gt; IRenderSystem&lt;BR&gt;{&lt;BR&gt;    &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:green;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;// IRenderSystem methods&lt;/SPAN&gt;&lt;BR&gt;}&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;P&gt;D3D10 Render class&lt;/P&gt;
&lt;DIV style="BACKGROUND-COLOR:white;"&gt;
&lt;TABLE style="BORDER-RIGHT:#e5e5e5 1px solid;BORDER-TOP:#e5e5e5 1px solid;BORDER-LEFT:#e5e5e5 1px solid;WIDTH:525px;BORDER-BOTTOM:#e5e5e5 1px solid;BACKGROUND-COLOR:white;" cellSpacing=0 cellPadding=0&gt;

&lt;TR style="VERTICAL-ALIGN:top;LINE-HEIGHT:normal;"&gt;
&lt;TD style="WIDTH:40px;TEXT-ALIGN:right;"&gt;&lt;PRE style="BORDER-RIGHT:#e7e7e7 1px solid;PADDING-RIGHT:2px;PADDING-LEFT:2px;FONT-SIZE:11px;PADDING-BOTTOM:2px;MARGIN:0px;COLOR:gray;PADDING-TOP:2px;FONT-FAMILY:courier new;"&gt;1&lt;BR&gt;2&lt;BR&gt;3&lt;BR&gt;4&lt;BR&gt; &lt;/PRE&gt;&lt;/TD&gt;
&lt;TD style="WIDTH:465px;"&gt;
&lt;DIV style="PADDING-RIGHT:2px;OVERFLOW-Y:hidden;PADDING-LEFT:8px;PADDING-BOTTOM:2px;MARGIN:0px;OVERFLOW:scroll;WIDTH:465px;PADDING-TOP:2px;"&gt;&lt;PRE&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;class&lt;/SPAN&gt; RenderSystemD3D10 : &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;public&lt;/SPAN&gt; IRenderSystem&lt;BR&gt;{&lt;BR&gt;    &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:green;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;// IRenderSystem methods&lt;/SPAN&gt;&lt;BR&gt;}&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;At this moment im using 4 classes for the different D3D version:&lt;BR&gt;RenderSystemD3D9&lt;BR&gt;RenderSystemD3D9Ex&lt;BR&gt;RenderSystemD3D10&lt;BR&gt;RenderSystemD3D10_1&lt;/P&gt;
&lt;P&gt;so in case i can use the D3D10Device1 class even when D3D10.1 is not supported i can allready eliminate 1 of those classes.&lt;/P&gt;</description></item></channel></rss>