[Gimp-developer] Displaying linear gamma images (Was Re: Update on my Gimp color management coding efforts)



On 11/12/12, Elle Stone <l elle stone gmail com> wrote:
On 11/10/12, Michael Natterer <mitch gimp org> wrote:
On Sat, 2012-11-10 at 15:17 -0500, Elle Stone wrote:
On 11/8/12, Jon Nordby <jononor gmail com> wrote:
* Change the lcms-based conversion (modules/display-filter-lcms.c)
from being a generic display filter to be something that takes a
GeglBuffer in and blits into a cairo_surface_t.
* Change the display filter interface to accept a GeglBuffer instead
of a cairo_surface_t. As gimp_color_display_convert_surface is public
API, it should probably become a stub and be marked as deprecated. New
interface could for instance be called
"gimp_color_display_convert_buffer"
* Adapt all the display filter operations (modules/display-filter-*.c)
to the new interface and to working on 32bit floating point. If any of
the operations are no longer useful, now would be the time to drop
them.
* In the use of the display filter stack (in
gimp_display_shell_render), first let the filter stack operate on the
GeglBuffer from the projection (or possibly a copy), and then pass it
to the lcms-based color conversion, and then pass that to cairo.
I'm looking forward to taking another look at the monitor display code
path. Your suggestions sound very helpful.

It does, but it's clearly step 2 (or step n). IMO we should first
get the lcms plug-in right so the data GIMP is dealing with is
correct in the first place.


Step 1 happened a long time ago. I'm trying to implement Jon Norby's
suggestions because it would be nice to see a linear gamma image
displayed without posterization in the shadows from the conversion to
8-bits that happens before the conversion to the monitor profile.
Quoting Jon's suggestion:

(1)call a "GeglBuffer from the projection (or possibly a copy)" and then
(2)pass it to the lcms-based color conversion, and then
(3)pass that to cairo.

So how does one "call a GeglBuffer from the projection"?

Elle


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