CanvasRenderer
Generic renderer using ResponsiveCanvas
Generic Renderer utilizing ResponsiveCanvas. Refer to their documentation for more details. CanvasRenderer can have several layers and there’re two basic usage patterns. Use separate layers for video and scene and effectively render scene on top of the video stream. Advantage of this approach is that image and scene can be processed independently and one can apply different effects or postprocessing. This pattern is also easier to implement. Or one can use only one canvas layer and embed video stream into the scene as object via a texture or background component. This approach will have more complex implementation dependent on particular renderer. On the other hand, rendering effects affecting the whole scene will also apply to the video stream. This can improve performance and allows advanced rendering/postprocessing techniques to be used.
Extends
PluginRenderer
<ResultT
>
Extended by
Type Parameters
• ResultT extends object
= object
Type of processing results
Constructors
new CanvasRenderer()
new CanvasRenderer<
ResultT
>(params
):CanvasRenderer
<ResultT
>
Constructor
Parameters
• params: CanvasParams
Parameters of responsive canvas
Returns
CanvasRenderer
<ResultT
>
Overrides
Properties
cameraAngle
protected
cameraAngle:number
Camera vertical angle in radians
Inherited from
cameraRatio
protected
cameraRatio:number
Camera aspect ratio
Inherited from
canvas
canvas:
ResponsiveCanvas
Responsive canvas
loaded
protected
loaded:boolean
=false
Loaded state
Inherited from
padCtx
protected
padCtx: [null
|CanvasRenderingContext2D
,null
|CanvasRenderingContext2D
]
Drawing context of padding canvases
plugins
protected
plugins:Plugin
<ResultT
>[] =[]
Attached plugins
Inherited from
videoRatio
protected
videoRatio:number
Aspect ratio of input video
Inherited from
videoSize
protected
videoSize:Size
Resolution of input video
Inherited from
Methods
addListener()
addListener<
E
>(event
,listener
):this
Adds the listener function to the end of the listeners array
Type Parameters
• E extends keyof RendererEvents
Parameters
• event: E
The name of the event
• listener: RendererEvents
[E
]
The callback function
Returns
this
This EventEmitter
Inherited from
addPlugin()
addPlugin(
plugin
):Promise
<void
>
Add render plugin
Initializes the plugin if it’s not loaded yet but renderer is ready. Renderer takes ownership of the plugin instance meaning it will release it when plugin is detached or renderer is disposed itself.
Parameters
• plugin: Plugin
<ResultT
>
Returns
Promise
<void
>
Inherited from
dispose()
dispose():
void
Dispose renderer object
Extended to dispose responsive canvas
Returns
void
Overrides
emit()
emit<
E
>(event
, …args
):boolean
Synchronously calls each of the listeners registered for the event
Type Parameters
• E extends keyof RendererEvents
Parameters
• event: E
The name of the event
• …args: Args
<RendererEvents
[E
]>
Arguments passed to the listeners
Returns
boolean
True if the event had listeners, False otherwise
Inherited from
eventNames()
eventNames(): (
string
|symbol
)[]
List of emitter’s events
Returns
(string
| symbol
)[]
List of emitter’s events
Inherited from
getMaxListeners()
getMaxListeners():
number
Maximum number of listeners per event
Returns
number
Maximum number of listeners per event
Inherited from
PluginRenderer
.getMaxListeners
listenerCount()
listenerCount<
E
>(event
):number
The number of listeners listening to the event
Type Parameters
• E extends keyof RendererEvents
Parameters
• event: E
The name of the event
Returns
number
Number of listeners
Inherited from
listeners()
listeners<
E
>(event
):Function
[]
Copy of the array of listeners for the event
Type Parameters
• E extends keyof RendererEvents
Parameters
• event: E
The name of the event
Returns
Function
[]
Copy of the listeners array
Inherited from
load()
load():
Promise
<void
>
Initialize renderer
Initializes all attached plugins.
Returns
Promise
<void
>
Promise resolving when initialization is finished
Inherited from
off()
off<
E
>(event
,listener
):this
Removes the listener from the listener array for the event
Type Parameters
• E extends keyof RendererEvents
Parameters
• event: E
The name of the event
• listener: RendererEvents
[E
]
The callback function
Returns
this
This EventEmitter
Inherited from
on()
on<
E
>(event
,listener
):this
Adds the listener function to the event
Type Parameters
• E extends keyof RendererEvents
Parameters
• event: E
The name of the event
• listener: RendererEvents
[E
]
The callback function
Returns
this
This EventEmitter
Inherited from
once()
once<
E
>(event
,listener
):this
Adds a one-time listener function for the event
Type Parameters
• E extends keyof RendererEvents
Parameters
• event: E
The name of the event
• listener: RendererEvents
[E
]
The callback function
Returns
this
This EventEmitter
Inherited from
prependListener()
prependListener<
E
>(event
,listener
):this
Adds the listener function to the beginning of the listeners array
Type Parameters
• E extends keyof RendererEvents
Parameters
• event: E
The name of the event
• listener: RendererEvents
[E
]
The callback function
Returns
this
This EventEmitter
Inherited from
PluginRenderer
.prependListener
prependOnceListener()
prependOnceListener<
E
>(event
,listener
):this
Adds a one-time listener function to the beginning of the listeners array
Type Parameters
• E extends keyof RendererEvents
Parameters
• event: E
The name of the event
• listener: RendererEvents
[E
]
The callback function
Returns
this
Inherited from
PluginRenderer
.prependOnceListener
rawListeners()
rawListeners<
E
>(event
):Function
[]
Copy of the array of listeners for the event including wrappers
Type Parameters
• E extends keyof RendererEvents
Parameters
• event: E
The name of the event
Returns
Function
[]
Copy of the listeners array
Inherited from
removeAllListeners()
removeAllListeners<
E
>(event
?):this
Removes all listeners, or those of the specified event
Type Parameters
• E extends keyof RendererEvents
Parameters
• event?: E
The name of the event
Returns
this
This EventEmitter
Inherited from
PluginRenderer
.removeAllListeners
removeAllPlugins()
removeAllPlugins():
void
Remove all render plugins
Renderer will dispose all plugins before detaching them.
Returns
void
Inherited from
PluginRenderer
.removeAllPlugins
removeListener()
removeListener<
E
>(event
,listener
):this
Removes the specified listener from the listener array
Type Parameters
• E extends keyof RendererEvents
Parameters
• event: E
The name of the event
• listener: RendererEvents
[E
]
The callback function
Returns
this
This EventEmitter
Inherited from
removePlugin()
removePlugin(
plugin
):void
Remove render plugin
Renderer will dispose the plugin before detaching it.
Parameters
• plugin: Plugin
<ResultT
>
Returns
void
Inherited from
setMaxListeners()
setMaxListeners(
n
):this
Sets maximum number of listeners per event
Parameters
• n: number
Maximum number of listeners
Returns
this
This EventEmitter
Inherited from
PluginRenderer
.setMaxListeners
setMirror()
setMirror(
mirror
):void
Set mirror mode
CanvasRenderer sets mirror mode of ResponsiveCanvas.
Parameters
• mirror: boolean
Mirror the output
Returns
void
setMode()
setMode(
mode
):void
Set fitting mode
CanvasRenderer sets fitting mode of ResponsiveCanvas.
Parameters
• mode: CanvasMode
Fitting mode
Returns
void
setupCamera()
setupCamera(
ratio
,angle
):void
Set camera parameters
Callback sets up all attached plugins.
Parameters
• ratio: number
Camera aspect ratio
• angle: number
Camera vertical angle in radians
Returns
void
Inherited from
setupPadding()
protected
setupPadding():void
Setup padding canvases
Callback sets up size of padding canvases.
Returns
void
setupVideo()
setupVideo(
size
,ratio
?):void
Set video parameters
Callback passes aspect ratio to responsive canvas.
Parameters
• size: Size
Resolution of input video
• ratio?: number
Aspect ration of input video
Returns
void
Overrides
unload()
unload():
void
Reset renderer
Resets all attached plugins.
Returns
void
Inherited from
update()
update(
result
,stream
):Promise
<void
>
Update the scene
Updates all attached plugins.
Parameters
• result: ResultT
Results of video processing
• stream: HTMLCanvasElement
Captured video frame
Returns
Promise
<void
>
Promise resolving when update is finished
Inherited from
updatePads()
protected
updatePads(stream
):void
Update padding canvases
Updates padding canvases using portions of video frame.
Parameters
• stream: HTMLCanvasElement
Captured video frame
Returns
void
updatePlugins()
protected
updatePlugins(result
,stream
):Promise
<void
>
Update attached plugins
Calls update() of all attached plugins.
Parameters
• result: ResultT
Results of video processing
• stream: HTMLCanvasElement
Captured video frame
Returns
Promise
<void
>
Promise resolving when update is finished
Inherited from
updateScene()
protected
updateScene():void
Update and render the scene
Virtual method updating and rendering the scene. Overridden by implementation of derived renderer.
Returns
void
Inherited from
updateVideo()
protected
updateVideo(stream
):void
Update the video layer
Updates padding canvases using portions of video frame.
Parameters
• stream: HTMLCanvasElement
Captured video frame
Returns
void