/* */
/* */ protected void computeRect(Raster[] sources, WritableRaster dest, Rectangle destRect)
/* */ {
/* 107 */ RasterFormatTag[] formatTags = getFormatTags();
/* */
/* 110 */ RasterAccessor s1 = new RasterAccessor(sources[0], destRect, formatTags[0], getSource(0).getColorModel());
/* */
/* 113 */ RasterAccessor s2 = new RasterAccessor(sources[1], destRect, formatTags[1], getSource(1).getColorModel());
/* */
/* 116 */ RasterAccessor d = new RasterAccessor(dest, destRect, formatTags[2], getColorModel());
/* */
/* 119 */ if (d.isBinary()) {
/* 120 */ byte[] src1Bits = s1.getBinaryDataArray();
/* 121 */ byte[] src2Bits = s2.getBinaryDataArray();
/* 122 */ byte[] dstBits = d.getBinaryDataArray();
/* */
/* 124 */ int length = dstBits.length;
/* 125 */ for (int i = 0; i < length; i++) {
/* 126 */ dstBits[i] = ((byte)(src1Bits[i] ^ src2Bits[i]));
/* */ }
/* */
/* 129 */ d.copyBinaryDataToRaster();
/* */
/* 131 */ return;
/* */ }
/* */
/* 134 */ int src1LineStride = s1.getScanlineStride();
/* 135 */ int src1PixelStride = s1.getPixelStride();
/* 136 */ int[] src1BandOffsets = s1.getBandOffsets();
/* */
/* 138 */ int src2LineStride = s2.getScanlineStride();
/* 139 */ int src2PixelStride = s2.getPixelStride();
/* 140 */ int[] src2BandOffsets = s2.getBandOffsets();
/* */
/* 142 */ int dstNumBands = d.getNumBands();
/* 143 */ int dstWidth = d.getWidth();
/* 144 */ int dstHeight = d.getHeight();
/* 145 */ int dstLineStride = d.getScanlineStride();
/* 146 */ int dstPixelStride = d.getPixelStride();
/* 147 */ int[] dstBandOffsets = d.getBandOffsets();
/* */
/* 149 */ switch (d.getDataType())
/* */ {
/* */ case 0:
/* 152 */ byteLoop(dstNumBands, dstWidth, dstHeight, src1LineStride, src1PixelStride, src1BandOffsets, s1.getByteDataArrays(), src2LineStride, src2PixelStride, src2BandOffsets, s2.getByteDataArrays(), dstLineStride, dstPixelStride, dstBandOffsets, d.getByteDataArrays());
/* */
/* 159 */ break;
/* */ case 1:
/* */ case 2:
/* 163 */ shortLoop(dstNumBands, dstWidth, dstHeight, src1LineStride, src1PixelStride, src1BandOffsets, s1.getShortDataArrays(), src2LineStride, src2PixelStride, src2BandOffsets, s2.getShortDataArrays(), dstLineStride, dstPixelStride, dstBandOffsets, d.getShortDataArrays());
/* */
/* 170 */ break;
/* */ case 3:
/* 173 */ intLoop(dstNumBands, dstWidth, dstHeight, src1LineStride, src1PixelStride, src1BandOffsets, s1.getIntDataArrays(), src2LineStride, src2PixelStride, src2BandOffsets, s2.getIntDataArrays(), dstLineStride, dstPixelStride, dstBandOffsets, d.getIntDataArrays());
/* */ }
/* */
/* 183 */ d.copyDataToRaster();
/* */ }