ray mirror and transparency, was using the same stack for all
recursion depths, now creates new stacks as needed.
Fix for bug #8592: crash saving non-float image as 16bit tiff.
reference black, reference white and gamma.
Added 16 bit TIFF saving.
This needs more work to cleanup code and add 16 bit TIFF reading, but
committing it now so it can be tested.
The TIFF reader did error handling with assert which is a pretty bad
idea (tm).
This fixes the assert-crash, that the TIFF reader triggers, if one tries
to open a RAW-DV file within the compositor. (File extension is only
two characters long, which is enough for an assert... EVEN IF IT ISN'T
A TIFF FILE, WE ARE GOING TO OPEN. GRMBL)
Removed all other assertions and added proper error handling.
(using STDERR, where it belongs.)
Credits go to Gernot Ziegler, who originally coded EXR support, and to
Austin Benesh for bringing it further. Kent Mein provided a lot of code
for integrating float buffers in Blender imbuf and ImBuf API cleanup,
and provided Make and Scons and static linking.
At this moment; the EXR libraries are a *dependency*, so you cannot get
the Orange branch compiled without having OpenEXR installed. Get the
(precompiled or sources) stuff from www.openexr.com. Current default is
that the headers and lib resides in /user/local/
Several changes/additions/fixes were added:
- EXR code only supported 'half' format (16 bits per channel). I've added
float writing, but for reading it I need tomorrow. :)
- Quite some clumsy copying of data happened in EXR code.
- cleaned up the api calls already a bit, preparing for more advanced
support
- Zbuffers were saved 16 bits, now 32 bits
- automatic adding of .exr extensions went wrong
Imbuf:
- added proper imbuf->flags and imbuf->mall support for float buffers, it
was created for *each* imbuf. :)
- found bugs for float buffers in scaling and flipping. Code there will
need more checks still
- imbuf also needs to be verified to behave properly when no 32 bits
rect exists (for saving for example)
TODO:
- support internal float images for textures, backbuf, AO probes, and
display in Image window
Hope this commit won't screwup syncing with bf-blender... :/
(Swap colors on bigendian machines)
I also made it so that the env variable is tried ahead of all
of the other looking. (That way you can override a system default
if its broken without having to upgrade)
This also makes it so we can remove the OSX ifdef. So I did.
lukep: If you still want it add it back in but my gut says the less ifdefs
we have the better ;)
Kent
I updated gen_dynlibtiff.py so its in sync with the file(s) it creates.
I added a little more documentation to the readme.txt for adding
new file formats.
I also added two dummy functions to the tiff.c so it stopped whining
about them being NULL.
(I'm still working on the reported bugs but thought this was a good time
to at least get this in)
Kent
To enable dynamic tiff support.
I had to fix some of the logic in the fileselect box for icons,
I also expanded the patch to look in various default locations for
a dynamic libtiff.so/libtiff.dll
and look at the env variable BF_TIFF_LIB if it can't find it automatically.
If unable to load the library it prints a message about setting BF_TIFF_LIB
to the console.
I haven't been able to test it on a lot of platforms but hopefully it
will just work ;) I added the files to scons but have not had a chance to
test that as well.
Kent