There was a small bug in AlphaPaintContext, which made composited painting appear too transparent. The mistake was that I pre-multiplied the alpha value to itself.
2006-05-10 Roman Kennke <[EMAIL PROTECTED]>
* gnu/java/awt/java2d/AlphaCompositeContext.java
(compose): Don't premultiply alpha to alpha itself.
/Roman
--
“Improvement makes straight roads, but the crooked roads, without
Improvement, are roads of Genius.” - William Blake
Index: gnu/java/awt/java2d/AlphaCompositeContext.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/java/awt/java2d/AlphaCompositeContext.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -1 -0 -r1.2 -r1.3
--- gnu/java/awt/java2d/AlphaCompositeContext.java 7 May 2006 01:16:09 -0000 1.2
+++ gnu/java/awt/java2d/AlphaCompositeContext.java 10 May 2006 09:30:03 -0000 1.3
@@ -229,21 +229,21 @@
// Prepare the input.
float compositeAlpha = composite.getAlpha();
srcComponents[srcComponentsLength - 1] *= compositeAlpha;
if (srcColorModel.isAlphaPremultiplied())
{
for (int i = srcComponentsLength - 2; i >= 0; i--)
srcComponents[i] *= compositeAlpha;
}
else
{
- for (int i = srcComponentsLength - 1; i >= 0; i--)
+ for (int i = srcComponentsLength - 2; i >= 0; i--)
srcComponents[i] *= srcComponents[srcComponentsLength - 1];
}
if (! dstColorModel.isAlphaPremultiplied())
{
for (int i = dstComponentsLength - 2; i >= 0; i--)
dstComponents[i] *= dstComponents[dstComponents.length - 1];
}
// Determine the blending factors according to the rule in the
// AlphaComposite. For some rules the factors must be determined
signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil
