code: public void save() {
  		if (this.stateStack == null) {
  			this.stateStack = new LinkedList<>();
  		}
  		this.stateStack.push(new int[] {this.bugdet, this.state});
  		this.gc.save();
  	}
docs: Saves the following attributes onto a stack.
  <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>
  This method does NOT alter the current state in any way. Also, note that
  the current path is not saved.