зеркало из https://github.com/mono/ikvm-fork.git
Replace Classpath ColorModels with the Sun ColorModels; fix some bugs in BufferedImage
This commit is contained in:
Родитель
6510c2726a
Коммит
8a200829f0
|
@ -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
|
||||
|
|
Загрузка…
Ссылка в новой задаче