Kaydet (Commit) 92e00f2e authored tarafından Ivan Timofeev's avatar Ivan Timofeev

cairo uses pre-multiplied alpha

Change-Id: I6cf04b10bfdd6c7b16761b2aa2f31c1392c49546
üst d1a66813
...@@ -972,9 +972,9 @@ void GtkSalGraphics::renderAreaToPix( cairo_t *cr, ...@@ -972,9 +972,9 @@ void GtkSalGraphics::renderAreaToPix( cairo_t *cr,
for (int x = 0; x < awidth && y < aheight; ++x) for (int x = 0; x < awidth && y < aheight; ++x)
{ {
double alpha = ((float)cairo_data[x*4 + 3])/255.0; 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 + 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] * alpha; 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] * alpha; src[x*3 + 2] = src[x*3 + 2] * (1.0 - alpha) + cairo_data[x*4+2];
} }
src += nStride; src += nStride;
cairo_data += cairo_stride; cairo_data += cairo_stride;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment