diff options
Diffstat (limited to 'TextureLoader/src')
| -rw-r--r-- | TextureLoader/src/Image.cpp | 13 | ||||
| -rw-r--r-- | TextureLoader/src/TextureUtilities.cpp | 10 |
2 files changed, 15 insertions, 8 deletions
diff --git a/TextureLoader/src/Image.cpp b/TextureLoader/src/Image.cpp index a260678..b2c7ab9 100644 --- a/TextureLoader/src/Image.cpp +++ b/TextureLoader/src/Image.cpp @@ -395,14 +395,11 @@ namespace Diligent } Image::Image( IReferenceCounters *pRefCounters, - IFileStream *pSrcFile, + IDataBlob *pFileData, const ImageLoadInfo& LoadInfo ) : TBase(pRefCounters), m_pData( MakeNewRCObj<DataBlobImpl>()(0) ) { - RefCntAutoPtr<IDataBlob> pFileData( MakeNewRCObj<DataBlobImpl>()(0) ); - pSrcFile->Read(pFileData); - if( LoadInfo.Format == EImageFileFormat::tiff ) { LoadTiffFile(pFileData, LoadInfo ); @@ -416,4 +413,12 @@ namespace Diligent LoadJpegFile(pFileData, LoadInfo ); } } + + void Image::CreateFromDataBlob(IDataBlob *pFileData, + const ImageLoadInfo& LoadInfo, + Image **ppImage) + { + *ppImage = MakeNewRCObj<Image>()(pFileData, LoadInfo); + (*ppImage)->AddRef(); + } } diff --git a/TextureLoader/src/TextureUtilities.cpp b/TextureLoader/src/TextureUtilities.cpp index a25754e..90c5064 100644 --- a/TextureLoader/src/TextureUtilities.cpp +++ b/TextureLoader/src/TextureUtilities.cpp @@ -36,7 +36,7 @@ using namespace Diligent; namespace Diligent { -void CreateImageFromFile( const Diligent::Char *FilePath, +void CreateImageFromFile( const Char *FilePath, Image **ppImage, IDataBlob **ppDDSData) { @@ -74,8 +74,10 @@ void CreateImageFromFile( const Diligent::Char *FilePath, else LOG_ERROR_AND_THROW("Unsupported file format ", Extension); - *ppImage = MakeNewRCObj<Image>()(pFileStream, ImgLoadInfo); - (*ppImage)->AddRef(); + RefCntAutoPtr<IDataBlob> pFileData(MakeNewRCObj<DataBlobImpl>()(0)); + pFileStream->Read(pFileData); + + Image::CreateFromDataBlob(pFileData, ImgLoadInfo, ppImage); } } catch (std::runtime_error &err) @@ -84,7 +86,7 @@ void CreateImageFromFile( const Diligent::Char *FilePath, } } -void CreateTextureFromFile( const Diligent::Char *FilePath, +void CreateTextureFromFile( const Char *FilePath, const TextureLoadInfo& TexLoadInfo, IRenderDevice *pDevice, ITexture **ppTexture ) |
