changeset 9:2efb0973ab83

Cleaned up the rendering code.
author Mikhail Kryshen <mikhail@kryshen.net>
date Tue, 17 Jul 2012 05:08:17 +0400
parents cf757c4466b8
children 6e6b00d95d0b
files src/net/kryshen/charamega/field.mirah
diffstat 1 files changed, 13 insertions(+), 20 deletions(-) [+]
line diff
     1.1 --- a/src/net/kryshen/charamega/field.mirah	Mon Jul 16 07:50:02 2012 +0400
     1.2 +++ b/src/net/kryshen/charamega/field.mirah	Tue Jul 17 05:08:17 2012 +0400
     1.3 @@ -103,10 +103,10 @@
     1.4      g = Graphics2D(g1)
     1.5  
     1.6      g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
     1.7 -                        RenderingHints.VALUE_ANTIALIAS_ON)
     1.8 +                       RenderingHints.VALUE_ANTIALIAS_ON)
     1.9      g.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS,
    1.10                         RenderingHints.VALUE_FRACTIONALMETRICS_ON)
    1.11 -
    1.12 +    
    1.13      w = getWidth
    1.14      h = getHeight
    1.15     
    1.16 @@ -129,9 +129,7 @@
    1.17  
    1.18      rm_scale = 2.0
    1.19  
    1.20 -    outer = Rectangle2D.Double.new
    1.21 -    inner = Rectangle2D.Double.new
    1.22 -    border = Path2D.Double.new(Path2D.WIND_EVEN_ODD)
    1.23 +    card_bounds = Rectangle2D.Double.new
    1.24  
    1.25      save_t = g.getTransform
    1.26  
    1.27 @@ -173,13 +171,8 @@
    1.28  
    1.29            g.rotate card.angle * v
    1.30  
    1.31 -          outer.setRect(-card_size / 2, -card_size / 2,
    1.32 -                        card_size, card_size)
    1.33 -          inner.setRect(1 - card_size / 2, 1 - card_size / 2,
    1.34 -                        card_size - 2, card_size - 2)
    1.35 -          border.reset
    1.36 -          border.append outer, false
    1.37 -          border.append inner, false
    1.38 +          card_bounds.setRect(-card_size / 2, -card_size / 2,
    1.39 +                              card_size, card_size)
    1.40            
    1.41            if f > 0
    1.42              g.setColor with_alpha(@face_color, v)
    1.43 @@ -187,24 +180,24 @@
    1.44              g.setColor with_alpha(@back_color, v)
    1.45            end
    1.46  
    1.47 -          g.fill inner
    1.48 +          g.fill card_bounds
    1.49  
    1.50            if f > 0
    1.51              g.setColor with_alpha(@symbol_color, Math.sqrt(v))
    1.52  
    1.53              gv = font.createGlyphVector(frc, String.valueOf(card.symbol))
    1.54 -            sb = gv.getVisualBounds
    1.55 +            gb = gv.getVisualBounds
    1.56  
    1.57              # Scale down if the glyph does not fit.
    1.58 -            tolerance = 0.95
    1.59 -            scale = Math.min(inner.getWidth * tolerance / sb.getWidth,
    1.60 -                             inner.getHeight * tolerance / sb.getHeight)
    1.61 +            k = 0.9
    1.62 +            scale = Math.min(card_bounds.width * k / gb.getWidth,
    1.63 +                             card_bounds.height * k / gb.getHeight)
    1.64              save_t_2 = g.getTransform
    1.65              g.scale scale, scale  if scale < 1.0
    1.66  
    1.67              g.drawGlyphVector(gv, 
    1.68 -                              -float(sb.getX + sb.getWidth / 2),
    1.69 -                              -float(sb.getY + sb.getHeight / 2))
    1.70 +                              -float(gb.getX + gb.getWidth / 2),
    1.71 +                              -float(gb.getY + gb.getHeight / 2))
    1.72  
    1.73              g.setTransform save_t_2
    1.74            end
    1.75 @@ -215,7 +208,7 @@
    1.76              g.setColor with_alpha(@border_color, v)
    1.77            end
    1.78  
    1.79 -          g.fill border
    1.80 +          g.draw card_bounds
    1.81  
    1.82            g.setTransform save_t
    1.83          end