int nVertextCount=8;//8个顶点
int nVertextTotal=nVertextCount*sizeof(D3DVertexXYZUV1);
LPDIRECT3DVERTEXBUFFER9 &pVertextBuffer=m_pVertextBuffer;
HRESULT hr=S_OK;
if (FAILED(
hr=pDevice3D->CreateVertexBuffer(
nVertextTotal,
0,
D3DVertexXYZUV1_FVF,
D3DPOOL_DEFAULT,
&pVertextBuffer,
NULL
)
))
{
return false;
}
PD3DVertexXYZUV1 pD3DVertexXYZUV1=NULL;
if (FAILED(
hr=pVertextBuffer->Lock(0,nVertextTotal,(void**)&pD3DVertexXYZUV1,0)
))
{
return false;
}
float nLength=500.0f;
float nLengthHard=nLength/2;
//前面4个顶点
pD3DVertexXYZUV1[0]=D3DVertexXYZUV1(-nLengthHard,0.0f,nLengthHard,0.0f,1.0f);//左下角
pD3DVertexXYZUV1[1]=D3DVertexXYZUV1(-nLengthHard,nLengthHard,nLengthHard,0.0f,0.0f);//左上角
pD3DVertexXYZUV1[2]=D3DVertexXYZUV1(nLengthHard,0.0f,nLengthHard,1.0f,1.0f);//右下角
pD3DVertexXYZUV1[3]=D3DVertexXYZUV1(nLengthHard,nLengthHard,nLengthHard,1.0f,0.0f);//右上角
//后面4个顶点
pD3DVertexXYZUV1[4]=D3DVertexXYZUV1(nLengthHard,0.0f,-nLengthHard,0.0f,1.0f);//左下角
pD3DVertexXYZUV1[5]=D3DVertexXYZUV1(nLengthHard,nLengthHard,-nLengthHard,0.0f,0.0f);//左上角
pD3DVertexXYZUV1[6]=D3DVertexXYZUV1(-nLengthHard,0.0f,-nLengthHard,1.0f,1.0f);//右下角
pD3DVertexXYZUV1[7]=D3DVertexXYZUV1(-nLengthHard,nLengthHard,-nLengthHard,1.0f,0.0f);//右下角
pVertextBuffer->Unlock();
上面是创建顶点缓存,下面开始绘制
pDevice->SetRenderState(D3DRS_CULLMODE,D3DCULL_NONE);
D3DXMATRIX matFloor;
D3DXMatrixTranslation(&matFloor, 0.0f, 0.0f, 0.0f);
DWORD nFillMode=0;
pDevice->GetRenderState(D3DRS_FILLMODE,&nFillMode);
pDevice->SetRenderState(D3DRS_FILLMODE,D3DFILL_WIREFRAME);
pDevice->SetTransform(D3DTS_WORLD, &matFloor);
//pDevice->SetTexture(0,m_pTexture);
pDevice->SetFVF(D3DVertexXYZUV1_FVF);
pDevice->SetStreamSource(0,m_pVertextBuffer,0,sizeof(D3DVertexXYZUV1));
pDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP,0,5);