On 11/13/14 5:45 PM, Sergey Bylokhov wrote:
Moreover this code have a big impact(hundreds percents) on the performance
of drawing, I consider we should return region from the TransformHelper
directly in the future(or we should change format of edges array to the
bands array format). I do not see that we do a lot of calculations at the
native level in the TransformHelper.calculateEdges() so it should be
possible, I think....
One thing to consider, though, is that this code is only used in some
rare cases - either that we don't have a direct native loop for the TH
native code to use directly, or that it is a custom composite. The
gains from the elimination of the Java-to-native transitions per
scanline also probably swamp any other tuning operation we can do here
so I think we've reached the knee of the curve for tuning this operation
already.
I'd rather have the (albeit internal to the implementation) API for
Region be reliable in the results it generates than to go out of our way
to create external loopholes for constructing the objects for some gains
in this "backup code".
Note that if any given Src/Dst transform operation is critical to any
application, it would be better to make sure that we have a native
MaskBlit for that combination than to make this clipping code go any
faster...
...jim