<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>d3d textures</title>
		<link>http://www.allegro.cc/forums/view/607307</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sat, 14 May 2011 03:26:55 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What should I use to load textures? I&#39;ve been loading a texture with this:</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span>    D3DXMATERIAL<span class="k3">*</span> D3dxMaterials <span class="k3">=</span> <span class="k2">(</span>D3DXMATERIAL<span class="k3">*</span><span class="k2">)</span>D3dMatBuf-&gt;GetBufferPointer<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  2</span>    MeshMaterial <span class="k3">=</span> <span class="k1">new</span> D3DMATERIAL9<span class="k2">[</span>NumMaterials<span class="k2">]</span><span class="k2">;</span>
<span class="number">  3</span>    MeshTextures <span class="k3">=</span> <span class="k1">new</span> LPDIRECT3DTEXTURE9<span class="k2">[</span>NumMaterials<span class="k2">]</span><span class="k2">;</span>
<span class="number">  4</span>
<span class="number">  5</span>    MeshMaterial<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> D3dxMaterials<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.MatD3D<span class="k2">;</span>
<span class="number">  6</span>    MeshMaterial<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.Ambient <span class="k3">=</span> MeshMaterial<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.Diffuse<span class="k2">;</span>
<span class="number">  7</span>    MeshTextures<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  8</span>
<span class="number">  9</span>    <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>D3dxMaterials<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.pTextureFilename <span class="k3">!</span><span class="k3">=</span> NULL<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>lstrlenA<span class="k2">(</span> D3dxMaterials<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.pTextureFilename<span class="k2">)</span> <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 10</span>    <span class="k2">{</span>
<span class="number"> 11</span>        D3DXCreateTextureFromFile<span class="k2">(</span>D3dDevice, D3dxMaterials<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.pTextureFilename, <span class="k3">&amp;</span>MeshTextures<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>
<span class="number"> 13</span>        <span class="k1">if</span><span class="k2">(</span>MeshTextures<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> NULL<span class="k2">)</span>
<span class="number"> 14</span>        <span class="k2">{</span>
<span class="number"> 15</span>            <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>Screen, <span class="s">"Error"</span>, NULL, <span class="s">"failed to load texture"</span>, NULL, ALLEGRO_MESSAGEBOX_ERROR<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>        <span class="k2">}</span>
<span class="number"> 17</span>    <span class="k2">}</span>
</div></div><p>

Will al_get_d3d_system_texture accomplish the same thing? I&#39;m still learning how everything works and I noticed allegro had a texture loading function.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (shadyvillian)</author>
		<pubDate>Fri, 13 May 2011 02:13:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Allegro will load textures for you. It has to create 2 different textures:</p><p>The system texture is like a backup. It&#39;s kept in system memory, not on the gpu. It&#39;s never drawn, only copied to. When the video texture changes, the system texture is made up to date with it.</p><p>The video texture is what you draw and draw to. It&#39;s kept in memory on the gpu. GPU memory can be &quot;lost&quot; (a really annoying DirectX &quot;feature&quot;) in which case the video texture has to be refreshed from the system texture.</p><p>I think what you want is al_get_d3d_video_texture, but it&#39;s hard to tell what you plan on doing with it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Trent Gamblin)</author>
		<pubDate>Fri, 13 May 2011 05:09:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m trying to apply the texture to this model.</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> Render<span class="k2">(</span><span class="k2">)</span>
    <span class="k2">{</span>
        D3dDevice-&gt;Clear<span class="k2">(</span><span class="n">0</span>, NULL, D3DCLEAR_TARGET <span class="k3">|</span> D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB<span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span>, <span class="n">1</span>.<span class="n">0f</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>

        <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> <span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>Tiger.NumMaterials<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
        <span class="k2">{</span>
            D3dDevice-&gt;SetMaterial<span class="k2">(</span><span class="k3">&amp;</span>Tiger.MeshMaterials<span class="k2">[</span>i<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
            D3dDevice-&gt;SetTexture<span class="k2">(</span><span class="n">0</span>, Tiger.MeshTextures<span class="k2">[</span>i<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>

            Tiger.Mesh-&gt;DrawSubset<span class="k2">(</span>i<span class="k2">)</span><span class="k2">;</span>
        <span class="k2">}</span>

        <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
    <span class="k2">}</span>
</pre></div></div><p>

</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">int</span> LoadMedia<span class="k2">(</span><span class="k2">)</span>
<span class="number">  2</span>    <span class="k2">{</span>
<span class="number">  3</span>        LPD3DXBUFFER D3dMatBuf<span class="k2">;</span>
<span class="number">  4</span>
<span class="number">  5</span>        D3DXLoadMeshFromX<span class="k2">(</span><span class="s">"tiger.x"</span>, D3DXMESH_SYSTEMMEM, D3dDevice, NULL, <span class="k3">&amp;</span>D3dMatBuf, NULL, <span class="k3">&amp;</span>Tiger.NumMaterials, <span class="k3">&amp;</span>Tiger.Mesh<span class="k2">)</span><span class="k2">;</span>
<span class="number">  6</span>            <span class="k1">if</span><span class="k2">(</span>Tiger.Mesh <span class="k3">=</span><span class="k3">=</span> NULL<span class="k2">)</span>
<span class="number">  7</span>            <span class="k2">{</span>
<span class="number">  8</span>                <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>Screen, <span class="s">"Error"</span>, NULL, <span class="s">"failed to load tiger.x"</span>, NULL, ALLEGRO_MESSAGEBOX_ERROR<span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span>                Cleanup<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>                <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 11</span>            <span class="k2">}</span>
<span class="number"> 12</span>
<span class="number"> 13</span>        D3DXMATERIAL<span class="k3">*</span> D3dxMaterials <span class="k3">=</span> <span class="k2">(</span>D3DXMATERIAL<span class="k3">*</span><span class="k2">)</span>D3dMatBuf-&gt;GetBufferPointer<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>        Tiger.MeshMaterials <span class="k3">=</span> <span class="k1">new</span> D3DMATERIAL9<span class="k2">[</span>Tiger.NumMaterials<span class="k2">]</span><span class="k2">;</span>
<span class="number"> 15</span>        Tiger.MeshTextures <span class="k3">=</span> <span class="k1">new</span> LPDIRECT3DTEXTURE9<span class="k2">[</span>Tiger.NumMaterials<span class="k2">]</span><span class="k2">;</span>
<span class="number"> 16</span>
<span class="number"> 17</span>        <span class="k1">for</span><span class="k2">(</span> <span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> <span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>Tiger.NumMaterials<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span> <span class="k2">)</span>
<span class="number"> 18</span>        <span class="k2">{</span>
<span class="number"> 19</span> 
<span class="number"> 20</span>            Tiger.MeshMaterials<span class="k2">[</span>i<span class="k2">]</span> <span class="k3">=</span> D3dxMaterials<span class="k2">[</span>i<span class="k2">]</span>.MatD3D<span class="k2">;</span>
<span class="number"> 21</span>
<span class="number"> 22</span>         
<span class="number"> 23</span>            Tiger.MeshMaterials<span class="k2">[</span>i<span class="k2">]</span>.Ambient <span class="k3">=</span> Tiger.MeshMaterials<span class="k2">[</span>i<span class="k2">]</span>.Diffuse<span class="k2">;</span>
<span class="number"> 24</span>
<span class="number"> 25</span>            Tiger.MeshTextures<span class="k2">[</span>i<span class="k2">]</span> <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number"> 26</span>            <span class="k1">if</span><span class="k2">(</span>D3dxMaterials<span class="k2">[</span>i<span class="k2">]</span>.pTextureFilename <span class="k3">!</span><span class="k3">=</span> NULL <span class="k3">&amp;</span><span class="k3">&amp;</span> lstrlenA<span class="k2">(</span>D3dxMaterials<span class="k2">[</span>i<span class="k2">]</span>.pTextureFilename <span class="k2">)</span> <span class="k3">&gt;</span> <span class="n">0</span> <span class="k2">)</span>
<span class="number"> 27</span>            <span class="k2">{</span>
<span class="number"> 28</span>               
<span class="number"> 29</span>                D3DXCreateTextureFromFileA<span class="k2">(</span>D3dDevice, D3dxMaterials<span class="k2">[</span>i<span class="k2">]</span>.pTextureFilename, <span class="k3">&amp;</span>Tiger.MeshTextures<span class="k2">[</span>i<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 30</span>
<span class="number"> 31</span>                <span class="k1">if</span><span class="k2">(</span>Tiger.MeshTextures<span class="k2">[</span>i<span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> NULL<span class="k2">)</span>
<span class="number"> 32</span>                <span class="k2">{</span>
<span class="number"> 33</span>                    <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>Screen, <span class="s">"Error"</span>, NULL, <span class="s">"failed to load texture"</span>, NULL, ALLEGRO_MESSAGEBOX_ERROR<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 34</span>                    Cleanup<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 35</span>                    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 36</span>                <span class="k2">}</span>
<span class="number"> 37</span>            <span class="k2">}</span>
<span class="number"> 38</span>        <span class="k2">}</span>
<span class="number"> 39</span>
<span class="number"> 40</span>    D3dMatBuf-&gt;Release<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 41</span>
<span class="number"> 42</span>        <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 43</span>    <span class="k2">}</span>
</div></div><p>

</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">class</span> Model
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>    public:
<span class="number">  4</span>
<span class="number">  5</span>    <span class="k1">float</span> x<span class="k2">;</span>
<span class="number">  6</span>    <span class="k1">float</span> y<span class="k2">;</span>
<span class="number">  7</span>    <span class="k1">float</span> z<span class="k2">;</span>
<span class="number">  8</span>
<span class="number">  9</span>    LPD3DXMESH Mesh<span class="k2">;</span>
<span class="number"> 10</span>    D3DMATERIAL9<span class="k3">*</span> MeshMaterials<span class="k2">;</span>
<span class="number"> 11</span>    LPDIRECT3DTEXTURE9<span class="k3">*</span> MeshTextures<span class="k2">;</span>
<span class="number"> 12</span>
<span class="number"> 13</span>    DWORD NumMaterials<span class="k2">;</span>
<span class="number"> 14</span>
<span class="number"> 15</span>    Model<span class="k2">(</span><span class="k2">)</span><span class="k2">:</span>
<span class="number"> 16</span>    x<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>, y<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>, z<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number"> 17</span>    Mesh<span class="k2">(</span>NULL<span class="k2">)</span>, MeshMaterials<span class="k2">(</span>NULL<span class="k2">)</span>, MeshTextures<span class="k2">(</span>NULL<span class="k2">)</span>,
<span class="number"> 18</span>    NumMaterials<span class="k2">(</span><span class="n">0</span>L<span class="k2">)</span>
<span class="number"> 19</span>    <span class="k2">{</span><span class="k2">}</span>
<span class="number"> 20</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 21</span>
<span class="number"> 22</span>Model Tiger<span class="k2">;</span>
</div></div><p>

I dont think its working right the model doesnt look right. Does the al_get_d3d_video_texture function do the mat3d3 and ambient stuff?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (shadyvillian)</author>
		<pubDate>Fri, 13 May 2011 05:49:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>No, it just gives you a texture, it has no knowledge mof materials or anything. If you&#39;re trying to texture something then you want the video texture not the system texture.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Trent Gamblin)</author>
		<pubDate>Fri, 13 May 2011 10:16:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>So like this?</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">int</span> LoadMedia<span class="k2">(</span><span class="k2">)</span>
<span class="number">  2</span>    <span class="k2">{</span>
<span class="number">  3</span>        LPD3DXBUFFER D3dMatBuf<span class="k2">;</span>
<span class="number">  4</span>
<span class="number">  5</span>        D3DXLoadMeshFromX<span class="k2">(</span><span class="s">"tiger.x"</span>, D3DXMESH_SYSTEMMEM, D3dDevice, NULL, <span class="k3">&amp;</span>D3dMatBuf, NULL, <span class="k3">&amp;</span>Tiger.NumMaterials, <span class="k3">&amp;</span>Tiger.Mesh<span class="k2">)</span><span class="k2">;</span>
<span class="number">  6</span>            <span class="k1">if</span><span class="k2">(</span>Tiger.Mesh <span class="k3">=</span><span class="k3">=</span> NULL<span class="k2">)</span>
<span class="number">  7</span>            <span class="k2">{</span>
<span class="number">  8</span>                <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>Screen, <span class="s">"Error"</span>, NULL, <span class="s">"failed to load tiger.x"</span>, NULL, ALLEGRO_MESSAGEBOX_ERROR<span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span>                Cleanup<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>                <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 11</span>            <span class="k2">}</span>
<span class="number"> 12</span>
<span class="number"> 13</span>        D3DXMATERIAL<span class="k3">*</span> D3dxMaterials <span class="k3">=</span> <span class="k2">(</span>D3DXMATERIAL<span class="k3">*</span><span class="k2">)</span>D3dMatBuf-&gt;GetBufferPointer<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>        Tiger.MeshMaterials <span class="k3">=</span> <span class="k1">new</span> D3DMATERIAL9<span class="k2">[</span>Tiger.NumMaterials<span class="k2">]</span><span class="k2">;</span>
<span class="number"> 15</span>        Tiger.MeshTextures <span class="k3">=</span> <span class="k1">new</span> LPDIRECT3DTEXTURE9<span class="k2">[</span>Tiger.NumMaterials<span class="k2">]</span><span class="k2">;</span>
<span class="number"> 16</span>        Tiger.Texture <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"tiger.bmp"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>
<span class="number"> 18</span>        <span class="k1">for</span><span class="k2">(</span> <span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> <span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>Tiger.NumMaterials<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span> <span class="k2">)</span>
<span class="number"> 19</span>        <span class="k2">{</span>
<span class="number"> 20</span>
<span class="number"> 21</span>            Tiger.MeshMaterials<span class="k2">[</span>i<span class="k2">]</span> <span class="k3">=</span> D3dxMaterials<span class="k2">[</span>i<span class="k2">]</span>.MatD3D<span class="k2">;</span>
<span class="number"> 22</span>
<span class="number"> 23</span>            Tiger.MeshMaterials<span class="k2">[</span>i<span class="k2">]</span>.Ambient <span class="k3">=</span> Tiger.MeshMaterials<span class="k2">[</span>i<span class="k2">]</span>.Diffuse<span class="k2">;</span>
<span class="number"> 24</span>
<span class="number"> 25</span>            Tiger.MeshTextures<span class="k2">[</span>i<span class="k2">]</span> <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number"> 26</span>
<span class="number"> 27</span>            <span class="k1">if</span><span class="k2">(</span>Tiger.Texture <span class="k3">=</span><span class="k3">=</span> NULL<span class="k2">)</span>
<span class="number"> 28</span>            <span class="k2">{</span>
<span class="number"> 29</span>                <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>Screen, <span class="s">"Error"</span>, NULL, <span class="s">"failed to load texture"</span>, NULL, ALLEGRO_MESSAGEBOX_ERROR<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 30</span>                Cleanup<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 31</span>                <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 32</span>            <span class="k2">}</span>
<span class="number"> 33</span>
<span class="number"> 34</span>            Tiger.MeshTextures<span class="k2">[</span>i<span class="k2">]</span> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_d3d_video_texture"><span class="a">al_get_d3d_video_texture</span></a><span class="k2">(</span>Tiger.Texture<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 35</span>        <span class="k2">}</span>
<span class="number"> 36</span>
<span class="number"> 37</span>    D3dMatBuf-&gt;Release<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 38</span>
<span class="number"> 39</span>        <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 40</span>    <span class="k2">}</span>
</div></div><p>

Its still not showing up. Is there something else I have to do? I used the tutorial from msdn and their code was very similar and the texture showed up.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (shadyvillian)</author>
		<pubDate>Sat, 14 May 2011 01:10:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I have no clue how to use all of that d3dx stuff. The only guess I can make is somethings wrong with your light source.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Trent Gamblin)</author>
		<pubDate>Sat, 14 May 2011 03:26:55 +0000</pubDate>
	</item>
</rss>
