Class: Layer

Guacamole.Layer(width, height)

new Layer(width, height)

Abstract ordered drawing surface. Each Layer contains a canvas element and provides simple drawing instructions for drawing to that canvas element, however unlike the canvas element itself, drawing operations on a Layer are guaranteed to run in order, even if such an operation must wait for an image to load before completing.
Parameters:
Name Type Description
width Number The width of the Layer, in pixels. The canvas element backing this Layer will be given this width.
height Number The height of the Layer, in pixels. The canvas element backing this Layer will be given this height.
Source:

Classes

Pixel

Members

(static) ATOP

Channel mask for the composite operation "atop".
Source:

(static) IN

Channel mask for the composite operation "in". Beware that WebKit-based browsers may leave the contents of the destionation layer where the source layer is transparent, despite the definition of this operation.
Source:

(static) OUT

Channel mask for the composite operation "out". Beware that WebKit-based browsers may leave the contents of the destionation layer where the source layer is transparent, despite the definition of this operation.
Source:

(static) OVER

Channel mask for the composite operation "over".
Source:

(static) PLUS

Channel mask for the composite operation "plus".
Source:

(static) RATOP

Channel mask for the composite operation "ratop". Beware that WebKit-based browsers may leave the contents of the destionation layer where the source layer is transparent, despite the definition of this operation.
Source:

(static) RIN

Channel mask for the composite operation "rin". Beware that WebKit-based browsers may leave the contents of the destionation layer where the source layer is transparent, despite the definition of this operation.
Source:

(static) ROUT

Channel mask for the composite operation "rout".
Source:

(static) ROVER

Channel mask for the composite operation "rover".
Source:

(static) SRC

Channel mask for the composite operation "src". Beware that WebKit-based browsers may leave the contents of the destionation layer where the source layer is transparent, despite the definition of this operation.
Source:

(static) XOR

Channel mask for the composite operation "xor".
Source:

autosize :Boolean

Set to true if this Layer should resize itself to accomodate the dimensions of any drawing operation, and false (the default) otherwise. Note that setting this property takes effect immediately, and thus may take effect on operations that were started in the past but have not yet completed. If you wish the setting of this flag to only modify future operations, you will need to make the setting of this flag an operation with sync().
Type:
  • Boolean
Default Value:
  • false
Source:
Example
// Set autosize to true for all future operations
layer.sync(function() {
    layer.autosize = true;
});

height :Number

The current height of this layer.
Type:
  • Number
Source:

width :Number

The current width of this layer.
Type:
  • Number
Source:

Methods

arc(x, y, radius, startAngle, endAngle, negative)

Add the specified arc to the current path.
Parameters:
Name Type Description
x Number The X coordinate of the center of the circle which will contain the arc.
y Number The Y coordinate of the center of the circle which will contain the arc.
radius Number The radius of the circle.
startAngle Number The starting angle of the arc, in radians.
endAngle Number The ending angle of the arc, in radians.
negative Boolean Whether the arc should be drawn in order of decreasing angle.
Source:

clip()

Clip all future drawing operations by the current path. The current path is implicitly closed. The current path can continue to be reused for other operations (such as fillColor()) but a new path will be started once a path drawing operation (path() or rect()) is used.
Source:

close()

Closes the current path by connecting the end point with the start point (if any) with a straight line.
Source:

copy(srcLayer, srcx, srcy, srcw, srch, x, y)

Copy a rectangle of image data from one Layer to this Layer. This operation will copy exactly the image data that will be drawn once all operations of the source Layer that were pending at the time this function was called are complete. This operation will not alter the size of the source Layer even if its autosize property is set to true.
Parameters:
Name Type Description
srcLayer Guacamole.Layer The Layer to copy image data from.
srcx Number The X coordinate of the upper-left corner of the rectangle within the source Layer's coordinate space to copy data from.
srcy Number The Y coordinate of the upper-left corner of the rectangle within the source Layer's coordinate space to copy data from.
srcw Number The width of the rectangle within the source Layer's coordinate space to copy data from.
srch Number The height of the rectangle within the source Layer's coordinate space to copy data from.
x Number The destination X coordinate.
y Number The destination Y coordinate.
Source:

curveTo(cp1x, cp1y, cp2x, cp2y, x, y)

Starts a new path at the specified point.
Parameters:
Name Type Description
cp1x Number The X coordinate of the first control point.
cp1y Number The Y coordinate of the first control point.
cp2x Number The X coordinate of the second control point.
cp2y Number The Y coordinate of the second control point.
x Number The X coordinate of the endpoint of the curve.
y Number The Y coordinate of the endpoint of the curve.
Source:

drawImage(x, y, image)

Draws the specified image at the given coordinates. The image specified must already be loaded.
Parameters:
Name Type Description
x Number The destination X coordinate.
y Number The destination Y coordinate.
image Image The image to draw. Note that this is an Image object - not a URL.
Source:

fillColor(r, g, b, a)

Fills the current path with the specified color. The current path is implicitly closed. The current path can continue to be reused for other operations (such as clip()) but a new path will be started once a path drawing operation (path() or rect()) is used.
Parameters:
Name Type Description
r Number The red component of the color to fill.
g Number The green component of the color to fill.
b Number The blue component of the color to fill.
a Number The alpha component of the color to fill.
Source:

fillLayer(srcLayer)

Fills the current path with the image within the specified layer. The image data will be tiled infinitely within the stroke. The current path is implicitly closed. The current path can continue to be reused for other operations (such as clip()) but a new path will be started once a path drawing operation (path() or rect()) is used.
Parameters:
Name Type Description
srcLayer Guacamole.Layer The layer to use as a repeating pattern within the fill.
Source:

getCanvas() → {HTMLCanvasElement}

Returns the canvas element backing this Layer. Note that the dimensions of the canvas may not exactly match those of the Layer, as resizing a canvas while maintaining its state is an expensive operation.
Source:
Returns:
The canvas element backing this Layer.
Type
HTMLCanvasElement

lineTo(x, y)

Add the specified line to the current path.
Parameters:
Name Type Description
x Number The X coordinate of the endpoint of the line to draw.
y Number The Y coordinate of the endpoint of the line to draw.
Source:

moveTo(x, y)

Starts a new path at the specified point.
Parameters:
Name Type Description
x Number The X coordinate of the point to draw.
y Number The Y coordinate of the point to draw.
Source:

pop()

Pop layer state off stack.
Source:

push()

Push current layer state onto stack.
Source:

put(srcLayer, srcx, srcy, srcw, srch, x, y)

Put a rectangle of image data from one Layer to this Layer directly without performing any alpha blending. Simply copy the data.
Parameters:
Name Type Description
srcLayer Guacamole.Layer The Layer to copy image data from.
srcx Number The X coordinate of the upper-left corner of the rectangle within the source Layer's coordinate space to copy data from.
srcy Number The Y coordinate of the upper-left corner of the rectangle within the source Layer's coordinate space to copy data from.
srcw Number The width of the rectangle within the source Layer's coordinate space to copy data from.
srch Number The height of the rectangle within the source Layer's coordinate space to copy data from.
x Number The destination X coordinate.
y Number The destination Y coordinate.
Source:

rect(x, y, w, h)

Add the specified rectangle to the current path.
Parameters:
Name Type Description
x Number The X coordinate of the upper-left corner of the rectangle to draw.
y Number The Y coordinate of the upper-left corner of the rectangle to draw.
w Number The width of the rectangle to draw.
h Number The height of the rectangle to draw.
Source:

reset()

Reset the layer, clearing the stack, the current path, and any transform matrix.
Source:

resize(newWidth, newHeight)

Changes the size of this Layer to the given width and height. Resizing is only attempted if the new size provided is actually different from the current size.
Parameters:
Name Type Description
newWidth Number The new width to assign to this Layer.
newHeight Number The new height to assign to this Layer.
Source:

setChannelMask(mask)

Sets the channel mask for future operations on this Layer. The channel mask is a Guacamole-specific compositing operation identifier with a single bit representing each of four channels (in order): source image where destination transparent, source where destination opaque, destination where source transparent, and destination where source opaque.
Parameters:
Name Type Description
mask Number The channel mask for future operations on this Layer.
Source:

setMiterLimit(limit)

Sets the miter limit for stroke operations using the miter join. This limit is the maximum ratio of the size of the miter join to the stroke width. If this ratio is exceeded, the miter will not be drawn for that joint of the path.
Parameters:
Name Type Description
limit Number The miter limit for stroke operations using the miter join.
Source:

setTransform(a, b, c, d, e, f)

Sets the given affine transform (defined with six values from the transform's matrix).
Parameters:
Name Type Description
a Number The first value in the affine transform's matrix.
b Number The second value in the affine transform's matrix.
c Number The third value in the affine transform's matrix.
d Number The fourth value in the affine transform's matrix.
e Number The fifth value in the affine transform's matrix.
f Number The sixth value in the affine transform's matrix.
Source:

strokeColor(cap, join, thickness, r, g, b, a)

Stroke the current path with the specified color. The current path is implicitly closed. The current path can continue to be reused for other operations (such as clip()) but a new path will be started once a path drawing operation (path() or rect()) is used.
Parameters:
Name Type Description
cap String The line cap style. Can be "round", "square", or "butt".
join String The line join style. Can be "round", "bevel", or "miter".
thickness Number The line thickness in pixels.
r Number The red component of the color to fill.
g Number The green component of the color to fill.
b Number The blue component of the color to fill.
a Number The alpha component of the color to fill.
Source:

strokeLayer(cap, join, thickness, srcLayer)

Stroke the current path with the image within the specified layer. The image data will be tiled infinitely within the stroke. The current path is implicitly closed. The current path can continue to be reused for other operations (such as clip()) but a new path will be started once a path drawing operation (path() or rect()) is used.
Parameters:
Name Type Description
cap String The line cap style. Can be "round", "square", or "butt".
join String The line join style. Can be "round", "bevel", or "miter".
thickness Number The line thickness in pixels.
srcLayer Guacamole.Layer The layer to use as a repeating pattern within the stroke.
Source:

toCanvas() → {HTMLCanvasElement}

Returns a new canvas element containing the same image as this Layer. Unlike getCanvas(), the canvas element returned is guaranteed to have the exact same dimensions as the Layer.
Source:
Returns:
A new canvas element containing a copy of the image content this Layer.
Type
HTMLCanvasElement

transfer(srcLayer, srcx, srcy, srcw, srch, x, y, transferFunction)

Transfer a rectangle of image data from one Layer to this Layer using the specified transfer function.
Parameters:
Name Type Description
srcLayer Guacamole.Layer The Layer to copy image data from.
srcx Number The X coordinate of the upper-left corner of the rectangle within the source Layer's coordinate space to copy data from.
srcy Number The Y coordinate of the upper-left corner of the rectangle within the source Layer's coordinate space to copy data from.
srcw Number The width of the rectangle within the source Layer's coordinate space to copy data from.
srch Number The height of the rectangle within the source Layer's coordinate space to copy data from.
x Number The destination X coordinate.
y Number The destination Y coordinate.
transferFunction function The transfer function to use to transfer data from source to destination.
Source:

transform(a, b, c, d, e, f)

Applies the given affine transform (defined with six values from the transform's matrix).
Parameters:
Name Type Description
a Number The first value in the affine transform's matrix.
b Number The second value in the affine transform's matrix.
c Number The third value in the affine transform's matrix.
d Number The fourth value in the affine transform's matrix.
e Number The fifth value in the affine transform's matrix.
f Number The sixth value in the affine transform's matrix.
Source: