Interface: Stage

Stage

A Stage is a container with the ability to render a stack of layers.

This class should never be instantiated directly. Use WebGlStage instead.

Members

type

The stage type, used to determine the appropriate renderer for a given geometry and view.

The sole known value is `"webgl".

See also Stage#registerRenderer.

Properties:
Type Description
string

Methods

addLayer(layer, i)

Adds a layer into the stage.

Parameters:
Name Type Description
layer Layer

The layer to add.

i number | undefined

The optional position, where 0 ≤ i ≤ n and n is the current number of layers. The default is n, which inserts at the top of the display stack.

Throws:

An error if the layer already belongs to the stage or if the position is invalid.

createTexture(tile, asset, done)

Create a texture for the given tile and asset. Called by TextureStore.

Parameters:
Name Type Description
tile Tile
asset Asset
done function

destroy()

Destructor.

domElement() → {Element}

Returns the underlying DOM element.

Must be overridden by subclasses.

Returns:
Type
Element

endFrame()

Called after a frame is rendered.

Must be overridden by subclasses.

hasLayer(layer) → {boolean}

Return whether a layer belongs to the stage.

Parameters:
Name Type Description
layer Layer
Returns:
Type
boolean

height() → {number}

Get the stage height.

Returns:
Type
number

listLayers() → {Array.<Layer>}

Returns a list of all layers belonging to the stage. The returned list is in display order, background to foreground.

Returns:
Type
Array.<Layer>

loadImage(url, rectnullable, done) → {function}

Loads an Asset from an image.

Parameters:
Name Type Attributes Description
url string

The image URL.

rect Rect <nullable>

A Rect describing a portion of the image, or null to use the full image.

done function

The callback.

Returns:

A function to cancel loading.

Type
function

moveLayer(layer, i)

Moves a layer into a different position in the display stack.

Parameters:
Name Type Description
layer Layer

The layer to move.

i number

The position, where 0 ≤ i ≤ n-1 and n is the current number of layers.

Throws:

An error if the layer does not belong to the stage or if the position is invalid.

registerRenderer(geometryType, viewType, Renderer)

Registers a Renderer for the given Geometry and View type.

The registerDefaultRenderers utility function may be used to register all known renderers for a stage type into that stage. Most users will not need to register renderers, as Viewer does it for them.

Parameters:
Name Type Description
geometryType string

The geometry type, as given by Geometry#type.

viewType string

The view type, as given by View#type.

Renderer *

The renderer class.

removeAllLayers()

Removes all layers from the stage.

removeLayer(layer)

Removes a Layer from the stage.

Parameters:
Name Type Description
layer Layer

The layer to remove.

Throws:

An error if the layer does not belong to the stage.

render()

Render the current frame. Usually called from a RenderLoop.

This contains the rendering logic common to all stage types. Subclasses define the startFrame() and endFrame() methods to perform their own logic.

setSize(size)

Set the stage dimensions.

This contains the size update logic common to all stage types. Subclasses must define the Stage#setSizeForType method to perform their own logic.

Parameters:
Name Type Description
size Size

setSizeForType(size)

Call Stage#setSize instead.

This contains the size update logic specific to a stage type. It is called by Stage#setSize after the base class has been updated to reflect the new size, but before any events are emitted.

Parameters:
Name Type Description
size Size

size(sizeopt)

Get the stage dimensions. If an argument is supplied, it is filled in with the result and returned. Otherwise, a fresh object is filled in and returned.

Parameters:
Name Type Attributes Description
size Size <optional>

startFrame()

Called before a frame is rendered.

Must be overridden by subclasses.

validateLayer(layer)

Verifies that the layer is valid for this stage, throwing an exception otherwise.

Parameters:
Name Type Description
layer Layer
Throws:

If the layer is not valid for this stage.

Type
Error

width() → {number}

Get the stage width.

Returns:
Type
number

Events

renderComplete

Signals that the stage has been rendered.

Parameters:
Name Type Description
stable boolean

Whether all tiles were successfully rendered without missing textures or resorting to fallbacks.

renderInvalid

Signals that the contents of the stage have been invalidated and must be rendered again.

This is used by the RenderLoop implementation.

Listeners of This Event: