void RenderingManagerC::DrawBox( FLOAT x1, FLOAT y1, FLOAT x2, FLOAT y2,DWORD dwFillColor, DWORD dwOutlineColor ) { D3DXVECTOR4 v[4]; v[0] = D3DXVECTOR4( x1-0.5f, y1-0.5f, 0, 0 ); v[1] = D3DXVECTOR4( x2-0.5f, y1-0.5f, 0, 0 ); v[2] = D3DXVECTOR4( x2-0.5f, y2-0.5f, 0, 0 ); v[3] = D3DXVECTOR4( x1-0.5f, y2-0.5f, 0, 0 ); g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_SELECTARG1 ); g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TFACTOR ); g_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1 ); g_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TFACTOR ); g_pd3dDevice->SetTextureStageState( 1, D3DTSS_COLOROP, D3DTOP_DISABLE ); g_pd3dDevice->SetTextureStageState( 1, D3DTSS_ALPHAOP, D3DTOP_DISABLE ); g_pd3dDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE ); g_pd3dDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA ); g_pd3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA ); g_pd3dDevice->SetVertexShader( D3DFVF_XYZRHW ); // Render the box g_pd3dDevice->SetRenderState( D3DRS_TEXTUREFACTOR, dwFillColor ); g_pd3dDevice->DrawVerticesUP( D3DPT_QUADLIST, 4, v, sizeof(v[0]) ); // Render the lines g_pd3dDevice->SetRenderState( D3DRS_TEXTUREFACTOR, dwOutlineColor ); g_pd3dDevice->DrawVerticesUP( D3DPT_LINELOOP, 4, v, sizeof(v[0]) ); }