This checkin will use OIIO to replace the image save/load code for BMP,
DDS, DPX, HDR, PNG, TGA, and TIFF.
This simplifies our build environment, reduces binary duplication,
removes large amounts of hard to maintain code, and fixes some bugs
along the way.
It should also help reduce rare differences between Blender and Cycles
which already uses OIIO for most situations. Or potentially makes them
easier to solve once discovered.
----
Some test files (attached) are changed. Their summary is as follows:
- Grayscale BMPs were saved out incorrectly in `main` and Windows refuses to display them. Now fixed.
- Grayscale PNGs in 16bit format, coming from 32bit float buffers, were saved out incorrectly in `main`. Now fixed.
- DPX files in all varieties were saved out incorrectly. I think; a second and third pair of eyes on this format would be welcome.
Example DPX changes:
| template EXR | #chan | save/load in main | save/load through OIIO |
| -- | -- | -- | -- |
| | | | |
| | | | |
A reminder about the remaining formats:
I'll continue to work towards a partial conversion of EXR, JPG, and WEBP but I can't commit to those for 3.6.
Thumbnail support for these 3 formats are what's stopping a full conversion.
JPEG 2000 support is lacking and that will take additional effort to solve if we want that format too.