<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ScapeCode &#187; Uncategorized</title>
	<atom:link href="http://scapecode.com/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://scapecode.com</link>
	<description>Anime, tentacles, and software development.</description>
	<lastBuildDate>Thu, 26 Aug 2010 22:32:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>SlimDX Direct3D10 X Loader</title>
		<link>http://scapecode.com/2009/11/slimdx-direct3d10-x-loader/</link>
		<comments>http://scapecode.com/2009/11/slimdx-direct3d10-x-loader/#comments</comments>
		<pubDate>Sat, 28 Nov 2009 22:49:10 +0000</pubDate>
		<dc:creator>Washu</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://scapecode.com/?p=127</guid>
		<description><![CDATA[Here&#8217;s a useful class for loading X files (using SlimDX) into a Direct3D10 Mesh object. This is based off of Jack Hoxley&#8217;s C++ code from his journal post on GameDev.Net. A few things to note about it: It doesn&#8217;t handle multiple materials (or materials at all). To handle that would require you to be sure [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a useful class for loading X files (using SlimDX) into a Direct3D10 Mesh object. This is based off of Jack Hoxley&#8217;s C++ code from his journal post on GameDev.Net.</p>
<p>A few things to note about it: It doesn&#8217;t handle multiple materials (or materials at all). To handle that would require you to be sure to optimize the D3D9 mesh in place, then harvest the EffectInstance&#8217;s and also the materials. That way you could load the appropriate textures and bind them during rendering of the appropriate attributes. For simple X meshes this isn&#8217;t an issue, but some (like the Airplane model that comes with the DirectX SDK) have multiple textures.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">using</span> <span style="color: #008080;">System</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Windows.Forms</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">DXGI </span><span style="color: #008000;">=</span> SlimDX.<span style="color: #0000FF;">DXGI</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">D3D9 </span><span style="color: #008000;">=</span> SlimDX.<span style="color: #0000FF;">Direct3D9</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">SlimDX.Direct3D10</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF;">namespace</span> XMeshLoader <span style="color: #000000;">&#123;</span>
    <span style="color: #FF0000;">class</span> XLoader <span style="color: #008000;">:</span> IDisposable <span style="color: #000000;">&#123;</span>
        <span style="color: #0600FF;">public</span> XLoader<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
            CreateNullDevice<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #008080;">#region IDisposable</span>
        ~XLoader<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
            Dispose<span style="color: #000000;">&#40;</span><span style="color: #0600FF;">false</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> Dispose<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
            Dispose<span style="color: #000000;">&#40;</span><span style="color: #0600FF;">true</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">private</span> <span style="color: #0600FF;">void</span> Dispose<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">bool</span> disposeManagedObjects<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
            <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>disposeManagedObjects<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
                device9.<span style="color: #0000FF;">Dispose</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                form.<span style="color: #0000FF;">Dispose</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
        <span style="color: #000000;">&#125;</span>
        <span style="color: #008080;">#endregion</span>
&nbsp;
        <span style="color: #0600FF;">public</span> Mesh CreateMesh<span style="color: #000000;">&#40;</span>Device device, D3D9.<span style="color: #0000FF;">Mesh</span> mesh9, <span style="color: #0600FF;">out</span> InputElement<span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> outDecls<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
            var inDecls <span style="color: #008000;">=</span> mesh9.<span style="color: #0000FF;">GetDeclaration</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            outDecls <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> InputElement<span style="color: #000000;">&#91;</span>inDecls.<span style="color: #0000FF;">Length</span> <span style="color: #008000;">-</span> <span style="color: #FF0000;">1</span><span style="color: #000000;">&#93;</span><span style="color: #008000;">;</span>
            ConvertDecleration<span style="color: #000000;">&#40;</span>inDecls, outDecls<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            var flags <span style="color: #008000;">=</span> MeshFlags.<span style="color: #0000FF;">None</span><span style="color: #008000;">;</span>
            <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span>mesh9.<span style="color: #0000FF;">CreationOptions</span> <span style="color: #008000;">&amp;</span>amp<span style="color: #008000;">;</span> D3D9.<span style="color: #0000FF;">MeshFlags</span>.<span style="color: #0000FF;">Use32Bit</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">!=</span> <span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span>
                flags <span style="color: #008000;">=</span> MeshFlags.<span style="color: #0000FF;">Has32BitIndices</span><span style="color: #008000;">;</span>
&nbsp;
            var mesh <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Mesh<span style="color: #000000;">&#40;</span>device, outDecls, D3D9.<span style="color: #0000FF;">DeclarationUsage</span>.<span style="color: #0000FF;">Position</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">ToUpper</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>, mesh9.<span style="color: #0000FF;">VertexCount</span>, mesh9.<span style="color: #0000FF;">FaceCount</span>, flags<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            ConvertIndexBuffer<span style="color: #000000;">&#40;</span>mesh9, mesh<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            ConvertVertexBuffer<span style="color: #000000;">&#40;</span>mesh9, mesh<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            ConfigureAttributeTable<span style="color: #000000;">&#40;</span>mesh9, mesh<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            mesh.<span style="color: #0000FF;">GenerateAdjacencyAndPointRepresentation</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            mesh.<span style="color: #0000FF;">Optimize</span><span style="color: #000000;">&#40;</span>MeshOptimizeFlags.<span style="color: #0000FF;">Compact</span> <span style="color: #008000;">|</span> MeshOptimizeFlags.<span style="color: #0000FF;">AttributeSort</span> <span style="color: #008000;">|</span> MeshOptimizeFlags.<span style="color: #0000FF;">VertexCache</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            mesh.<span style="color: #0000FF;">Commit</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #0600FF;">return</span> mesh<span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">public</span> Mesh LoadFile<span style="color: #000000;">&#40;</span>Device device, <span style="color: #FF0000;">string</span> filename, <span style="color: #0600FF;">out</span> InputElement<span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> outDecls<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
            <span style="color: #0600FF;">using</span> <span style="color: #000000;">&#40;</span>var mesh9 <span style="color: #008000;">=</span> D3D9.<span style="color: #0000FF;">Mesh</span>.<span style="color: #0000FF;">FromFile</span><span style="color: #000000;">&#40;</span>device9, filename, D3D9.<span style="color: #0000FF;">MeshFlags</span>.<span style="color: #0000FF;">SystemMemory</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
                <span style="color: #0600FF;">return</span> CreateMesh<span style="color: #000000;">&#40;</span>device, mesh9, <span style="color: #0600FF;">out</span> outDecls<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #008080;">#region Implementation Details</span>
        <span style="color: #0600FF;">private</span> <span style="color: #0600FF;">static</span> <span style="color: #0600FF;">void</span> ConfigureAttributeTable<span style="color: #000000;">&#40;</span>D3D9.<span style="color: #0000FF;">BaseMesh</span> inMesh, Mesh outMesh<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
            var inAttribTable <span style="color: #008000;">=</span> inMesh.<span style="color: #0000FF;">GetAttributeTable</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>inAttribTable <span style="color: #008000;">==</span> <span style="color: #0600FF;">null</span> <span style="color: #008000;">||</span> inAttribTable.<span style="color: #0000FF;">Length</span> <span style="color: #008000;">==</span> <span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
                outMesh.<span style="color: #0000FF;">SetAttributeTable</span><span style="color: #000000;">&#40;</span><span style="color: #008000;">new</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> <span style="color: #000000;">&#123;</span><span style="color: #008000;">new</span> MeshAttributeRange <span style="color: #000000;">&#123;</span>
                    FaceCount <span style="color: #008000;">=</span> outMesh.<span style="color: #0000FF;">FaceCount</span>,
                    FaceStart <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span>,
                    Id <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span>,
                    VertexCount <span style="color: #008000;">=</span> outMesh.<span style="color: #0000FF;">VertexCount</span>,
                    VertexStart <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span>
                <span style="color: #000000;">&#125;</span><span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span> <span style="color: #0600FF;">else</span> <span style="color: #000000;">&#123;</span>
                var outAttribTable <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> MeshAttributeRange<span style="color: #000000;">&#91;</span>inAttribTable.<span style="color: #0000FF;">Length</span><span style="color: #000000;">&#93;</span><span style="color: #008000;">;</span>
                <span style="color: #0600FF;">for</span> <span style="color: #000000;">&#40;</span>var i <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> i <span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;</span> inAttribTable.<span style="color: #0000FF;">Length</span><span style="color: #008000;">;</span> <span style="color: #008000;">++</span>i<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
                    outAttribTable<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">Id</span> <span style="color: #008000;">=</span> inAttribTable<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">AttribId</span><span style="color: #008000;">;</span>
                    outAttribTable<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">FaceCount</span> <span style="color: #008000;">=</span> inAttribTable<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">FaceCount</span><span style="color: #008000;">;</span>
                    outAttribTable<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">FaceStart</span> <span style="color: #008000;">=</span> inAttribTable<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">FaceStart</span><span style="color: #008000;">;</span>
                    outAttribTable<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">VertexCount</span> <span style="color: #008000;">=</span> inAttribTable<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">VertexCount</span><span style="color: #008000;">;</span>
                    outAttribTable<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">VertexStart</span> <span style="color: #008000;">=</span> inAttribTable<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">VertexStart</span><span style="color: #008000;">;</span>
                <span style="color: #000000;">&#125;</span>
                outMesh.<span style="color: #0000FF;">SetAttributeTable</span><span style="color: #000000;">&#40;</span>outAttribTable<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
&nbsp;
            outMesh.<span style="color: #0000FF;">GenerateAttributeBufferFromTable</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">private</span> <span style="color: #0600FF;">static</span> <span style="color: #0600FF;">void</span> ConvertIndexBuffer<span style="color: #000000;">&#40;</span>D3D9.<span style="color: #0000FF;">BaseMesh</span> inMesh, Mesh outMesh<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
            <span style="color: #0600FF;">using</span> <span style="color: #000000;">&#40;</span>var inStream <span style="color: #008000;">=</span> inMesh.<span style="color: #0000FF;">LockIndexBuffer</span><span style="color: #000000;">&#40;</span>D3D9.<span style="color: #0000FF;">LockFlags</span>.<span style="color: #0000FF;">None</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
            <span style="color: #0600FF;">using</span> <span style="color: #000000;">&#40;</span>var outBuffer <span style="color: #008000;">=</span> outMesh.<span style="color: #0000FF;">GetIndexBuffer</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
                <span style="color: #0600FF;">using</span> <span style="color: #000000;">&#40;</span>var outStream <span style="color: #008000;">=</span> outBuffer.<span style="color: #0000FF;">Map</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
                    <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span>outMesh.<span style="color: #0000FF;">Flags</span> <span style="color: #008000;">&amp;</span>amp<span style="color: #008000;">;</span> MeshFlags.<span style="color: #0000FF;">Has32BitIndices</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">!=</span> <span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span>
                        outStream.<span style="color: #0000FF;">WriteRange</span><span style="color: #000000;">&#40;</span>inStream.<span style="color: #0000FF;">ReadRange</span><span style="color: #000000;">&#40;</span>inMesh.<span style="color: #0000FF;">FaceCount</span> <span style="color: #008000;">*</span> <span style="color: #FF0000;">3</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                    <span style="color: #0600FF;">else</span>
                        outStream.<span style="color: #0000FF;">WriteRange</span><span style="color: #000000;">&#40;</span>inStream.<span style="color: #0000FF;">ReadRange</span><span style="color: #000000;">&#40;</span>inMesh.<span style="color: #0000FF;">FaceCount</span> <span style="color: #008000;">*</span> <span style="color: #FF0000;">3</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                <span style="color: #000000;">&#125;</span>
                outBuffer.<span style="color: #0000FF;">Unmap</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
            inMesh.<span style="color: #0000FF;">UnlockIndexBuffer</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">private</span> <span style="color: #0600FF;">static</span> <span style="color: #0600FF;">void</span> ConvertVertexBuffer<span style="color: #000000;">&#40;</span>D3D9.<span style="color: #0000FF;">BaseMesh</span> inMesh, Mesh outMesh<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
            <span style="color: #0600FF;">using</span> <span style="color: #000000;">&#40;</span>var inStream <span style="color: #008000;">=</span> inMesh.<span style="color: #0000FF;">LockVertexBuffer</span><span style="color: #000000;">&#40;</span>D3D9.<span style="color: #0000FF;">LockFlags</span>.<span style="color: #0000FF;">None</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
            <span style="color: #0600FF;">using</span> <span style="color: #000000;">&#40;</span>var outBuffer <span style="color: #008000;">=</span> outMesh.<span style="color: #0000FF;">GetVertexBuffer</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
                <span style="color: #0600FF;">using</span> <span style="color: #000000;">&#40;</span>var outStream <span style="color: #008000;">=</span> outBuffer.<span style="color: #0000FF;">Map</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
                    outStream.<span style="color: #0000FF;">WriteRange</span><span style="color: #000000;">&#40;</span>inStream.<span style="color: #0000FF;">ReadRange</span><span style="color: #000000;">&#40;</span>inMesh.<span style="color: #0000FF;">VertexCount</span> <span style="color: #008000;">*</span> inMesh.<span style="color: #0000FF;">BytesPerVertex</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                <span style="color: #000000;">&#125;</span>
                outBuffer.<span style="color: #0000FF;">Unmap</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
            inMesh.<span style="color: #0000FF;">UnlockIndexBuffer</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">private</span> <span style="color: #0600FF;">static</span> <span style="color: #0600FF;">void</span> ConvertDecleration<span style="color: #000000;">&#40;</span>D3D9.<span style="color: #0000FF;">VertexElement</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> inDecls, InputElement<span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> outDecls<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
            <span style="color: #0600FF;">for</span> <span style="color: #000000;">&#40;</span>var i <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> i <span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;</span> inDecls.<span style="color: #0000FF;">Length</span> <span style="color: #008000;">-</span> <span style="color: #FF0000;">1</span><span style="color: #008000;">;</span> <span style="color: #008000;">++</span>i<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
                outDecls<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">SemanticName</span> <span style="color: #008000;">=</span> ConvertSemanticName<span style="color: #000000;">&#40;</span>inDecls<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">Usage</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                outDecls<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">SemanticIndex</span> <span style="color: #008000;">=</span> inDecls<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">UsageIndex</span><span style="color: #008000;">;</span>
                outDecls<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">AlignedByteOffset</span> <span style="color: #008000;">=</span> inDecls<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">Offset</span><span style="color: #008000;">;</span>
                outDecls<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">Slot</span> <span style="color: #008000;">=</span> inDecls<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">Stream</span><span style="color: #008000;">;</span>
                outDecls<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">Classification</span> <span style="color: #008000;">=</span> InputClassification.<span style="color: #0000FF;">PerVertexData</span><span style="color: #008000;">;</span>
                outDecls<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">InstanceDataStepRate</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span>
                outDecls<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">Format</span> <span style="color: #008000;">=</span> ConvertFormat<span style="color: #000000;">&#40;</span>inDecls<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">Type</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">private</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">string</span> ConvertSemanticName<span style="color: #000000;">&#40;</span>D3D9.<span style="color: #0000FF;">DeclarationUsage</span> usage<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
            <span style="color: #0600FF;">switch</span> <span style="color: #000000;">&#40;</span>usage<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
                <span style="color: #0600FF;">case</span> D3D9.<span style="color: #0000FF;">DeclarationUsage</span>.<span style="color: #0000FF;">TextureCoordinate</span><span style="color: #008000;">:</span>
                    <span style="color: #0600FF;">return</span> <span style="color: #666666;">&quot;TEXCOORD&quot;</span><span style="color: #008000;">;</span>
                <span style="color: #0600FF;">case</span> D3D9.<span style="color: #0000FF;">DeclarationUsage</span>.<span style="color: #0000FF;">PositionTransformed</span><span style="color: #008000;">:</span>
                    <span style="color: #0600FF;">return</span> <span style="color: #666666;">&quot;POSITIONT&quot;</span><span style="color: #008000;">;</span>
                <span style="color: #0600FF;">case</span> D3D9.<span style="color: #0000FF;">DeclarationUsage</span>.<span style="color: #0000FF;">TessellateFactor</span><span style="color: #008000;">:</span>
                    <span style="color: #0600FF;">return</span> <span style="color: #666666;">&quot;TESSFACTOR&quot;</span><span style="color: #008000;">;</span>
                <span style="color: #0600FF;">case</span> D3D9.<span style="color: #0000FF;">DeclarationUsage</span>.<span style="color: #0000FF;">PointSize</span><span style="color: #008000;">:</span>
                    <span style="color: #0600FF;">return</span> <span style="color: #666666;">&quot;PSIZE&quot;</span><span style="color: #008000;">;</span>
                <span style="color: #0600FF;">default</span><span style="color: #008000;">:</span>
                    <span style="color: #0600FF;">return</span> usage.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">ToUpper</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">private</span> <span style="color: #0600FF;">static</span> DXGI.<span style="color: #0000FF;">Format</span> ConvertFormat<span style="color: #000000;">&#40;</span>D3D9.<span style="color: #0000FF;">DeclarationType</span> type<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
            <span style="color: #0600FF;">switch</span> <span style="color: #000000;">&#40;</span>type<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
                <span style="color: #0600FF;">case</span> D3D9.<span style="color: #0000FF;">DeclarationType</span>.<span style="color: #0000FF;">Float1</span><span style="color: #008000;">:</span> <span style="color: #0600FF;">return</span> DXGI.<span style="color: #0000FF;">Format</span>.<span style="color: #0000FF;">R32_Float</span><span style="color: #008000;">;</span>
                <span style="color: #0600FF;">case</span> D3D9.<span style="color: #0000FF;">DeclarationType</span>.<span style="color: #0000FF;">Float2</span><span style="color: #008000;">:</span> <span style="color: #0600FF;">return</span> DXGI.<span style="color: #0000FF;">Format</span>.<span style="color: #0000FF;">R32G32_Float</span><span style="color: #008000;">;</span>
                <span style="color: #0600FF;">case</span> D3D9.<span style="color: #0000FF;">DeclarationType</span>.<span style="color: #0000FF;">Float3</span><span style="color: #008000;">:</span> <span style="color: #0600FF;">return</span> DXGI.<span style="color: #0000FF;">Format</span>.<span style="color: #0000FF;">R32G32B32_Float</span><span style="color: #008000;">;</span>
                <span style="color: #0600FF;">case</span> D3D9.<span style="color: #0000FF;">DeclarationType</span>.<span style="color: #0000FF;">Float4</span><span style="color: #008000;">:</span> <span style="color: #0600FF;">return</span> DXGI.<span style="color: #0000FF;">Format</span>.<span style="color: #0000FF;">R32G32B32A32_Float</span><span style="color: #008000;">;</span>
                <span style="color: #0600FF;">case</span> D3D9.<span style="color: #0000FF;">DeclarationType</span>.<span style="color: #0000FF;">Color</span><span style="color: #008000;">:</span> <span style="color: #0600FF;">return</span> DXGI.<span style="color: #0000FF;">Format</span>.<span style="color: #0000FF;">R8G8B8A8_UNorm</span><span style="color: #008000;">;</span>
                <span style="color: #0600FF;">case</span> D3D9.<span style="color: #0000FF;">DeclarationType</span>.<span style="color: #0000FF;">Ubyte4</span><span style="color: #008000;">:</span> <span style="color: #0600FF;">return</span> DXGI.<span style="color: #0000FF;">Format</span>.<span style="color: #0000FF;">R8G8B8A8_UInt</span><span style="color: #008000;">;</span>
                <span style="color: #0600FF;">case</span> D3D9.<span style="color: #0000FF;">DeclarationType</span>.<span style="color: #0000FF;">Short2</span><span style="color: #008000;">:</span> <span style="color: #0600FF;">return</span> DXGI.<span style="color: #0000FF;">Format</span>.<span style="color: #0000FF;">R16G16_SInt</span><span style="color: #008000;">;</span>
                <span style="color: #0600FF;">case</span> D3D9.<span style="color: #0000FF;">DeclarationType</span>.<span style="color: #0000FF;">Short4</span><span style="color: #008000;">:</span> <span style="color: #0600FF;">return</span> DXGI.<span style="color: #0000FF;">Format</span>.<span style="color: #0000FF;">R16G16B16A16_SInt</span><span style="color: #008000;">;</span>
                <span style="color: #0600FF;">case</span> D3D9.<span style="color: #0000FF;">DeclarationType</span>.<span style="color: #0000FF;">UByte4N</span><span style="color: #008000;">:</span> <span style="color: #0600FF;">return</span> DXGI.<span style="color: #0000FF;">Format</span>.<span style="color: #0000FF;">R8G8B8A8_UNorm</span><span style="color: #008000;">;</span>
                <span style="color: #0600FF;">case</span> D3D9.<span style="color: #0000FF;">DeclarationType</span>.<span style="color: #0000FF;">Short2N</span><span style="color: #008000;">:</span> <span style="color: #0600FF;">return</span> DXGI.<span style="color: #0000FF;">Format</span>.<span style="color: #0000FF;">R16G16_SNorm</span><span style="color: #008000;">;</span>
                <span style="color: #0600FF;">case</span> D3D9.<span style="color: #0000FF;">DeclarationType</span>.<span style="color: #0000FF;">Short4N</span><span style="color: #008000;">:</span> <span style="color: #0600FF;">return</span> DXGI.<span style="color: #0000FF;">Format</span>.<span style="color: #0000FF;">R16G16B16A16_SNorm</span><span style="color: #008000;">;</span>
                <span style="color: #0600FF;">case</span> D3D9.<span style="color: #0000FF;">DeclarationType</span>.<span style="color: #0000FF;">UShort2N</span><span style="color: #008000;">:</span> <span style="color: #0600FF;">return</span> DXGI.<span style="color: #0000FF;">Format</span>.<span style="color: #0000FF;">R16G16_UNorm</span><span style="color: #008000;">;</span>
                <span style="color: #0600FF;">case</span> D3D9.<span style="color: #0000FF;">DeclarationType</span>.<span style="color: #0000FF;">UShort4N</span><span style="color: #008000;">:</span> <span style="color: #0600FF;">return</span> DXGI.<span style="color: #0000FF;">Format</span>.<span style="color: #0000FF;">R16G16B16A16_UNorm</span><span style="color: #008000;">;</span>
                <span style="color: #0600FF;">case</span> D3D9.<span style="color: #0000FF;">DeclarationType</span>.<span style="color: #0000FF;">UDec3</span><span style="color: #008000;">:</span> <span style="color: #0600FF;">return</span> DXGI.<span style="color: #0000FF;">Format</span>.<span style="color: #0000FF;">R10G10B10A2_UInt</span><span style="color: #008000;">;</span>
                <span style="color: #0600FF;">case</span> D3D9.<span style="color: #0000FF;">DeclarationType</span>.<span style="color: #0000FF;">Dec3N</span><span style="color: #008000;">:</span> <span style="color: #0600FF;">return</span> DXGI.<span style="color: #0000FF;">Format</span>.<span style="color: #0000FF;">R10G10B10A2_UNorm</span><span style="color: #008000;">;</span>
                <span style="color: #0600FF;">case</span> D3D9.<span style="color: #0000FF;">DeclarationType</span>.<span style="color: #0000FF;">HalfTwo</span><span style="color: #008000;">:</span> <span style="color: #0600FF;">return</span> DXGI.<span style="color: #0000FF;">Format</span>.<span style="color: #0000FF;">R16G16_Float</span><span style="color: #008000;">;</span>
                <span style="color: #0600FF;">case</span> D3D9.<span style="color: #0000FF;">DeclarationType</span>.<span style="color: #0000FF;">HalfFour</span><span style="color: #008000;">:</span> <span style="color: #0600FF;">return</span> DXGI.<span style="color: #0000FF;">Format</span>.<span style="color: #0000FF;">R16G16B16A16_Float</span><span style="color: #008000;">;</span>
                <span style="color: #0600FF;">default</span><span style="color: #008000;">:</span> <span style="color: #0600FF;">return</span> DXGI.<span style="color: #0000FF;">Format</span>.<span style="color: #0000FF;">Unknown</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">private</span> <span style="color: #0600FF;">void</span> CreateNullDevice<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
            form <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Form<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #0600FF;">using</span> <span style="color: #000000;">&#40;</span>var direct3D <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> D3D9.<span style="color: #0000FF;">Direct3D</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
                device9 <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> D3D9.<span style="color: #0000FF;">Device</span><span style="color: #000000;">&#40;</span>direct3D, <span style="color: #FF0000;">0</span>, D3D9.<span style="color: #0000FF;">DeviceType</span>.<span style="color: #0000FF;">NullReference</span>, form.<span style="color: #0000FF;">Handle</span>, D3D9.<span style="color: #0000FF;">CreateFlags</span>.<span style="color: #0000FF;">HardwareVertexProcessing</span>, <span style="color: #008000;">new</span> D3D9.<span style="color: #0000FF;">PresentParameters</span> <span style="color: #000000;">&#123;</span>
                    BackBufferCount <span style="color: #008000;">=</span> <span style="color: #FF0000;">1</span>,
                    BackBufferFormat <span style="color: #008000;">=</span> D3D9.<span style="color: #0000FF;">Format</span>.<span style="color: #0000FF;">A8R8G8B8</span>,
                    BackBufferHeight <span style="color: #008000;">=</span> <span style="color: #FF0000;">1</span>,
                    BackBufferWidth <span style="color: #008000;">=</span> <span style="color: #FF0000;">1</span>,
                    SwapEffect <span style="color: #008000;">=</span> D3D9.<span style="color: #0000FF;">SwapEffect</span>.<span style="color: #0000FF;">Copy</span>,
                    Windowed <span style="color: #008000;">=</span> <span style="color: #0600FF;">true</span>
                <span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">private</span> Form form<span style="color: #008000;">;</span>
        <span style="color: #0600FF;">private</span> D3D9.<span style="color: #0000FF;">Device</span> device9<span style="color: #008000;">;</span>
        <span style="color: #008080;">#endregion</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://scapecode.com/2009/11/slimdx-direct3d10-x-loader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Server outage</title>
		<link>http://scapecode.com/2009/06/server-outage/</link>
		<comments>http://scapecode.com/2009/06/server-outage/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 17:43:17 +0000</pubDate>
		<dc:creator>Washu</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://scapecode.com/?p=3</guid>
		<description><![CDATA[Well, sites back up, on WordPress now&#8230; Server crashed something spectacularily the other day. Both drives in the RAID 1 decided to take a nice vacation, and so I&#8217;m having to restore from backups I&#8217;ve kept. Thanks to google I&#8217;ve got most of my old posts, and will be dumping them up here through the [...]]]></description>
			<content:encoded><![CDATA[<p>Well, sites back up, on WordPress now&#8230;</p>
<p>Server crashed something spectacularily the other day. Both drives in the RAID 1 decided to take a nice vacation, and so I&#8217;m having to restore from backups I&#8217;ve kept.</p>
<p>Thanks to google I&#8217;ve got most of my old posts, and will be dumping them up here through the day as I edit them and put them together again.</p>
]]></content:encoded>
			<wfw:commentRss>http://scapecode.com/2009/06/server-outage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
