void SetDrawMode(int mode) { switch(mode) { case DM_Normal: D3DDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA); D3DDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA); D3DDevice->SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_ADD); break; case DM_NoBlend: D3DDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ONE); D3DDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ZERO); D3DDevice->SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_ADD); break; case DM_Add: D3DDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA); D3DDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE); D3DDevice->SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_ADD); break; case DM_Subtract: D3DDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA); D3DDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE); D3DDevice->SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_REVSUBTRACT); break; case DM_Multiply: D3DDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_DESTCOLOR); D3DDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ZERO); D3DDevice->SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_ADD); break; } }