I note that you change the signature of blitSurfaceData to private.
I think this is fine. Since it is only used in this class I imagine
whatever reason
it was supposed it might need to be over-ridden has never arisen ..
But I still had to first go check that it isn't actually used elsewhere !
I'm not sure I get the comment about the intersection operation causing
performance problems.
Are you referring to the cost of that intersection operation itself, or
some downstream consequence ?
-phil
On 8/28/20, 6:26 PM, Sergey Bylokhov wrote:
Hello.
Please review the fix for jdk/client.
Bug: https://bugs.openjdk.java.net/browse/JDK-8252070
Fix: http://cr.openjdk.java.net/~serb/8252070/webrev.01
Some of our code assumes that the native system(XRender, D3D, OGL)
makes some
effective optimizations, but in some cases, we can do better.
One of the areas for improvements is direct blitting. If the source is
much
bigger than the destination we should not try to copy the non-existent
area
and could cut coordinates accordingly.
The actual change is:
951 Rectangle dst =
952 new Rectangle(dx, dy, w,
h).intersection(dstData.getBounds());
953 if (dst.isEmpty()) {
972 // return
975 }
979 sx += dst.x - dx;
980 sy += dst.y - dy;
See performance data and some additional comments:
https://bugs.openjdk.java.net/browse/JDK-8252070?focusedCommentId=14365864&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-14365864