# HG changeset patch # User Mikhail Kryshen <mikhail@kryshen.net> # Date 1342487297 -14400 # Node ID 2efb0973ab83b129746c8c78881857c10863e00e # Parent cf757c4466b84e90fbcec70aa635b8fdfd69cd2c Cleaned up the rendering code. diff -r cf757c4466b8 -r 2efb0973ab83 src/net/kryshen/charamega/field.mirah --- a/src/net/kryshen/charamega/field.mirah Mon Jul 16 07:50:02 2012 +0400 +++ b/src/net/kryshen/charamega/field.mirah Tue Jul 17 05:08:17 2012 +0400 @@ -103,10 +103,10 @@ g = Graphics2D(g1) g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_ON) + RenderingHints.VALUE_ANTIALIAS_ON) g.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON) - + w = getWidth h = getHeight @@ -129,9 +129,7 @@ rm_scale = 2.0 - outer = Rectangle2D.Double.new - inner = Rectangle2D.Double.new - border = Path2D.Double.new(Path2D.WIND_EVEN_ODD) + card_bounds = Rectangle2D.Double.new save_t = g.getTransform @@ -173,13 +171,8 @@ g.rotate card.angle * v - outer.setRect(-card_size / 2, -card_size / 2, - card_size, card_size) - inner.setRect(1 - card_size / 2, 1 - card_size / 2, - card_size - 2, card_size - 2) - border.reset - border.append outer, false - border.append inner, false + card_bounds.setRect(-card_size / 2, -card_size / 2, + card_size, card_size) if f > 0 g.setColor with_alpha(@face_color, v) @@ -187,24 +180,24 @@ g.setColor with_alpha(@back_color, v) end - g.fill inner + g.fill card_bounds if f > 0 g.setColor with_alpha(@symbol_color, Math.sqrt(v)) gv = font.createGlyphVector(frc, String.valueOf(card.symbol)) - sb = gv.getVisualBounds + gb = gv.getVisualBounds # Scale down if the glyph does not fit. - tolerance = 0.95 - scale = Math.min(inner.getWidth * tolerance / sb.getWidth, - inner.getHeight * tolerance / sb.getHeight) + k = 0.9 + scale = Math.min(card_bounds.width * k / gb.getWidth, + card_bounds.height * k / gb.getHeight) save_t_2 = g.getTransform g.scale scale, scale if scale < 1.0 g.drawGlyphVector(gv, - -float(sb.getX + sb.getWidth / 2), - -float(sb.getY + sb.getHeight / 2)) + -float(gb.getX + gb.getWidth / 2), + -float(gb.getY + gb.getHeight / 2)) g.setTransform save_t_2 end @@ -215,7 +208,7 @@ g.setColor with_alpha(@border_color, v) end - g.fill border + g.draw card_bounds g.setTransform save_t end