Browse Source

Cleaned up the code for determining whether an image can be decoded using stb_image.

--HG--
branch : minor
Alex Szpakowski 10 years ago
parent
commit
28f4f42454
1 changed files with 7 additions and 4 deletions
  1. 7 4
      src/modules/image/magpie/STBHandler.cpp

+ 7 - 4
src/modules/image/magpie/STBHandler.cpp

@@ -48,11 +48,14 @@ namespace magpie
 
 bool STBHandler::canDecode(love::filesystem::FileData *data)
 {
-	stbi__context s = {};
-	stbi__start_mem(&s, (const stbi_uc *) data->getData(), (int) data->getSize());
+	int w = 0;
+	int h = 0;
+	int comp = 0;
+
+	int status = stbi_info_from_memory((const stbi_uc *) data->getData(),
+	                                   (int) data->getSize(), &w, &h, &comp);
 
-	// These are internal stb_image functions, but we can still use them!
-	return stbi__bmp_test(&s) || stbi__tga_test(&s);
+	return status == 1 && w > 0 && h > 0;
 }
 
 bool STBHandler::canEncode(ImageData::Format format)