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?
optionalplayer?:IPlayerAdapter
Defined in: src/types/rendering.ts:182
Media player adapter
Methods
awaitRenderComplete()?
optionalawaitRenderComplete():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()?
optionalcalculateTextMetrics(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
getImageLayerResources()?
optionalgetImageLayerResources(layerId):unknown
Defined in: src/types/rendering.ts:188
Get image resources for a specific layer
Parameters
layerId
string
Returns
unknown
getMostVisibleCanvasLayerId()?
optionalgetMostVisibleCanvasLayerId():string
Defined in: src/types/rendering.ts:194
Get the most visible canvas layer ID
Returns
string
getStorm()?
optionalgetStorm():IStormAdapter
Defined in: src/types/rendering.ts:185
Get storm state manager for media player
Returns
getVisibleBounds()
getVisibleBounds():
IViewportBounds
Defined in: src/types/rendering.ts:146
Get the visible viewport bounds
Returns
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()?
optionalonLayerUpdate(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()?
optionalrenderToVideo():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()?
optionalzoomToLayers(layerIds,options?):void
Defined in: src/types/rendering.ts:179
Zoom viewport to show specific layers
Parameters
layerIds
string[]
options?
unknown
Returns
void