From: <ls...@us...> - 2008-07-19 13:24:56
|
Revision: 4324 http://jnode.svn.sourceforge.net/jnode/?rev=4324&view=rev Author: lsantha Date: 2008-07-19 13:24:43 +0000 (Sat, 19 Jul 2008) Log Message: ----------- Fixed image scrolling and problems with the visibility of window content. Modified Paths: -------------- trunk/all/conf/openjdk-annotations.properties trunk/gui/src/awt/org/jnode/awt/swingpeers/SwingComponentPeer.java trunk/gui/src/awt/org/jnode/awt/util/BasicGraphics.java trunk/gui/src/awt/org/jnode/awt/util/BasicSurfaceGraphics.java trunk/gui/src/awt/org/jnode/awt/util/SurfaceGraphics2D.java Modified: trunk/all/conf/openjdk-annotations.properties =================================================================== --- trunk/all/conf/openjdk-annotations.properties 2008-07-19 02:04:07 UTC (rev 4323) +++ trunk/all/conf/openjdk-annotations.properties 2008-07-19 13:24:43 UTC (rev 4324) @@ -8,3 +8,4 @@ java/lang/Throwable.class=MagicPermission java/util/Currency.class=SharedStatics sun/misc/SharedSecrets.class=SharedStatics +java/awt/Toolkit.class=SharedStatics Modified: trunk/gui/src/awt/org/jnode/awt/swingpeers/SwingComponentPeer.java =================================================================== --- trunk/gui/src/awt/org/jnode/awt/swingpeers/SwingComponentPeer.java 2008-07-19 02:04:07 UTC (rev 4323) +++ trunk/gui/src/awt/org/jnode/awt/swingpeers/SwingComponentPeer.java 2008-07-19 13:24:43 UTC (rev 4324) @@ -221,10 +221,11 @@ * Response on paint events. */ private void processPaintEvent(PaintEvent event) { + if(!targetComponent.isVisible() || !peerComponent.isVisible()) + return; + final Graphics g = peerComponent.getGraphics(); if (g != null) { - //Point p = component.getLocationOnScreen(); - //g.translate(p.x, p.y); if (event.getID() == PaintEvent.PAINT) { if (!(targetComponent instanceof java.awt.Window)) peerComponent.paint(g); @@ -234,7 +235,6 @@ peerComponent.update(g); targetComponent.update(g); } - //g.translate(-p.x, -p.y); g.dispose(); } } Modified: trunk/gui/src/awt/org/jnode/awt/util/BasicGraphics.java =================================================================== --- trunk/gui/src/awt/org/jnode/awt/util/BasicGraphics.java 2008-07-19 02:04:07 UTC (rev 4323) +++ trunk/gui/src/awt/org/jnode/awt/util/BasicGraphics.java 2008-07-19 13:24:43 UTC (rev 4324) @@ -212,10 +212,6 @@ this.clip = clip.getBounds(); _transform(this.clip); } - if (this.clip.width == 0 && this.clip.height == 0) { - org.jnode.vm.Unsafe.debug("SimpleSurfaceGraphics: zero clip " + clip + "\n"); - org.jnode.vm.Unsafe.debugStackTrace(); - } } /** @@ -237,10 +233,6 @@ public void setClip(int x, int y, int width, int height) { this.clip = new Rectangle(x, y, width, height); _transform(this.clip); - if (clip.width == 0 && clip.height == 0) { - org.jnode.vm.Unsafe.debug("SimpleSurfaceGraphics: zero clip " + clip + "\n"); - org.jnode.vm.Unsafe.debugStackTrace(); - } } /** Modified: trunk/gui/src/awt/org/jnode/awt/util/BasicSurfaceGraphics.java =================================================================== --- trunk/gui/src/awt/org/jnode/awt/util/BasicSurfaceGraphics.java 2008-07-19 02:04:07 UTC (rev 4323) +++ trunk/gui/src/awt/org/jnode/awt/util/BasicSurfaceGraphics.java 2008-07-19 13:24:43 UTC (rev 4324) @@ -383,11 +383,14 @@ Raster rast = getCompatibleRaster(img); Rectangle r = new Rectangle(x, y, rast.getWidth(), rast.getHeight()); _transform(r); + final int tx = r.x, ty = r.y; if (clip != null) r = clip.intersection(r); - surface.drawCompatibleRaster(rast, 0, 0, r.x, r.y, r.width, r.height, bgcolor); - surface.update(r.x, r.y, r.width + 2, r.height + 2); + if(!r.isEmpty()){ + surface.drawCompatibleRaster(rast, r.x - tx, r.y - ty, r.x, r.y, r.width, r.height, bgcolor); + surface.update(r.x, r.y, r.width, r.height); + } return true; } catch (InterruptedException ie) { return false; @@ -433,11 +436,14 @@ Raster rast = getCompatibleRaster(img); Rectangle r = new Rectangle(x, y, rast.getWidth(), rast.getHeight()); _transform(r); + final int tx = r.x, ty = r.y; if (clip != null) r = clip.intersection(r); - surface.drawCompatibleRaster(rast, 0, 0, r.x, r.y, r.width, r.height, null); - surface.update(r.x, r.y, r.width + 2, r.height + 2); + if(!r.isEmpty()){ + surface.drawCompatibleRaster(rast, r.x - tx, r.y - ty, r.x, r.y, r.width, r.height, null); + surface.update(r.x, r.y, r.width, r.height); + } return true; } catch (InterruptedException ie) { return false; @@ -966,7 +972,9 @@ // Convert it to a raster final PixelGrabber grabber = new PixelGrabber(image, 0, 0, image.getWidth(null), image.getHeight(null), true); - if (grabber.grabPixels()) { + org.jnode.vm.Unsafe.debug("BasicSurfaceGraphics.getCompatibleRaster() " + image + ", " + + image.getWidth(null) + ", " + image.getHeight(null) + "\n"); + if (grabber.grabPixels(10000)) { final int w = grabber.getWidth(); final int h = grabber.getHeight(); final WritableRaster raster = dstModel.createCompatibleWritableRaster(w, h); @@ -982,6 +990,7 @@ } return raster; } else { + org.jnode.vm.Unsafe.debug("SimpleSurfaceGraphics2D.drawImage()-1\n"); throw new IllegalArgumentException("Cannot grab pixels"); } } Modified: trunk/gui/src/awt/org/jnode/awt/util/SurfaceGraphics2D.java =================================================================== --- trunk/gui/src/awt/org/jnode/awt/util/SurfaceGraphics2D.java 2008-07-19 02:04:07 UTC (rev 4323) +++ trunk/gui/src/awt/org/jnode/awt/util/SurfaceGraphics2D.java 2008-07-19 13:24:43 UTC (rev 4324) @@ -43,10 +43,10 @@ */ public abstract class SurfaceGraphics2D extends Graphics2D { private static final BasicStroke DEFAULT_STROKE = new BasicStroke(); - private static final HashMap DEFAULT_HINTS; + private static final HashMap<RenderingHints.Key, ?> DEFAULT_HINTS; static { - HashMap hints = new HashMap(); + HashMap<RenderingHints.Key, Object> hints = new HashMap<RenderingHints.Key, Object>(); hints.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT); hints.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_DEFAULT); DEFAULT_HINTS = hints; @@ -206,7 +206,7 @@ */ public void drawImage(BufferedImage img, BufferedImageOp op, int x, int y) { //todo implement it - org.jnode.vm.Unsafe.debug("SimpleSurfaceGraphics2D.drawImage() not implemented\n"); + org.jnode.vm.Unsafe.debug("SurfaceGraphics2D.drawImage() - 0 not implemented\n"); } /** @@ -238,7 +238,7 @@ */ public boolean drawImage(Image img, AffineTransform xform, ImageObserver obs) { //todo implement it - org.jnode.vm.Unsafe.debug("SimpleSurfaceGraphics2D.drawImage2() not implemented\n"); + org.jnode.vm.Unsafe.debug("SurfaceGraphics2D.drawImage() - 00 not implemented\n"); return false; } @@ -1008,28 +1008,34 @@ } public boolean drawImage(Image img, int x, int y, ImageObserver observer) { +// org.jnode.vm.Unsafe.debug("SimpleSurfaceGraphics2D.drawImage()-1\n"); return simpleGraphics.drawImage(img, x, y, observer); } public boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer) { +// org.jnode.vm.Unsafe.debug("SimpleSurfaceGraphics2D.drawImage()-2\n"); return simpleGraphics.drawImage(img, x, y, width, height, observer); } public boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer) { +// org.jnode.vm.Unsafe.debug("SimpleSurfaceGraphics2D.drawImage()-3\n"); return simpleGraphics.drawImage(img, x, y, bgcolor, observer); } public boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer) { +// org.jnode.vm.Unsafe.debug("SimpleSurfaceGraphics2D.drawImage()-4\n"); return simpleGraphics.drawImage(img, x, y, width, height, bgcolor, observer); } public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer) { +// org.jnode.vm.Unsafe.debug("SimpleSurfaceGraphics2D.drawImage()-5\n"); return simpleGraphics.drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, observer); } public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer) { +// org.jnode.vm.Unsafe.debug("SimpleSurfaceGraphics2D.drawImage()-6\n"); return simpleGraphics.drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, bgcolor, observer); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |