package starling.rendering {
/**
 *  Points to a location within a list of MeshBatches.
 *  *
 *  *  <p>Starling uses these tokens in its render cache. Each call to
 *  *  <code>painter.pushState()</code> or <code>painter.popState()</code> provides a token
 *  *  referencing the current location within the cache. In the next frame, if the relevant
 *  *  part of the display tree has not changed, these tokens can be used to render directly
 *  *  from the cache instead of constructing new MeshBatches.</p>
 *  *
 *  *  @see Painter
 *  
 * @externs
 */
public class BatchToken {
	/**
	 *  Creates a new BatchToken. 
	 */
	public function BatchToken(batchID:int = undefined, vertexID:int = undefined, indexID:int = undefined) {}
	/**
	 *  The ID of the current MeshBatch. 
	 */
	public var batchID:int;
	/**
	 *  The ID of the next vertex within the current MeshBatch. 
	 */
	public var vertexID:int;
	/**
	 *  The ID of the next index within the current MeshBatch. 
	 */
	public var indexID:int;
	/**
	 *  Copies the properties from the given token to this instance. 
	 */
	public function copyFrom(token:starling.rendering.BatchToken):void {}
	/**
	 *  Changes all properties at once. 
	 */
	public function setTo(batchID:int = undefined, vertexID:int = undefined, indexID:int = undefined):void {}
	/**
	 *  Resets all properties to zero. 
	 */
	public function reset():void {}
	/**
	 *  Indicates if this token contains the same values as the given one. 
	 */
	public function equals(other:starling.rendering.BatchToken):Boolean { return false; }
	/**
	 *  Creates a String representation of this instance. 
	 */
	public function toString():String { return null; }
}
}
