Clemens Eisserer wrote:
"Extra alpha" has the same behavior for all AlphaComposite instances. In a
nutshell, the extra alpha value gets logically multiplied with the source
before the actual compositing operation. The AlphaComposite docs explain
this process in great detail (look for the A[sub]ac factor):
http://java.sun.com/javase/6/docs/api/java/awt/AlphaComposite.html
Thanks for the explanation.
I guess the reason for the behaviour I see is a xserver-bug ... I am
not really sure what to do about it till now.
One thing that might explain the difference is whether or not the opaque
destinations are considered premultiplied or not. I believe that we
consider them non-premultiplied in which case the extraalpha is
multiplied in, the result is stored to the destination, which involves
dividing the alpha back out == no change. If the system treats the
destinations as premultiplied then it multiplies the alpha into the
color, then stores the multiplied (which looks faded) result into the
destination...
...jim