diff options
| author | Francis Kung <fkung@redhat.com> | 2006-10-11 20:14:59 +0000 |
|---|---|---|
| committer | Francis Kung <fkung@redhat.com> | 2006-10-11 20:14:59 +0000 |
| commit | 758c8126469fe8b8bf8739c17318ad02c63f4035 (patch) | |
| tree | 9d908bd6a01f42199e8afb43c98219775258bf7a /gnu/java/awt/peer/gtk/VolatileImageGraphics.java | |
| parent | bb59f44e1034c068cc838940af6ea165e6338a1e (diff) | |
| download | classpath-758c8126469fe8b8bf8739c17318ad02c63f4035.tar.gz | |
2006-10-11 Francis Kung <fkung@redhat.com>
* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
(buffer, locked): New fields.
(constructors): Initialize new variables.
(createBuffer): New method.
(draw): Implement custom composites.
(drawComposite): New method.
(drawGlyphVector): Implement custom composites.
(drawImage): Implement custom composites.
(drawRenderedImage): Implement custom composites.
(fill): Implement custom composites.
(getBufferCM): New method.
(getNativeCM): New method.
(updateBufferedImage): Fix premultiplication.
* gnu/java/awt/peer/gtk/CairoGraphics2D.java
(copy): Copy composite.
(drawImage): Set background properly.
(getBufferCM): New method.
(setComposite): Reset alpha composite when using custom composite.
* gnu/java/awt/peer/gtk/CairoSurface.java
(cairoColorModel): New field.
(nativeColorModel): Renamed.
(constructor): Use renamed createCairoSampleModel method.
(createCairoSampleModel): New method.
(createNativeSampleModel): Renamed.
(getBufferedImage): Use renamed cairoColorModel field.
* gnu/java/awt/peer/gtk/GtkVolatileImage.java
(gdkColorModel): New field.
(createGdkSampleModel): New method.
(getPixels): Added comments.
(getSnapshot): Use GDK colour and sample models.
* gnu/java/awt/peer/gtk/VolatileImageGraphics.java
(createBuffer): Use GDK colour and sample models.
(getNativeCM): Added comments.
* java/awt/image/BufferedImage.java
(constructor): Set premultiplied flag properly.
Diffstat (limited to 'gnu/java/awt/peer/gtk/VolatileImageGraphics.java')
| -rw-r--r-- | gnu/java/awt/peer/gtk/VolatileImageGraphics.java | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/gnu/java/awt/peer/gtk/VolatileImageGraphics.java b/gnu/java/awt/peer/gtk/VolatileImageGraphics.java index 560d31750..4d69b5a28 100644 --- a/gnu/java/awt/peer/gtk/VolatileImageGraphics.java +++ b/gnu/java/awt/peer/gtk/VolatileImageGraphics.java @@ -282,12 +282,12 @@ public class VolatileImageGraphics extends ComponentGraphics if (buffer == null) { WritableRaster rst; - rst = Raster.createWritableRaster(CairoSurface. - createNativeSampleModel(owner.width, + rst = Raster.createWritableRaster(GtkVolatileImage.createGdkSampleModel(owner.width, owner.height), new Point(0,0)); - buffer = new BufferedImage(CairoSurface.nativeColorModel, rst, true, + buffer = new BufferedImage(GtkVolatileImage.gdkColorModel, rst, + GtkVolatileImage.gdkColorModel.isAlphaPremultiplied(), new Hashtable()); } else @@ -301,7 +301,12 @@ public class VolatileImageGraphics extends ComponentGraphics protected ColorModel getNativeCM() { - return CairoSurface.nativeColorModel; + // We should really return GtkVolatileImage.gdkColorModel , + // but CairoGraphics2D doesn't handle alpha premultiplication properly (see + // the fixme in drawImage) so we use the naive Cairo model instead to trick + // the compositing context. + // Because getNativeCM() == getBufferCM() for this peer, it doesn't break. + return CairoSurface.cairoColorModel; } } |
