Bias depth values when drawing in BLEND_NO_EFFECT.
This commit is contained in:
@@ -859,6 +859,7 @@ void RageDisplay_D3D::SetTextureFiltering( 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 );
|
||||||
|
g_pd3dDevice->SetRenderState( D3DRS_ZBIAS, 0 );
|
||||||
switch( mode )
|
switch( mode )
|
||||||
{
|
{
|
||||||
case BLEND_NORMAL:
|
case BLEND_NORMAL:
|
||||||
@@ -872,6 +873,11 @@ void RageDisplay_D3D::SetBlendMode( BlendMode mode )
|
|||||||
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 );
|
||||||
|
|
||||||
|
/* This is almost exclusively used to draw masks to the Z-buffer. Make sure
|
||||||
|
* masks always win the depth test when drawn at the same position. */
|
||||||
|
g_pd3dDevice->SetRenderState( D3DRS_ZBIAS, 1 );
|
||||||
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ASSERT(0);
|
ASSERT(0);
|
||||||
|
|||||||
@@ -1023,6 +1023,7 @@ void RageDisplay_OGL::SetBlendMode( BlendMode mode )
|
|||||||
{
|
{
|
||||||
glEnable(GL_BLEND);
|
glEnable(GL_BLEND);
|
||||||
|
|
||||||
|
glDepthRange( 0.05, 1.0 );
|
||||||
switch( mode )
|
switch( mode )
|
||||||
{
|
{
|
||||||
case BLEND_NORMAL:
|
case BLEND_NORMAL:
|
||||||
@@ -1033,6 +1034,10 @@ void RageDisplay_OGL::SetBlendMode( BlendMode mode )
|
|||||||
break;
|
break;
|
||||||
case BLEND_NO_EFFECT:
|
case BLEND_NO_EFFECT:
|
||||||
glBlendFunc( GL_ZERO, GL_ONE );
|
glBlendFunc( GL_ZERO, GL_ONE );
|
||||||
|
|
||||||
|
/* This is almost exclusively used to draw masks to the Z-buffer. Make sure
|
||||||
|
* masks always win the depth test when drawn at the same position. */
|
||||||
|
glDepthRange( 0.0, 0.95 );
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ASSERT(0);
|
ASSERT(0);
|
||||||
|
|||||||
Reference in New Issue
Block a user