summaryrefslogtreecommitdiffstats
path: root/TextureLoader/src/TextureUtilities.cpp
diff options
context:
space:
mode:
authorEgor Yusov <egor.yusov@gmail.com>2019-06-27 16:12:22 +0000
committerEgor Yusov <egor.yusov@gmail.com>2019-06-27 16:12:22 +0000
commitf589ed9931f49ab02e853a8abab215778e218a9b (patch)
tree37c16405a4b00ff0a90d50f2380b3f299cfcdde5 /TextureLoader/src/TextureUtilities.cpp
parentUpdated readme: added license and contributing sections (diff)
downloadDiligentTools-f589ed9931f49ab02e853a8abab215778e218a9b.tar.gz
DiligentTools-f589ed9931f49ab02e853a8abab215778e218a9b.zip
Minor updates to image loading functions
Diffstat (limited to 'TextureLoader/src/TextureUtilities.cpp')
-rw-r--r--TextureLoader/src/TextureUtilities.cpp68
1 files changed, 0 insertions, 68 deletions
diff --git a/TextureLoader/src/TextureUtilities.cpp b/TextureLoader/src/TextureUtilities.cpp
index 7a41c7a..e136f07 100644
--- a/TextureLoader/src/TextureUtilities.cpp
+++ b/TextureLoader/src/TextureUtilities.cpp
@@ -26,80 +26,12 @@
#include "Errors.h"
#include "TextureLoader.h"
#include "Image.h"
-#include "BasicFileStream.h"
#include "RefCntAutoPtr.h"
#include "DataBlobImpl.h"
-#include "StringTools.h"
-
-using namespace Diligent;
namespace Diligent
{
-EImageFileFormat CreateImageFromFile(const Char* FilePath,
- Image** ppImage,
- IDataBlob** ppRawData)
-{
- EImageFileFormat ImgFileFormat = EImageFileFormat::unknown;
- try
- {
- RefCntAutoPtr<BasicFileStream> pFileStream(MakeNewRCObj<BasicFileStream>()(FilePath, EFileAccessMode::Read));
- if(!pFileStream->IsValid())
- LOG_ERROR_AND_THROW("Failed to open image file \"", FilePath, '\"');
-
- RefCntAutoPtr<IDataBlob> pFileData(MakeNewRCObj<DataBlobImpl>()(0));
- pFileStream->Read(pFileData);
-
- ImgFileFormat = Image::GetFileFormat(reinterpret_cast<Uint8*>(pFileData->GetDataPtr()), pFileData->GetSize());
- if (ImgFileFormat == EImageFileFormat::unknown)
- {
- LOG_WARNING_MESSAGE("Unable to derive image format from the header for file \"", FilePath, "\". Trying to analyze extension.");
-
- // Try to use extension to derive format
- auto *pDotPos = strrchr(FilePath, '.');
- if (pDotPos == nullptr)
- LOG_ERROR_AND_THROW("Unable to recognize file format: file name \"", FilePath, "\" does not contain extension");
-
- auto *pExtension = pDotPos + 1;
- if (*pExtension == 0)
- LOG_ERROR_AND_THROW("Unable to recognize file format: file name \"", FilePath, "\" contain empty extension");
-
- String Extension = StrToLower(pExtension);
- if (Extension == "png")
- ImgFileFormat = EImageFileFormat::png;
- else if (Extension == "jpeg" || Extension == "jpg")
- ImgFileFormat = EImageFileFormat::jpeg;
- else if (Extension == "tiff" || Extension == "tif")
- ImgFileFormat = EImageFileFormat::tiff;
- else if (Extension == "dds")
- ImgFileFormat = EImageFileFormat::dds;
- else if (Extension == "ktx")
- ImgFileFormat = EImageFileFormat::ktx;
- else
- LOG_ERROR_AND_THROW("Unsupported file format ", Extension);
- }
-
- if (ImgFileFormat == EImageFileFormat::png ||
- ImgFileFormat == EImageFileFormat::jpeg ||
- ImgFileFormat == EImageFileFormat::tiff)
- {
- ImageLoadInfo ImgLoadInfo;
- ImgLoadInfo.Format = ImgFileFormat;
- Image::CreateFromDataBlob(pFileData, ImgLoadInfo, ppImage);
- }
- else
- {
- *ppRawData = pFileData.Detach();
- }
- }
- catch (std::runtime_error &err)
- {
- LOG_ERROR("Failed to create image from file: ", err.what());
- }
-
- return ImgFileFormat;
-}
-
void CreateTextureFromFile(const Char* FilePath,
const TextureLoadInfo& TexLoadInfo,
IRenderDevice* pDevice,