D3DXMATRIX *dhMatrixRotationX(D3DXMATRIX *pOut, float angle ){
float my_sin, my_cos;
my_sin=(float)sin(angle);
my_cos=(float)cos(angle);
pOut->_11 = 1.0f; pOut->_12 = 0.0f; pOut->_13 = 0.0f; pOut->_14 = 0.0f;
pOut->_21 = 0.0f; pOut->_22 = my_cos; pOut->_23 = my_sin; pOut->_24 = 0.0f;
pOut->_31 = 0.0f; pOut->_32 = -my_sin; pOut->_33 = my_cos; pOut->_34 = 0.0f;
pOut->_41 = 0.0f; pOut->_42 = 0.0f; pOut->_43 = 0.0f; pOut->_44 = 1.0f;
return pOut;
}
void render(void){
D3DXMATRIX matWorld;
D3DXMATRIX rot_matrix;
D3DXMATRIX trans_matrix;
D3DXMATRIX x_rot_matrix;
static float x_rot=0;
x_rot+=0.001f;
g_d3d_device->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,0), 1.0f, 0 );
if(SUCCEEDED(g_d3d_device->BeginScene())){
g_d3d_device->SetVertexShader(D3D8T_CUSTOMVERTEX);
g_d3d_device->SetStreamSource(0,g_vb,sizeof(my_vertex));
D3DXMatrixRotationX(&x_rot_matrix,x_rot);
D3DXMatrixTranslation(&trans_matrix,-1.0,0.0f,0.0f);
D3DXMatrixMultiply(&matWorld,&x_rot_matrix,&trans_matrix);
g_d3d_device->SetTransform(D3DTS_WORLD,&matWorld );
g_d3d_device->DrawPrimitive(D3DPT_TRIANGLELIST,0,1);
dhMatrixRotationX(&x_rot_matrix,x_rot);
D3DXMatrixTranslation(&trans_matrix,1.0,0.0f,0.0f);
D3DXMatrixMultiply(&matWorld,&x_rot_matrix,&trans_matrix);
g_d3d_device->SetTransform(D3DTS_WORLD,&matWorld );
g_d3d_device->DrawPrimitive(D3DPT_TRIANGLELIST,0,1);
g_d3d_device->EndScene();
}
g_d3d_device->Present( NULL, NULL, NULL, NULL );
}