void CreateTextureFromFile( const Diligent::Char *FilePath, const TextureLoadInfo& TexLoadInfo, IRenderDevice *pDevice, ITexture **ppTexture ) { RefCntAutoPtr<Image> pImage; RefCntAutoPtr<IDataBlob> pDDSData; CreateImageFromFile( FilePath, &pImage, &pDDSData ); if( pImage ) CreateTextureFromImage( pImage, TexLoadInfo, pDevice, ppTexture ); else if(pDDSData) CreateTextureFromDDS( pDDSData, TexLoadInfo, pDevice, ppTexture ); }
//-------------------------------------------------------------------------------------- HRESULT CreateDDSTextureFromFile( ID3D10Device* pDev, WCHAR* szFileName, ID3D10ShaderResourceView** ppSRV, bool bSRGB ) { BYTE* pHeapData = NULL; DDS_HEADER* pHeader = NULL; BYTE* pBitData = NULL; UINT BitSize = 0; HRESULT hr = LoadTextureDataFromFile( szFileName, &pHeapData, &pHeader, &pBitData, &BitSize ); if(FAILED(hr)) { SAFE_DELETE_ARRAY( pHeapData ); return hr; } hr = CreateTextureFromDDS( pDev, pHeader, pBitData, BitSize, ppSRV, bSRGB ); SAFE_DELETE_ARRAY( pHeapData ); return hr; }
//-------------------------------------------------------------------------------------- HRESULT CreateDDSTextureFromFile( LPDIRECT3DDEVICE9 pDev, WCHAR* szFileName, LPDIRECT3DTEXTURE9* ppTex ) { BYTE* pHeapData = NULL; DDS_HEADER* pHeader= NULL; BYTE* pBitData = NULL; UINT BitSize = 0; HRESULT hr = LoadTextureDataFromFile( szFileName, &pHeapData, &pHeader, &pBitData, &BitSize ); if(FAILED(hr)) { SAFE_DELETE_ARRAY( pHeapData ); return hr; } hr = CreateTextureFromDDS( pDev, pHeader, pBitData, BitSize, ppTex ); SAFE_DELETE_ARRAY( pHeapData ); return hr; }