mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-02 20:50:53 +08:00
69b1b29156
2000-07-23 Rolf W. Rasmussen <rolfwr@ii.uib.no> * libjava/java/awt/image/ColorModel.java: New file, replaces the stub libjava/java/awt/ColorModel.java which was located in the wrong package. * libjava/java/awt/image/ComponentColorModel.java: New file. * libjava/java/awt/image/ComponentSampleModel.java: New file. * libjava/java/awt/image/DataBuffer.java: New file. * libjava/java/awt/image/DataBufferByte.java: New file. * libjava/java/awt/image/DataBufferInt.java: New file. * libjava/java/awt/image/DataBufferUShort.java: New file. * libjava/java/awt/image/DirectColorModel.java: New file. * libjava/java/awt/image/PackedColorModel.java: New file. * libjava/java/awt/image/Raster.java: New file. * libjava/java/awt/image/SampleModel.java: New file. * libjava/java/awt/image/SinglePixelPackedSampleModel.java: New file. * libjava/java/awt/image/IndexColorModel.java: New file. * libjava/java/awt/image/ImageConsumer.java: Removed import of java.awt.ColorModel stub. * gnu/gcj/util/BitMaskExtent.java: New file, utility class. * gnu/gcj/util/Buffers.java: New file, utility class. * libjava/Makefile.am: Updated to include new files. * libjava/Makefile.in: Rebuilt. From-SVN: r35245
52 lines
1.3 KiB
Java
52 lines
1.3 KiB
Java
/* Copyright © 2000 Free Software Foundation
|
|
|
|
This file is part of libgcj.
|
|
|
|
This software is copyrighted work licensed under the terms of the
|
|
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
|
details. */
|
|
|
|
package gnu.gcj.awt;
|
|
|
|
/**
|
|
* Simple transparent utility class that can be used to perform bit
|
|
* mask extent calculations.
|
|
*/
|
|
public final class BitMaskExtent
|
|
{
|
|
/** The number of the least significant bit of the bit mask extent. */
|
|
public byte leastSignificantBit;
|
|
|
|
/** The number of bits in the bit mask extent. */
|
|
public byte bitWidth;
|
|
|
|
/**
|
|
* Set the bit mask. This will calculate and set the leastSignificantBit
|
|
* and bitWidth fields.
|
|
*
|
|
* @see #leastSignificantBit
|
|
* @see #bitWidth
|
|
*/
|
|
public void setMask(long mask)
|
|
{
|
|
leastSignificantBit = 0;
|
|
bitWidth = 0;
|
|
if (mask == 0) return;
|
|
long shiftMask = mask;
|
|
for (; (shiftMask&1) == 0; shiftMask >>>=1) leastSignificantBit++;
|
|
for (; (shiftMask&1) != 0; shiftMask >>>=1) bitWidth++;
|
|
|
|
if (shiftMask != 0)
|
|
throw new IllegalArgumentException("mask must be continuous");
|
|
}
|
|
|
|
/**
|
|
* Calculate the bit mask based on the values of the
|
|
* leastSignificantBit and bitWidth fields.
|
|
*/
|
|
public long toMask()
|
|
{
|
|
return ((1<<bitWidth)-1) << leastSignificantBit;
|
|
}
|
|
}
|