Skip to main content

Interface: IRenderingEngine

Defined in: src/types/rendering.ts:135

Rendering engine adapter that the runtime uses to display and manipulate canvas content. The built-in implementation is createWebLayeringEngine() (backed by @picsart/web-layering), but any object satisfying this interface can be injected via IRuntimeConfig.renderingEngine.

Example

// Minimal no-op engine for headless / testing scenarios
const noopEngine: IRenderingEngine = {
init() {},
destroy() {},
getCanvasSizes: () => ({ width: 0, height: 0 }),
getVisibleBounds: () => ({ x: 0, y: 0, width: 0, height: 0 }),
syncLayers: () => Promise.resolve(),
renderLayerToImage: () => Promise.resolve({ id: '', type: 'photo', width: 0, height: 0, location: '' }),
};

Properties

player?

optional player?: IPlayerAdapter

Defined in: src/types/rendering.ts:182

Media player adapter

Methods

awaitRenderComplete()?

optional awaitRenderComplete(): Promise<void>

Defined in: src/types/rendering.ts:200

Resolves when the rendering engine has finished drawing after the most recent syncLayers call. Headless implementations resolve immediately.

Returns

Promise<void>


calculateTextMetrics()?

optional calculateTextMetrics(payload): Promise<ITextMetrics>

Defined in: src/types/rendering.ts:173

Calculate text metrics for a text layer

Parameters

payload
layer

unknown

targetWidth?

number

Returns

Promise<ITextMetrics>


destroy()

destroy(): void

Defined in: src/types/rendering.ts:140

Destroy the rendering engine and clean up resources

Returns

void


getCanvasSizes()

getCanvasSizes(): ICanvasDimensions

Defined in: src/types/rendering.ts:143

Get the canvas dimensions

Returns

ICanvasDimensions


getImageLayerResources()?

optional getImageLayerResources(layerId): unknown

Defined in: src/types/rendering.ts:188

Get image resources for a specific layer

Parameters

layerId

string

Returns

unknown


getMostVisibleCanvasLayerId()?

optional getMostVisibleCanvasLayerId(): string

Defined in: src/types/rendering.ts:194

Get the most visible canvas layer ID

Returns

string


getStorm()?

optional getStorm(): IStormAdapter

Defined in: src/types/rendering.ts:185

Get storm state manager for media player

Returns

IStormAdapter


getVisibleBounds()

getVisibleBounds(): IViewportBounds

Defined in: src/types/rendering.ts:146

Get the visible viewport bounds

Returns

IViewportBounds


init()

init(config): void

Defined in: src/types/rendering.ts:137

Initialize the rendering engine into a container

Parameters

config
containerId

string

Returns

void


onLayerUpdate()?

optional onLayerUpdate(layerId, callback): VoidFunction | null

Defined in: src/types/rendering.ts:191

Subscribe to layer update events

Parameters

layerId

string

callback

() => void

Returns

VoidFunction | null


renderLayerToImage()

renderLayerToImage(layerId, options?): Promise<IPhotoResource>

Defined in: src/types/rendering.ts:159

Render a layer to an image resource

Parameters

layerId

string

options?
mimeType?

string

over?

boolean

quality?

number

under?

boolean

Returns

Promise<IPhotoResource>


renderToVideo()?

optional renderToVideo(): Promise<IVideoResource>

Defined in: src/types/rendering.ts:170

Render the project to a video resource

Returns

Promise<IVideoResource>


syncLayers()

syncLayers(replay, options?): Promise<void>

Defined in: src/types/rendering.ts:149

Synchronize layers from a replay object

Parameters

replay

IReplay

options?
currentCanvasGroupId?

string

selectedLayerIds?

string[]

waitToDraw?

boolean

Returns

Promise<void>


zoomToLayers()?

optional zoomToLayers(layerIds, options?): void

Defined in: src/types/rendering.ts:179

Zoom viewport to show specific layers

Parameters

layerIds

string[]

options?

unknown

Returns

void