From 01c091882a1131e28b64dea424f6a381b1eaee63 Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Mon, 7 Aug 2017 18:53:40 -0300 Subject: [PATCH] Fix love.graphics.newImage(ImageData). Thanks Santos! --HG-- branch : minor --- src/modules/graphics/wrap_Graphics.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/modules/graphics/wrap_Graphics.cpp b/src/modules/graphics/wrap_Graphics.cpp index 80d183c52..4ec960959 100644 --- a/src/modules/graphics/wrap_Graphics.cpp +++ b/src/modules/graphics/wrap_Graphics.cpp @@ -674,9 +674,13 @@ getImageData(lua_State *L, int idx, bool allowcompressed, float *density) StrongRef idata; StrongRef cdata; - // Convert to ImageData / CompressedImageData, if necessary. - if (lua_isstring(L, idx) || luax_istype(L, idx, filesystem::File::type) || luax_istype(L, idx, Data::type)) + if (luax_istype(L, idx, image::ImageData::type)) + idata.set(image::luax_checkimagedata(L, idx)); + else if (luax_istype(L, idx, image::CompressedImageData::type)) + cdata.set(image::luax_checkcompressedimagedata(L, idx)); + else if (filesystem::luax_cangetdata(L, idx)) { + // Convert to ImageData / CompressedImageData. auto imagemodule = Module::getInstance(Module::M_IMAGE); if (imagemodule == nullptr) luaL_error(L, "Cannot load images without the love.image module."); @@ -690,10 +694,7 @@ getImageData(lua_State *L, int idx, bool allowcompressed, float *density) luax_catchexcept(L, [&]() { cdata.set(imagemodule->newCompressedData(fdata), Acquire::NORETAIN); }); else luax_catchexcept(L, [&]() { idata.set(imagemodule->newImageData(fdata), Acquire::NORETAIN); }); - } - else if (luax_istype(L, idx, image::CompressedImageData::type)) - cdata.set(image::luax_checkcompressedimagedata(L, idx)); else idata.set(image::luax_checkimagedata(L, idx));