import Matrix from "../geom/Matrix"; import Shader from "./Shader"; import IGraphicsFill from "./IGraphicsFill"; import IGraphicsData from "./IGraphicsData"; declare namespace openfl.display { /** * 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) * */ export class GraphicsShaderFill implements IGraphicsFill, 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. * */ constructor(shader: Shader, matrix?: Matrix); /** * 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. * */ matrix: 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. * */ shader: Shader; } } export default openfl.display.GraphicsShaderFill;