private void blockCopyTransparent(int destination[], int source[],
			int sourcePointer, int destinationPointer, int copyLength, int i1,
			int destinationBlockLength, int sourceBlockLength) {
		int value;// was parameter
		int blockCount = -(copyLength >> 2);
		copyLength = -(copyLength & 3);
		for (int i2 = -i1; i2 < 0; i2++) {
			for (int ptr = blockCount; ptr < 0; ptr++) {
				value = source[sourcePointer++];
				if (value != 0)
					destination[destinationPointer++] = value;
				else
					destinationPointer++;
				value = source[sourcePointer++];
				if (value != 0)
					destination[destinationPointer++] = value;
				else
					destinationPointer++;
				value = source[sourcePointer++];
				if (value != 0)
					destination[destinationPointer++] = value;
				else
					destinationPointer++;
				value = source[sourcePointer++];
				if (value != 0)
					destination[destinationPointer++] = value;
				else
					destinationPointer++;
			}

			for (int ptr = copyLength; ptr < 0; ptr++) {
				value = source[sourcePointer++];
				if (value != 0)
					destination[destinationPointer++] = value;
				else
					destinationPointer++;
			}

			destinationPointer += destinationBlockLength;
			sourcePointer += sourceBlockLength;
		}

	}