? .snprj ? classpath.proj ? patch Index: ChangeLog =================================================================== RCS file: /cvsroot/classpath/classpath/ChangeLog,v retrieving revision 1.1795 diff -c -p -u -r1.1795 ChangeLog --- ChangeLog 14 Jan 2004 21:37:33 -0000 1.1795 +++ ChangeLog 15 Jan 2004 20:39:46 -0000 @@ -1,3 +1,14 @@ +2004-01-15 Olga Rodimina + + * gnu/java/awt/peer/gtk/GdkGraphics2D.java: + Implemented rendering hints related methods. + (getDefaultHints): New helper method. Returns + default rendering hints. + (walkPath): changed to normalize path if + the KEY_STROKE_CONTROL key is in "normalize" mode. + (draw3DRect): changed coordinates of rectangle by +0.5 + if in "normalize" mode. + 2004-01-14 Michael Koch * java/text/MessageFormat.java: Index: gnu/java/awt/peer/gtk/GdkGraphics2D.java =================================================================== RCS file: /cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GdkGraphics2D.java,v retrieving revision 1.4 diff -c -p -u -r1.4 GdkGraphics2D.java --- gnu/java/awt/peer/gtk/GdkGraphics2D.java 20 Nov 2003 22:27:36 -0000 1.4 +++ gnu/java/awt/peer/gtk/GdkGraphics2D.java 15 Jan 2004 20:39:47 -0000 @@ -44,6 +44,8 @@ import java.awt.font.*; import java.awt.color.*; import java.awt.image.*; import java.awt.image.renderable.*; +import java.util.HashMap; +import java.util.Map; import java.text.AttributedCharacterIterator; import java.util.Map; @@ -79,6 +81,7 @@ public class GdkGraphics2D extends Graph private AffineTransform transform; private GtkComponentPeer component; private Font font; + private RenderingHints hints; private Stack stateStack; @@ -106,6 +109,7 @@ public class GdkGraphics2D extends Graph { paint = g.paint; stroke = g.stroke; + hints = g.hints; if (g.fg.getAlpha() != -1) fg = new Color (g.fg.getRed (), g.fg.getGreen (), @@ -152,6 +156,7 @@ public class GdkGraphics2D extends Graph setFont (new Font("SansSerif", Font.PLAIN, 12)); setTransform (AffineTransform.getTranslateInstance (0.5, 0.5)); setStroke (new BasicStroke ()); + setRenderingHints (new HashMap ()); stateStack = new Stack(); } @@ -167,6 +172,7 @@ public class GdkGraphics2D extends Graph setFont (new Font("SansSerif", Font.PLAIN, 12)); setTransform (AffineTransform.getTranslateInstance (0.5, 0.5)); setStroke (new BasicStroke ()); + setRenderingHints (new HashMap ()); stateStack = new Stack (); } @@ -333,6 +339,29 @@ public class GdkGraphics2D extends Graph } + private Map getDefaultHints() + { + HashMap defaultHints = new HashMap (); + + defaultHints.put (RenderingHints.KEY_TEXT_ANTIALIASING, + RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT); + + defaultHints.put (RenderingHints.KEY_STROKE_CONTROL, + RenderingHints.VALUE_STROKE_DEFAULT); + + defaultHints.put (RenderingHints.KEY_FRACTIONALMETRICS, + RenderingHints.VALUE_FRACTIONALMETRICS_OFF); + + defaultHints.put (RenderingHints.KEY_ANTIALIASING, + RenderingHints.VALUE_ANTIALIAS_OFF); + + defaultHints.put (RenderingHints.KEY_RENDERING, + RenderingHints.VALUE_RENDER_DEFAULT); + + return defaultHints; + + } + ////////////////////////////////////////////////// ////// Implementation of Graphics2D Methods ////// ////////////////////////////////////////////////// @@ -349,6 +378,14 @@ public class GdkGraphics2D extends Graph stateSave (); cairoNewPath (); + + boolean normalize; + normalize = hints.containsValue (RenderingHints.VALUE_STROKE_NORMALIZE) + || hints.containsValue (RenderingHints.VALUE_STROKE_DEFAULT); + + if (normalize) + translate (0.5,0.5); + if (s instanceof Rectangle2D) { Rectangle2D r = (Rectangle2D)s; @@ -357,6 +394,10 @@ public class GdkGraphics2D extends Graph else walkPath (s.getPathIterator (null)); cairoStroke (); + + if (normalize) + translate (-0.5,-0.5); + stateRestore (); } @@ -638,6 +679,19 @@ public class GdkGraphics2D extends Graph stateSave (); cairoNewPath (); + + boolean normalize; + normalize = hints.containsValue (RenderingHints.VALUE_STROKE_NORMALIZE) + || hints.containsValue (RenderingHints.VALUE_STROKE_DEFAULT); + + if (normalize) + { + x1 += 0.5; + y1 += 0.5; + x2 += 0.5; + y2 += 0.5; + } + setColor (light); cairoMoveTo (x1, y1); cairoLineTo (x2, y1); @@ -1074,27 +1128,28 @@ public class GdkGraphics2D extends Graph public void setRenderingHint(RenderingHints.Key hintKey, Object hintValue) { - throw new java.lang.UnsupportedOperationException (); + hints.put (hintKey, hintValue); } public Object getRenderingHint(RenderingHints.Key hintKey) { - throw new java.lang.UnsupportedOperationException (); + return hints.get (hintKey); } public void setRenderingHints(Map hints) { - throw new java.lang.UnsupportedOperationException (); + this.hints = new RenderingHints (getDefaultHints ()); + this.hints.add (new RenderingHints (hints)); } public void addRenderingHints(Map hints) { - throw new java.lang.UnsupportedOperationException (); + this.hints.add (new RenderingHints (hints)); } public RenderingHints getRenderingHints() { - throw new java.lang.UnsupportedOperationException (); + return hints; } public Composite getComposite()