diff options
author | Francis Kung <fkung@redhat.com> | 2006-11-21 16:34:03 +0000 |
---|---|---|
committer | Francis Kung <fkung@redhat.com> | 2006-11-21 16:34:03 +0000 |
commit | 488fa0077a655f3152140e74355b11b897352b1e (patch) | |
tree | 3e9eda675efa4542c6df0f4920e263946f8699a7 /gnu/java/awt/peer/gtk/BufferedImageGraphics.java | |
parent | 03970a6b3aac93b82ebf1fa6f3467e35cf721aeb (diff) | |
download | classpath-488fa0077a655f3152140e74355b11b897352b1e.tar.gz |
2006-11-21 Francis Kung <fkung@redhat.com>
* gnu/java/awt/java2d/TexturePaintContext.java
(getRaster): Handle negative coordinate values.
* gnu/java/awt/peer/gtk/CairoGraphics2D.java
(setPaint): Moved custom paint processing to a new method.
(setPaintPixels): Added x, y parameters.
(getRealBounds): Added documentation.
(copy): Copy clipping information.
(drawLine): Process custom paints.
(setCustomPaint): New method.
(fill): Process custom paints.
(drawGlyphVector): Process custom paints.
(drawRect): Process custom paints.
(draw): Process custom paints.
* gnu/java/awt/peer/gtk/CairoSurface.java
(cairoCM_opaque): New constant.
* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
(argb32): Removed constant.
(rgb32): Removed constant.
(BufferedImageGraphics(BufferedImage)): Updated constant names.
(BufferedImageGraphics(BufferedImageGraphics)): Copy color model flags.
(updateBufferedImage): Transform to device-space before updating.
* include/gnu_java_awt_peer_gtk_CairoGraphics2D.h
(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_setPaintPixels): Added x, y
parameters.
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_setPaintPixels): Set pattern
source at designated x, y origin.
Diffstat (limited to 'gnu/java/awt/peer/gtk/BufferedImageGraphics.java')
-rw-r--r-- | gnu/java/awt/peer/gtk/BufferedImageGraphics.java | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/gnu/java/awt/peer/gtk/BufferedImageGraphics.java b/gnu/java/awt/peer/gtk/BufferedImageGraphics.java index 341fa2a4e..f83be870d 100644 --- a/gnu/java/awt/peer/gtk/BufferedImageGraphics.java +++ b/gnu/java/awt/peer/gtk/BufferedImageGraphics.java @@ -54,7 +54,6 @@ import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; import java.awt.image.ColorModel; import java.awt.image.DataBufferInt; -import java.awt.image.DirectColorModel; import java.awt.image.ImageObserver; import java.awt.image.ImageProducer; import java.awt.image.Raster; @@ -100,12 +99,6 @@ public class BufferedImageGraphics extends CairoGraphics2D */ private long cairo_t; - /** - * Colormodels we recognize for fast copying. - */ - static ColorModel rgb32 = new DirectColorModel(24, 0xFF0000, 0xFF00, 0xFF); - static ColorModel argb32 = new DirectColorModel(32, 0xFF0000, 0xFF00, 0xFF, - 0xFF000000); private boolean hasFastCM; private boolean hasAlpha; @@ -117,12 +110,12 @@ public class BufferedImageGraphics extends CairoGraphics2D imageHeight = bi.getHeight(); locked = false; - if(bi.getColorModel().equals(rgb32)) + if(bi.getColorModel().equals(CairoSurface.cairoCM_opaque)) { hasFastCM = true; hasAlpha = false; } - else if(bi.getColorModel().equals(argb32)) + else if(bi.getColorModel().equals(CairoSurface.cairoColorModel)) { hasFastCM = true; hasAlpha = true; @@ -176,8 +169,11 @@ public class BufferedImageGraphics extends CairoGraphics2D imageWidth = copyFrom.imageWidth; imageHeight = copyFrom.imageHeight; locked = false; + + hasFastCM = copyFrom.hasFastCM; + hasAlpha = copyFrom.hasAlpha; + copy( copyFrom, cairo_t ); - setClip(0, 0, surface.width, surface.height); } /** @@ -188,6 +184,13 @@ public class BufferedImageGraphics extends CairoGraphics2D if (locked) return; + double[] points = new double[]{x, y, width+x, height+y}; + transform.transform(points, 0, points, 0, 2); + x = (int)points[0]; + y = (int)points[1]; + width = (int)(points[2] - x); + height = (int)(points[3] - y); + int[] pixels = surface.getPixels(imageWidth * imageHeight); if( x > imageWidth || y > imageHeight ) |