I’ve made a new extension!
png extension by @britzl and
image.load() function available in Defold, but they don’t provide what I need.
image.load() is not suitable for game objects, because it’s not using a buffer object, required by
png extension can’t load jpg files and can’t load in async mode.
My new extension can load JPG, PNG and a bunch of other formats. It’s based on
stb_image.h and they state they support
JPEG baseline & progressive (12 bpc/arithmetic not supported, same as stock IJG lib) PNG 1/2/4/8/16-bit-per-channel TGA (not sure what subset, if a subset) BMP non-1bpp, non-RLE PSD (composited view only, no extra channels, 8/16 bit-per-channel) GIF (*comp always reports as 4-channel) HDR (radiance rgbE format) PIC (Softimage PIC) PNM (PPM and PGM binary only)
And it can process image files on a separate thread, improving overall performance.
The project on GitHub is also a sample project.
Why would you need such extension? To load and display images downloaded from the Internet. Remember that you have to place redownloadable items such as web images into Caches directory on mobile devices. To access this directory you can use my
directories extension https://www.defold.com/community/projects/121601/