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