Hi,
The updateBufferedImage() method calls in BufferedImageGraphics didn't
take into account the possibility that pixels might have been shifted
(ie, the shiftDrawCalls field in CairoGraphics2D).
This little patch extends the update region in these cases.
Cheers,
Francis
2006-10-17 Francis Kung <[EMAIL PROTECTED]>
* gnu/java/awt/peer/gtk/BufferedImageGraphics.java (draw): Extend
updated
region to account for pixel-shifting.
* gnu/java/awt/peer/gtk/CairoGraphics2D.java (shiftDrawCalls): Made
proctected.
Index: gnu/java/awt/peer/gtk/BufferedImageGraphics.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/BufferedImageGraphics.java,v
retrieving revision 1.13
diff -u -r1.13 BufferedImageGraphics.java
--- gnu/java/awt/peer/gtk/BufferedImageGraphics.java 17 Oct 2006 14:53:37 -0000 1.13
+++ gnu/java/awt/peer/gtk/BufferedImageGraphics.java 17 Oct 2006 18:55:43 -0000
@@ -248,7 +248,11 @@
{
super.draw(s);
Rectangle r = s.getBounds();
- updateBufferedImage(r.x, r.y, r.width, r.height);
+
+ if (shiftDrawCalls)
+ updateBufferedImage(r.x, r.y, r.width+1, r.height+1);
+ else
+ updateBufferedImage(r.x, r.y, r.width, r.height);
}
else
{
Index: gnu/java/awt/peer/gtk/CairoGraphics2D.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java,v
retrieving revision 1.44
diff -u -r1.44 CairoGraphics2D.java
--- gnu/java/awt/peer/gtk/CairoGraphics2D.java 11 Oct 2006 20:14:59 -0000 1.44
+++ gnu/java/awt/peer/gtk/CairoGraphics2D.java 17 Oct 2006 18:55:43 -0000
@@ -176,7 +176,7 @@
* coords be shifted to land on 0.5-pixel boundaries, in order to land on
* "middle of pixel" coordinates and light up complete pixels.
*/
- private boolean shiftDrawCalls = false;
+ protected boolean shiftDrawCalls = false;
/**
* Keep track if the first clip to be set, which is restored on setClip(null);