Replace Classpath ColorModels with the Sun ColorModels; fix some bugs in BufferedImage

This commit is contained in:
smallsql 2009-01-07 15:27:43 +00:00
Родитель 6510c2726a
Коммит 8a200829f0
7 изменённых файлов: 6336 добавлений и 17 удалений

Просмотреть файл

@ -350,24 +350,19 @@
../../classpath-0.95/java/awt/image/BufferedImageOp.java
../../classpath-0.95/java/awt/image/BufferStrategy.java
../../classpath-0.95/java/awt/image/ByteLookupTable.java
../../classpath-0.95/java/awt/image/ColorModel.java
../../classpath-0.95/java/awt/image/ComponentColorModel.java
../../classpath-0.95/java/awt/image/ConvolveOp.java
../../classpath-0.95/java/awt/image/CropImageFilter.java
../../classpath-0.95/java/awt/image/DirectColorModel.java
../../classpath-0.95/java/awt/image/FilteredImageSource.java
../../classpath-0.95/java/awt/image/ImageConsumer.java
../../classpath-0.95/java/awt/image/ImageFilter.java
../../classpath-0.95/java/awt/image/ImageObserver.java
../../classpath-0.95/java/awt/image/ImageProducer.java
../../classpath-0.95/java/awt/image/ImagingOpException.java
../../classpath-0.95/java/awt/image/IndexColorModel.java
../../classpath-0.95/java/awt/image/Kernel.java
../../classpath-0.95/java/awt/image/LookupOp.java
../../classpath-0.95/java/awt/image/LookupTable.java
../../classpath-0.95/java/awt/image/MemoryImageSource.java
../../classpath-0.95/java/awt/image/MultiPixelPackedSampleModel.java
../../classpath-0.95/java/awt/image/PackedColorModel.java
../../classpath-0.95/java/awt/image/PixelGrabber.java
../../classpath-0.95/java/awt/image/RasterFormatException.java
../../classpath-0.95/java/awt/image/RasterOp.java
@ -1037,7 +1032,10 @@ ikvm/internal/AnnotationAttributeBase.java
ikvm/internal/FieldReflectorBase.java
java/awt/image/BufferedImage.java
java/awt/image/ColorConvertOp.java
java/awt/image/ColorModel.java
java/awt/image/ComponentColorModel.java
java/awt/image/ComponentSampleModel.java
java/awt/image/IndexColorModel.java
java/awt/image/Raster.java
java/awt/image/SampleModel.java
java/io/DeleteOnExitHook.java
@ -7428,6 +7426,8 @@ SystemProperties.java
../../openjdk6-b12/jdk/src/share/classes/java/awt/image/DataBufferInt.java
../../openjdk6-b12/jdk/src/share/classes/java/awt/image/DataBufferShort.java
../../openjdk6-b12/jdk/src/share/classes/java/awt/image/DataBufferUShort.java
../../openjdk6-b12/jdk/src/share/classes/java/awt/image/DirectColorModel.java
../../openjdk6-b12/jdk/src/share/classes/java/awt/image/PackedColorModel.java
../../openjdk6-b12/jdk/src/share/classes/java/awt/image/PixelInterleavedSampleModel.java
../../openjdk6-b12/jdk/src/share/classes/java/beans/AppletInitializer.java
../../openjdk6-b12/jdk/src/share/classes/java/beans/BeanDescriptor.java
@ -9582,6 +9582,9 @@ SystemProperties.java
../../openjdk6-b12/jdk/src/share/classes/sun/io/Converters.java
../../openjdk6-b12/jdk/src/share/classes/sun/io/MalformedInputException.java
../../openjdk6-b12/jdk/src/share/classes/sun/io/UnknownCharacterException.java
../../openjdk6-b12/jdk/src/share/classes/sun/java2d/cmm/CMSManager.java
../../openjdk6-b12/jdk/src/share/classes/sun/java2d/cmm/ColorTransform.java
../../openjdk6-b12/jdk/src/share/classes/sun/java2d/cmm/PCMM.java
../../openjdk6-b12/jdk/src/share/classes/sun/java2d/DefaultDisposerRecord.java
../../openjdk6-b12/jdk/src/share/classes/sun/java2d/Disposer.java
../../openjdk6-b12/jdk/src/share/classes/sun/java2d/DisposerRecord.java

Просмотреть файл

@ -651,7 +651,7 @@ public class BufferedImage extends java.awt.Image
bitmap = new cli.System.Drawing.Bitmap(width, height, PixelFormat.wrap( PixelFormat.Format32bppArgb ));
for( int y = 0; y<height; y++){
for(int x = 0; x<width; x++){
int rgb = getRGB(x, y);
int rgb = colorModel.getRGB(raster.getDataElements(x, y, null));
bitmap.SetPixel(x, y, cli.System.Drawing.Color.FromArgb(rgb));
}
}
@ -698,16 +698,29 @@ public class BufferedImage extends java.awt.Image
raster = createRaster(width, height);
}
// Request the .NET pixel pointer
cli.System.Drawing.Rectangle rec = new cli.System.Drawing.Rectangle(0, 0, width, height);
cli.System.Drawing.Imaging.BitmapData data = bitmap.LockBits(rec, ImageLockMode.wrap(ImageLockMode.ReadOnly), PixelFormat.wrap( PixelFormat.Format32bppArgb ));
cli.System.IntPtr pixelPtr = data.get_Scan0();
// Request the pixel data from .NET and copy it to Java
int[] pixelData = ((DataBufferInt)raster.getDataBuffer()).getData();
cli.System.Runtime.InteropServices.Marshal.Copy(pixelPtr, pixelData, 0, pixelData.length);
bitmap.UnlockBits(data);
switch (getType()){
case TYPE_INT_ARGB:
// Request the .NET pixel pointer
cli.System.Drawing.Rectangle rec = new cli.System.Drawing.Rectangle(0, 0, width, height);
cli.System.Drawing.Imaging.BitmapData data = bitmap.LockBits(rec, ImageLockMode.wrap(ImageLockMode.ReadOnly), PixelFormat.wrap( PixelFormat.Format32bppArgb ));
cli.System.IntPtr pixelPtr = data.get_Scan0();
// Request the pixel data from .NET and copy it to Java
int[] pixelData = ((DataBufferInt)raster.getDataBuffer()).getData();
cli.System.Runtime.InteropServices.Marshal.Copy(pixelPtr, pixelData, 0, pixelData.length);
bitmap.UnlockBits(data);
break;
default:{
for( int y = 0; y<height; y++){
for(int x = 0; x<width; x++){
int rgb = bitmap.GetPixel(x, y).ToArgb();
raster.setDataElements(x, y, colorModel.getDataElements(rgb, null));
}
}
return;
}
}
this.currentBuffer = BUFFER_BOTH;
}

Просмотреть файл

@ -328,7 +328,7 @@ public class ColorConvertOp implements BufferedImageOp, RasterOp
return new BufferedImage(dstCM,
createCompatibleDestRaster(src.getRaster(),
dstCM.getColorSpace(),
src.getColorModel().hasAlpha,
src.getColorModel().hasAlpha(),
dstCM.getTransferType()),
src.isAlphaPremultiplied, null);
}

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -619,6 +619,7 @@ assembly.class
../../openjdk6-b12/jdk/src/share/classes/java/awt/image/*.class
../../openjdk6-b12/jdk/src/share/classes/sun/awt/image/*.class
../../openjdk6-b12/jdk/src/share/classes/sun/java2d/*.class
../../openjdk6-b12/jdk/src/share/classes/sun/java2d/cmm/*.class
../../openjdk6-b12/jdk/src/share/classes/sun/swing/*.class
../classpath/gnu/java/awt/peer/*.class
../classpath/gnu/java/awt/peer/gtk/*.class