RFR: 8243505: SRC_OVER alpha composite mode doesn't render correctly

Alexey Ushakov alexey.ushakov at jetbrains.com
Fri Apr 24 15:46:29 UTC 2020


Thanks, Kevin!

 I’m updating the code according your comments. The only problem with your fix is the failure of test/jdk/java/awt/image/DrawImage/IncorrectUnmanagedImageRotatedClip.java regression test. It works with TRANSLUCENT compatible images in SRC mode.

We still need blending even in SRC mode.

- (jboolean)isBlendingDisabled:(jboolean)isSrcOpaque {

    // We need to check both extra alpha and isSrcOpaque for
    // SRC mode for correct handling TRANSLUCENT images.
    // See test/jdk/java/awt/image/DrawImage/IncorrectUnmanagedImageRotatedClip.java
    // for example
    if (_compositeRule == java_awt_AlphaComposite_SRC ||
        _compositeRule == java_awt_AlphaComposite_SRC_OVER)
    {
        return FLT_GE(_extraAlpha, 1.0f) && isSrcOpaque;
    }
    return isSrcOpaque;
}


Best Regards,
Alexey 

> On 24 Apr 2020, at 02:34, Kevin Rushforth <kcr at openjdk.java.net> wrote:
> 
> This fixed a bug where blending won't be used for SRC_OVER alpha composite mode in cases where there is a non-zero
> alpha in the source, but the extra alpha in the alpha composite is 1.
> 
> The evaluation is in the JBS issue. I'll file a follow-up issue for a couple things I discovered while looking into
> this.
> 
> -------------
> 
> Commit messages:
> - 8243505: SRC_OVER alpha composite mode doesn't render correctly
> 
> Changes: https://git.openjdk.java.net/lanai/pull/37/files
> Webrev: https://webrevs.openjdk.java.net/lanai/37/webrev.00
>  Issue: https://bugs.openjdk.java.net/browse/JDK-8243505
>  Stats: 38 lines in 3 files changed: 35 ins; 0 del; 3 mod
>  Patch: https://git.openjdk.java.net/lanai/pull/37.diff
>  Fetch: git fetch https://git.openjdk.java.net/lanai pull/37/head:pull/37
> 
> PR: https://git.openjdk.java.net/lanai/pull/37



More information about the lanai-dev mailing list