Exemple #1
0
HRESULT MeshEntity::CreateMeshFromFile_Serial(RenderDevicePtr pDev, const char* sFileName)
{
	// Load Texture sequentially
	asset_ptr<MeshEntity> my_asset(this);
	CMeshLoader loader_( my_asset, sFileName );
	CMeshLoader* pLoader = &loader_;
	CMeshProcessor processor_( my_asset );
	CMeshProcessor* pProcessor = &processor_;

	pProcessor->m_pDevice = pDev;
	
	void* pLocalData;
	int Bytes;
	if( SUCCEEDED(pLoader->Load()) && 
		SUCCEEDED(pLoader->Decompress( &pLocalData, &Bytes )) && 
		SUCCEEDED(pProcessor->Process( pLocalData, Bytes )) && 
		SUCCEEDED(pProcessor->LockDeviceObject()) && 
		SUCCEEDED(pProcessor->CopyToResource()) && 
		SUCCEEDED(pProcessor->UnLockDeviceObject()) )
	{
		m_bIsValid = true;
	}
	else
	{
		pProcessor->SetResourceError();
	}
	pProcessor->Destroy();
	pLoader->Destroy();
	return S_OK;
}
Exemple #2
0
//--------------------------------------------------------------------------------------
// This callback function will be called immediately after the Direct3D device has 
// been destroyed, which generally happens as a result of application termination or 
// windowed/full screen toggles. Resources created in the OnCreateDevice callback 
// should be released here, which generally includes all D3DPOOL_MANAGED resources. 
//--------------------------------------------------------------------------------------
void CALLBACK OnDestroyDevice( void* pUserContext )
{
    g_DialogResourceManager.OnD3D9DestroyDevice();
    g_SettingsDlg.OnD3D9DestroyDevice();
    SAFE_RELEASE( g_pEffect );
    SAFE_RELEASE( g_pFont );

    g_MeshLoader.Destroy();
}