add support for BLEND_WEIGHTED_MULTIPLY and BLEND_INVERT_DEST in d3d
This commit is contained in:
@@ -1198,6 +1198,12 @@ void RageDisplay_D3D::SetTextureFiltering( TextureUnit tu, bool b )
|
|||||||
void RageDisplay_D3D::SetBlendMode( BlendMode mode )
|
void RageDisplay_D3D::SetBlendMode( BlendMode mode )
|
||||||
{
|
{
|
||||||
g_pd3dDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE );
|
g_pd3dDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE );
|
||||||
|
|
||||||
|
if( mode == BLEND_INVERT_DEST )
|
||||||
|
g_pd3dDevice->SetRenderState( D3DRS_BLENDOP, D3DBLENDOP_SUBTRACT );
|
||||||
|
else
|
||||||
|
g_pd3dDevice->SetRenderState( D3DRS_BLENDOP, D3DBLENDOP_ADD );
|
||||||
|
|
||||||
switch( mode )
|
switch( mode )
|
||||||
{
|
{
|
||||||
case BLEND_NORMAL:
|
case BLEND_NORMAL:
|
||||||
@@ -1212,6 +1218,14 @@ void RageDisplay_D3D::SetBlendMode( BlendMode mode )
|
|||||||
g_pd3dDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_ONE );
|
g_pd3dDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_ONE );
|
||||||
g_pd3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_ZERO );
|
g_pd3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_ZERO );
|
||||||
break;
|
break;
|
||||||
|
case BLEND_WEIGHTED_MULTIPLY:
|
||||||
|
g_pd3dDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_DESTCOLOR );
|
||||||
|
g_pd3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_SRCCOLOR );
|
||||||
|
break;
|
||||||
|
case BLEND_INVERT_DEST:
|
||||||
|
g_pd3dDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_ONE );
|
||||||
|
g_pd3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_ONE );
|
||||||
|
break;
|
||||||
case BLEND_NO_EFFECT:
|
case BLEND_NO_EFFECT:
|
||||||
g_pd3dDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_ZERO );
|
g_pd3dDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_ZERO );
|
||||||
g_pd3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_ONE );
|
g_pd3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_ONE );
|
||||||
|
|||||||
Reference in New Issue
Block a user