HRESULT CMyD3DApplication::Render()
{ //背景色の設定
m_pd3dDevice_Radar->Clear(0,NULL,D3DCLEAR_TARGET,0x00000255,1.0f,0L);
//--------------------------------------------------------------------------//
// Begin the scene
if( SUCCEEDED( m_pd3dDevice_Radar->BeginScene() ) )//Begin!!
{
if (m_bPower)
{
D3DMATRIX matRotate, matScale, matTranslate;
if (m_bHighV)
{
for(m_cRadarTarget.m_sTargetLink.Reset();!m_cRadarTarget.m_sTargetLink.EndOfList();m_cRadarTarget.m_sTargetLink.Next())
{
int radar_position = m_cRadarTarget.m_sTargetLink.CurrentPosition();
vTarget = m_cRadarTarget.GetTargetPosition(radar_position);
if(vTarget.x-m_fCenterPosX>0 && vTarget.y-m_fCenterPosY>0)
//roll method
D3DUtil_SetRotateZMatrix( matRotate, g_PI_DIV_2*3+40.0f*g_DEGTORAD);
if(vTarget.x-m_fCenterPosX>0 && vTarget.y-m_fCenterPosY<0)
//roll method
D3DUtil_SetRotateZMatrix( matRotate, g_PI+50.0f*g_DEGTORAD);
if(vTarget.x-m_fCenterPosX<0 && vTarget.y-m_fCenterPosY>0)
D3DUtil_SetRotateZMatrix( matRotate, +50.0f*g_DEGTORAD );
if(vTarget.x-m_fCenterPosX<0 && vTarget.y-m_fCenterPosY<0)
D3DUtil_SetRotateZMatrix( matRotate, g_PI-50.0f*g_DEGTORAD );
m_pd3dDevice_Radar->SetMaterial( &mtrl_echo[radar_position] );
//m._11 = m_cRadarTarget.GetTargetSize(radar_position)
//m._22 = m_cRadarTarget.GetTargetSize(radar_position)
//m._33 = 1.0f
//m._12 = m._13 = m._14 = m._21 = m._23 = m._24 = 0.0f;
//m._31 = m._32 = m._34 = m._41 = m._42 = m._43 = 0.0f;
//m._11 = m._22 = m._33 = m._44 = 1.0f;
D3DUtil_SetScaleMatrix( matScale, m_cRadarTarget.GetTargetSize(radar_position), m_cRadarTarget.GetTargetSize(radar_position), 1.0f );
//m._41 = vTarget.x; m._42 = vTarget.y; m._43 = vTarget.z;
D3DUtil_SetTranslateMatrix( matTranslate, vTarget);
D3DMath_MatrixMultiply( matWorld_echo, matRotate, matTranslate );//[Q] = [A] * [B]
D3DMath_MatrixMultiply( matWorld_echo, matScale, matWorld_echo );//[Q] = [A] * [B]
//从视图空间到到屏幕的投影转换
m_pd3dDevice_Radar->SetTransform( D3DTRANSFORMSTATE_WORLD, &matWorld_echo );
//渲染矩形m_MeshTarget
m_pd3dDevice_Radar->DrawPrimitive( D3DPT_TRIANGLESTRIP, D3DFVF_VERTEX,m_MeshTarget, 4, 0 );
}
}
}
m_pd3dDevice_Radar->SetRenderState( D3DRENDERSTATE_ALPHABLENDENABLE, FALSE );
m_pd3dDevice_Radar->EndScene();
}
//--------------------------------------------------------------------------//
m_pddsRenderTarget->ReleaseDC(hDC);
return S_OK;
}