<html>
<body>
<blockquote type=cite class=cite cite="">Uhm... how exactly are you
determining what sources are classified as opaque here?</blockquote><br>
There is a <font face="Arial, Helvetica">_cairo_pattern_is_opaque
convenience function in cairo-pattern.c. There is a caveat listed
concerning patterns and gradients:
</font><font face="Arial, Helvetica" color="#008000">* Convenience
function to determine whether a pattern is an opaque (alpha==1.0) solid
color pattern. This is done by testing whether the pattern's alpha value
when converted to a byte is 255, so if a backend actually supported deep
alpha channels this function might not do the right thing.<br><br>
</font>If I understand this correctly a &quot;deep channel&quot; is one
that supports values in the whole range of a short. Which part of the
code determines if a specified color uses the whole range of values of a
short VS 0-255 for each channel? Knowing this would help going around
this caveat.<br><br>
<blockquote type=cite class=cite cite="">So fill() can have the exact
sample problem as paint(). And obviously stroke(), mask(), and
show_text() can also &quot;read&quot; from outside the surface
bounds.</blockquote><br>
You're absolutely right. I'll look more into this.<br><br>
Thanks for the feedback,<br>
Antoine</body>
</html>