Code:
VOID cBase::DrawBox(INT X, INT Y, INT W, INT H, D3DCOLOR Color, D3DCOLOR BorderColor, LPDIRECT3DDEVICE9 pDevice) {
CONST DWORD D3D_FVF = D3DFVF_XYZRHW | D3DFVF_DIFFUSE;
struct Vertex {
FLOAT X, Y, W, H;
D3DCOLOR Color;
}
V[4] = {{(FLOAT)X, (FLOAT)(Y + H), 0.0F, 0.0F, Color},
{(FLOAT)X, (FLOAT)Y, 0.0F, 0.0F, Color},
{(FLOAT)(X + W), (FLOAT)(Y + H), 0.0F, 0.0F, Color},
{(FLOAT)(X + W), (FLOAT)Y, 0.0F, 0.0F, Color}
};
pDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, D3DZB_TRUE);
pDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
pDevice->SetRenderState(D3DRS_FOGENABLE, D3DZB_FALSE);
pDevice->SetFVF(D3D_FVF);
pDevice->SetTexture(0, NULL);
pDevice->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP, 2, V, sizeof(Vertex));
DrawBorder(X, Y, W, H, 2, BorderColor, pDevice);
}