diff options
| author | Egor Yusov <egor.yusov@gmail.com> | 2018-04-01 18:32:52 +0000 |
|---|---|---|
| committer | Egor Yusov <egor.yusov@gmail.com> | 2018-04-01 18:32:52 +0000 |
| commit | 3800d79e3d5491340e22cbf237ec4b62b75545a2 (patch) | |
| tree | 25d6a8eb1a4efe07e7d2a6547e3655ce5f8b3f87 /TextureLoader/src | |
| parent | Minor update (diff) | |
| download | DiligentTools-3800d79e3d5491340e22cbf237ec4b62b75545a2.tar.gz DiligentTools-3800d79e3d5491340e22cbf237ec4b62b75545a2.zip | |
Some updates to texture loading routines.
Fixed https://github.com/DiligentGraphics/DiligentTools/issues/3
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 ) |
