[Gimp-developer] lcms high bit depth update: getting closer, but undo doesn't work



Mitch very kindly cleaned up my lcms.c code to meet Gimp coding
standards, took care of some memory leaks, and fixed a few problematic
lines of code. I've been testing the resulting code.

The situation regarding what works and what doesn't work has changed
considerably for the better. I suspect Mitch might have modified some
other Gimp files to work better with the lcms.c plug-in (to not call
certain babl functions in the middle of the color conversion), but
that's just a guess based on the fact that the code paths as revealed
by "write" statements seem to have changed a bit.

The good news is that high bit depth color conversion works for
indexed, 8-bit integer, 16-bit integer, and 32-bit floating point *if*
some changes are made to either babl/babl/base/util.h or to
babl/babl/base/model-rgb.c. With the modified babl file, the color
conversions work for single layer, multiple layers, with and without
masks, and with and without alpha channels.

The other good news is that even without modifying any babl files,
8-bit integer and 16-bit integer color conversions both work (8-bit
worked before, but 16-bit didn't).

Unfortunately, indexed image  and 32-bit floating point color
conversions don't work unless one or the other babl file is modified.

Also "undo" after a color conversion doesn't work, except for indexed
images*if* the babl file is modified. For the other image formats,
modifying or not modifying the babl file makes no difference, "undo"
doesn't work. What happens instead is the source profile is embedded,
but the color conversion isn't actually undone.

I posted a summary, along with a terminal output comparison of the
code paths comparing 8-bit integer with 8-bit indexed, and 16-bit
integer with floating point. 8-bit integer and 16-bit integer follow
the same path now - they didn't before (probably not a reflection of
the actual lcms.c code itself):
http://ninedegreesbelow.com/temp/gimp-lcms-8.html

I think the next logical step is getting "undo" to work. I'm not
familiar with Gimp's overall "undo" code path, so any guidance,
suggestions, input is more than welcome, whether by email or IRC or
etc.

Kindest regards,
-- 
Elle Stone
http://ninedegreesbelow.com - articles on open source digital photography


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]