用DirectX9的d3dvertexelement9数组定义2D顶点的时候出了有关问题

用DirectX9的d3dvertexelement9数组定义2D顶点的时候出了问题
代码在这里,使用方法参见压缩文件内的ReadMe.txt文件。想使用2D的坐标(另外带有纹理坐标),也就是变换后的坐标,可是不知道怎么的,运行时不显示图像。谁能告诉我问题出在哪里呢?
http://download.****.net/detail/u011873969/7934819
------解决思路----------------------
使用双面材质?照明有吗?相机镜头对准了吗?
------解决思路----------------------
帮你看了看代码,发现以下几个问题:

1、Vertex.cpp文件中,void InitAllVertexDeclarations()函数中


D3DVERTEXELEMENT9 Vertex2DTexElements[] =
{
{ 0, 0, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITIONT, 0 },
{ 0, 4*sizeof(WORD), D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0 },
D3DDECL_END()
};

应该改为:


D3DVERTEXELEMENT9 Vertex2DTexElements[] =
{
{ 0, 0, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITIONT, 0 },
{ 0, sizeof(D3DXVECTOR3), D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0 },
D3DDECL_END()
};


2、WinMain.cpp文件中的BOOL DoInit()函数中


// Create the index buffer and set data
g_pD3DDevice->CreateIndexBuffer(sizeof(WORD) * 2, D3DUSAGE_WRITEONLY, \
D3DFMT_INDEX32, D3DPOOL_DEFAULT, \
&g_pIB, NULL);

应该改为

// Create the index buffer and set data
g_pD3DDevice->CreateIndexBuffer(sizeof(WORD) * 6, D3DUSAGE_WRITEONLY, \
D3DFMT_INDEX16, D3DPOOL_DEFAULT, \
&g_pIB, NULL);


3、同一函数中,

// Load the texture map
D3DXCreateTextureFromFile(g_pD3DDevice, _T("Beauty_0.jpg"), &g_pTexture);

前面要加上InitAllVertexDeclarations()函数的调用。