< prev index next >

src/java.desktop/share/classes/sun/java2d/loops/MaskBlit.java

Print this page


   1 /*
   2  * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any


 154         }
 155 
 156         public void setPrimitives(Blit srcconverter,
 157                                   Blit dstconverter,
 158                                   GraphicsPrimitive genericop,
 159                                   Blit resconverter)
 160         {
 161             this.convertsrc = srcconverter;
 162             this.convertdst = dstconverter;
 163             this.performop = (MaskBlit) genericop;
 164             this.convertresult = resconverter;
 165         }
 166 
 167         public synchronized void MaskBlit(SurfaceData srcData,
 168                                           SurfaceData dstData,
 169                                           Composite comp,
 170                                           Region clip,
 171                                           int srcx, int srcy,
 172                                           int dstx, int dsty,
 173                                           int width, int height,
 174                                           byte mask[], int offset, int scan)
 175         {
 176             SurfaceData src, dst;
 177             Region opclip;
 178             int sx, sy, dx, dy;
 179 
 180             if (convertsrc == null) {
 181                 src = srcData;
 182                 sx = srcx;
 183                 sy = srcy;
 184             } else {
 185                 SurfaceData cachedSrc = null;
 186                 if (srcTmp != null) {
 187                     cachedSrc = srcTmp.get();
 188                 }
 189                 src = convertFrom(convertsrc, srcData, srcx, srcy,
 190                                   width, height, cachedSrc);
 191                 sx = 0;
 192                 sy = 0;
 193                 if (src != cachedSrc) {
 194                     srcTmp = new WeakReference<>(src);


   1 /*
   2  * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any


 154         }
 155 
 156         public void setPrimitives(Blit srcconverter,
 157                                   Blit dstconverter,
 158                                   GraphicsPrimitive genericop,
 159                                   Blit resconverter)
 160         {
 161             this.convertsrc = srcconverter;
 162             this.convertdst = dstconverter;
 163             this.performop = (MaskBlit) genericop;
 164             this.convertresult = resconverter;
 165         }
 166 
 167         public synchronized void MaskBlit(SurfaceData srcData,
 168                                           SurfaceData dstData,
 169                                           Composite comp,
 170                                           Region clip,
 171                                           int srcx, int srcy,
 172                                           int dstx, int dsty,
 173                                           int width, int height,
 174                                           byte[] mask, int offset, int scan)
 175         {
 176             SurfaceData src, dst;
 177             Region opclip;
 178             int sx, sy, dx, dy;
 179 
 180             if (convertsrc == null) {
 181                 src = srcData;
 182                 sx = srcx;
 183                 sy = srcy;
 184             } else {
 185                 SurfaceData cachedSrc = null;
 186                 if (srcTmp != null) {
 187                     cachedSrc = srcTmp.get();
 188                 }
 189                 src = convertFrom(convertsrc, srcData, srcx, srcy,
 190                                   width, height, cachedSrc);
 191                 sx = 0;
 192                 sy = 0;
 193                 if (src != cachedSrc) {
 194                     srcTmp = new WeakReference<>(src);


< prev index next >