On Wed, 14 Oct 2020 18:35:15 GMT, Sergey Bylokhov <s...@openjdk.org> wrote:

> The XrSwToPMBlit is a blit which is used as a direct(unscaled) blit of the 
> image in the memory to the pixmap. It tries
> to optimize the SrcOver composite in case of an opaque source image and use 
> Src instead:
>         if (CompositeType.SrcOverNoEa.equals(comp) && (src.getTransparency() 
> == Transparency.OPAQUE)) {
>             Blit opaqueSwToSurfaceBlit = 
> Blit.getFromCache(src.getSurfaceType(), CompositeType.SrcNoEa, 
> dst.getSurfaceType());
>             opaqueSwToSurfaceBlit.Blit(src, dst, comp, clip, sx, sy, dx, dy, 
> w, h);
>         } else {
> 
> The code above does not work for two reasons:
> - The check "CompositeType.SrcOverNoEa.equals(comp)" always fails because the 
> comp is of type
>   Composite(AlphaComposite/XORComposite/etc) not a CompositeType
>  - This optimisation is applied already in the 
> sun.java2d.pipe.DrawImage#blitSurfaceData:
> https://github.com/openjdk/jdk/blob/master/src/java.desktop/share/classes/sun/java2d/pipe/DrawImage.java#L933

Marked as reviewed by prr (Reviewer).

-------------

PR: https://git.openjdk.java.net/jdk/pull/665

Reply via email to