<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:'lucida console', sans-serif;font-size:8pt"><div>Hello,</div><div><br></div><div>few question, i'am trying to build openGL application which most of the textures are generated by Cairo, I create cairo surface using cairo_image_surface_create_for_data() with CAIRO_FORMAT_ARGB32 format and fetch the data to the GPU texture, but my problem is, on these codes:</div><div><br></div><div><div>cairo_set_source_rgba (this->canvas, 1.0, 1.0, 1.0, 0.5);</div><div>cairo_set_operator (this->canvas, CAIRO_OPERATOR_SOURCE);</div><div>cairo_paint (this->canvas);</div><div><br></div><div>I got grayed texture instead of white texture with half transparency, on the cairo surface data I got 0x808080808080...</div><div>instead of 0xFFFFFF80FFFFFF80FF.... it seems that the white color (1.0,1.0,1.0) are premultiplied by its alpha channel value of (0.5)
resulting to (0.5,0.5,0.5,0.5 = 0x80808080...).</div><div><br></div><div>how do I get, non-premultiplied color so my openGL texture will have correct alpha channel values?</div><div><br></div><div>thank you.</div></div><div style="position:fixed"></div></div><br>
</body></html>