This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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 );
 		    }

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]