Update TinyEXR

This commit is contained in:
Alex Szpakowski
2019-06-02 11:35:52 -03:00
parent 8e5b71e8e7
commit 44fd8b4e19
2 changed files with 1307 additions and 578 deletions
File diff suppressed because it is too large Load Diff
+17 -9
View File
@@ -118,18 +118,26 @@ FormatHandler::DecodedImage EXRHandler::decode(Data *data)
EXRImage exrImage;
InitEXRImage(&exrImage);
EXRVersion exrVersion;
if (ParseEXRVersionFromMemory(&exrVersion, mem, memsize) != TINYEXR_SUCCESS)
throw love::Exception("Could not parse EXR image header.");
try
{
EXRVersion exrVersion;
if (ParseEXRVersionFromMemory(&exrVersion, mem, memsize) != TINYEXR_SUCCESS)
throw love::Exception("Could not parse EXR image header.");
if (exrVersion.multipart || exrVersion.non_image || exrVersion.tiled)
throw love::Exception("Multi-part, tiled, and non-image EXR files are not supported.");
if (exrVersion.multipart || exrVersion.non_image || exrVersion.tiled)
throw love::Exception("Multi-part, tiled, and non-image EXR files are not supported.");
if (ParseEXRHeaderFromMemory(&exrHeader, &exrVersion, mem, memsize, &err) != TINYEXR_SUCCESS)
throw love::Exception("Could not parse EXR image header: %s", err);
if (ParseEXRHeaderFromMemory(&exrHeader, &exrVersion, mem, memsize, &err) != TINYEXR_SUCCESS)
throw love::Exception("Could not parse EXR image header: %s", err);
if (LoadEXRImageFromMemory(&exrImage, &exrHeader, mem, memsize, &err) != TINYEXR_SUCCESS)
throw love::Exception("Could not decode EXR image: %s", err);
if (LoadEXRImageFromMemory(&exrImage, &exrHeader, mem, memsize, &err) != TINYEXR_SUCCESS)
throw love::Exception("Could not decode EXR image: %s", err);
}
catch (love::Exception &)
{
FreeEXRErrorMessage(err);
throw;
}
int pixelType = exrHeader.pixel_types[0];