Minor changes
Added libheif to supoort heic, avif file formats
Merge changes to shared sources from ArchiveAccess
Minor changes
Modernize shared code
Update libpng to 1.6.53, improve memory tracking and exception safety
Dead code removed, filters revised, more try ... catch for API functions
Update libpng to 1.6.51, update libtiff to 4.7.1, .ico support improved
Enable/disable API version 1 via IL_API1_SUPPORT, update OpenGL and DirectX support, add a DirectX viewer for test viewing, ilu2Scale requires an additional parameter (filter)
Big security update
Prevent use of null pointer in several places
Drop class name strings, obtain them via getClassName instead. Use size_t and %zu more.
Fix CgBI-PNGs: memory leaks fixed for corrupt images, memory leaks when memory was low
Minor fixes to .hdr handler
IO: use size_t for read, write. PNG: avoid double free. Fixed two bugs where IO was used incorrectly. TIFF: enable more codecs. More ...
TIFF: enable CCITT compression. PNG: distinguish RGB and RGBA palettes. SDLTest: reactivate il2BlendAlpha to view images with black foreground, e.g. BGTestFileCollection/png/AK/CircularDelete@2x.png.
Fix minor bugs
Update libpng from 1.6.49 to 1.6.50
Remove old qmake files
Fix ICO loading
Update libpng to 1.6.49, use less aguments for IO (size and number factored into a single argument), split ILenum into separate types for added security.
API changes:
Tidy up templates in BGBase.h, datafields that are only used with .dds files are removed if IL_NO_DDS is active, GIF handler reports how rows acutally were decoded
Progressive png loading still causes problems, revert to old loading algorithm
Switch to libong 1.6.48, fix some build settings
png_progressive_combine_row caused heap corruptions, so simply use memcpy to copy progressively decoded png scanlines instead
Allow making the image smaller via il2SetImageInteger (no reallocation)
Updated build settings
error: invalid argument '-std=gnu99' not allowed with 'C++/ObjC++'
use of undeclared identifier '_strnicmp'; did you mean 'strnicmp'?
ResIL-1.7.9.zip packaging errors
Use C++ concepts and std::cmp to improve checking before typecasting, using new function safeCast
Move ILBase sources back to src-IL, tidy up include paths
Now reading .png image using a progressive approach. This allows us to immediately track how many rows were written.
cmake fixes
Minor fixes and additions
Update cmake files
Get rid of defines with two leading underscores (__), tidy up byte-swapping code, fix bug in hdr handler, removed il_files, use intrinsics for byte swapping
Update msvc build files
Update libwebp, libpng, lcms
Only il2GenImage should call ILimage::Ilaimge directly, only il2DeleteImage should delete ILimage directly. Both functions should use libinstrumentation's pointer whitelists to ensure only known pointers are deleted.
Additional protection against crashes for ILimage, even though these issues most likely have other causes than ResIL
Compute number of correctly decoded scanlines for image that were loaded incompletely (at least for a few file types)
Linux fixes
In fact, identifiers containing __ are reserved by the implementation. You are not permitted to define or undefine or redefine them. In addition to undefining __BIG_ENDIAN__ and __LITTLE_ENDIAN__ in il_endian.h, there are many places in the ResIL code where such identifiers are defined. There are other identifier naming patterns that are also reserved. You should check if you're using any of those as well.
Force the jpg library to load incomplete images
Fix il2ConvertImage for animations
Decode image directly to internal buffer if possible, this also prevents a bug where memcpy ran out of data on incomplete images
Update project file for libtiff
Remove old input libraries
Update input libraries
Fix infinite loop
Update SDLTest example code
Minor fixes
More fixes to image orientation
Optimizations
Ensure .bmp files are stored correctly (last version stored them upside down)
Updated msvc 2022 project files
Updated the test code
Leave image orientation alone when saving files
Ignore GIF image offsets (image offsets move the pixels in the rendering window)
TIFF: fix uninitialised variables and add some plausibility checks
Fix baaad memory leak in iConvertImage
Switch to libpng-1.6.44
Fix bit masks for loading 32 bpp .bmp files
Use iLoadPngInternal to load PNG files embedded in ICO files
il2ConvertImage: frames may be encoded differently, so we need decide whether the format is already correct for each frame, not based on the first image alone. il2FixOrientation now processes all frames.
Big update for .ico files
Fix merge conflicts
Update cmake file and fix a bug in il_error.cpp
Two specialized classes of ILpixelAccess for images with (or without) alpha channel
BMP uses ILpixelAccess instead of accessing the private parts of ILimage directly (or rather, parts that hopefully will be private soon)
Revised BMP saving
Revised version of iFlipBuffer and iGetFlipped
New function ILimage::addFrame to ensure that il_dcx.cpp does not access members of ILimage that should be private
Bugfix: missing {...} around RETURN
Overhaul of BMP handler. Try to use the new ILimage access functions where possible for enhanced security. Removed old OS/2 code that I cannot test because of missing file samples.
New access functions for ILimage
Bug fixes, more instrumentation
Fixes for pcx, png and psd
Move il2TextImage code to ILimage::texImage
Massively simplify DCX code, since DCX images are just a container for PCX images
Minor fixes
Delete images only after a plausibility check
Instrumentation fixes