[OpenJDK 2D-Dev] Request for review: Additional fix for JDK-7159455

Jim Graham james.graham at oracle.com
Wed Nov 6 01:23:08 UTC 2013


Ah, I see.  And, I was about to rant about MT issues, but I see now that 
this is all inside an AWTLock.

I guess that also explains why the source coordinates were multiplied by 
the scale, though that seems a rather odd way to handle these issues.

A new question/issue - on line 314, what happens if the case is both 
quadrant rotated and extra-alpha'd?  Either of those will get us into 
that code block, but also both of them could be true at the same time in 
which case it looks like you forego the retreival of the EA mask...?

			...jim

On 11/5/13 1:24 PM, Clemens Eisserer wrote:
> Hi Jim,
>
>> I sincerely apologize for not seeing this sooner, my email sorting is a little primitive,
>> but I should check these alternate folders more often.
> Never mind :)
>
>> The one thing I am concerned about here is the rounding that is going on for
>> scaled images.  You removed a comment about non-integer coordinates that I
>> think is germane.  In particular, if a scale is animating and an image is
>> rendered to 0,0=>10,10 and then 0,0=>10.25,10.25 then the pixels chosen will
>> subtly change, but the code there rounds the coordinates to integers so you
>> would see no change.  While the bounds of the result would be correct, the
>> exact pixels chosen from the source image for each pixel in the destination
>> would not be quite right.  Where can you communicate to the
>> maskBuffer.compositeBlit() method that, while the coordinates given
>> represent the bounds of interest, they aren't the exact definition of the
>> precise scaling parameters in play?
>
> The scaling parameters are stored as properties of the xrender source
> surface and are set within the validateAsSource() method, while the
> parameters passed to the compositeBlit()-function only specify the
> size of the composition window.
>
> Regards, Clemens
>



More information about the 2d-dev mailing list