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(); }