Improved the error message given when jpeg, TGA, and BMP images fail to decode.

This commit is contained in:
Alex Szpakowski
2016-02-28 12:41:27 -04:00
parent e08374fdd1
commit 8d7481c3b2
4 changed files with 9 additions and 7 deletions
+1 -1
View File
@@ -78,7 +78,7 @@ bool FileData::getConstant(const char *in, Decoder &out)
return decoders.find(in, out);
}
bool FileData::getConstant(Decoder in, const char *&out)
bool FileData::getConstant(Decoder in, const char *&out)
{
return decoders.find(in, out);
}
+1 -1
View File
@@ -55,7 +55,7 @@ public:
const std::string &getExtension() const;
static bool getConstant(const char *in, Decoder &out);
static bool getConstant(Decoder in, const char *&out);
static bool getConstant(Decoder in, const char *&out);
private:
+1 -4
View File
@@ -124,10 +124,7 @@ void ImageData::decode(love::filesystem::FileData *data)
// The decoder *must* output a 32 bits-per-pixel image.
if (decodedimage.size != decodedimage.width*decodedimage.height*sizeof(pixel))
{
if (decodeHandler)
decodeHandler->free(decodedimage.data);
else
delete[] decodedimage.data;
decoder->free(decodedimage.data);
throw love::Exception("Could not convert image!");
}
+6 -1
View File
@@ -75,7 +75,12 @@ FormatHandler::DecodedImage STBHandler::decode(love::filesystem::FileData *data)
&comp, 4);
if (img.data == nullptr || img.width <= 0 || img.height <= 0)
throw love::Exception("Could not decode image with stb_image.");
{
const char *err = stbi_failure_reason();
if (err == nullptr)
err = "unknown error";
throw love::Exception("Could not decode image with stb_image (%s).", err);
}
img.size = img.width * img.height * 4;