|
|

楼主 |
发表于 2007-1-31 17:34:00
|
显示全部楼层
Re:请教个函数~~~~
struct Vertex
{
float x, y, z;
float tu, tv;
};
#define D3DFVF_CUSTOMVERTEX(D3DFVF_XYZ | D3DFVF_TEX1 | D3DFVF_TEXCOORDSIZE2(0))
struct Vertex2
{
float x, y, z, w;
float tu, tv;
};
#define D3DFVF_CUSTOMVERTEX2(D3DFVF_XYZW | D3DFVF_TEX1 | D3DFVF_TEXCOORDSIZE2(0))
...
IDirect3DVertexDeclaration9* Vertex_Declaration;
D3DVERTEXELEMENT9 Declaration_Elements[] =
{
{0, 0, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0},
{0, 16, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0},
D3DDECL_END()
};
g_pd3dDevice->CreateVertexDeclaration(Declaration_Elements, &Vertex_Declaration);
g_pd3dDevice->CreateVertexBuffer( 24*sizeof(Vertex),D3DUSAGE_SOFTWAREPROCESSING, D3DFVF_CUSTOMVERTEX, D3DPOOL_DEFAULT, &g_pVertexBuffer, NULL );
g_pd3dDevice->CreateVertexBuffer( 24*sizeof(Vertex2),0, D3DFVF_CUSTOMVERTEX2, D3DPOOL_DEFAULT, &g_pTransformedVertexBuffer, NULL );
...
g_pd3dDevice->SetStreamSource( 0, g_pVertexBuffer, 0, sizeof(Vertex) );
g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
g_pd3dDevice-> rocessVertices(0, 0, 24, g_pTransformedVertexBuffer, Vertex_Declaration, 0);
|
|