code: public void restore() {
  		this.gc.restore();
  		if (this.stateStack != null) {
  			if (!this.stateStack.isEmpty()) {
  				final int[] data = this.stateStack.pop();
  				if (this.stateStack.isEmpty()) {
  					this.stateStack = null;
  				}
  				this.bugdet = data[0];
  				this.state = data[1];
  			} else {
  				this.stateStack = null;
  			}
  		}
  	}
docs: Pops the state off of the stack, setting the following attributes to their
  value at the time when that state was pushed onto the stack. If the stack
  is empty then nothing is changed.
  
  <ul>
  <li>Global Alpha</li>
  <li>Global Blend Operation</li>
  <li>Transform</li>
  <li>Fill Paint</li>
  <li>Stroke Paint</li>
  <li>Line Width</li>
  <li>Line Cap</li>
  <li>Line Join</li>
  <li>Miter Limit</li>
  <li>Clip</li>
  <li>Font</li>
  <li>Text Align</li>
  <li>Text Baseline</li>
  <li>Effect</li>
  <li>Fill Rule</li>
  </ul>
  Note that the current path is not restored.