This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
[gui][PATCH] Fixes for MemoryImageSource and GtkImagePainter
- From: David Jee <djee at redhat dot com>
- To: java-patches at gcc dot gnu dot org
- Date: Mon, 17 May 2004 12:24:24 -0400
- Subject: [gui][PATCH] Fixes for MemoryImageSource and GtkImagePainter
Hello,
I committed the following patch to the java-gui-branch. It fixes a
couple things in MemoryImageSource and GtkImagePainter.
-David Jee
2004-05-17 David Jee <djee@redhat.com>
* gnu/java/awt/peer/gtk/GtkImagePainter.java
(setPixels): Change color model to the default model after
converting pixels.
* java/awt/image/MemoryImageSource.java
(newPixels): Set only the specified rectangle of pixels.
Index: gnu/java/awt/peer/gtk/GtkImagePainter.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkImagePainter.java,v
retrieving revision 1.2.18.1
diff -u -r1.2.18.1 GtkImagePainter.java
--- gnu/java/awt/peer/gtk/GtkImagePainter.java 5 May 2004 19:27:03 -0000 1.2.18.1
+++ gnu/java/awt/peer/gtk/GtkImagePainter.java 17 May 2004 16:09:46 -0000
@@ -188,8 +188,8 @@
setPixels (int x, int y, int width, int height, ColorModel model,
byte[] pixels, int offset, int scansize)
{
- setPixels (x, y, width, height, model, convertPixels (pixels, model),
- offset, scansize);
+ setPixels (x, y, width, height, ColorModel.getRGBdefault(),
+ convertPixels (pixels, model), offset, scansize);
}
public void
Index: java/awt/image/MemoryImageSource.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/awt/image/MemoryImageSource.java,v
retrieving revision 1.5
diff -u -r1.5 MemoryImageSource.java
--- java/awt/image/MemoryImageSource.java 14 Jul 2003 05:33:30 -0000 1.5
+++ java/awt/image/MemoryImageSource.java 17 May 2004 16:09:46 -0000
@@ -257,9 +257,15 @@
ic.setProperties( props );
}
if( pixeli != null ) {
- ic.setPixels( 0, 0, width, height, cm, pixeli, offset, scansize );
+ int[] pixelbuf = new int[w * h];
+ for (int row = y; row < h; row++)
+ System.arraycopy(pixeli, row * scansize + x + offset, pixelbuf, row * w, w);
+ ic.setPixels( x, y, w, h, cm, pixelbuf, 0, w );
} else {
- ic.setPixels( 0, 0, width, height, cm, pixelb, offset, scansize );
+ byte[] pixelbuf = new byte[w * h];
+ for (int row = y; row < h; row++)
+ System.arraycopy(pixelb, row * scansize + x + offset, pixelbuf, row * w, w);
+ ic.setPixels( x, y, w, h, cm, pixelbuf, 0, w );
}
ic.imageComplete( ImageConsumer.SINGLEFRAME );
}