Skip to content

pencil.js / offscreen-canvas / OffScreenCanvas

Class: OffScreenCanvas<O> ​

Defined in: offscreen-canvas.ts:19

Canvas not displayed on screen, useful to pre-render or export

Extends ​

Extended by ​

Type Parameters ​

Type ParameterDefault type
O extends OffScreenCanvasOptionsOffScreenCanvasOptions

Constructors ​

Constructor ​

ts
new OffScreenCanvas<O>(
   width?, 
   height?, 
   options?
): OffScreenCanvas<O>;

Defined in: offscreen-canvas.ts:33

Off-screen canvas constructor

Parameters ​

ParameterTypeDefault valueDescription
width?number1Width of the canvas
height?number1Height of the canvas
options?Partial<O>undefinedSpecific options

Returns ​

OffScreenCanvas<O>

Overrides ​

Container.constructor

Properties ​

PropertyTypeDescriptionInherited fromDefined in
childrenContainer<ContainerOptions>[]List of childrenContainer.childrencontainer.ts:134
ctxCanvasRenderingContext2DDrawing context-offscreen-canvas.ts:25
eventListenersRecord<string, EventListener[]>Set of event listeners of this componentContainer.eventListenersevent-emitter.ts:33
frameCountnumberNumber of time this container has been renderedContainer.frameCountcontainer.ts:140
optionsOSet of optionsContainer.optionscontainer.ts:131
parent| Container<ContainerOptions> | nullParent container (null when not attached)Container.parentcontainer.ts:137
positionPositionPosition in its containerContainer.positioncontainer.ts:128

Accessors ​

center ​

Get Signature ​

ts
get center(): Position;

Defined in: offscreen-canvas.ts:114

Return this canvas center point

Returns ​

Position


height ​

Get Signature ​

ts
get height(): number;

Defined in: offscreen-canvas.ts:96

Height of the canvas

Returns ​

number

Set Signature ​

ts
set height(height): void;

Defined in: offscreen-canvas.ts:100

Parameters ​
ParameterType
heightnumber
Returns ​

void


isScene ​

Get Signature ​

ts
get isScene(): boolean;

Defined in: container.ts:143

Is this the root scene

Returns ​

boolean

Inherited from ​

Container.isScene


size ​

Get Signature ​

ts
get size(): Position;

Defined in: offscreen-canvas.ts:107

Return the whole canvas size

Returns ​

Position


width ​

Get Signature ​

ts
get width(): number;

Defined in: offscreen-canvas.ts:85

Width of the canvas

Returns ​

number

Set Signature ​

ts
set width(width): void;

Defined in: offscreen-canvas.ts:89

Parameters ​
ParameterType
widthnumber
Returns ​

void


className ​

Get Signature ​

ts
get static className(): string;

Defined in: offscreen-canvas.ts:20

Name used when serializing (survive minification)

Returns ​

string

Overrides ​

Container.className


defaultOptions ​

Get Signature ​

ts
get static defaultOptions(): OffScreenCanvasOptions;

Defined in: offscreen-canvas.ts:205

Default options for this class

Returns ​

OffScreenCanvasOptions

Overrides ​

Container.defaultOptions


events ​

Get Signature ​

ts
get static events(): Record<string, string>;

Defined in: container.ts:846

Set of events for easy access

Returns ​

Record<string, string>

Inherited from ​

Container.events

Methods ​

add() ​

ts
add(...children): this;

Defined in: container.ts:206

Add other containers as children

Parameters ​

ParameterTypeDescription
...childrenContainer<ContainerOptions>[]Other containers

Returns ​

this

Itself

Inherited from ​

Container.add


applyRotationAndScale() ​

ts
protected applyRotationAndScale(ctx): this;

Defined in: container.ts:467

Apply rotation and scaling to the context

Parameters ​

ParameterTypeDescription
ctxCanvasRenderingContext2DDrawing context

Returns ​

this

Itself

Inherited from ​

Container.applyRotationAndScale


applyTransform() ​

ts
applyTransform(ctx): this;

Defined in: container.ts:450

Apply position, clipping, rotation and scaling to the context

Parameters ​

ParameterTypeDescription
ctxCanvasRenderingContext2DDrawing context

Returns ​

this

Itself

Inherited from ​

Container.applyTransform


clear() ​

ts
clear(): this;

Defined in: offscreen-canvas.ts:52

Erase the canvas

Returns ​

this

Itself


climbAncestry() ​

ts
climbAncestry(callback, until?): void;

Defined in: container.ts:744

Execute an action on itself and every ancestor

Parameters ​

ParameterTypeDescription
callback(ancestor) => voidFunction to execute on each ancestor
until?| Container<ContainerOptions> | nullDefine a ancestor where to stop the climbing (excluded)

Returns ​

void

Inherited from ​

Container.climbAncestry


clone() ​

ts
clone(): this;

Defined in: container.ts:788

Create a deep copy of this container (and its children)

Returns ​

this

Inherited from ​

Container.clone


delete() ​

ts
delete(): this;

Defined in: container.ts:259

Remove itself from its parent

Returns ​

this

Itself

Inherited from ​

Container.delete


empty() ​

ts
empty(): this;

Defined in: container.ts:251

Remove all its children

Returns ​

this

Itself

Inherited from ​

Container.empty


fire() ​

ts
fire(event): this;

Defined in: container.ts:374

Fire an event and bubble it to its parent

Parameters ​

ParameterTypeDescription
eventBaseEventEvent to fire

Returns ​

this

Itself

Inherited from ​

Container.fire


getAbsoluteMatrix() ​

ts
getAbsoluteMatrix(): DOMMatrix;

Defined in: container.ts:330

Get the cumulated matrix of transformation from the root to this container

Returns ​

DOMMatrix

Inherited from ​

Container.getAbsoluteMatrix


getAbsolutePosition() ​

ts
getAbsolutePosition(): Position;

Defined in: container.ts:338

Get this container's absolute position (up to it's utmost parent), taking into account every transformation

Returns ​

Position

Inherited from ​

Container.getAbsolutePosition


getImageData() ​

ts
getImageData(vectorDefinition?): ImageData;

Defined in: offscreen-canvas.ts:129

Render and return the canvas content as data

Parameters ​

ParameterTypeDescription
vectorDefinition?VectorDefinitionBox of data to extract

Returns ​

ImageData


getMatrix() ​

ts
getMatrix(): DOMMatrix;

Defined in: container.ts:310

Get the matrix of transformation applied by this container on its children (including its position)

Returns ​

DOMMatrix

Inherited from ​

Container.getMatrix


getRandomPosition() ​

ts
getRandomPosition(): Position;

Defined in: offscreen-canvas.ts:121

Return a random position within the canvas

Returns ​

Position


getRoot() ​

ts
getRoot(): Container;

Defined in: container.ts:299

Return its highest parent

Returns ​

Container

Inherited from ​

Container.getRoot


getScene() ​

ts
getScene(): Promise<Scene<SceneOptions>>;

Defined in: container.ts:267

Return a promise for the associated scene (resolved once attached to a scene)

Returns ​

Promise<Scene<SceneOptions>>

Inherited from ​

Container.getScene


getTarget() ​

ts
getTarget(position, ctx): 
  | Container<ContainerOptions>
  | null;

Defined in: container.ts:401

Find the target at a position

Parameters ​

ParameterTypeDescription
positionPositionAny position
ctxCanvasRenderingContext2DDrawing context to apply paths

Returns ​

| Container<ContainerOptions> | null

Inherited from ​

Container.getTarget


hide() ​

ts
hide(): this;

Defined in: container.ts:718

Hide it

Returns ​

this

Itself

Inherited from ​

Container.hide


isAncestorOf() ​

ts
isAncestorOf(container?): boolean;

Defined in: container.ts:728

Define if this is an ancestor of another container

Parameters ​

ParameterTypeDescription
container?| Container<ContainerOptions> | nullAny container

Returns ​

boolean

Inherited from ​

Container.isAncestorOf


isHover() ​

ts
isHover(_positionDefinition?, _ctx?): boolean;

Defined in: container.ts:197

Container can't be hovered

Parameters ​

ParameterTypeDescription
_positionDefinition?PositionDefinitionAny position
_ctx?CanvasRenderingContext2DDrawing context

Returns ​

boolean

Inherited from ​

Container.isHover


isInClip() ​

ts
protected isInClip(position, ctx): boolean;

Defined in: container.ts:437

Tell if a position is inside the clipping region

Parameters ​

ParameterTypeDescription
positionPositionAny position (in the drawing context space)
ctxCanvasRenderingContext2DDrawing context with this container's transformations applied

Returns ​

boolean

Inherited from ​

Container.isInClip


makePath() ​

ts
makePath(_ctx): this;

Defined in: container.ts:700

Do nothing on Container, override it to add behavior

Parameters ​

ParameterTypeDescription
_ctxCanvasRenderingContext2DDrawing context

Returns ​

this

Itself

Inherited from ​

Container.makePath


on() ​

ts
on(
   eventName, 
   callback, 
   isTargeted?
): this;

Defined in: event-emitter.ts:51

Listen to an event or multiple events

Parameters ​

ParameterTypeDefault valueDescription
eventNamestring | string[]undefinedName of event (or a list of event names) to listen to. The event name can be followed by a modifier (separated by a ".")
callbackEventCallbackundefinedFunction to call when event fire
isTargeted?booleanfalseShould only listen to event targeting itself

Returns ​

this

Itself

Example ​

ts
component.on("event.modifier", () => console.log("Event fired with modifier"));

Inherited from ​

Container.on


once() ​

ts
once(
   eventName, 
   callback, 
   isTargeted?
): this;

Defined in: event-emitter.ts:71

Listen to an event only once

Parameters ​

ParameterTypeDefault valueDescription
eventNamestring | string[]undefinedName of event (or a list of event names) to listen to.
callbackEventCallbackundefinedFunction to call when event fire
isTargeted?booleanfalseShould only listen to event targeting itself

Returns ​

this

Itself

Inherited from ​

Container.once


remove() ​

ts
remove(...children): this;

Defined in: container.ts:234

Remove children from the list

Parameters ​

ParameterTypeDescription
...childrenContainer<ContainerOptions>[]Children to remove

Returns ​

this

Itself

Inherited from ​

Container.remove


removeAllListener() ​

ts
removeAllListener(): this;

Defined in: event-emitter.ts:127

Remove all event listeners

Returns ​

this

Itself

Inherited from ​

Container.removeAllListener


removeListener() ​

ts
removeListener(eventName, callback?): this;

Defined in: event-emitter.ts:105

Remove an event or multiple events

Parameters ​

ParameterTypeDescription
eventNamestring | string[]Name of event (or a list of event names) to remove
callback?EventCallback<any>Specify the callback to remove, if not defined remove all listeners

Returns ​

this

Itself

Inherited from ​

Container.removeListener


render() ​

ts
render(ctx?): this;

Defined in: offscreen-canvas.ts:73

Render a container and its children into the canvas

Parameters ​

ParameterTypeDescription
ctx?CanvasRenderingContext2DDrawing context (default to its own)

Returns ​

this

Itself

Overrides ​

Container.render


setContext() ​

ts
setContext(_ctx): this;

Defined in: container.ts:503

Set variables of the context according to specified options (override it to add behavior)

Parameters ​

ParameterTypeDescription
_ctxCanvasRenderingContext2DDrawing context

Returns ​

this

Itself

Inherited from ​

Container.setContext


setImageData() ​

ts
setImageData(imageData, positionDefinition?): this;

Defined in: offscreen-canvas.ts:144

Put data into the canvas

Parameters ​

ParameterTypeDescription
imageDataImageDataData to add to the canvas
positionDefinition?PositionDefinitionPosition of the data

Returns ​

this

Itself


setImageSmoothing() ​

ts
setImageSmoothing(enable): this;

Defined in: offscreen-canvas.ts:43

Change the behavior for upscaled images, smoothing is good for pictures but bad for pixel-art

Parameters ​

ParameterTypeDescription
enablebooleanShould the smoothing be active or not

Returns ​

this

Itself


setOptions() ​

ts
setOptions(options?): this;

Defined in: container.ts:177

Define options for this container

Parameters ​

ParameterTypeDescription
options?Partial<O>Options to override

Returns ​

this

Itself

Inherited from ​

Container.setOptions


show() ​

ts
show(): this;

Defined in: container.ts:708

Display it

Returns ​

this

Itself

Inherited from ​

Container.show


sortChildren() ​

ts
protected sortChildren(): void;

Defined in: container.ts:385

Sort children according to their zIndex

Returns ​

void

Inherited from ​

Container.sortChildren


toGlobal() ​

ts
toGlobal(positionDefinition): Position;

Defined in: container.ts:360

Convert a position from this container's space into the root (scene) space

Parameters ​

ParameterTypeDescription
positionDefinitionPositionDefinitionPosition relative to this container

Returns ​

Position

Inherited from ​

Container.toGlobal


toImage() ​

ts
toImage(vectorDefinition?, type?): HTMLImageElement;

Defined in: offscreen-canvas.ts:155

Return an image composed of its content

Parameters ​

ParameterTypeDefault valueDescription
vectorDefinition?VectorDefinitionundefinedBox to restrict exported data
type?string"image/png"Data format. Supported format depend on the browser implementation (png or jpeg are the only safe choices)

Returns ​

HTMLImageElement


toJSON() ​

ts
toJSON(): object;

Defined in: offscreen-canvas.ts:176

Return a json ready object

Returns ​

children? ​
ts
children?: ContainerJSON[];

Children definitions

constructor ​
ts
constructor: string;

Name of the class

height ​
ts
height: number;
options? ​
ts
options?: Record<string, any>;

Options different from the default ones

position ​
ts
position: PositionDefinition;

Position in its parent

width ​
ts
width: number;

Overrides ​

Container.toJSON


toLocal() ​

ts
toLocal(positionDefinition): Position;

Defined in: container.ts:347

Convert a position from the root (scene) space into this container's space

Parameters ​

ParameterTypeDescription
positionDefinitionPositionDefinitionPosition relative to the root

Returns ​

Position

Inherited from ​

Container.toLocal


from() ​

ts
static from(definition): OffScreenCanvas;

Defined in: offscreen-canvas.ts:189

Return an instance from a generic object

Parameters ​

ParameterTypeDescription
definitionContainerJSONOffScreenCanvas definition

Returns ​

OffScreenCanvas

Overrides ​

Container.from


getClipPath() ​

ts
static getClipPath(clip): Path2D;

Defined in: container.ts:489

Build the clipping path of a component, with its own transformations applied

Parameters ​

ParameterTypeDescription
clipComponentComponent used as clip

Returns ​

Path2D

Inherited from ​

Container.getClipPath


getDrawingContext() ​

ts
static getDrawingContext(width?, height?): CanvasRenderingContext2D;

Defined in: offscreen-canvas.ts:198

Build a canvas context and returns it

Parameters ​

ParameterTypeDefault valueDescription
width?number | HTMLElement1Width of the canvas
height?number1Height of the canvas

Returns ​

CanvasRenderingContext2D


setOpacity() ​

ts
static setOpacity(ctx, opacity): void;

Defined in: container.ts:814

Define context opacity (null means no change)

Parameters ​

ParameterTypeDescription
ctxCanvasRenderingContext2DDrawing context
opacitynumber | nullOpacity value

Returns ​

void

Inherited from ​

Container.setOpacity

Released under the MIT License.