Hi Michael,

On 01.08.2012 13:24, Michael Meeks wrote:
        I was at GUADEC just now, and trying to get toolbar rendering sorted
out for gtk3 - which turned out to be quite 'fun' ;-) it seems that the
toolbar items we have have a WB_BORDER style set which appears to create
a strange border rendering widget; which renders the entire toolbar
combo-box (eg. the font selector) twice at least. Quite apart from the
wastefulness there, with the new alpha transparent borders - we get a
double compositing which over-darkens the pretty alpha effects there :-)

With gtk3 I see similar effect for normal (not toolbar) buttons, edits etc. Why do you think this is related to toolbars?

I solved the problem by the following change in renderAreaToPix: cairo_data[x*4+0] * alpha

@@ -972,9 +972,9 @@ void GtkSalGraphics::renderAreaToPix( cairo_t *cr,
         for (int x = 0; x < awidth && y < aheight; ++x)
         {
             double alpha = ((float)cairo_data[x*4 + 3])/255.0;
- src[x*3 + 0] = src[x*3 + 0] * (1.0 - alpha) + cairo_data[x*4+0] * alpha; - src[x*3 + 1] = src[x*3 + 1] * (1.0 - alpha) + cairo_data[x*4+1] * alpha; - src[x*3 + 2] = src[x*3 + 2] * (1.0 - alpha) + cairo_data[x*4+2] * alpha; + src[x*3 + 0] = src[x*3 + 0] * (1.0 - alpha) + cairo_data[x*4+0]; + src[x*3 + 1] = src[x*3 + 1] * (1.0 - alpha) + cairo_data[x*4+1]; + src[x*3 + 2] = src[x*3 + 2] * (1.0 - alpha) + cairo_data[x*4+2];
         }
         src += nStride;
         cairo_data += cairo_stride;

no idea of what's going on though, because I'm not familiar with alpha blending.

HTH,

Ivan
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to