src/solaris/classes/sun/java2d/xr/MaskTileManager.java
Print this page
*** 74,85 ****
* and renders the result to the destination surface.
*/
public void fillMask(XRSurfaceData dst) {
boolean maskRequired = xrMgr.maskRequired();
! if (maskRequired) {
mainTile.calculateDirtyAreas();
DirtyRegion dirtyArea = mainTile.getDirtyArea().cloneRegion();
mainTile.translate(-dirtyArea.x, -dirtyArea.y);
XRColor maskColor = xrMgr.getMaskColor();
--- 74,86 ----
* and renders the result to the destination surface.
*/
public void fillMask(XRSurfaceData dst) {
boolean maskRequired = xrMgr.maskRequired();
+ boolean maskEvaluated = XRUtils.isMaskEvaluated(xrMgr.compRule);
! if (maskRequired && maskEvaluated) {
mainTile.calculateDirtyAreas();
DirtyRegion dirtyArea = mainTile.getDirtyArea().cloneRegion();
mainTile.translate(-dirtyArea.x, -dirtyArea.y);
XRColor maskColor = xrMgr.getMaskColor();
*** 104,114 ****
--- 105,123 ----
tileStartX, tileStartY, maskColor);
}
}
}
} else {
+ /*
+ * If a mask would be required to store geometry (maskRequired)
+ * composition has to be done rectangle-by-rectagle.
+ */
+ if(xrMgr.isSolidPaintActive()) {
xrMgr.XRRenderRectangles(dst, mainTile.getRects());
+ } else {
+ xrMgr.XRCompositeRectangles(dst, mainTile.getRects());
+ }
}
mainTile.reset();
}