Hi Jim, Thanks for taking the time to review this in-depth.
> 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. Indeed, the offsets could be also stored as part of the transformation (as it is done for TransformBlit), which would be more elegant. > 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...? In this case a 1x1 mask with EA prepared in advance by XRCompositionManager will be used, returned by xrMgr.getExtraAlphaMask(). However, thinking about it again, it seems to me the code could be simplified a bit more. As soon as a TransformBlit is quadrant rotated, the else-branch (line 321) can handle all cases even with extra-alpha (compositeBlit handles EA in a generic way) - which would make the conditional at line 314 redundant. However, I tended to versimplify this part, so maybe this is something for JDK9 ;) - Clemens