package openfl.display {
import openfl.geom.Matrix;
/**
 * 	Defines a shader fill.
 * 	Use a GraphicsShaderFill object with the `Graphics.drawGraphicsData()`
 * 	method. Drawing a GraphicsShaderFill object is the equivalent of calling
 * 	the `Graphics.beginShaderFill()` method.
 * 
 * 	@see [Using graphics data classes](https://books.openfl.org/openfl-developers-guide/using-the-drawing-api/advanced-use-of-the-drawing-api/using-graphics-data-classes.html)
 * 
 * @externs
 */
public class GraphicsShaderFill implements openfl.display.IGraphicsFill, openfl.display.IGraphicsData {
	/**
	 * 		Creates a new GraphicsShaderFill object.
	 * 
	 * 		@param shader The shader to use for the fill. This Shader instance is
	 * 					  not required to specify an image input. However, if an
	 * 					  image input is specified in the shader, the input must
	 * 					  be provided manually by setting the `input` property of
	 * 					  the corresponding ShaderInput property of the
	 * 					  `Shader.data` property.
	 * 		@param matrix A matrix object (of the openfl.geom.Matrix class), which
	 * 					  you can use to define transformations on the shader.
	 * 	
	 */
	public function GraphicsShaderFill(shader:openfl.display.Shader, matrix:openfl.geom.Matrix = undefined) {}
	/**
	 * 		A matrix object (of the openfl.geom.Matrix class), which you can use to
	 * 		define transformations on the shader. For example, you can use the
	 * 		following matrix to rotate a shader by 45 degrees (pi/4 radians):
	 * 
	 * 		```haxe
	 * 		var matrix = new openfl.geom.Matrix();
	 * 		matrix.rotate(Math.PI / 4);
	 * 		```
	 * 
	 * 		The coordinates received in the shader are based on the matrix that is
	 * 		specified for the `matrix` parameter. For a default (`null`) matrix,
	 * 		the coordinates in the shader are local pixel coordinates which can be
	 * 		used to sample an input.
	 * 	
	 */
	public var matrix:openfl.geom.Matrix;
	/**
	 * 		The shader to use for the fill. This Shader instance is not required
	 * 		to specify an image input. However, if an image input is specified in
	 * 		the shader, the input must be provided manually by setting the `input`
	 * 		property of the corresponding ShaderInput property of the
	 * 		`Shader.data` property.
	 * 		When you pass a Shader instance as an argument the shader is copied
	 * 		internally and the drawing fill operation uses that internal copy, not
	 * 		a reference to the original shader. Any changes made to the shader,
	 * 		such as changing a parameter value, input, or bytecode, are not
	 * 		applied to the copied shader that's used for the fill.
	 * 	
	 */
	public var shader:openfl.display.Shader;
}
}
