/*******************************************************************************
* Copyright (c) 2001, 2010 Mathew A. Nelson and Robocode contributors
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://robocode.sourceforge.net/license/epl-v10.html
*
* Contributors:
* Flemming N. Larsen
* - Initial implementation
*******************************************************************************/
package net.sf.robocode.ui.gfx;
import java.awt.*;
import java.awt.geom.AffineTransform;
/**
* This class is used for storing the state of a Graphics object, which can be
* restored later.
*
* @author Flemming N. Larsen (original)
*/
public class GraphicsState {
private Paint paint;
private Font font;
private Stroke stroke;
private AffineTransform transform;
private Composite composite;
private Shape clip;
private RenderingHints renderingHints;
private Color color;
private Color background;
public void save(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
paint = g2.getPaint();
font = g2.getFont();
stroke = g2.getStroke();
transform = g2.getTransform();
composite = g2.getComposite();
clip = g2.getClip();
renderingHints = g2.getRenderingHints();
color = g2.getColor();
background = g2.getBackground();
}
public void restore(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.setPaint(paint);
g2.setFont(font);
g2.setStroke(stroke);
g2.setTransform(transform);
g2.setComposite(composite);
g2.setClip(clip);
g2.setRenderingHints(renderingHints);
g2.setColor(color);
g2.setBackground(background);
}
}