summaryrefslogtreecommitdiffstats
path: root/TextureLoader/src
diff options
context:
space:
mode:
authorEgor Yusov <egor.yusov@gmail.com>2018-04-01 18:32:52 +0000
committerEgor Yusov <egor.yusov@gmail.com>2018-04-01 18:32:52 +0000
commit3800d79e3d5491340e22cbf237ec4b62b75545a2 (patch)
tree25d6a8eb1a4efe07e7d2a6547e3655ce5f8b3f87 /TextureLoader/src
parentMinor update (diff)
downloadDiligentTools-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.cpp13
-rw-r--r--TextureLoader/src/TextureUtilities.cpp10
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 )