well... I have tested it using the folowing code inside the renderer method:

    for (x=x0; x < x1; x++){
        for (y=y0; y < y1; y++){
            alpha = (unsigned int) map_data[4*((x-x0) + width*(y-y0)) + 3];
            if ((unsigned int) map_data[4*((x-x0) + width*(y-y0))] > alpha ||
             (unsigned int) map_data[4*((x-x0) + width*(y-y0)) + 1] > alpha ||
             (unsigned int) map_data[4*((x-x0) + width*(y-y0)) + 2] > alpha)
                printf("I found a pixel with R,G or B greater than alpha!\n");
        }
    }

when I select the .svg file on the file-section dialog I see this:

** (inkscape:28789): WARNING **: FIX-ME: FilterDisplacementMap::render method is still a bit buggy. Needs Love.
I found a pixel with R,G or B greater than alpha!

** (inkscape:28789): WARNING **: FIX-ME: FilterDisplacementMap::render method is still a bit buggy. Needs Love.
I found a pixel with R,G or B greater than alpha!

(the g_warning is at the beginning of the renderer method)
and after opening the file:

** (inkscape:28789): WARNING **: FIX-ME: FilterDisplacementMap::render method is still a bit buggy. Needs Love.

** (inkscape:28789): WARNING **: FIX-ME: FilterDisplacementMap::render method is still a bit buggy. Needs Love.

** (inkscape:28789): WARNING **: FIX-ME: FilterDisplacementMap::render method is still a bit buggy. Needs Love.

This is nice! Apparently the input buffer is indeed premultiplied.
I got puzzled by the single pixel that seems to have triggered the message during preview


On 7/26/07, MenTaLguY <mental@rydia.net > wrote:
On Wed, 2007-07-25 at 23:30 -0300, Felipe Sanches wrote:
> well...
>
>  map->mode ==  NR_PIXBLOCK_MODE_R8G8B8A8P returns true

But are you sure the data is premultiplied? :)  The problem is that I
suspect sometimes we are populating such pixblocks with
non-premultiplied data...

(it should be easy to check, in principle -- premultiplied data should
never have any color components greater than the alpha component)

-mental