|
|
旋转三角形一直画 不出来,求高手指点一下
struct CUSTOMVERTEX
{
FLOAT x,y,z;
DWORD color;
};
IDirect3DVertexBuffer9* g_pVB;
IDirect3DDevice9* g_pDevice;
g_pDevice = DXUTGetD3D9Device();
//加载顶点坐标
CUSTOMVERTEX cvVertex[]=
{
{ -1.0f, -1.0f, 0.0f, 0xffff0000, },
{ 1.0f, -1.0f., 0.0f, 0xff0000ff, },
{ 0.0f, 1.0f, 0.0f, 0xffffffff, },
};
void* pVB;
if(FAILED(g_pDevice->CreateVertexBuffer(3*sizeof(CUSTOMVERTEX), 0, D3DFVF_CUSTOMVERTEX, D3DPOOL_DEFAULT, &g_pVB, 0)))
{
return;
}
if(FAILED(g_pVB->Lock(0, 3*sizeof(CUSTOMVERTEX), &pVB, 0)))
{
return;
};
memcpy(pVB, &cvVertex, sizeof(cvVertex));
g_pVB->Unlock();
//开始作图
g_pDevice->Clear(0, 0, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,0), 1.0f, 0);
g_pDevice->BeginScene();
D3DXMATRIXA16 matWorld;
UINT iTime = timeGetTime() % 1000;
FLOAT fAngle = iTime * ( 2.0f * D3DX_PI ) / 1000.0f;
D3DXMatrixRotationY( &matWorld, fAngle );
g_pDevice->SetTransform( D3DTS_WORLD, &matWorld );
D3DXVECTOR3 vEyePt( 0.0f, 5.0f,-10.0f );
D3DXVECTOR3 vLookatPt( 0.0f, 0.0f, 0.0f );
D3DXVECTOR3 vUpVec( 0.0f, 1.0f, 0.0f );
D3DXMATRIXA16 matView;
D3DXMatrixLookAtLH( &matView, &vEyePt, &vLookatPt, &vUpVec );
g_pDevice->SetTransform( D3DTS_VIEW, &matView );
D3DXMATRIXA16 matProj;
D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI / 2.0f, 1.0f, 1.0f, 100.0f );
g_pDevice->SetTransform( D3DTS_PROJECTION, &matProj );
g_pDevice->SetStreamSource(0, g_pVB, 0, sizeof(CUSTOMVERTEX));
g_pDevice->SetFVF(D3DFVF_CUSTOMVERTEX);
g_pDevice->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 1);
g_pDevice->EndScene();
g_pDevice-> resent(NULL, NULL, NULL, NULL);
//清除
SAFE_RELEASE(g_pVB);
} |
|