Re: [Gimp-developer] Displaying linear gamma images



I've made progress getting a linear gamma image to display without
posterization in the shadows. I put up a temporary web page with the
modified code and a picture:
http://ninedegreesbelow.com/temp/convert-buffer-before-cairo.html

The problem at this point is that the image won't display properly
until something like doing a very small levels correction forces a
screen redraw. After forcing a screen redraw, the image is displayed
without any posterization, but with magenta lines (outlining the
tiles?). The screen redraw lasts until the level dialog is closed.

I think the problem is that I'm not properly merging and updating
"buffer" after the hard-coded transform. The corresponding code from
the lcms.c file uses layer buffers, which seems not applicable to a
projection:
gimp_drawable_merge_shadow (layer_id, TRUE);
gimp_drawable_update (layer_id, 0, 0, layer_width, layer_height);

If I can get the screen to consistently display properly, then the
next step would be to merge the code in
"modules/display-filter-lcms.c" with the code in
"app/display/gimpdisplayshell-render.c". But I'm somewhat at a
stand-still until serendipity or someone with more knowledge about
gegl buffers can solve the problem of getting the screen to display
all the way all the time correctly rather than only after using levels
to force a redraw.

I've been searching the Gimp code base looking for that
"serendipitous" example code to follow, and came up with
"gimp_projection_flush_now (projection);" which seemed to help, but
only a little.

Elle


-- 
http://ninedegreesbelow.com


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