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