bool restore_objects()
	{
		if ( retry_count )
		{
			if ( --retry_count ) return false;

			release_objects();
			if ( lpdev->Reset( &dpp ) != D3D_OK ) return false;
		}

		retry_count = 0;

		LPDIRECT3DSURFACE9 lpbb;
		HRESULT hr;
		if( SUCCEEDED( hr = lpdev->GetBackBuffer( 0, 0, D3DBACKBUFFER_TYPE_MONO, & lpbb ) ) ) {
			lpbb->GetDesc( & d3dsd );
			lpbb->Release();
		}

		lpdev->SetTextureStageState(0, D3DTSS_COLOROP,   D3DTOP_SELECTARG1);
		lpdev->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
		lpdev->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);

		lpdev->SetTextureStageState(0, D3DTSS_ALPHAOP,   D3DTOP_SELECTARG1);
		lpdev->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
		lpdev->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);

		lpdev->SetRenderState(D3DRS_LIGHTING, false);
		lpdev->SetRenderState(D3DRS_ZENABLE,  false);
		lpdev->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);

		lpdev->SetRenderState(D3DRS_SRCBLEND,  D3DBLEND_SRCALPHA);
		lpdev->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
		lpdev->SetRenderState(D3DRS_ALPHABLENDENABLE, false);

		lpdev->SetFVF(D3DFVF_XYZRHW | D3DFVF_TEX1);

		if ( lpdev->CreateVertexBuffer( sizeof(d3dvertex) * 4, flags.v_usage, D3DFVF_XYZRHW | D3DFVF_TEX1, (D3DPOOL)flags.v_pool, &lpvbuf, NULL ) != D3D_OK )
			return false;

		update_filtering( 1 );

		lpdev->SetRenderState( D3DRS_DITHERENABLE,   TRUE );

		if ( lpdev->CreateTexture( surface_width, surface_height, 1, flags.t_usage, D3DFMT_X8R8G8B8, (D3DPOOL)flags.t_pool, &lptex, NULL ) != D3D_OK )
			return false;

		return true;
	}
	virtual ~display_i_d3d9()
	{
		release_objects();

		if ( lpdev )
		{
			lpdev->Release();
			lpdev = 0;
		}

		if ( lpd3d )
		{
			lpd3d->Release();
			lpd3d = 0;
		}
	}
Beispiel #3
0
 ~MIMESuffixMap() {   release_objects();   }
Beispiel #4
0
 ~MIMEMap()
 {   release_objects();  }
Beispiel #5
0
 ~MIMESubMap()
 {   release_objects();  }
Beispiel #6
0
RewriteSubstFormat::~RewriteSubstFormat()
{
    release_objects();
}
Beispiel #7
0
void DeniedDir::clear()
{
    release_objects();
}
HttpListenerList::~HttpListenerList()
{
    release_objects();
}
void HttpListenerList::clear()
{
    release_objects();
}
SubstFormat::~SubstFormat()
{
    release_objects();
}
Beispiel #11
0
void StringList::clear()
{
    release_objects();
}
Beispiel #12
0
StringList::~StringList()
{
    release_objects();
}
Beispiel #13
0
void HttpRangeList::clear()
{   release_objects();  }
Beispiel #14
0
 ~CustomFormat() {   release_objects();    }